| ofs | hex dump | ascii | 
|---|
| 0000 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | js2-mode-20231224/.............. | 
| 0020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0060 |  00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000755.0000000.0000000.0000 | 
| 0080 |  30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 32 30 33 32 00 20 35 00 00 00  | 0000000.00000000000.012032..5... | 
| 00a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 00e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0100 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0120 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 01e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0200 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 2e 67 69 74 68 75 62 2f 00 00 00 00 00 00  | js2-mode-20231224/.github/...... | 
| 0220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0260 |  00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000755.0000000.0000000.0000 | 
| 0280 |  30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 33 37 32 00 20 35 00 00 00  | 0000000.00000000000.013372..5... | 
| 02a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 02e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0300 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0320 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 03e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0400 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 2e 67 69 74 68 75 62 2f 46 55 4e 44 49 4e  | js2-mode-20231224/.github/FUNDIN | 
| 0420 |  47 2e 79 6d 6c 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | G.yml........................... | 
| 0440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0460 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0480 |  30 30 30 30 30 31 37 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 32 30 35 00 20 30 00 00 00  | 0000017.00000000000.015205..0... | 
| 04a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 04c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 04e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0500 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0520 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 05e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0600 |  67 69 74 68 75 62 3a 20 64 67 75 74 6f 76 0a 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | github:.dgutov.................. | 
| 0620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 06e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 07e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0800 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c  | js2-mode-20231224/.github/workfl | 
| 0820 |  6f 77 73 2f 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ows/............................ | 
| 0840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0860 |  00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000755.0000000.0000000.0000 | 
| 0880 |  30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 34 32 37 00 20 35 00 00 00  | 0000000.00000000000.015427..5... | 
| 08a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 08c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 08e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0900 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0920 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 09a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 09c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 09e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0a00 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 2e 67 69 74 68 75 62 2f 77 6f 72 6b 66 6c  | js2-mode-20231224/.github/workfl | 
| 0a20 |  6f 77 73 2f 74 65 73 74 2e 79 6d 6c 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ows/test.yml.................... | 
| 0a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0a60 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 0a80 |  30 30 30 31 32 32 31 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 37 31 32 35 00 20 30 00 00 00  | 0001221.00000000000.017125..0... | 
| 0aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0b00 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 0b20 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 0b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0c00 |  6e 61 6d 65 3a 20 43 49 0a 0a 6f 6e 3a 0a 20 20    70 75 6c 6c 5f 72 65 71 75 65 73 74 3a 0a 20 20  | name:.CI..on:...pull_request:... | 
| 0c20 |  20 20 70 61 74 68 73 3a 0a 20 20 20 20 20 20 2d    20 27 2a 2a 2e 65 6c 27 0a 20 20 20 20 20 20 2d  | ..paths:.......-.'**.el'.......- | 
| 0c40 |  20 27 2a 2a 2e 79 6d 6c 27 0a 20 20 20 20 20 20    2d 20 27 4d 61 6b 65 66 69 6c 65 27 0a 20 20 70  | .'**.yml'.......-.'Makefile'...p | 
| 0c60 |  75 73 68 3a 0a 20 20 20 20 70 61 74 68 73 3a 0a    20 20 20 20 20 20 2d 20 27 2a 2a 2e 65 6c 27 0a  | ush:.....paths:.......-.'**.el'. | 
| 0c80 |  20 20 20 20 20 20 2d 20 27 2a 2a 2e 79 6d 6c 27    0a 20 20 20 20 20 20 2d 20 27 4d 61 6b 65 66 69  | ......-.'**.yml'.......-.'Makefi | 
| 0ca0 |  6c 65 27 0a 0a 6a 6f 62 73 3a 0a 20 20 74 65 73    74 3a 0a 20 20 20 20 69 66 3a 20 67 69 74 68 75  | le'..jobs:...test:.....if:.githu | 
| 0cc0 |  62 2e 72 65 70 6f 73 69 74 6f 72 79 5f 6f 77 6e    65 72 20 3d 3d 20 27 6d 6f 6f 7a 27 0a 20 20 20  | b.repository_owner.==.'mooz'.... | 
| 0ce0 |  20 72 75 6e 73 2d 6f 6e 3a 20 75 62 75 6e 74 75    2d 6c 61 74 65 73 74 0a 20 20 20 20 73 74 72 61  | .runs-on:.ubuntu-latest.....stra | 
| 0d00 |  74 65 67 79 3a 0a 20 20 20 20 20 20 6d 61 74 72    69 78 3a 0a 20 20 20 20 20 20 20 20 65 6d 61 63  | tegy:.......matrix:.........emac | 
| 0d20 |  73 5f 76 65 72 73 69 6f 6e 3a 0a 20 20 20 20 20    20 20 20 20 20 2d 20 32 35 2e 31 0a 20 20 20 20  | s_version:...........-.25.1..... | 
| 0d40 |  20 20 20 20 20 20 2d 20 32 36 2e 33 0a 20 20 20    20 20 20 20 20 20 20 2d 20 32 37 2e 32 0a 20 20  | ......-.26.3...........-.27.2... | 
| 0d60 |  20 20 20 20 20 20 20 20 2d 20 73 6e 61 70 73 68    6f 74 0a 20 20 20 20 73 74 65 70 73 3a 0a 20 20  | ........-.snapshot.....steps:... | 
| 0d80 |  20 20 2d 20 6e 61 6d 65 3a 20 53 65 74 20 75 70    20 45 6d 61 63 73 0a 20 20 20 20 20 20 75 73 65  | ..-.name:.Set.up.Emacs.......use | 
| 0da0 |  73 3a 20 70 75 72 63 65 6c 6c 2f 73 65 74 75 70    2d 65 6d 61 63 73 40 6d 61 73 74 65 72 0a 20 20  | s:.purcell/setup-emacs@master... | 
| 0dc0 |  20 20 20 20 77 69 74 68 3a 0a 20 20 20 20 20 20    20 20 76 65 72 73 69 6f 6e 3a 20 24 7b 7b 6d 61  | ....with:.........version:.${{ma | 
| 0de0 |  74 72 69 78 2e 65 6d 61 63 73 5f 76 65 72 73 69    6f 6e 7d 7d 0a 0a 20 20 20 20 2d 20 6e 61 6d 65  | trix.emacs_version}}......-.name | 
| 0e00 |  3a 20 43 68 65 63 6b 20 6f 75 74 20 74 68 65 20    73 6f 75 72 63 65 20 63 6f 64 65 0a 20 20 20 20  | :.Check.out.the.source.code..... | 
| 0e20 |  20 20 75 73 65 73 3a 20 61 63 74 69 6f 6e 73 2f    63 68 65 63 6b 6f 75 74 40 76 32 0a 0a 20 20 20  | ..uses:.actions/checkout@v2..... | 
| 0e40 |  20 2d 20 6e 61 6d 65 3a 20 54 65 73 74 20 74 68    65 20 70 72 6f 6a 65 63 74 0a 20 20 20 20 20 20  | .-.name:.Test.the.project....... | 
| 0e60 |  72 75 6e 3a 20 7c 0a 20 20 20 20 20 20 20 20 65    6d 61 63 73 20 2d 2d 76 65 72 73 69 6f 6e 0a 20  | run:.|.........emacs.--version.. | 
| 0e80 |  20 20 20 20 20 20 20 6d 61 6b 65 20 74 65 73 74    0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .......make.test................ | 
| 0ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 0fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1000 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 6a 73 32 2d 6d 6f 64 65 2e 65 6c 00 00 00  | js2-mode-20231224/js2-mode.el... | 
| 1020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1060 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 1080 |  31 37 37 31 37 32 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 30 31 37 00 20 30 00 00 00  | 1771724.00000000000.014017..0... | 
| 10a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 10c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 10e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1100 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 1120 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 1140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 11a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 11c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 11e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 1200 |  3b 3b 3b 20 6a 73 32 2d 6d 6f 64 65 2e 65 6c 20    2d 2d 2d 20 49 6d 70 72 6f 76 65 64 20 4a 61 76  | ;;;.js2-mode.el.---.Improved.Jav | 
| 1220 |  61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67 20    6d 6f 64 65 20 2d 2a 2d 20 6c 65 78 69 63 61 6c  | aScript.editing.mode.-*-.lexical | 
| 1240 |  2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a    0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43  | -binding:.t.-*-..;;.Copyright.(C | 
| 1260 |  29 20 32 30 30 39 2c 20 32 30 31 31 2d 32 30 32    33 20 20 46 72 65 65 20 53 6f 66 74 77 61 72 65  | ).2009,.2011-2023..Free.Software | 
| 1280 |  20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63    2e 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 53 74  | .Foundation,.Inc...;;.Author:.St | 
| 12a0 |  65 76 65 20 59 65 67 67 65 20 3c 73 74 65 76 65    2e 79 65 67 67 65 40 67 6d 61 69 6c 2e 63 6f 6d  | eve.Yegge.<steve.yegge@gmail.com | 
| 12c0 |  3e 0a 3b 3b 20 20 20 20 20 20 20 20 20 6d 6f 6f    7a 20 3c 73 74 69 6c 6c 70 65 64 61 6e 74 40 67  | >.;;.........mooz.<stillpedant@g | 
| 12e0 |  6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 20 20 20    20 20 20 20 20 44 6d 69 74 72 79 20 47 75 74 6f  | mail.com>.;;.........Dmitry.Guto | 
| 1300 |  76 20 3c 64 67 75 74 6f 76 40 79 61 6e 64 65 78    2e 72 75 3e 0a 3b 3b 20 55 52 4c 3a 20 20 68 74  | v.<dgutov@yandex.ru>.;;.URL:..ht | 
| 1320 |  74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d    2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 0a  | tps://github.com/mooz/js2-mode/. | 
| 1340 |  3b 3b 20 20 20 20 20 20 20 68 74 74 70 3a 2f 2f    63 6f 64 65 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f  | ;;.......http://code.google.com/ | 
| 1360 |  70 2f 6a 73 32 2d 6d 6f 64 65 2f 0a 3b 3b 20 56    65 72 73 69 6f 6e 3a 20 32 30 32 33 31 32 32 34  | p/js2-mode/.;;.Version:.20231224 | 
| 1380 |  0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 6c 61    6e 67 75 61 67 65 73 2c 20 6a 61 76 61 73 63 72  | .;;.Keywords:.languages,.javascr | 
| 13a0 |  69 70 74 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52    65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73  | ipt.;;.Package-Requires:.((emacs | 
| 13c0 |  20 22 32 34 2e 31 22 29 20 28 63 6c 2d 6c 69 62    20 22 30 2e 35 22 29 29 0a 0a 3b 3b 20 54 68 69  | ."24.1").(cl-lib."0.5"))..;;.Thi | 
| 13e0 |  73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f    66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b  | s.file.is.part.of.GNU.Emacs...;; | 
| 1400 |  20 47 4e 55 20 45 6d 61 63 73 20 69 73 20 66 72    65 65 20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75  | .GNU.Emacs.is.free.software:.you | 
| 1420 |  20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74    65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69  | .can.redistribute.it.and/or.modi | 
| 1440 |  66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74    68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20  | fy.;;.it.under.the.terms.of.the. | 
| 1460 |  47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c    69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75  | GNU.General.Public.License.as.pu | 
| 1480 |  62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68    65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20  | blished.by.;;.the.Free.Software. | 
| 14a0 |  46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68    65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20  | Foundation,.either.version.3.of. | 
| 14c0 |  74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a    3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69  | the.License,.or.;;.(at.your.opti | 
| 14e0 |  6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65    72 73 69 6f 6e 2e 0a 0a 3b 3b 20 47 4e 55 20 45  | on).any.later.version...;;.GNU.E | 
| 1500 |  6d 61 63 73 20 69 73 20 64 69 73 74 72 69 62 75    74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20  | macs.is.distributed.in.the.hope. | 
| 1520 |  74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20    75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57  | that.it.will.be.useful,.;;.but.W | 
| 1540 |  49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41    4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65  | ITHOUT.ANY.WARRANTY;.without.eve | 
| 1560 |  6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61    72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52  | n.the.implied.warranty.of.;;.MER | 
| 1580 |  43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20    46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41  | CHANTABILITY.or.FITNESS.FOR.A.PA | 
| 15a0 |  52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45    2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e  | RTICULAR.PURPOSE...See.the.;;.GN | 
| 15c0 |  55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63    20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72  | U.General.Public.License.for.mor | 
| 15e0 |  65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59    6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72  | e.details...;;.You.should.have.r | 
| 1600 |  65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f    66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61  | eceived.a.copy.of.the.GNU.Genera | 
| 1620 |  6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65    0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47  | l.Public.License.;;.along.with.G | 
| 1640 |  4e 55 20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f    74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77  | NU.Emacs...If.not,.see.<http://w | 
| 1660 |  77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e    73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d  | ww.gnu.org/licenses/>...;;;.Comm | 
| 1680 |  65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73    20 4a 61 76 61 53 63 72 69 70 74 20 65 64 69 74  | entary:..;;.This.JavaScript.edit | 
| 16a0 |  69 6e 67 20 6d 6f 64 65 20 73 75 70 70 6f 72 74    73 3a 0a 0a 3b 3b 20 20 2d 20 73 74 72 69 63 74  | ing.mode.supports:..;;..-.strict | 
| 16c0 |  20 72 65 63 6f 67 6e 69 74 69 6f 6e 20 6f 66 20    74 68 65 20 45 63 6d 61 2d 32 36 32 20 6c 61 6e  | .recognition.of.the.Ecma-262.lan | 
| 16e0 |  67 75 61 67 65 20 73 74 61 6e 64 61 72 64 0a 3b    3b 20 20 2d 20 73 75 70 70 6f 72 74 20 66 6f 72  | guage.standard.;;..-.support.for | 
| 1700 |  20 6d 6f 73 74 20 52 68 69 6e 6f 20 61 6e 64 20    53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 65 78 74  | .most.Rhino.and.SpiderMonkey.ext | 
| 1720 |  65 6e 73 69 6f 6e 73 20 66 72 6f 6d 20 31 2e 35    20 61 6e 64 20 75 70 0a 3b 3b 20 20 2d 20 70 61  | ensions.from.1.5.and.up.;;..-.pa | 
| 1740 |  72 73 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f    72 20 45 43 4d 41 53 63 72 69 70 74 20 66 6f 72  | rsing.support.for.ECMAScript.for | 
| 1760 |  20 58 4d 4c 20 28 45 34 58 2c 20 45 43 4d 41 2d    33 35 37 29 0a 3b 3b 20 20 2d 20 61 63 63 75 72  | .XML.(E4X,.ECMA-357).;;..-.accur | 
| 1780 |  61 74 65 20 73 79 6e 74 61 78 20 68 69 67 68 6c    69 67 68 74 69 6e 67 20 75 73 69 6e 67 20 61 20  | ate.syntax.highlighting.using.a. | 
| 17a0 |  72 65 63 75 72 73 69 76 65 2d 64 65 73 63 65 6e    74 20 70 61 72 73 65 72 0a 3b 3b 20 20 2d 20 6f  | recursive-descent.parser.;;..-.o | 
| 17c0 |  6e 2d 74 68 65 2d 66 6c 79 20 72 65 70 6f 72 74    69 6e 67 20 6f 66 20 73 79 6e 74 61 78 20 65 72  | n-the-fly.reporting.of.syntax.er | 
| 17e0 |  72 6f 72 73 20 61 6e 64 20 73 74 72 69 63 74 2d    6d 6f 64 65 20 77 61 72 6e 69 6e 67 73 0a 3b 3b  | rors.and.strict-mode.warnings.;; | 
| 1800 |  20 20 2d 20 75 6e 64 65 63 6c 61 72 65 64 2d 76    61 72 69 61 62 6c 65 20 77 61 72 6e 69 6e 67 73  | ..-.undeclared-variable.warnings | 
| 1820 |  20 75 73 69 6e 67 20 61 20 63 6f 6e 66 69 67 75    72 61 62 6c 65 20 65 78 74 65 72 6e 73 20 66 72  | .using.a.configurable.externs.fr | 
| 1840 |  61 6d 65 77 6f 72 6b 0a 3b 3b 20 20 2d 20 22 62    6f 75 6e 63 69 6e 67 22 20 6c 69 6e 65 20 69 6e  | amework.;;..-."bouncing".line.in | 
| 1860 |  64 65 6e 74 61 74 69 6f 6e 20 74 6f 20 63 68 6f    6f 73 65 20 61 6d 6f 6e 67 20 61 6c 74 65 72 6e  | dentation.to.choose.among.altern | 
| 1880 |  61 74 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20    70 6f 69 6e 74 73 0a 3b 3b 20 20 2d 20 73 6d 61  | ate.indentation.points.;;..-.sma | 
| 18a0 |  72 74 20 6c 69 6e 65 2d 77 72 61 70 70 69 6e 67    20 77 69 74 68 69 6e 20 63 6f 6d 6d 65 6e 74 73  | rt.line-wrapping.within.comments | 
| 18c0 |  20 61 6e 64 20 73 74 72 69 6e 67 73 0a 3b 3b 20    20 2d 20 63 6f 64 65 20 66 6f 6c 64 69 6e 67 3a  | .and.strings.;;..-.code.folding: | 
| 18e0 |  0a 3b 3b 20 20 20 20 2d 20 73 68 6f 77 20 73 6f    6d 65 20 6f 72 20 61 6c 6c 20 66 75 6e 63 74 69  | .;;....-.show.some.or.all.functi | 
| 1900 |  6f 6e 20 62 6f 64 69 65 73 20 61 73 20 7b 2e 2e    2e 7d 0a 3b 3b 20 20 20 20 2d 20 73 68 6f 77 20  | on.bodies.as.{...}.;;....-.show. | 
| 1920 |  73 6f 6d 65 20 6f 72 20 61 6c 6c 20 62 6c 6f 63    6b 20 63 6f 6d 6d 65 6e 74 73 20 61 73 20 2f 2a  | some.or.all.block.comments.as./* | 
| 1940 |  2e 2e 2e 2a 2f 0a 3b 3b 20 20 2d 20 63 6f 6e 74    65 78 74 2d 73 65 6e 73 69 74 69 76 65 20 6d 65  | ...*/.;;..-.context-sensitive.me | 
| 1960 |  6e 75 20 62 61 72 20 61 6e 64 20 70 6f 70 75 70    20 6d 65 6e 75 73 0a 3b 3b 20 20 2d 20 63 6f 64  | nu.bar.and.popup.menus.;;..-.cod | 
| 1980 |  65 20 62 72 6f 77 73 69 6e 67 20 75 73 69 6e 67    20 74 68 65 20 60 69 6d 65 6e 75 27 20 70 61 63  | e.browsing.using.the.`imenu'.pac | 
| 19a0 |  6b 61 67 65 0a 3b 3b 20 20 2d 20 6d 61 6e 79 20    63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70  | kage.;;..-.many.customization.op | 
| 19c0 |  74 69 6f 6e 73 0a 0a 3b 3b 20 49 6e 73 74 61 6c    6c 61 74 69 6f 6e 3a 0a 3b 3b 0a 3b 3b 20 54 6f  | tions..;;.Installation:.;;.;;.To | 
| 19e0 |  20 69 6e 73 74 61 6c 6c 20 69 74 20 61 73 20 79    6f 75 72 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66  | .install.it.as.your.major.mode.f | 
| 1a00 |  6f 72 20 4a 61 76 61 53 63 72 69 70 74 20 65 64    69 74 69 6e 67 3a 0a 0a 3b 3b 20 20 20 28 61 64  | or.JavaScript.editing:..;;...(ad | 
| 1a20 |  64 2d 74 6f 2d 6c 69 73 74 20 27 61 75 74 6f 2d    6d 6f 64 65 2d 61 6c 69 73 74 20 27 28 22 5c 5c  | d-to-list.'auto-mode-alist.'("\\ | 
| 1a40 |  2e 6a 73 5c 5c 27 22 20 2e 20 6a 73 32 2d 6d 6f    64 65 29 29 0a 0a 3b 3b 20 41 6c 74 65 72 6e 61  | .js\\'"...js2-mode))..;;.Alterna | 
| 1a60 |  74 69 76 65 6c 79 2c 20 74 6f 20 69 6e 73 74 61    6c 6c 20 69 74 20 61 73 20 61 20 6d 69 6e 6f 72  | tively,.to.install.it.as.a.minor | 
| 1a80 |  20 6d 6f 64 65 20 6a 75 73 74 20 66 6f 72 20 4a    61 76 61 53 63 72 69 70 74 20 6c 69 6e 74 69 6e  | .mode.just.for.JavaScript.lintin | 
| 1aa0 |  67 2c 0a 3b 3b 20 79 6f 75 20 6d 75 73 74 20 61    64 64 20 69 74 20 74 6f 20 74 68 65 20 61 70 70  | g,.;;.you.must.add.it.to.the.app | 
| 1ac0 |  72 6f 70 72 69 61 74 65 20 6d 61 6a 6f 72 2d 6d    6f 64 65 20 68 6f 6f 6b 2e 20 20 4e 6f 72 6d 61  | ropriate.major-mode.hook...Norma | 
| 1ae0 |  6c 6c 79 20 74 68 69 73 20 77 6f 75 6c 64 20 62    65 3a 0a 0a 3b 3b 20 20 20 28 61 64 64 2d 68 6f  | lly.this.would.be:..;;...(add-ho | 
| 1b00 |  6f 6b 20 27 6a 73 2d 6d 6f 64 65 2d 68 6f 6f 6b    20 27 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65  | ok.'js-mode-hook.'js2-minor-mode | 
| 1b20 |  29 0a 0a 3b 3b 20 59 6f 75 20 6d 61 79 20 61 6c    73 6f 20 77 61 6e 74 20 74 6f 20 68 6f 6f 6b 20  | )..;;.You.may.also.want.to.hook. | 
| 1b40 |  69 74 20 69 6e 20 66 6f 72 20 73 68 65 6c 6c 20    73 63 72 69 70 74 73 20 72 75 6e 6e 69 6e 67 20  | it.in.for.shell.scripts.running. | 
| 1b60 |  76 69 61 20 6e 6f 64 65 2e 6a 73 3a 0a 0a 3b 3b    20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20  | via.node.js:..;;...(add-to-list. | 
| 1b80 |  27 69 6e 74 65 72 70 72 65 74 65 72 2d 6d 6f 64    65 2d 61 6c 69 73 74 20 27 28 22 6e 6f 64 65 22  | 'interpreter-mode-alist.'("node" | 
| 1ba0 |  20 2e 20 6a 73 32 2d 6d 6f 64 65 29 29 0a 0a 3b    3b 20 55 73 65 20 45 6d 61 63 73 20 32 37 20 61  | ...js2-mode))..;;.Use.Emacs.27.a | 
| 1bc0 |  6e 64 20 77 61 6e 74 20 74 6f 20 77 72 69 74 65    20 4a 53 58 3f 20 20 54 68 65 6e 20 75 73 65 20  | nd.want.to.write.JSX?..Then.use. | 
| 1be0 |  60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27    20 61 73 20 64 65 73 63 72 69 62 65 64 0a 3b 3b  | `js2-minor-mode'.as.described.;; | 
| 1c00 |  20 61 62 6f 76 65 2e 20 20 55 73 65 20 45 6d 61    63 73 20 32 36 20 6f 72 20 65 61 72 6c 69 65 72  | .above...Use.Emacs.26.or.earlier | 
| 1c20 |  3f 20 20 54 68 65 6e 20 75 73 65 20 60 6a 73 32    2d 6a 73 78 2d 6d 6f 64 65 27 3a 0a 0a 3b 3b 20  | ?..Then.use.`js2-jsx-mode':..;;. | 
| 1c40 |  20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27    61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20  | ..(add-to-list.'auto-mode-alist. | 
| 1c60 |  27 28 22 5c 5c 2e 6a 73 78 3f 5c 5c 27 22 20 2e    20 6a 73 32 2d 6a 73 78 2d 6d 6f 64 65 29 29 0a  | '("\\.jsx?\\'"...js2-jsx-mode)). | 
| 1c80 |  3b 3b 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73    74 20 27 69 6e 74 65 72 70 72 65 74 65 72 2d 6d  | ;;...(add-to-list.'interpreter-m | 
| 1ca0 |  6f 64 65 2d 61 6c 69 73 74 20 27 28 22 6e 6f 64    65 22 20 2e 20 6a 73 32 2d 6a 73 78 2d 6d 6f 64  | ode-alist.'("node"...js2-jsx-mod | 
| 1cc0 |  65 29 29 0a 0a 3b 3b 20 4e 6f 74 65 20 74 68 61    74 20 6c 69 6e 74 69 6e 67 20 6f 66 20 4a 53 58  | e))..;;.Note.that.linting.of.JSX | 
| 1ce0 |  20 63 6f 64 65 20 6d 61 79 20 66 61 69 6c 20 69    6e 20 62 6f 74 68 20 6d 6f 64 65 73 2e 0a 0a 3b  | .code.may.fail.in.both.modes...; | 
| 1d00 |  3b 20 54 6f 20 63 75 73 74 6f 6d 69 7a 65 20 68    6f 77 20 69 74 20 77 6f 72 6b 73 3a 0a 3b 3b 20  | ;.To.customize.how.it.works:.;;. | 
| 1d20 |  20 20 4d 2d 78 20 63 75 73 74 6f 6d 69 7a 65 2d    67 72 6f 75 70 20 52 45 54 20 6a 73 32 2d 6d 6f  | ..M-x.customize-group.RET.js2-mo | 
| 1d40 |  64 65 20 52 45 54 0a 0a 3b 3b 20 4e 6f 74 65 73    3a 0a 0a 3b 3b 20 54 68 69 73 20 6d 6f 64 65 20  | de.RET..;;.Notes:..;;.This.mode. | 
| 1d60 |  69 6e 63 6c 75 64 65 73 20 61 20 70 6f 72 74 20    6f 66 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e 6f  | includes.a.port.of.Mozilla.Rhino | 
| 1d80 |  27 73 20 73 63 61 6e 6e 65 72 2c 20 70 61 72 73    65 72 20 61 6e 64 0a 3b 3b 20 73 79 6d 62 6f 6c  | 's.scanner,.parser.and.;;.symbol | 
| 1da0 |  20 74 61 62 6c 65 2e 20 20 49 64 65 61 6c 6c 79    20 69 74 20 73 68 6f 75 6c 64 20 73 74 61 79 20  | .table...Ideally.it.should.stay. | 
| 1dc0 |  69 6e 20 73 79 6e 63 20 77 69 74 68 20 52 68 69    6e 6f 2c 20 6b 65 65 70 69 6e 67 0a 3b 3b 20 60  | in.sync.with.Rhino,.keeping.;;.` | 
| 1de0 |  6a 73 32 2d 6d 6f 64 65 27 20 63 75 72 72 65 6e    74 20 61 73 20 74 68 65 20 45 63 6d 61 53 63 72  | js2-mode'.current.as.the.EcmaScr | 
| 1e00 |  69 70 74 20 6c 61 6e 67 75 61 67 65 20 73 74 61    6e 64 61 72 64 20 65 76 6f 6c 76 65 73 2e 0a 0a  | ipt.language.standard.evolves... | 
| 1e20 |  3b 3b 20 55 6e 6c 69 6b 65 20 63 63 2d 65 6e 67    69 6e 65 20 62 61 73 65 64 20 6c 61 6e 67 75 61  | ;;.Unlike.cc-engine.based.langua | 
| 1e40 |  67 65 20 6d 6f 64 65 73 2c 20 6a 73 32 2d 6d 6f    64 65 27 73 20 6c 69 6e 65 2d 69 6e 64 65 6e 74  | ge.modes,.js2-mode's.line-indent | 
| 1e60 |  61 74 69 6f 6e 20 69 73 20 6e 6f 74 0a 3b 3b 20    63 75 73 74 6f 6d 69 7a 61 62 6c 65 2e 20 20 49  | ation.is.not.;;.customizable...I | 
| 1e80 |  74 20 69 73 20 61 20 73 75 72 70 72 69 73 69 6e    67 20 61 6d 6f 75 6e 74 20 6f 66 20 77 6f 72 6b  | t.is.a.surprising.amount.of.work | 
| 1ea0 |  20 74 6f 20 73 75 70 70 6f 72 74 20 63 75 73 74    6f 6d 69 7a 61 62 6c 65 0a 3b 3b 20 69 6e 64 65  | .to.support.customizable.;;.inde | 
| 1ec0 |  6e 74 61 74 69 6f 6e 2e 20 20 54 68 65 20 63 75    72 72 65 6e 74 20 63 6f 6d 70 72 6f 6d 69 73 65  | ntation...The.current.compromise | 
| 1ee0 |  20 69 73 20 74 68 61 74 20 74 68 65 20 74 61 62    20 6b 65 79 20 6c 65 74 73 20 79 6f 75 20 63 79  | .is.that.the.tab.key.lets.you.cy | 
| 1f00 |  63 6c 65 20 61 6d 6f 6e 67 0a 3b 3b 20 76 61 72    69 6f 75 73 20 6c 69 6b 65 6c 79 20 69 6e 64 65  | cle.among.;;.various.likely.inde | 
| 1f20 |  6e 74 61 74 69 6f 6e 20 70 6f 69 6e 74 73 2c 20    73 69 6d 69 6c 61 72 20 74 6f 20 74 68 65 20 62  | ntation.points,.similar.to.the.b | 
| 1f40 |  65 68 61 76 69 6f 72 20 6f 66 20 70 79 74 68 6f    6e 2d 6d 6f 64 65 2e 0a 0a 3b 3b 20 54 68 69 73  | ehavior.of.python-mode...;;.This | 
| 1f60 |  20 6d 6f 64 65 20 64 6f 65 73 20 6e 6f 74 20 79    65 74 20 77 6f 72 6b 20 77 69 74 68 20 22 6d 75  | .mode.does.not.yet.work.with."mu | 
| 1f80 |  6c 74 69 2d 6d 6f 64 65 22 20 6d 6f 64 65 73 20    73 75 63 68 20 61 73 20 60 6d 6d 6d 2d 6d 6f 64  | lti-mode".modes.such.as.`mmm-mod | 
| 1fa0 |  65 27 0a 3b 3b 20 61 6e 64 20 60 6d 75 6d 61 6d    6f 27 2c 20 61 6c 74 68 6f 75 67 68 20 69 74 20  | e'.;;.and.`mumamo',.although.it. | 
| 1fc0 |  63 6f 75 6c 64 20 62 65 20 6d 61 64 65 20 74 6f    20 64 6f 20 73 6f 20 77 69 74 68 20 73 6f 6d 65  | could.be.made.to.do.so.with.some | 
| 1fe0 |  20 65 66 66 6f 72 74 2e 0a 3b 3b 20 54 68 69 73    20 6d 65 61 6e 73 20 74 68 61 74 20 60 6a 73 32  | .effort..;;.This.means.that.`js2 | 
| 2000 |  2d 6d 6f 64 65 27 20 69 73 20 63 75 72 72 65 6e    74 6c 79 20 6f 6e 6c 79 20 75 73 65 66 75 6c 20  | -mode'.is.currently.only.useful. | 
| 2020 |  66 6f 72 20 65 64 69 74 69 6e 67 20 4a 61 76 61    53 63 72 69 70 74 0a 3b 3b 20 66 69 6c 65 73 2c  | for.editing.JavaScript.;;.files, | 
| 2040 |  20 61 6e 64 20 6e 6f 74 20 66 6f 72 20 65 64 69    74 69 6e 67 20 4a 61 76 61 53 63 72 69 70 74 20  | .and.not.for.editing.JavaScript. | 
| 2060 |  77 69 74 68 69 6e 20 3c 73 63 72 69 70 74 3e 20    74 61 67 73 20 6f 72 20 74 65 6d 70 6c 61 74 65  | within.<script>.tags.or.template | 
| 2080 |  73 2e 0a 0a 3b 3b 20 54 68 65 20 70 72 6f 6a 65    63 74 20 70 61 67 65 20 6f 6e 20 47 69 74 48 75  | s...;;.The.project.page.on.GitHu | 
| 20a0 |  62 20 69 73 20 75 73 65 64 20 66 6f 72 20 64 65    76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 69 73  | b.is.used.for.development.and.is | 
| 20c0 |  73 75 65 20 74 72 61 63 6b 69 6e 67 2e 0a 3b 3b    20 54 68 65 20 6f 72 69 67 69 6e 61 6c 20 68 6f  | sue.tracking..;;.The.original.ho | 
| 20e0 |  6d 65 70 61 67 65 20 61 74 20 47 6f 6f 67 6c 65    20 43 6f 64 65 20 68 61 73 20 6f 75 74 64 61 74  | mepage.at.Google.Code.has.outdat | 
| 2100 |  65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61    6e 64 20 69 73 20 6d 6f 73 74 6c 79 0a 3b 3b 20  | ed.information.and.is.mostly.;;. | 
| 2120 |  75 6e 6d 61 69 6e 74 61 69 6e 65 64 2e 0a 0a 3b    3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69  | unmaintained...;;;.Code:..(requi | 
| 2140 |  72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71    75 69 72 65 20 27 69 6d 65 6e 75 29 0a 28 72 65  | re.'cl-lib).(require.'imenu).(re | 
| 2160 |  71 75 69 72 65 20 27 6a 73 29 0a 28 72 65 71 75    69 72 65 20 27 65 74 61 67 73 29 0a 0a 28 65 76  | quire.'js).(require.'etags)..(ev | 
| 2180 |  61 6c 2d 61 6e 64 2d 63 6f 6d 70 69 6c 65 0a 20    20 28 69 66 20 28 76 65 72 73 69 6f 6e 3c 20 65  | al-and-compile...(if.(version<.e | 
| 21a0 |  6d 61 63 73 2d 76 65 72 73 69 6f 6e 20 22 32 35    2e 30 22 29 0a 20 20 20 20 20 20 28 72 65 71 75  | macs-version."25.0").......(requ | 
| 21c0 |  69 72 65 20 27 6a 73 32 2d 6f 6c 64 2d 69 6e 64    65 6e 74 29 0a 20 20 20 20 28 64 65 66 76 61 72  | ire.'js2-old-indent).....(defvar | 
| 21e0 |  61 6c 69 61 73 20 27 6a 73 32 2d 62 61 73 69 63    2d 6f 66 66 73 65 74 20 27 6a 73 2d 69 6e 64 65  | alias.'js2-basic-offset.'js-inde | 
| 2200 |  6e 74 2d 6c 65 76 65 6c 20 6e 69 6c 29 0a 20 20    20 20 28 64 65 66 61 6c 69 61 73 20 27 6a 73 32  | nt-level.nil).....(defalias.'js2 | 
| 2220 |  2d 70 72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74    69 6f 6e 20 27 6a 73 2d 2d 70 72 6f 70 65 72 2d  | -proper-indentation.'js--proper- | 
| 2240 |  69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20    20 28 64 65 66 61 6c 69 61 73 20 27 6a 73 32 2d  | indentation).....(defalias.'js2- | 
| 2260 |  6a 73 78 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20    27 6a 73 2d 6a 73 78 2d 69 6e 64 65 6e 74 2d 6c  | jsx-indent-line.'js-jsx-indent-l | 
| 2280 |  69 6e 65 29 0a 20 20 20 20 28 64 65 66 61 6c 69    61 73 20 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c  | ine).....(defalias.'js2-indent-l | 
| 22a0 |  69 6e 65 20 27 6a 73 2d 69 6e 64 65 6e 74 2d 6c    69 6e 65 29 0a 20 20 20 20 28 64 65 66 61 6c 69  | ine.'js-indent-line).....(defali | 
| 22c0 |  61 73 20 27 6a 73 32 2d 72 65 2d 73 65 61 72 63    68 2d 66 6f 72 77 61 72 64 20 27 6a 73 2d 2d 72  | as.'js2-re-search-forward.'js--r | 
| 22e0 |  65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64    29 29 29 0a 0a 3b 3b 3b 20 45 78 74 65 72 6e 73  | e-search-forward)))..;;;.Externs | 
| 2300 |  20 28 76 61 72 69 61 62 6c 65 73 20 70 72 65 73    75 6d 65 64 20 74 6f 20 62 65 20 64 65 66 69 6e  | .(variables.presumed.to.be.defin | 
| 2320 |  65 64 20 62 79 20 74 68 65 20 68 6f 73 74 20 73    79 73 74 65 6d 29 0a 0a 28 64 65 66 76 61 72 20  | ed.by.the.host.system)..(defvar. | 
| 2340 |  6a 73 32 2d 65 63 6d 61 2d 32 36 32 2d 65 78 74    65 72 6e 73 0a 20 20 28 6d 61 70 63 61 72 20 27  | js2-ecma-262-externs...(mapcar.' | 
| 2360 |  73 79 6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20    20 20 20 20 20 20 27 28 41 72 72 61 79 20 42 6f  | symbol-name...........'(Array.Bo | 
| 2380 |  6f 6c 65 61 6e 20 44 61 74 65 20 45 72 72 6f 72    20 45 76 61 6c 45 72 72 6f 72 20 46 75 6e 63 74  | olean.Date.Error.EvalError.Funct | 
| 23a0 |  69 6f 6e 20 49 6e 66 69 6e 69 74 79 20 4a 53 4f    4e 0a 20 20 20 20 20 20 20 20 20 20 4d 61 74 68  | ion.Infinity.JSON...........Math | 
| 23c0 |  20 4e 61 4e 20 4e 75 6d 62 65 72 20 4f 62 6a 65    63 74 20 52 61 6e 67 65 45 72 72 6f 72 20 52 65  | .NaN.Number.Object.RangeError.Re | 
| 23e0 |  66 65 72 65 6e 63 65 45 72 72 6f 72 20 52 65 67    45 78 70 0a 20 20 20 20 20 20 20 20 20 20 53 74  | ferenceError.RegExp...........St | 
| 2400 |  72 69 6e 67 20 53 79 6e 74 61 78 45 72 72 6f 72    20 54 79 70 65 45 72 72 6f 72 20 55 52 49 45 72  | ring.SyntaxError.TypeError.URIEr | 
| 2420 |  72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 64 65    63 6f 64 65 55 52 49 20 64 65 63 6f 64 65 55 52  | ror...........decodeURI.decodeUR | 
| 2440 |  49 43 6f 6d 70 6f 6e 65 6e 74 20 65 6e 63 6f 64    65 55 52 49 0a 20 20 20 20 20 20 20 20 20 20 65  | IComponent.encodeURI...........e | 
| 2460 |  6e 63 6f 64 65 55 52 49 43 6f 6d 70 6f 6e 65 6e    74 20 65 73 63 61 70 65 20 65 76 61 6c 20 69 73  | ncodeURIComponent.escape.eval.is | 
| 2480 |  46 69 6e 69 74 65 20 69 73 4e 61 4e 0a 20 20 20    20 20 20 20 20 20 20 70 61 72 73 65 46 6c 6f 61  | Finite.isNaN...........parseFloa | 
| 24a0 |  74 20 70 61 72 73 65 49 6e 74 20 75 6e 64 65 66    69 6e 65 64 20 75 6e 65 73 63 61 70 65 29 29 0a  | t.parseInt.undefined.unescape)). | 
| 24c0 |  22 45 63 6d 61 2d 32 36 32 20 65 78 74 65 72 6e    73 2e 20 20 4e 65 76 65 72 20 68 69 67 68 6c 69  | "Ecma-262.externs...Never.highli | 
| 24e0 |  67 68 74 65 64 20 61 73 20 75 6e 64 65 63 6c 61    72 65 64 20 76 61 72 69 61 62 6c 65 73 2e 22 29  | ghted.as.undeclared.variables.") | 
| 2500 |  0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 62 72    6f 77 73 65 72 2d 65 78 74 65 72 6e 73 0a 20 20  | ..(defvar.js2-browser-externs... | 
| 2520 |  28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d    6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27  | (mapcar.'symbol-name...........' | 
| 2540 |  28 3b 3b 20 44 4f 4d 20 6c 65 76 65 6c 20 31 0a    20 20 20 20 20 20 20 20 20 20 20 20 41 74 74 72  | (;;.DOM.level.1.............Attr | 
| 2560 |  20 43 44 41 54 41 53 65 63 74 69 6f 6e 20 43 68    61 72 61 63 74 65 72 44 61 74 61 20 43 6f 6d 6d  | .CDATASection.CharacterData.Comm | 
| 2580 |  65 6e 74 20 44 4f 4d 45 78 63 65 70 74 69 6f 6e    0a 20 20 20 20 20 20 20 20 20 20 20 20 44 4f 4d  | ent.DOMException.............DOM | 
| 25a0 |  49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 44    6f 63 75 6d 65 6e 74 20 44 6f 63 75 6d 65 6e 74  | Implementation.Document.Document | 
| 25c0 |  46 72 61 67 6d 65 6e 74 0a 20 20 20 20 20 20 20    20 20 20 20 20 44 6f 63 75 6d 65 6e 74 54 79 70  | Fragment.............DocumentTyp | 
| 25e0 |  65 20 45 6c 65 6d 65 6e 74 20 45 6e 74 69 74 79    20 45 6e 74 69 74 79 52 65 66 65 72 65 6e 63 65  | e.Element.Entity.EntityReference | 
| 2600 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 45 78 63    65 70 74 69 6f 6e 43 6f 64 65 20 4e 61 6d 65 64  | .............ExceptionCode.Named | 
| 2620 |  4e 6f 64 65 4d 61 70 20 4e 6f 64 65 20 4e 6f 64    65 4c 69 73 74 20 4e 6f 74 61 74 69 6f 6e 0a 20  | NodeMap.Node.NodeList.Notation.. | 
| 2640 |  20 20 20 20 20 20 20 20 20 20 20 50 72 6f 63 65    73 73 69 6e 67 49 6e 73 74 72 75 63 74 69 6f 6e  | ...........ProcessingInstruction | 
| 2660 |  20 54 65 78 74 0a 0a 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 44 4f 4d 20 6c 65 76 65 6c 20  | .Text..............;;.DOM.level. | 
| 2680 |  32 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54    4d 4c 41 6e 63 68 6f 72 45 6c 65 6d 65 6e 74 20  | 2.............HTMLAnchorElement. | 
| 26a0 |  48 54 4d 4c 41 70 70 6c 65 74 45 6c 65 6d 65 6e    74 20 48 54 4d 4c 41 72 65 61 45 6c 65 6d 65 6e  | HTMLAppletElement.HTMLAreaElemen | 
| 26c0 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54    4d 4c 42 52 45 6c 65 6d 65 6e 74 20 48 54 4d 4c  | t.............HTMLBRElement.HTML | 
| 26e0 |  42 61 73 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c    42 61 73 65 46 6f 6e 74 45 6c 65 6d 65 6e 74 0a  | BaseElement.HTMLBaseFontElement. | 
| 2700 |  20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c    42 6f 64 79 45 6c 65 6d 65 6e 74 20 48 54 4d 4c  | ............HTMLBodyElement.HTML | 
| 2720 |  42 75 74 74 6f 6e 45 6c 65 6d 65 6e 74 20 48 54    4d 4c 43 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20  | ButtonElement.HTMLCollection.... | 
| 2740 |  20 20 20 20 20 20 20 20 20 48 54 4d 4c 44 4c 69    73 74 45 6c 65 6d 65 6e 74 20 48 54 4d 4c 44 69  | .........HTMLDListElement.HTMLDi | 
| 2760 |  72 65 63 74 6f 72 79 45 6c 65 6d 65 6e 74 20 48    54 4d 4c 44 69 76 45 6c 65 6d 65 6e 74 0a 20 20  | rectoryElement.HTMLDivElement... | 
| 2780 |  20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 44 6f    63 75 6d 65 6e 74 20 48 54 4d 4c 45 6c 65 6d 65  | ..........HTMLDocument.HTMLEleme | 
| 27a0 |  6e 74 20 48 54 4d 4c 46 69 65 6c 64 53 65 74 45    6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20  | nt.HTMLFieldSetElement.......... | 
| 27c0 |  20 20 20 48 54 4d 4c 46 6f 6e 74 45 6c 65 6d 65    6e 74 20 48 54 4d 4c 46 6f 72 6d 45 6c 65 6d 65  | ...HTMLFontElement.HTMLFormEleme | 
| 27e0 |  6e 74 20 48 54 4d 4c 46 72 61 6d 65 45 6c 65 6d    65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20  | nt.HTMLFrameElement............. | 
| 2800 |  48 54 4d 4c 46 72 61 6d 65 53 65 74 45 6c 65 6d    65 6e 74 20 48 54 4d 4c 48 52 45 6c 65 6d 65 6e  | HTMLFrameSetElement.HTMLHRElemen | 
| 2820 |  74 20 48 54 4d 4c 48 65 61 64 45 6c 65 6d 65 6e    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54  | t.HTMLHeadElement.............HT | 
| 2840 |  4d 4c 48 65 61 64 69 6e 67 45 6c 65 6d 65 6e 74    20 48 54 4d 4c 48 74 6d 6c 45 6c 65 6d 65 6e 74  | MLHeadingElement.HTMLHtmlElement | 
| 2860 |  20 48 54 4d 4c 49 46 72 61 6d 65 45 6c 65 6d 65    6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48  | .HTMLIFrameElement.............H | 
| 2880 |  54 4d 4c 49 6d 61 67 65 45 6c 65 6d 65 6e 74 20    48 54 4d 4c 49 6e 70 75 74 45 6c 65 6d 65 6e 74  | TMLImageElement.HTMLInputElement | 
| 28a0 |  20 48 54 4d 4c 49 73 49 6e 64 65 78 45 6c 65 6d    65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .HTMLIsIndexElement............. | 
| 28c0 |  48 54 4d 4c 4c 49 45 6c 65 6d 65 6e 74 20 48 54    4d 4c 4c 61 62 65 6c 45 6c 65 6d 65 6e 74 20 48  | HTMLLIElement.HTMLLabelElement.H | 
| 28e0 |  54 4d 4c 4c 65 67 65 6e 64 45 6c 65 6d 65 6e 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d  | TMLLegendElement.............HTM | 
| 2900 |  4c 4c 69 6e 6b 45 6c 65 6d 65 6e 74 20 48 54 4d    4c 4d 61 70 45 6c 65 6d 65 6e 74 20 48 54 4d 4c  | LLinkElement.HTMLMapElement.HTML | 
| 2920 |  4d 65 6e 75 45 6c 65 6d 65 6e 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 48 54 4d 4c 4d 65 74 61  | MenuElement.............HTMLMeta | 
| 2940 |  45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4d 6f 64 45    6c 65 6d 65 6e 74 20 48 54 4d 4c 4f 4c 69 73 74  | Element.HTMLModElement.HTMLOList | 
| 2960 |  45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20    20 20 20 20 48 54 4d 4c 4f 62 6a 65 63 74 45 6c  | Element.............HTMLObjectEl | 
| 2980 |  65 6d 65 6e 74 20 48 54 4d 4c 4f 70 74 47 72 6f    75 70 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20  | ement.HTMLOptGroupElement....... | 
| 29a0 |  20 20 20 20 20 20 48 54 4d 4c 4f 70 74 69 6f 6e    45 6c 65 6d 65 6e 74 20 48 54 4d 4c 4f 70 74 69  | ......HTMLOptionElement.HTMLOpti | 
| 29c0 |  6f 6e 73 43 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 50 61  | onsCollection.............HTMLPa | 
| 29e0 |  72 61 67 72 61 70 68 45 6c 65 6d 65 6e 74 20 48    54 4d 4c 50 61 72 61 6d 45 6c 65 6d 65 6e 74 20  | ragraphElement.HTMLParamElement. | 
| 2a00 |  48 54 4d 4c 50 72 65 45 6c 65 6d 65 6e 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c 51  | HTMLPreElement.............HTMLQ | 
| 2a20 |  75 6f 74 65 45 6c 65 6d 65 6e 74 20 48 54 4d 4c    53 63 72 69 70 74 45 6c 65 6d 65 6e 74 20 48 54  | uoteElement.HTMLScriptElement.HT | 
| 2a40 |  4d 4c 53 65 6c 65 63 74 45 6c 65 6d 65 6e 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 48 54 4d 4c  | MLSelectElement.............HTML | 
| 2a60 |  53 74 79 6c 65 45 6c 65 6d 65 6e 74 20 48 54 4d    4c 54 61 62 6c 65 43 61 70 74 69 6f 6e 45 6c 65  | StyleElement.HTMLTableCaptionEle | 
| 2a80 |  6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20    20 48 54 4d 4c 54 61 62 6c 65 43 65 6c 6c 45 6c  | ment.............HTMLTableCellEl | 
| 2aa0 |  65 6d 65 6e 74 20 48 54 4d 4c 54 61 62 6c 65 43    6f 6c 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20 20  | ement.HTMLTableColElement....... | 
| 2ac0 |  20 20 20 20 20 20 48 54 4d 4c 54 61 62 6c 65 45    6c 65 6d 65 6e 74 20 48 54 4d 4c 54 61 62 6c 65  | ......HTMLTableElement.HTMLTable | 
| 2ae0 |  52 6f 77 45 6c 65 6d 65 6e 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 48 54 4d 4c 54 61 62 6c 65  | RowElement.............HTMLTable | 
| 2b00 |  53 65 63 74 69 6f 6e 45 6c 65 6d 65 6e 74 20 48    54 4d 4c 54 65 78 74 41 72 65 61 45 6c 65 6d 65  | SectionElement.HTMLTextAreaEleme | 
| 2b20 |  6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 48    54 4d 4c 54 69 74 6c 65 45 6c 65 6d 65 6e 74 20  | nt.............HTMLTitleElement. | 
| 2b40 |  48 54 4d 4c 55 4c 69 73 74 45 6c 65 6d 65 6e 74    0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | HTMLUListElement..............;; | 
| 2b60 |  20 44 4f 4d 20 6c 65 76 65 6c 20 33 0a 20 20 20    20 20 20 20 20 20 20 20 20 44 4f 4d 43 6f 6e 66  | .DOM.level.3.............DOMConf | 
| 2b80 |  69 67 75 72 61 74 69 6f 6e 20 44 4f 4d 45 72 72    6f 72 20 44 4f 4d 45 78 63 65 70 74 69 6f 6e 0a  | iguration.DOMError.DOMException. | 
| 2ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 44 4f 4d 49    6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 4c 69 73  | ............DOMImplementationLis | 
| 2bc0 |  74 20 44 4f 4d 49 6d 70 6c 65 6d 65 6e 74 61 74    69 6f 6e 53 6f 75 72 63 65 0a 20 20 20 20 20 20  | t.DOMImplementationSource....... | 
| 2be0 |  20 20 20 20 20 20 44 4f 4d 4c 6f 63 61 74 6f 72    20 44 4f 4d 53 74 72 69 6e 67 4c 69 73 74 20 4e  | ......DOMLocator.DOMStringList.N | 
| 2c00 |  61 6d 65 4c 69 73 74 20 54 79 70 65 49 6e 66 6f    0a 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65  | ameList.TypeInfo.............Use | 
| 2c20 |  72 44 61 74 61 48 61 6e 64 6c 65 72 0a 0a 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 69 6e  | rDataHandler..............;;.Win | 
| 2c40 |  64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20    77 69 6e 64 6f 77 20 61 6c 65 72 74 20 63 6f 6e  | dow.............window.alert.con | 
| 2c60 |  66 69 72 6d 20 64 6f 63 75 6d 65 6e 74 20 6a 61    76 61 20 6e 61 76 69 67 61 74 6f 72 20 70 72 6f  | firm.document.java.navigator.pro | 
| 2c80 |  6d 70 74 20 73 63 72 65 65 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 73 65 6c 66 20 74 6f 70 20  | mpt.screen.............self.top. | 
| 2ca0 |  72 65 71 75 65 73 74 41 6e 69 6d 61 74 69 6f 6e    46 72 61 6d 65 20 63 61 6e 63 65 6c 41 6e 69 6d  | requestAnimationFrame.cancelAnim | 
| 2cc0 |  61 74 69 6f 6e 46 72 61 6d 65 0a 0a 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 57 69 6e 64 6f  | ationFrame..............;;.Windo | 
| 2ce0 |  77 20 6f 72 20 57 6f 72 6b 65 72 47 6c 6f 62 61    6c 53 63 6f 70 65 20 77 69 74 68 20 73 75 70 70  | w.or.WorkerGlobalScope.with.supp | 
| 2d00 |  6f 72 74 20 69 6e 20 43 68 72 6f 6d 69 75 6d 20    61 6e 64 20 46 69 72 65 66 6f 78 3a 0a 20 20 20  | ort.in.Chromium.and.Firefox:.... | 
| 2d20 |  20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70    73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 6d 6f  | .........;;.https://developer.mo | 
| 2d40 |  7a 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d 55 53 2f    64 6f 63 73 2f 57 65 62 2f 41 50 49 2f 57 69 6e  | zilla.org/en-US/docs/Web/API/Win | 
| 2d60 |  64 6f 77 4f 72 57 6f 72 6b 65 72 47 6c 6f 62 61    6c 53 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20  | dowOrWorkerGlobalScope.......... | 
| 2d80 |  20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65 73    0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 63  | ...;;.properties.............cac | 
| 2da0 |  68 65 73 20 69 6e 64 65 78 65 64 44 42 20 69 73    53 65 63 75 72 65 43 6f 6e 74 65 78 74 20 6f 72  | hes.indexedDB.isSecureContext.or | 
| 2dc0 |  69 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20    20 3b 3b 20 6d 65 74 68 6f 64 73 0a 20 20 20 20  | igin.............;;.methods..... | 
| 2de0 |  20 20 20 20 20 20 20 20 61 74 6f 62 20 62 74 6f    61 20 63 6c 65 61 72 49 6e 74 65 72 76 61 6c 20  | ........atob.btoa.clearInterval. | 
| 2e00 |  63 6c 65 61 72 54 69 6d 65 6f 75 74 0a 20 20 20    20 20 20 20 20 20 20 20 20 63 72 65 61 74 65 49  | clearTimeout.............createI | 
| 2e20 |  6d 61 67 65 42 69 74 6d 61 70 20 66 65 74 63 68    20 71 75 65 75 65 4d 69 63 72 6f 74 61 73 6b 20  | mageBitmap.fetch.queueMicrotask. | 
| 2e40 |  73 65 74 49 6e 74 65 72 76 61 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 73 65 74 54 69 6d 65 6f  | setInterval.............setTimeo | 
| 2e60 |  75 74 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 66 72 6f 6d 20 6a 73 6c 69 6e 74 20 22  | ut..............;;.from.jslint." | 
| 2e80 |  62 72 6f 77 73 65 72 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 68 69 73 74 6f 72 79 20 6c 6f 63  | browser".............history.loc | 
| 2ea0 |  61 74 69 6f 6e 0a 0a 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 48 54 4d 4c 20 65 6c 65 6d 65  | ation..............;;.HTML.eleme | 
| 2ec0 |  6e 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 41 75 64 69  | nt.constructors.............Audi | 
| 2ee0 |  6f 20 49 6d 61 67 65 20 4f 70 74 69 6f 6e 0a 0a    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57  | o.Image.Option..............;;.W | 
| 2f00 |  33 43 20 43 53 53 0a 20 20 20 20 20 20 20 20 20    20 20 20 43 53 53 43 68 61 72 73 65 74 52 75 6c  | 3C.CSS.............CSSCharsetRul | 
| 2f20 |  65 20 43 53 53 46 6f 6e 74 46 61 63 65 20 43 53    53 46 6f 6e 74 46 61 63 65 52 75 6c 65 0a 20 20  | e.CSSFontFace.CSSFontFaceRule... | 
| 2f40 |  20 20 20 20 20 20 20 20 20 20 43 53 53 49 6d 70    6f 72 74 52 75 6c 65 20 43 53 53 4d 65 64 69 61  | ..........CSSImportRule.CSSMedia | 
| 2f60 |  52 75 6c 65 20 43 53 53 50 61 67 65 52 75 6c 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 53  | Rule.CSSPageRule.............CSS | 
| 2f80 |  50 72 69 6d 69 74 69 76 65 56 61 6c 75 65 20 43    53 53 50 72 6f 70 65 72 74 69 65 73 20 43 53 53  | PrimitiveValue.CSSProperties.CSS | 
| 2fa0 |  52 75 6c 65 20 43 53 53 52 75 6c 65 4c 69 73 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 43 53 53  | Rule.CSSRuleList.............CSS | 
| 2fc0 |  53 74 79 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e    20 43 53 53 53 74 79 6c 65 52 75 6c 65 20 43 53  | StyleDeclaration.CSSStyleRule.CS | 
| 2fe0 |  53 53 74 79 6c 65 53 68 65 65 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 43 53 53 56 61 6c 75 65  | SStyleSheet.............CSSValue | 
| 3000 |  20 43 53 53 56 61 6c 75 65 4c 69 73 74 20 43 6f    75 6e 74 65 72 20 44 4f 4d 49 6d 70 6c 65 6d 65  | .CSSValueList.Counter.DOMImpleme | 
| 3020 |  6e 74 61 74 69 6f 6e 43 53 53 0a 20 20 20 20 20    20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e 74 43  | ntationCSS.............DocumentC | 
| 3040 |  53 53 20 44 6f 63 75 6d 65 6e 74 53 74 79 6c 65    20 45 6c 65 6d 65 6e 74 43 53 53 49 6e 6c 69 6e  | SS.DocumentStyle.ElementCSSInlin | 
| 3060 |  65 53 74 79 6c 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 4c 69 6e 6b 53 74 79 6c 65 20 4d 65 64  | eStyle.............LinkStyle.Med | 
| 3080 |  69 61 4c 69 73 74 20 52 47 42 43 6f 6c 6f 72 20    52 65 63 74 20 53 74 79 6c 65 53 68 65 65 74 0a  | iaList.RGBColor.Rect.StyleSheet. | 
| 30a0 |  20 20 20 20 20 20 20 20 20 20 20 20 53 74 79 6c    65 53 68 65 65 74 4c 69 73 74 20 56 69 65 77 43  | ............StyleSheetList.ViewC | 
| 30c0 |  53 53 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 57 33 43 20 45 76 65 6e 74 0a 20 20 20  | SS..............;;.W3C.Event.... | 
| 30e0 |  20 20 20 20 20 20 20 20 20 45 76 65 6e 74 4c 69    73 74 65 6e 65 72 20 45 76 65 6e 74 54 61 72 67  | .........EventListener.EventTarg | 
| 3100 |  65 74 20 45 76 65 6e 74 20 44 6f 63 75 6d 65 6e    74 45 76 65 6e 74 20 55 49 45 76 65 6e 74 0a 20  | et.Event.DocumentEvent.UIEvent.. | 
| 3120 |  20 20 20 20 20 20 20 20 20 20 20 4d 6f 75 73 65    45 76 65 6e 74 20 4d 75 74 61 74 69 6f 6e 45 76  | ...........MouseEvent.MutationEv | 
| 3140 |  65 6e 74 20 4b 65 79 62 6f 61 72 64 45 76 65 6e    74 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b  | ent.KeyboardEvent..............; | 
| 3160 |  3b 20 57 33 43 20 52 61 6e 67 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 44 6f 63 75 6d 65 6e 74  | ;.W3C.Range.............Document | 
| 3180 |  52 61 6e 67 65 20 52 61 6e 67 65 20 52 61 6e 67    65 45 78 63 65 70 74 69 6f 6e 0a 0a 20 20 20 20  | Range.Range.RangeException...... | 
| 31a0 |  20 20 20 20 20 20 20 20 3b 3b 20 57 33 43 20 58    4d 4c 0a 20 20 20 20 20 20 20 20 20 20 20 20 58  | ........;;.W3C.XML.............X | 
| 31c0 |  50 61 74 68 52 65 73 75 6c 74 20 58 4d 4c 48 74    74 70 52 65 71 75 65 73 74 0a 0a 20 20 20 20 20  | PathResult.XMLHttpRequest....... | 
| 31e0 |  20 20 20 20 20 20 20 3b 3b 20 63 6f 6e 73 6f 6c    65 20 6f 62 6a 65 63 74 2e 20 20 50 72 6f 76 69  | .......;;.console.object...Provi | 
| 3200 |  64 65 64 20 62 79 20 61 74 20 6c 65 61 73 74 20    43 68 72 6f 6d 65 20 61 6e 64 20 46 69 72 65 66  | ded.by.at.least.Chrome.and.Firef | 
| 3220 |  6f 78 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    63 6f 6e 73 6f 6c 65 29 29 0a 20 20 22 42 72 6f  | ox..............console))..."Bro | 
| 3240 |  77 73 65 72 20 65 78 74 65 72 6e 73 2e 0a 59 6f    75 20 63 61 6e 20 63 61 75 73 65 20 74 68 65 73  | wser.externs..You.can.cause.thes | 
| 3260 |  65 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64    20 6f 72 20 65 78 63 6c 75 64 65 64 20 77 69 74  | e.to.be.included.or.excluded.wit | 
| 3280 |  68 20 74 68 65 20 63 75 73 74 6f 6d 0a 76 61 72    69 61 62 6c 65 20 60 6a 73 32 2d 69 6e 63 6c 75  | h.the.custom.variable.`js2-inclu | 
| 32a0 |  64 65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72    6e 73 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 20  | de-browser-externs'.")..(defvar. | 
| 32c0 |  6a 73 32 2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e    73 0a 20 20 28 6d 61 70 63 61 72 20 27 73 79 6d  | js2-rhino-externs...(mapcar.'sym | 
| 32e0 |  62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20    20 20 20 27 28 50 61 63 6b 61 67 65 73 20 69 6d  | bol-name...........'(Packages.im | 
| 3300 |  70 6f 72 74 43 6c 61 73 73 20 69 6d 70 6f 72 74    50 61 63 6b 61 67 65 20 63 6f 6d 20 6f 72 67 20  | portClass.importPackage.com.org. | 
| 3320 |  6a 61 76 61 0a 20 20 20 20 20 20 20 20 20 20 20    20 3b 3b 20 47 6c 6f 62 61 6c 20 6f 62 6a 65 63  | java.............;;.Global.objec | 
| 3340 |  74 20 28 73 68 65 6c 6c 29 20 65 78 74 65 72 6e    73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 64  | t.(shell).externs..............d | 
| 3360 |  65 66 69 6e 65 43 6c 61 73 73 20 64 65 73 65 72    69 61 6c 69 7a 65 20 64 6f 63 74 65 73 74 20 67  | efineClass.deserialize.doctest.g | 
| 3380 |  63 20 68 65 6c 70 20 6c 6f 61 64 0a 20 20 20 20    20 20 20 20 20 20 20 20 6c 6f 61 64 43 6c 61 73  | c.help.load.............loadClas | 
| 33a0 |  73 20 70 72 69 6e 74 20 71 75 69 74 20 72 65 61    64 46 69 6c 65 20 72 65 61 64 55 72 6c 20 72 75  | s.print.quit.readFile.readUrl.ru | 
| 33c0 |  6e 43 6f 6d 6d 61 6e 64 20 73 65 61 6c 0a 20 20    20 20 20 20 20 20 20 20 20 20 73 65 72 69 61 6c  | nCommand.seal.............serial | 
| 33e0 |  69 7a 65 20 73 70 61 77 6e 20 73 79 6e 63 20 74    6f 69 6e 74 33 32 20 76 65 72 73 69 6f 6e 29 29  | ize.spawn.sync.toint32.version)) | 
| 3400 |  0a 20 20 22 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e    6f 20 65 78 74 65 72 6e 73 2e 0a 53 65 74 20 60  | ..."Mozilla.Rhino.externs..Set.` | 
| 3420 |  6a 73 32 2d 69 6e 63 6c 75 64 65 2d 72 68 69 6e    6f 2d 65 78 74 65 72 6e 73 27 20 74 6f 20 74 20  | js2-include-rhino-externs'.to.t. | 
| 3440 |  74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 2e    22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | to.include.them.")..(defvar.js2- | 
| 3460 |  6e 6f 64 65 2d 65 78 74 65 72 6e 73 0a 20 20 28    6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e  | node-externs...(mapcar.'symbol-n | 
| 3480 |  61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28    5f 5f 64 69 72 6e 61 6d 65 20 5f 5f 66 69 6c 65  | ame...........'(__dirname.__file | 
| 34a0 |  6e 61 6d 65 20 42 75 66 66 65 72 20 63 6c 65 61    72 49 6e 74 65 72 76 61 6c 20 63 6c 65 61 72 54  | name.Buffer.clearInterval.clearT | 
| 34c0 |  69 6d 65 6f 75 74 20 72 65 71 75 69 72 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f  | imeout.require.............conso | 
| 34e0 |  6c 65 20 65 78 70 6f 72 74 73 20 67 6c 6f 62 61    6c 20 6d 6f 64 75 6c 65 20 70 72 6f 63 65 73 73  | le.exports.global.module.process | 
| 3500 |  20 73 65 74 49 6e 74 65 72 76 61 6c 20 73 65 74    54 69 6d 65 6f 75 74 0a 20 20 20 20 20 20 20 20  | .setInterval.setTimeout......... | 
| 3520 |  20 20 20 20 71 75 65 72 79 73 74 72 69 6e 67 20    73 65 74 49 6d 6d 65 64 69 61 74 65 20 63 6c 65  | ....querystring.setImmediate.cle | 
| 3540 |  61 72 49 6d 6d 65 64 69 61 74 65 29 29 0a 20 20    22 4e 6f 64 65 2e 6a 73 20 65 78 74 65 72 6e 73  | arImmediate))..."Node.js.externs | 
| 3560 |  2e 0a 53 65 74 20 60 6a 73 32 2d 69 6e 63 6c 75    64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 27  | ..Set.`js2-include-node-externs' | 
| 3580 |  20 74 6f 20 74 20 74 6f 20 69 6e 63 6c 75 64 65    20 74 68 65 6d 2e 22 29 0a 0a 28 64 65 66 76 61  | .to.t.to.include.them.")..(defva | 
| 35a0 |  72 20 6a 73 32 2d 74 79 70 65 64 2d 61 72 72 61    79 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d 61 70  | r.js2-typed-array-externs...(map | 
| 35c0 |  63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65    0a 20 20 20 20 20 20 20 20 20 20 27 28 41 72 72  | car.'symbol-name...........'(Arr | 
| 35e0 |  61 79 42 75 66 66 65 72 20 55 69 6e 74 38 43 6c    61 6d 70 65 64 41 72 72 61 79 20 44 61 74 61 56  | ayBuffer.Uint8ClampedArray.DataV | 
| 3600 |  69 65 77 0a 20 20 20 20 20 20 20 20 20 20 20 20    49 6e 74 38 41 72 72 61 79 20 55 69 6e 74 38 41  | iew.............Int8Array.Uint8A | 
| 3620 |  72 72 61 79 20 49 6e 74 31 36 41 72 72 61 79 20    55 69 6e 74 31 36 41 72 72 61 79 20 49 6e 74 33  | rray.Int16Array.Uint16Array.Int3 | 
| 3640 |  32 41 72 72 61 79 20 55 69 6e 74 33 32 41 72 72    61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 46  | 2Array.Uint32Array.............F | 
| 3660 |  6c 6f 61 74 33 32 41 72 72 61 79 20 46 6c 6f 61    74 36 34 41 72 72 61 79 29 29 0a 20 20 22 4b 68  | loat32Array.Float64Array))..."Kh | 
| 3680 |  72 6f 6e 6f 73 20 74 79 70 65 64 20 61 72 72 61    79 20 65 78 74 65 72 6e 73 2e 20 41 76 61 69 6c  | ronos.typed.array.externs..Avail | 
| 36a0 |  61 62 6c 65 20 69 6e 20 6d 6f 73 74 20 6d 6f 64    65 72 6e 20 62 72 6f 77 73 65 72 73 20 61 6e 64  | able.in.most.modern.browsers.and | 
| 36c0 |  0a 69 6e 20 6e 6f 64 65 2e 6a 73 20 3e 3d 20 30    2e 36 2e 20 49 66 20 60 6a 73 32 2d 69 6e 63 6c  | .in.node.js.>=.0.6..If.`js2-incl | 
| 36e0 |  75 64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73    27 20 6f 72 20 60 6a 73 32 2d 69 6e 63 6c 75 64  | ude-node-externs'.or.`js2-includ | 
| 3700 |  65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e    73 27 0a 61 72 65 20 65 6e 61 62 6c 65 64 2c 20  | e-browser-externs'.are.enabled,. | 
| 3720 |  74 68 65 73 65 20 77 69 6c 6c 20 61 6c 73 6f 20    62 65 20 69 6e 63 6c 75 64 65 64 2e 22 29 0a 0a  | these.will.also.be.included.").. | 
| 3740 |  28 64 65 66 76 61 72 20 6a 73 32 2d 68 61 72 6d    6f 6e 79 2d 65 78 74 65 72 6e 73 0a 20 20 28 6d  | (defvar.js2-harmony-externs...(m | 
| 3760 |  61 70 63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61    6d 65 0a 20 20 20 20 20 20 20 20 20 20 27 28 4d  | apcar.'symbol-name...........'(M | 
| 3780 |  61 70 20 50 72 6f 6d 69 73 65 20 50 72 6f 78 79    20 52 65 66 6c 65 63 74 20 53 65 74 20 53 79 6d  | ap.Promise.Proxy.Reflect.Set.Sym | 
| 37a0 |  62 6f 6c 20 57 65 61 6b 4d 61 70 20 57 65 61 6b    53 65 74 29 29 0a 20 20 22 45 53 36 20 65 78 74  | bol.WeakMap.WeakSet))..."ES6.ext | 
| 37c0 |  65 72 6e 73 2e 20 20 49 66 20 60 6a 73 32 2d 69    6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65  | erns...If.`js2-include-browser-e | 
| 37e0 |  78 74 65 72 6e 73 27 20 69 73 20 65 6e 61 62 6c    65 64 20 61 6e 64 0a 60 6a 73 32 2d 6c 61 6e 67  | xterns'.is.enabled.and.`js2-lang | 
| 3800 |  75 61 67 65 2d 76 65 72 73 69 6f 6e 27 20 69 73    20 73 75 66 66 69 63 69 65 6e 74 6c 79 20 68 69  | uage-version'.is.sufficiently.hi | 
| 3820 |  67 68 2c 20 74 68 65 73 65 20 77 69 6c 6c 20 62    65 20 69 6e 63 6c 75 64 65 64 2e 22 29 0a 0a 3b  | gh,.these.will.be.included.")..; | 
| 3840 |  3b 3b 20 56 61 72 69 61 62 6c 65 73 0a 0a 28 64    65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 67 6e  | ;;.Variables..(defcustom.js2-ign | 
| 3860 |  6f 72 65 64 2d 77 61 72 6e 69 6e 67 73 20 6e 69    6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 77  | ored-warnings.nil..."A.list.of.w | 
| 3880 |  61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 20 74    79 70 65 73 20 74 68 61 74 20 77 69 6c 6c 20 6e  | arning.message.types.that.will.n | 
| 38a0 |  6f 74 20 62 65 20 72 65 70 6f 72 74 65 64 2e 0a    0a 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73  | ot.be.reported...Possible.values | 
| 38c0 |  20 61 72 65 20 74 68 65 20 6b 65 79 73 20 6f 66    20 60 6a 73 32 2d 6d 65 73 73 61 67 65 2d 74 61  | .are.the.keys.of.`js2-message-ta | 
| 38e0 |  62 6c 65 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20    27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 74 79 70  | ble'."...:group.'js2-mode...:typ | 
| 3900 |  65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e    67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20  | e.'(repeat.string))..(defcustom. | 
| 3920 |  6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65    76 65 6c 20 32 0a 20 20 22 41 6d 6f 75 6e 74 20  | js2-highlight-level.2..."Amount. | 
| 3940 |  6f 66 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69    67 68 74 69 6e 67 20 74 6f 20 70 65 72 66 6f 72  | of.syntax.highlighting.to.perfor | 
| 3960 |  6d 2e 0a 30 20 6f 72 20 61 20 6e 65 67 61 74 69    76 65 20 76 61 6c 75 65 20 6d 65 61 6e 73 20 6e  | m..0.or.a.negative.value.means.n | 
| 3980 |  6f 6e 65 2e 0a 31 20 61 64 64 73 20 62 61 73 69    63 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67  | one..1.adds.basic.syntax.highlig | 
| 39a0 |  68 74 69 6e 67 2e 0a 32 20 61 64 64 73 20 68 69    67 68 6c 69 67 68 74 69 6e 67 20 6f 66 20 73 6f  | hting..2.adds.highlighting.of.so | 
| 39c0 |  6d 65 20 45 63 6d 61 20 62 75 69 6c 74 2d 69 6e    20 70 72 6f 70 65 72 74 69 65 73 2e 0a 33 20 61  | me.Ecma.built-in.properties..3.a | 
| 39e0 |  64 64 73 20 68 69 67 68 6c 69 67 68 74 69 6e 67    20 6f 66 20 6d 61 6e 79 20 45 63 6d 61 20 62 75  | dds.highlighting.of.many.Ecma.bu | 
| 3a00 |  69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e 73    2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32  | ilt-in.functions."...:group.'js2 | 
| 3a20 |  2d 6d 6f 64 65 0a 20 20 3a 74 79 70 65 20 27 28    63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74  | -mode...:type.'(choice.(const.:t | 
| 3a40 |  61 67 20 22 4e 6f 6e 65 22 20 30 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63  | ag."None".0)..................(c | 
| 3a60 |  6f 6e 73 74 20 3a 74 61 67 20 22 42 61 73 69 63    22 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20  | onst.:tag."Basic".1)............ | 
| 3a80 |  20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61    67 20 22 49 6e 63 6c 75 64 65 20 50 72 6f 70 65  | ......(const.:tag."Include.Prope | 
| 3aa0 |  72 74 69 65 73 22 20 32 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73  | rties".2)..................(cons | 
| 3ac0 |  74 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20    46 75 6e 63 74 69 6f 6e 73 22 20 33 29 29 29 0a  | t.:tag."Include.Functions".3))). | 
| 3ae0 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64    65 2d 64 65 76 2d 6d 6f 64 65 2d 70 20 6e 69 6c  | .(defvar.js2-mode-dev-mode-p.nil | 
| 3b00 |  0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 72    75 6e 6e 69 6e 67 20 69 6e 20 64 65 76 65 6c 6f  | ..."Non-nil.if.running.in.develo | 
| 3b20 |  70 6d 65 6e 74 20 6d 6f 64 65 2e 20 20 4e 6f 72    6d 61 6c 6c 79 20 6e 69 6c 2e 22 29 0a 0a 28 64  | pment.mode...Normally.nil.")..(d | 
| 3b40 |  65 66 67 72 6f 75 70 20 6a 73 32 2d 6d 6f 64 65    20 6e 69 6c 0a 20 20 22 41 6e 20 69 6d 70 72 6f  | efgroup.js2-mode.nil..."An.impro | 
| 3b60 |  76 65 64 20 4a 61 76 61 53 63 72 69 70 74 20 6d    6f 64 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27  | ved.JavaScript.mode."...:group.' | 
| 3b80 |  6c 61 6e 67 75 61 67 65 73 29 0a 0a 28 64 65 66    63 75 73 74 6f 6d 20 6a 73 32 2d 69 64 6c 65 2d  | languages)..(defcustom.js2-idle- | 
| 3ba0 |  74 69 6d 65 72 2d 64 65 6c 61 79 20 30 2e 32 0a    20 20 22 44 65 6c 61 79 20 69 6e 20 73 65 63 73  | timer-delay.0.2..."Delay.in.secs | 
| 3bc0 |  20 62 65 66 6f 72 65 20 72 65 2d 70 61 72 73 69    6e 67 20 61 66 74 65 72 20 75 73 65 72 20 6d 61  | .before.re-parsing.after.user.ma | 
| 3be0 |  6b 65 73 20 63 68 61 6e 67 65 73 2e 0a 4d 75 6c    74 69 70 6c 69 65 64 20 62 79 20 60 6a 73 32 2d  | kes.changes..Multiplied.by.`js2- | 
| 3c00 |  64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d    65 72 2d 61 64 6a 75 73 74 27 2c 20 77 68 69 63  | dynamic-idle-timer-adjust',.whic | 
| 3c20 |  68 20 73 65 65 2e 22 0a 20 20 3a 74 79 70 65 20    27 6e 75 6d 62 65 72 0a 20 20 3a 67 72 6f 75 70  | h.see."...:type.'number...:group | 
| 3c40 |  20 27 6a 73 32 2d 6d 6f 64 65 29 0a 28 6d 61 6b    65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66 65  | .'js2-mode).(make-variable-buffe | 
| 3c60 |  72 2d 6c 6f 63 61 6c 20 27 6a 73 32 2d 69 64 6c    65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 29 0a 0a  | r-local.'js2-idle-timer-delay).. | 
| 3c80 |  28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 64    79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65  | (defcustom.js2-dynamic-idle-time | 
| 3ca0 |  72 2d 61 64 6a 75 73 74 20 30 0a 20 20 22 50 6f    73 69 74 69 76 65 20 74 6f 20 61 64 6a 75 73 74  | r-adjust.0..."Positive.to.adjust | 
| 3cc0 |  20 60 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65 72    2d 64 65 6c 61 79 27 20 62 61 73 65 64 20 6f 6e  | .`js2-idle-timer-delay'.based.on | 
| 3ce0 |  20 66 69 6c 65 20 73 69 7a 65 2e 0a 54 68 65 20    69 64 65 61 20 69 73 20 74 68 61 74 20 66 6f 72  | .file.size..The.idea.is.that.for | 
| 3d00 |  20 73 68 6f 72 74 20 66 69 6c 65 73 2c 20 70 61    72 73 69 6e 67 20 69 73 20 66 61 73 74 65 72 20  | .short.files,.parsing.is.faster. | 
| 3d20 |  73 6f 20 77 65 20 63 61 6e 20 62 65 0a 6d 6f 72    65 20 72 65 73 70 6f 6e 73 69 76 65 20 74 6f 20  | so.we.can.be.more.responsive.to. | 
| 3d40 |  75 73 65 72 20 65 64 69 74 73 20 77 69 74 68 6f    75 74 20 69 6e 74 65 72 66 65 72 69 6e 67 20 77  | user.edits.without.interfering.w | 
| 3d60 |  69 74 68 20 65 64 69 74 69 6e 67 2e 0a 54 68 65    20 62 75 66 66 65 72 20 6c 65 6e 67 74 68 20 69  | ith.editing..The.buffer.length.i | 
| 3d80 |  6e 20 63 68 61 72 61 63 74 65 72 73 20 28 74 79    70 69 63 61 6c 6c 79 20 62 79 74 65 73 29 20 69  | n.characters.(typically.bytes).i | 
| 3da0 |  73 20 64 69 76 69 64 65 64 20 62 79 0a 74 68 69    73 20 76 61 6c 75 65 20 61 6e 64 20 75 73 65 64  | s.divided.by.this.value.and.used | 
| 3dc0 |  20 74 6f 20 6d 75 6c 74 69 70 6c 79 20 60 6a 73    32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c  | .to.multiply.`js2-idle-timer-del | 
| 3de0 |  61 79 27 20 66 6f 72 20 74 68 65 0a 62 75 66 66    65 72 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65  | ay'.for.the.buffer...For.example | 
| 3e00 |  2c 20 61 20 32 31 6b 20 66 69 6c 65 20 61 6e 64    20 31 30 6b 20 61 64 6a 75 73 74 20 79 69 65 6c  | ,.a.21k.file.and.10k.adjust.yiel | 
| 3e20 |  64 73 20 32 31 6b 2f 31 30 6b 0a 3d 3d 20 32 2c    20 73 6f 20 6a 73 32 2d 69 64 6c 65 2d 74 69 6d  | ds.21k/10k.==.2,.so.js2-idle-tim | 
| 3e40 |  65 72 2d 64 65 6c 61 79 20 69 73 20 6d 75 6c 74    69 70 6c 69 65 64 20 62 79 20 32 2e 0a 49 66 20  | er-delay.is.multiplied.by.2..If. | 
| 3e60 |  60 6a 73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c    65 2d 74 69 6d 65 72 2d 61 64 6a 75 73 74 27 20  | `js2-dynamic-idle-timer-adjust'. | 
| 3e80 |  69 73 20 30 20 6f 72 20 6e 65 67 61 74 69 76 65    2c 0a 60 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65  | is.0.or.negative,.`js2-idle-time | 
| 3ea0 |  72 2d 64 65 6c 61 79 27 20 69 73 20 6e 6f 74 20    64 65 70 65 6e 64 65 6e 74 20 6f 6e 20 74 68 65  | r-delay'.is.not.dependent.on.the | 
| 3ec0 |  20 66 69 6c 65 20 73 69 7a 65 2e 22 0a 20 20 3a    74 79 70 65 20 27 6e 75 6d 62 65 72 0a 20 20 3a  | .file.size."...:type.'number...: | 
| 3ee0 |  67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29    0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32  | group.'js2-mode)..(defcustom.js2 | 
| 3f00 |  2d 63 6f 6e 63 61 74 2d 6d 75 6c 74 69 6c 69 6e    65 2d 73 74 72 69 6e 67 73 20 74 0a 20 20 22 57  | -concat-multiline-strings.t..."W | 
| 3f20 |  68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6a 73    32 2d 6c 69 6e 65 2d 62 72 65 61 6b 27 20 69 6e  | hen.non-nil,.`js2-line-break'.in | 
| 3f40 |  20 6d 69 64 2d 73 74 72 69 6e 67 20 77 69 6c 6c    20 6d 61 6b 65 20 69 74 20 61 0a 73 74 72 69 6e  | .mid-string.will.make.it.a.strin | 
| 3f60 |  67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 2e    20 57 68 65 6e 20 60 65 6f 6c 27 2c 20 74 68 65  | g.concatenation..When.`eol',.the | 
| 3f80 |  20 60 2b 27 20 77 69 6c 6c 20 62 65 20 69 6e 73    65 72 74 65 64 20 61 74 20 74 68 65 0a 65 6e 64  | .`+'.will.be.inserted.at.the.end | 
| 3fa0 |  20 6f 66 20 74 68 65 20 6c 69 6e 65 2c 20 6f 74    68 65 72 77 69 73 65 2c 20 61 74 20 74 68 65 20  | .of.the.line,.otherwise,.at.the. | 
| 3fc0 |  62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65    20 6e 65 78 74 20 6c 69 6e 65 2e 22 0a 20 20 3a  | beginning.of.the.next.line."...: | 
| 3fe0 |  74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63    6f 6e 73 74 20 74 29 20 28 63 6f 6e 73 74 20 65  | type.'(choice.(const.t).(const.e | 
| 4000 |  6f 6c 29 20 28 63 6f 6e 73 74 20 6e 69 6c 29 29    0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d  | ol).(const.nil))...:group.'js2-m | 
| 4020 |  6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d    20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 70  | ode)..(defcustom.js2-mode-show-p | 
| 4040 |  61 72 73 65 2d 65 72 72 6f 72 73 20 74 0a 20 20    22 54 72 75 65 20 74 6f 20 68 69 67 68 6c 69 67  | arse-errors.t..."True.to.highlig | 
| 4060 |  68 74 20 70 61 72 73 65 20 65 72 72 6f 72 73 2e    22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65  | ht.parse.errors."...:type.'boole | 
| 4080 |  61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32    2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74  | an...:group.'js2-mode)..(defcust | 
| 40a0 |  6f 6d 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 73 75    6d 65 2d 73 74 72 69 63 74 20 6e 69 6c 0a 20 20  | om.js2-mode-assume-strict.nil... | 
| 40c0 |  22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 74 61 72    74 20 66 69 6c 65 73 20 69 6e 20 73 74 72 69 63  | "Non-nil.to.start.files.in.stric | 
| 40e0 |  74 20 6d 6f 64 65 20 61 75 74 6f 6d 61 74 69 63    61 6c 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27  | t.mode.automatically."...:type.' | 
| 4100 |  62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70    20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65  | boolean...:group.'js2-mode)..(de | 
| 4120 |  66 63 75 73 74 6f 6d 20 6a 73 32 2d 6d 6f 64 65    2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72  | fcustom.js2-mode-show-strict-war | 
| 4140 |  6e 69 6e 67 73 20 74 0a 20 20 22 4e 6f 6e 2d 6e    69 6c 20 74 6f 20 65 6d 69 74 20 45 63 6d 61 20  | nings.t..."Non-nil.to.emit.Ecma. | 
| 4160 |  73 74 72 69 63 74 2d 6d 6f 64 65 20 77 61 72 6e    69 6e 67 73 2e 0a 53 6f 6d 65 20 6f 66 20 74 68  | strict-mode.warnings..Some.of.th | 
| 4180 |  65 20 77 61 72 6e 69 6e 67 73 20 63 61 6e 20 62    65 20 69 6e 64 69 76 69 64 75 61 6c 6c 79 20 64  | e.warnings.can.be.individually.d | 
| 41a0 |  69 73 61 62 6c 65 64 20 62 79 20 6f 74 68 65 72    20 66 6c 61 67 73 2c 0a 65 76 65 6e 20 69 66 20  | isabled.by.other.flags,.even.if. | 
| 41c0 |  74 68 69 73 20 66 6c 61 67 20 69 73 20 6e 6f 6e    2d 6e 69 6c 2e 22 0a 20 20 3a 74 79 70 65 20 27  | this.flag.is.non-nil."...:type.' | 
| 41e0 |  62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70    20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65  | boolean...:group.'js2-mode)..(de | 
| 4200 |  66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 74 72 69    63 74 2d 74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d  | fcustom.js2-strict-trailing-comm | 
| 4220 |  61 2d 77 61 72 6e 69 6e 67 20 6e 69 6c 0a 20 20    22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e  | a-warning.nil..."Non-nil.to.warn | 
| 4240 |  20 61 62 6f 75 74 20 74 72 61 69 6c 69 6e 67 20    63 6f 6d 6d 61 73 20 69 6e 20 61 72 72 61 79 20  | .about.trailing.commas.in.array. | 
| 4260 |  6c 69 74 65 72 61 6c 73 2e 0a 45 63 6d 61 2d 32    36 32 2d 35 2e 31 20 61 6c 6c 6f 77 73 20 74 68  | literals..Ecma-262-5.1.allows.th | 
| 4280 |  65 6d 2c 20 62 75 74 20 6f 6c 64 65 72 20 76 65    72 73 69 6f 6e 73 20 6f 66 20 49 45 20 72 61 69  | em,.but.older.versions.of.IE.rai | 
| 42a0 |  73 65 20 61 6e 20 65 72 72 6f 72 2e 22 0a 20 20    3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20  | se.an.error."...:type.'boolean.. | 
| 42c0 |  20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64    65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a  | .:group.'js2-mode)..(defcustom.j | 
| 42e0 |  73 32 2d 73 74 72 69 63 74 2d 6d 69 73 73 69 6e    67 2d 73 65 6d 69 2d 77 61 72 6e 69 6e 67 20 74  | s2-strict-missing-semi-warning.t | 
| 4300 |  0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77    61 72 6e 20 61 62 6f 75 74 20 73 65 6d 69 63 6f  | ..."Non-nil.to.warn.about.semico | 
| 4320 |  6c 6f 6e 20 61 75 74 6f 2d 69 6e 73 65 72 74 69    6f 6e 20 61 66 74 65 72 20 73 74 61 74 65 6d 65  | lon.auto-insertion.after.stateme | 
| 4340 |  6e 74 2e 0a 54 65 63 68 6e 69 63 61 6c 6c 79 20    74 68 69 73 20 69 73 20 6c 65 67 61 6c 20 70 65  | nt..Technically.this.is.legal.pe | 
| 4360 |  72 20 45 63 6d 61 2d 32 36 32 2c 20 62 75 74 20    73 6f 6d 65 20 73 74 79 6c 65 20 67 75 69 64 65  | r.Ecma-262,.but.some.style.guide | 
| 4380 |  73 20 64 69 73 61 6c 6c 6f 77 0a 64 65 70 65 6e    64 69 6e 67 20 6f 6e 20 69 74 2e 22 0a 20 20 3a  | s.disallow.depending.on.it."...: | 
| 43a0 |  74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20    3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65  | type.'boolean...:group.'js2-mode | 
| 43c0 |  29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73    32 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 2d 6f  | )..(defcustom.js2-missing-semi-o | 
| 43e0 |  6e 65 2d 6c 69 6e 65 2d 6f 76 65 72 72 69 64 65    20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20  | ne-line-override.nil..."Non-nil. | 
| 4400 |  74 6f 20 70 65 72 6d 69 74 20 6d 69 73 73 69 6e    67 20 73 65 6d 69 63 6f 6c 6f 6e 73 20 69 6e 20  | to.permit.missing.semicolons.in. | 
| 4420 |  6f 6e 65 2d 6c 69 6e 65 20 66 75 6e 63 74 69 6f    6e 73 2e 0a 49 6e 20 6f 6e 65 2d 6c 69 6e 65 72  | one-line.functions..In.one-liner | 
| 4440 |  20 66 75 6e 63 74 69 6f 6e 73 20 73 75 63 68 20    61 73 20 60 66 75 6e 63 74 69 6f 6e 20 69 64 65  | .functions.such.as.`function.ide | 
| 4460 |  6e 74 69 74 79 28 78 29 20 7b 72 65 74 75 72 6e    20 78 7d 27 0a 70 65 6f 70 6c 65 20 6f 66 74 65  | ntity(x).{return.x}'.people.ofte | 
| 4480 |  6e 20 6f 6d 69 74 20 74 68 65 20 73 65 6d 69 63    6f 6c 6f 6e 20 66 6f 72 20 61 20 63 6c 65 61 6e  | n.omit.the.semicolon.for.a.clean | 
| 44a0 |  65 72 20 6c 6f 6f 6b 2e 20 20 49 66 20 79 6f 75    20 61 72 65 0a 73 75 63 68 20 61 20 70 65 72 73  | er.look...If.you.are.such.a.pers | 
| 44c0 |  6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 75 70 70    72 65 73 73 20 74 68 65 20 6d 69 73 73 69 6e 67  | on,.you.can.suppress.the.missing | 
| 44e0 |  2d 73 65 6d 69 63 6f 6c 6f 6e 20 77 61 72 6e 69    6e 67 0a 62 79 20 73 65 74 74 69 6e 67 20 74 68  | -semicolon.warning.by.setting.th | 
| 4500 |  69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 74    2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c  | is.variable.to.t."...:type.'bool | 
| 4520 |  65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73    32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73  | ean...:group.'js2-mode)..(defcus | 
| 4540 |  74 6f 6d 20 6a 73 32 2d 73 74 72 69 63 74 2d 69    6e 63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75  | tom.js2-strict-inconsistent-retu | 
| 4560 |  72 6e 2d 77 61 72 6e 69 6e 67 20 74 0a 20 20 22    4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20  | rn-warning.t..."Non-nil.to.warn. | 
| 4580 |  61 62 6f 75 74 20 6d 69 78 69 6e 67 20 72 65 74    75 72 6e 73 20 77 69 74 68 20 76 61 6c 75 65 2d  | about.mixing.returns.with.value- | 
| 45a0 |  72 65 74 75 72 6e 73 2e 0a 49 74 27 73 20 70 65    72 66 65 63 74 6c 79 20 6c 65 67 61 6c 20 74 6f  | returns..It's.perfectly.legal.to | 
| 45c0 |  20 68 61 76 65 20 61 20 60 72 65 74 75 72 6e 27    20 61 6e 64 20 61 20 60 72 65 74 75 72 6e 20 66  | .have.a.`return'.and.a.`return.f | 
| 45e0 |  6f 6f 27 20 69 6e 20 74 68 65 0a 73 61 6d 65 20    66 75 6e 63 74 69 6f 6e 2c 20 62 75 74 20 69 74  | oo'.in.the.same.function,.but.it | 
| 4600 |  27 73 20 6f 66 74 65 6e 20 61 6e 20 69 6e 64 69    63 61 74 6f 72 20 6f 66 20 61 20 62 75 67 2c 20  | 's.often.an.indicator.of.a.bug,. | 
| 4620 |  61 6e 64 20 69 74 20 61 6c 73 6f 0a 69 6e 74 65    72 66 65 72 65 73 20 77 69 74 68 20 74 79 70 65  | and.it.also.interferes.with.type | 
| 4640 |  20 69 6e 66 65 72 65 6e 63 65 20 28 69 6e 20 73    79 73 74 65 6d 73 20 74 68 61 74 20 73 75 70 70  | .inference.(in.systems.that.supp | 
| 4660 |  6f 72 74 20 69 74 2e 29 22 0a 20 20 3a 74 79 70    65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72  | ort.it.)"...:type.'boolean...:gr | 
| 4680 |  6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a    28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 73  | oup.'js2-mode)..(defcustom.js2-s | 
| 46a0 |  74 72 69 63 74 2d 63 6f 6e 64 2d 61 73 73 69 67    6e 2d 77 61 72 6e 69 6e 67 20 74 0a 20 20 22 4e  | trict-cond-assign-warning.t..."N | 
| 46c0 |  6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e 20 61    62 6f 75 74 20 75 73 61 67 65 20 6c 69 6b 65 20  | on-nil.to.warn.about.usage.like. | 
| 46e0 |  60 69 66 20 28 61 20 3d 20 62 29 27 2e 0a 54 68    69 73 20 6f 66 74 65 6e 20 73 68 6f 75 6c 64 20  | `if.(a.=.b)'..This.often.should. | 
| 4700 |  68 61 76 65 20 62 65 65 6e 20 60 3d 3d 27 20 69    6e 73 74 65 61 64 20 6f 66 20 60 3d 27 2e 20 20  | have.been.`=='.instead.of.`='... | 
| 4720 |  49 66 20 74 68 65 20 77 61 72 6e 69 6e 67 0a 69    73 20 65 6e 61 62 6c 65 64 2c 20 79 6f 75 20 63  | If.the.warning.is.enabled,.you.c | 
| 4740 |  61 6e 20 73 75 70 70 72 65 73 73 20 69 74 20 6f    6e 20 61 20 70 65 72 2d 65 78 70 72 65 73 73 69  | an.suppress.it.on.a.per-expressi | 
| 4760 |  6f 6e 20 62 61 73 69 73 20 62 79 0a 70 61 72 65    6e 74 68 65 73 69 7a 69 6e 67 20 74 68 65 20 65  | on.basis.by.parenthesizing.the.e | 
| 4780 |  78 70 72 65 73 73 69 6f 6e 2c 20 65 2e 67 2e 2c    20 60 69 66 20 28 28 61 20 3d 20 62 29 29 20 2e  | xpression,.e.g.,.`if.((a.=.b)).. | 
| 47a0 |  2e 2e 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62    6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20  | ..'."...:type.'boolean...:group. | 
| 47c0 |  27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66    63 75 73 74 6f 6d 20 6a 73 32 2d 73 74 72 69 63  | 'js2-mode)..(defcustom.js2-stric | 
| 47e0 |  74 2d 76 61 72 2d 72 65 64 65 63 6c 61 72 61 74    69 6f 6e 2d 77 61 72 6e 69 6e 67 20 74 0a 20 20  | t-var-redeclaration-warning.t... | 
| 4800 |  22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 77 61 72 6e    20 61 62 6f 75 74 20 72 65 64 65 63 6c 61 72 69  | "Non-nil.to.warn.about.redeclari | 
| 4820 |  6e 67 20 76 61 72 69 61 62 6c 65 73 20 69 6e 20    61 20 73 63 72 69 70 74 20 6f 72 20 66 75 6e 63  | ng.variables.in.a.script.or.func | 
| 4840 |  74 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27    62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70  | tion."...:type.'boolean...:group | 
| 4860 |  20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65    66 63 75 73 74 6f 6d 20 6a 73 32 2d 73 74 72 69  | .'js2-mode)..(defcustom.js2-stri | 
| 4880 |  63 74 2d 76 61 72 2d 68 69 64 65 73 2d 66 75 6e    63 74 69 6f 6e 2d 61 72 67 2d 77 61 72 6e 69 6e  | ct-var-hides-function-arg-warnin | 
| 48a0 |  67 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74    6f 20 77 61 72 6e 20 61 62 6f 75 74 20 61 20 76  | g.t..."Non-nil.to.warn.about.a.v | 
| 48c0 |  61 72 20 64 65 63 6c 20 68 69 64 69 6e 67 20 61    20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65  | ar.decl.hiding.a.function.argume | 
| 48e0 |  6e 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f    6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27  | nt."...:type.'boolean...:group.' | 
| 4900 |  6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63    75 73 74 6f 6d 20 6a 73 32 2d 73 6b 69 70 2d 70  | js2-mode)..(defcustom.js2-skip-p | 
| 4920 |  72 65 70 72 6f 63 65 73 73 6f 72 2d 64 69 72 65    63 74 69 76 65 73 20 6e 69 6c 0a 20 20 22 4e 6f  | reprocessor-directives.nil..."No | 
| 4940 |  6e 2d 6e 69 6c 20 74 6f 20 74 72 65 61 74 20 6c    69 6e 65 73 20 62 65 67 69 6e 6e 69 6e 67 20 77  | n-nil.to.treat.lines.beginning.w | 
| 4960 |  69 74 68 20 23 20 61 73 20 63 6f 6d 6d 65 6e 74    73 2e 0a 55 73 65 66 75 6c 20 66 6f 72 20 76 69  | ith.#.as.comments..Useful.for.vi | 
| 4980 |  65 77 69 6e 67 20 4d 6f 7a 69 6c 6c 61 20 4a 61    76 61 53 63 72 69 70 74 20 73 6f 75 72 63 65 20  | ewing.Mozilla.JavaScript.source. | 
| 49a0 |  63 6f 64 65 2e 22 0a 20 20 3a 74 79 70 65 20 27    62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70  | code."...:type.'boolean...:group | 
| 49c0 |  20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65    66 63 75 73 74 6f 6d 20 6a 73 32 2d 6c 61 6e 67  | .'js2-mode)..(defcustom.js2-lang | 
| 49e0 |  75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30    0a 20 20 22 43 6f 6e 66 69 67 75 72 65 73 20 77  | uage-version.200..."Configures.w | 
| 4a00 |  68 61 74 20 4a 61 76 61 53 63 72 69 70 74 20 6c    61 6e 67 75 61 67 65 20 76 65 72 73 69 6f 6e 20  | hat.JavaScript.language.version. | 
| 4a20 |  74 6f 20 72 65 63 6f 67 6e 69 7a 65 2e 0a 43 75    72 72 65 6e 74 6c 79 20 76 65 72 73 69 6f 6e 73  | to.recognize..Currently.versions | 
| 4a40 |  20 31 35 30 2c 20 31 36 30 2c 20 31 37 30 2c 20    31 38 30 20 61 6e 64 20 32 30 30 20 61 72 65 20  | .150,.160,.170,.180.and.200.are. | 
| 4a60 |  73 75 70 70 6f 72 74 65 64 2c 0a 63 6f 72 72 65    73 70 6f 6e 64 69 6e 67 20 74 6f 20 4a 61 76 61  | supported,.corresponding.to.Java | 
| 4a80 |  53 63 72 69 70 74 20 31 2e 35 2c 20 31 2e 36 2c    20 31 2e 37 2c 20 31 2e 38 20 61 6e 64 20 32 2e  | Script.1.5,.1.6,.1.7,.1.8.and.2. | 
| 4aa0 |  30 20 28 48 61 72 6d 6f 6e 79 29 2c 0a 72 65 73    70 65 63 74 69 76 65 6c 79 2e 20 20 49 6e 20 61  | 0.(Harmony),.respectively...In.a | 
| 4ac0 |  20 6e 75 74 73 68 65 6c 6c 2c 20 31 2e 36 20 61    64 64 73 20 45 34 58 20 73 75 70 70 6f 72 74 2c  | .nutshell,.1.6.adds.E4X.support, | 
| 4ae0 |  20 31 2e 37 20 61 64 64 73 20 6c 65 74 2c 0a 79    69 65 6c 64 2c 20 61 6e 64 20 41 72 72 61 79 20  | .1.7.adds.let,.yield,.and.Array. | 
| 4b00 |  63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73 2c 20    61 6e 64 20 31 2e 38 20 61 64 64 73 20 66 75 6e  | comprehensions,.and.1.8.adds.fun | 
| 4b20 |  63 74 69 6f 6e 20 63 6c 6f 73 75 72 65 73 2e 22    0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65  | ction.closures."...:type.'intege | 
| 4b40 |  72 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d    6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f  | r...:group.'js2-mode)..(defcusto | 
| 4b60 |  6d 20 6a 73 32 2d 69 6e 73 74 61 6e 63 65 6f 66    2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63 74  | m.js2-instanceof-has-side-effect | 
| 4b80 |  73 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d    6e 69 6c 2c 20 74 72 65 61 74 73 20 74 68 65 20  | s.nil..."If.non-nil,.treats.the. | 
| 4ba0 |  69 6e 73 74 61 6e 63 65 6f 66 20 6f 70 65 72 61    74 6f 72 20 61 73 20 68 61 76 69 6e 67 20 73 69  | instanceof.operator.as.having.si | 
| 4bc0 |  64 65 20 65 66 66 65 63 74 73 2e 0a 54 68 69 73    20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 78  | de.effects..This.is.useful.for.x | 
| 4be0 |  75 6c 72 75 6e 6e 65 72 20 61 70 70 73 2e 22 0a    20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e  | ulrunner.apps."...:type.'boolean | 
| 4c00 |  0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d    6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d  | ...:group.'js2-mode)..(defcustom | 
| 4c20 |  20 6a 73 32 2d 67 65 74 70 72 6f 70 2d 68 61 73    2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 6e 69  | .js2-getprop-has-side-effects.ni | 
| 4c40 |  6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c    20 74 72 65 61 74 73 20 74 68 65 20 67 65 74 70  | l..."If.non-nil,.treats.the.getp | 
| 4c60 |  72 6f 70 20 6f 70 65 72 61 74 6f 72 20 61 73 20    68 61 76 69 6e 67 20 73 69 64 65 20 65 66 66 65  | rop.operator.as.having.side.effe | 
| 4c80 |  63 74 73 2e 0a 54 68 69 73 20 69 73 20 75 73 65    66 75 6c 20 66 6f 72 20 74 65 73 74 69 6e 67 20  | cts..This.is.useful.for.testing. | 
| 4ca0 |  6c 69 62 72 61 72 69 65 73 20 77 69 74 68 20 6e    6f 6e 74 72 69 76 69 61 6c 20 67 65 74 74 65 72  | libraries.with.nontrivial.getter | 
| 4cc0 |  73 20 61 6e 64 20 66 6f 72 0a 63 6f 6d 70 69 6c    65 72 73 20 74 68 61 74 20 75 73 65 20 65 6d 70  | s.and.for.compilers.that.use.emp | 
| 4ce0 |  74 79 20 67 65 74 70 72 6f 70 73 20 74 6f 20 64    65 63 6c 61 72 65 20 69 6e 74 65 72 66 61 63 65  | ty.getprops.to.declare.interface | 
| 4d00 |  20 70 72 6f 70 65 72 74 69 65 73 2e 22 0a 20 20    3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20  | .properties."...:type.'boolean.. | 
| 4d20 |  20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64    65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a  | .:group.'js2-mode)..(defcustom.j | 
| 4d40 |  73 32 2d 6d 6f 76 65 2d 70 6f 69 6e 74 2d 6f 6e    2d 72 69 67 68 74 2d 63 6c 69 63 6b 20 74 0a 20  | s2-move-point-on-right-click.t.. | 
| 4d60 |  20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 6d 6f 76    65 20 69 6e 73 65 72 74 69 6f 6e 20 70 6f 69 6e  | ."Non-nil.to.move.insertion.poin | 
| 4d80 |  74 20 77 68 65 6e 20 79 6f 75 20 72 69 67 68 74    2d 63 6c 69 63 6b 2e 0a 54 68 69 73 20 6d 61 6b  | t.when.you.right-click..This.mak | 
| 4da0 |  65 73 20 72 69 67 68 74 2d 63 6c 69 63 6b 20 63    6f 6e 74 65 78 74 20 6d 65 6e 75 20 62 65 68 61  | es.right-click.context.menu.beha | 
| 4dc0 |  76 69 6f 72 20 61 20 62 69 74 20 6d 6f 72 65 20    69 6e 74 75 69 74 69 76 65 2c 0a 73 69 6e 63 65  | vior.a.bit.more.intuitive,.since | 
| 4de0 |  20 6d 65 6e 75 20 6f 70 65 72 61 74 69 6f 6e 73    20 67 65 6e 65 72 61 6c 6c 79 20 61 70 70 6c 79  | .menu.operations.generally.apply | 
| 4e00 |  20 74 6f 20 74 68 65 20 70 6f 69 6e 74 2e 20 20    54 68 65 20 65 78 63 65 70 74 69 6f 6e 0a 69 73  | .to.the.point...The.exception.is | 
| 4e20 |  20 69 66 20 74 68 65 72 65 20 69 73 20 61 20 72    65 67 69 6f 6e 20 73 65 6c 65 63 74 69 6f 6e 2c  | .if.there.is.a.region.selection, | 
| 4e40 |  20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74    68 65 20 70 6f 69 6e 74 20 64 6f 65 73 20 2d 6e  | .in.which.case.the.point.does.-n | 
| 4e60 |  6f 74 2d 0a 6d 6f 76 65 2c 20 73 6f 20 63 75 74    2f 63 6f 70 79 2f 70 61 73 74 65 20 63 61 6e 20  | ot-.move,.so.cut/copy/paste.can. | 
| 4e80 |  77 6f 72 6b 20 70 72 6f 70 65 72 6c 79 2e 0a 0a    4e 6f 74 65 20 74 68 61 74 20 49 6e 74 65 6c 6c  | work.properly...Note.that.Intell | 
| 4ea0 |  69 4a 20 6d 6f 76 65 73 20 74 68 65 20 70 6f 69    6e 74 2c 20 61 6e 64 20 45 63 6c 69 70 73 65 20  | iJ.moves.the.point,.and.Eclipse. | 
| 4ec0 |  6c 65 61 76 65 73 20 69 74 20 61 6c 6f 6e 65 2c    0a 73 6f 20 74 68 69 73 20 62 65 68 61 76 69 6f  | leaves.it.alone,.so.this.behavio | 
| 4ee0 |  72 20 69 73 20 63 75 73 74 6f 6d 69 7a 61 62 6c    65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73  | r.is.customizable."...:group.'js | 
| 4f00 |  32 2d 6d 6f 64 65 0a 20 20 3a 74 79 70 65 20 27    62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75  | 2-mode...:type.'boolean)..(defcu | 
| 4f20 |  73 74 6f 6d 20 6a 73 32 2d 61 6c 6c 6f 77 2d 72    68 69 6e 6f 2d 6e 65 77 2d 65 78 70 72 2d 69 6e  | stom.js2-allow-rhino-new-expr-in | 
| 4f40 |  69 74 69 61 6c 69 7a 65 72 20 74 0a 20 20 22 4e    6f 6e 2d 6e 69 6c 20 74 6f 20 73 75 70 70 6f 72  | itializer.t..."Non-nil.to.suppor | 
| 4f60 |  74 20 61 20 52 68 69 6e 6f 27 73 20 65 78 70 65    72 69 6d 65 6e 74 61 6c 20 73 79 6e 74 61 63 74  | t.a.Rhino's.experimental.syntact | 
| 4f80 |  69 63 20 63 6f 6e 73 74 72 75 63 74 2e 0a 0a 52    68 69 6e 6f 20 73 75 70 70 6f 72 74 73 20 74 68  | ic.construct...Rhino.supports.th | 
| 4fa0 |  65 20 61 62 69 6c 69 74 79 20 74 6f 20 66 6f 6c    6c 6f 77 20 61 20 60 6e 65 77 27 20 65 78 70 72  | e.ability.to.follow.a.`new'.expr | 
| 4fc0 |  65 73 73 69 6f 6e 20 77 69 74 68 20 61 6e 20 6f    62 6a 65 63 74 0a 6c 69 74 65 72 61 6c 2c 20 77  | ession.with.an.object.literal,.w | 
| 4fe0 |  68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20    73 65 74 20 61 64 64 69 74 69 6f 6e 61 6c 20 70  | hich.is.used.to.set.additional.p | 
| 5000 |  72 6f 70 65 72 74 69 65 73 20 6f 6e 20 74 68 65    20 6e 65 77 20 6f 62 6a 65 63 74 0a 61 66 74 65  | roperties.on.the.new.object.afte | 
| 5020 |  72 20 63 61 6c 6c 69 6e 67 20 69 74 73 20 63 6f    6e 73 74 72 75 63 74 6f 72 2e 20 20 53 79 6e 74  | r.calling.its.constructor...Synt | 
| 5040 |  61 78 3a 0a 0a 20 20 6e 65 77 20 3c 65 78 70 72    3e 20 5b 20 28 20 61 72 67 6c 69 73 74 20 29 20  | ax:....new.<expr>.[.(.arglist.). | 
| 5060 |  5d 20 5b 69 6e 69 74 69 61 6c 69 7a 65 72 5d 0a    0a 48 65 6e 63 65 2c 20 74 68 69 73 20 65 78 70  | ].[initializer]..Hence,.this.exp | 
| 5080 |  72 65 73 73 69 6f 6e 3a 0a 0a 20 20 6e 65 77 20    4f 62 6a 65 63 74 20 7b 61 3a 20 31 2c 20 62 3a  | ression:....new.Object.{a:.1,.b: | 
| 50a0 |  20 32 7d 0a 0a 72 65 73 75 6c 74 73 20 69 6e 20    61 6e 20 4f 62 6a 65 63 74 20 77 69 74 68 20 70  | .2}..results.in.an.Object.with.p | 
| 50c0 |  72 6f 70 65 72 74 69 65 73 20 61 3d 31 20 61 6e    64 20 62 3d 32 2e 20 20 54 68 69 73 20 73 79 6e  | roperties.a=1.and.b=2...This.syn | 
| 50e0 |  74 61 78 20 69 73 0a 61 70 70 61 72 65 6e 74 6c    79 20 6e 6f 74 20 63 6f 6e 66 69 67 75 72 61 62  | tax.is.apparently.not.configurab | 
| 5100 |  6c 65 20 69 6e 20 52 68 69 6e 6f 20 2d 20 69 74    27 73 20 63 75 72 72 65 6e 74 6c 79 20 61 6c 77  | le.in.Rhino.-.it's.currently.alw | 
| 5120 |  61 79 73 20 65 6e 61 62 6c 65 64 2c 0a 61 73 20    6f 66 20 52 68 69 6e 6f 20 76 65 72 73 69 6f 6e  | ays.enabled,.as.of.Rhino.version | 
| 5140 |  20 31 2e 37 52 32 2e 22 0a 20 20 3a 74 79 70 65    20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f  | .1.7R2."...:type.'boolean...:gro | 
| 5160 |  75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28    64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 61 6c  | up.'js2-mode)..(defcustom.js2-al | 
| 5180 |  6c 6f 77 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d    61 73 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65  | low-member-expr-as-function-name | 
| 51a0 |  20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20    74 6f 20 73 75 70 70 6f 72 74 20 65 78 70 65 72  | .nil..."Non-nil.to.support.exper | 
| 51c0 |  69 6d 65 6e 74 61 6c 20 52 68 69 6e 6f 20 73 79    6e 74 61 78 20 66 6f 72 20 66 75 6e 63 74 69 6f  | imental.Rhino.syntax.for.functio | 
| 51e0 |  6e 20 6e 61 6d 65 73 2e 0a 0a 52 68 69 6e 6f 20    73 75 70 70 6f 72 74 73 20 61 6e 20 65 78 70 65  | n.names...Rhino.supports.an.expe | 
| 5200 |  72 69 6d 65 6e 74 61 6c 20 73 79 6e 74 61 78 20    63 6f 6e 66 69 67 75 72 65 64 20 76 69 61 20 74  | rimental.syntax.configured.via.t | 
| 5220 |  68 65 20 52 68 69 6e 6f 20 43 6f 6e 74 65 78 74    0a 73 65 74 74 69 6e 67 20 60 61 6c 6c 6f 77 4d  | he.Rhino.Context.setting.`allowM | 
| 5240 |  65 6d 62 65 72 45 78 70 72 41 73 46 75 6e 63 74    69 6f 6e 4e 61 6d 65 27 2e 20 20 54 68 65 20 65  | emberExprAsFunctionName'...The.e | 
| 5260 |  78 70 65 72 69 6d 65 6e 74 61 6c 20 73 79 6e 74    61 78 20 69 73 3a 0a 0a 20 20 66 75 6e 63 74 69  | xperimental.syntax.is:....functi | 
| 5280 |  6f 6e 20 3c 6d 65 6d 62 65 72 2d 65 78 70 72 3e    20 28 20 5b 20 61 72 67 2d 6c 69 73 74 20 5d 20  | on.<member-expr>.(.[.arg-list.]. | 
| 52a0 |  29 20 7b 20 3c 62 6f 64 79 3e 20 7d 0a 0a 57 68    65 72 65 20 6d 65 6d 62 65 72 2d 65 78 70 72 20  | ).{.<body>.}..Where.member-expr. | 
| 52c0 |  69 73 20 61 20 6e 6f 6e 2d 70 61 72 65 6e 74 68    65 73 69 7a 65 64 20 60 6d 65 6d 62 65 72 20 65  | is.a.non-parenthesized.`member.e | 
| 52e0 |  78 70 72 65 73 73 69 6f 6e 27 2c 20 77 68 69 63    68 0a 69 73 20 61 6e 79 74 68 69 6e 67 20 61 74  | xpression',.which.is.anything.at | 
| 5300 |  20 74 68 65 20 67 72 61 6d 6d 61 72 20 6c 65 76    65 6c 20 6f 66 20 61 20 6e 65 77 2d 65 78 70 72  | .the.grammar.level.of.a.new-expr | 
| 5320 |  65 73 73 69 6f 6e 20 6f 72 20 6c 6f 77 65 72 2c    20 6d 65 61 6e 69 6e 67 0a 61 6e 79 20 65 78 70  | ession.or.lower,.meaning.any.exp | 
| 5340 |  72 65 73 73 69 6f 6e 20 74 68 61 74 20 64 6f 65    73 20 6e 6f 74 20 69 6e 76 6f 6c 76 65 20 69 6e  | ression.that.does.not.involve.in | 
| 5360 |  66 69 78 20 6f 72 20 75 6e 61 72 79 20 6f 70 65    72 61 74 6f 72 73 2e 0a 0a 57 68 65 6e 20 3c 6d  | fix.or.unary.operators...When.<m | 
| 5380 |  65 6d 62 65 72 2d 65 78 70 72 3e 20 69 73 20 6e    6f 74 20 61 20 73 69 6d 70 6c 65 20 69 64 65 6e  | ember-expr>.is.not.a.simple.iden | 
| 53a0 |  74 69 66 69 65 72 2c 20 74 68 65 6e 20 69 74 20    69 73 20 73 79 6e 74 61 63 74 69 63 0a 73 75 67  | tifier,.then.it.is.syntactic.sug | 
| 53c0 |  61 72 20 66 6f 72 20 61 73 73 69 67 6e 69 6e 67    20 74 68 65 20 61 6e 6f 6e 79 6d 6f 75 73 20 66  | ar.for.assigning.the.anonymous.f | 
| 53e0 |  75 6e 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 3c    6d 65 6d 62 65 72 2d 65 78 70 72 3e 2e 20 20 48  | unction.to.the.<member-expr>...H | 
| 5400 |  65 6e 63 65 2c 0a 74 68 69 73 20 63 6f 64 65 3a    0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 61 2e 62  | ence,.this.code:....function.a.b | 
| 5420 |  28 29 2e 63 5b 32 5d 20 28 78 2c 20 79 29 20 7b    20 2e 2e 2e 20 7d 0a 0a 69 73 20 72 65 77 72 69  | ().c[2].(x,.y).{.....}..is.rewri | 
| 5440 |  74 74 65 6e 20 61 73 3a 0a 0a 20 20 61 2e 62 28    29 2e 63 5b 32 5d 20 3d 20 66 75 6e 63 74 69 6f  | tten.as:....a.b().c[2].=.functio | 
| 5460 |  6e 28 78 2c 20 79 29 20 7b 2e 2e 2e 7d 0a 0a 77    68 69 63 68 20 64 6f 65 73 6e 27 74 20 73 65 65  | n(x,.y).{...}..which.doesn't.see | 
| 5480 |  6d 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 75    73 65 66 75 6c 2c 20 62 75 74 20 52 68 69 6e 6f  | m.particularly.useful,.but.Rhino | 
| 54a0 |  20 70 65 72 6d 69 74 73 20 69 74 2e 22 0a 20 20    3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20  | .permits.it."...:type.'boolean.. | 
| 54c0 |  20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64    65 29 0a 0a 3b 3b 20 73 63 61 6e 6e 65 72 20 76  | .:group.'js2-mode)..;;.scanner.v | 
| 54e0 |  61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 6d 61    63 72 6f 20 6a 73 32 2d 64 65 66 6c 6f 63 61 6c  | ariables..(defmacro.js2-deflocal | 
| 5500 |  20 28 6e 61 6d 65 20 76 61 6c 75 65 20 26 6f 70    74 69 6f 6e 61 6c 20 63 6f 6d 6d 65 6e 74 29 0a  | .(name.value.&optional.comment). | 
| 5520 |  20 20 22 44 65 66 69 6e 65 20 61 20 62 75 66 66    65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c  | .."Define.a.buffer-local.variabl | 
| 5540 |  65 20 4e 41 4d 45 20 77 69 74 68 20 56 41 4c 55    45 20 61 6e 64 20 43 4f 4d 4d 45 4e 54 2e 22 0a  | e.NAME.with.VALUE.and.COMMENT.". | 
| 5560 |  20 20 28 64 65 63 6c 61 72 65 20 28 64 65 62 75    67 20 64 65 66 76 61 72 29 20 28 64 6f 63 2d 73  | ..(declare.(debug.defvar).(doc-s | 
| 5580 |  74 72 69 6e 67 20 33 29 29 0a 20 20 60 28 70 72    6f 67 6e 0a 20 20 20 20 20 28 64 65 66 76 61 72  | tring.3))...`(progn......(defvar | 
| 55a0 |  20 2c 6e 61 6d 65 20 2c 76 61 6c 75 65 20 2c 63    6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 28 6d 61  | .,name.,value.,comment)......(ma | 
| 55c0 |  6b 65 2d 76 61 72 69 61 62 6c 65 2d 62 75 66 66    65 72 2d 6c 6f 63 61 6c 20 27 2c 6e 61 6d 65 29  | ke-variable-buffer-local.',name) | 
| 55e0 |  29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    45 4f 46 5f 43 48 41 52 20 2d 31 0a 20 20 22 52  | ))..(defvar.js2-EOF_CHAR.-1..."R | 
| 5600 |  65 70 72 65 73 65 6e 74 73 20 65 6e 64 20 6f 66    20 73 74 72 65 61 6d 2e 20 20 44 69 73 74 69 6e  | epresents.end.of.stream...Distin | 
| 5620 |  63 74 20 66 72 6f 6d 20 6a 73 32 2d 45 4f 46 20    74 6f 6b 65 6e 20 74 79 70 65 2e 22 29 0a 0a 3b  | ct.from.js2-EOF.token.type.")..; | 
| 5640 |  3b 20 49 20 6f 72 69 67 69 6e 61 6c 6c 79 20 75    73 65 64 20 73 79 6d 62 6f 6c 73 20 74 6f 20 72  | ;.I.originally.used.symbols.to.r | 
| 5660 |  65 70 72 65 73 65 6e 74 20 74 6f 6b 65 6e 73 2c    20 62 75 74 20 52 68 69 6e 6f 20 75 73 65 73 0a  | epresent.tokens,.but.Rhino.uses. | 
| 5680 |  3b 3b 20 69 6e 74 73 20 61 6e 64 20 74 68 65 6e    20 73 65 74 73 20 76 61 72 69 6f 75 73 20 66 6c  | ;;.ints.and.then.sets.various.fl | 
| 56a0 |  61 67 20 62 69 74 73 20 69 6e 20 74 68 65 6d 2c    20 73 6f 20 69 6e 74 73 20 69 74 20 69 73 2e 0a  | ag.bits.in.them,.so.ints.it.is.. | 
| 56c0 |  3b 3b 20 54 68 65 20 75 70 73 68 6f 74 20 69 73    20 74 68 61 74 20 77 65 20 6e 65 65 64 20 61 20  | ;;.The.upshot.is.that.we.need.a. | 
| 56e0 |  60 6a 73 32 2d 27 20 70 72 65 66 69 78 20 69 6e    20 66 72 6f 6e 74 20 6f 66 20 65 61 63 68 20 6e  | `js2-'.prefix.in.front.of.each.n | 
| 5700 |  61 6d 65 2e 0a 28 64 65 66 76 61 72 20 6a 73 32    2d 45 52 52 4f 52 20 2d 31 29 0a 28 64 65 66 76  | ame..(defvar.js2-ERROR.-1).(defv | 
| 5720 |  61 72 20 6a 73 32 2d 45 4f 46 20 30 29 0a 28 64    65 66 76 61 72 20 6a 73 32 2d 45 4f 4c 20 31 29  | ar.js2-EOF.0).(defvar.js2-EOL.1) | 
| 5740 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e 54    45 52 57 49 54 48 20 32 29 20 20 20 20 20 20 20  | .(defvar.js2-ENTERWITH.2)....... | 
| 5760 |  3b 20 62 65 67 69 6e 20 69 6e 74 65 72 70 72 65    74 65 72 20 62 79 74 65 63 6f 64 65 73 0a 28 64  | ;.begin.interpreter.bytecodes.(d | 
| 5780 |  65 66 76 61 72 20 6a 73 32 2d 4c 45 41 56 45 57    49 54 48 20 33 29 0a 28 64 65 66 76 61 72 20 6a  | efvar.js2-LEAVEWITH.3).(defvar.j | 
| 57a0 |  73 32 2d 52 45 54 55 52 4e 20 34 29 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 47 4f 54 4f 20 35 29  | s2-RETURN.4).(defvar.js2-GOTO.5) | 
| 57c0 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 49 46 45    51 20 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32  | .(defvar.js2-IFEQ.6).(defvar.js2 | 
| 57e0 |  2d 49 46 4e 45 20 37 29 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 53 45 54 4e 41 4d 45 20 38 29 0a  | -IFNE.7).(defvar.js2-SETNAME.8). | 
| 5800 |  28 64 65 66 76 61 72 20 6a 73 32 2d 42 49 54 4f    52 20 39 29 0a 28 64 65 66 76 61 72 20 6a 73 32  | (defvar.js2-BITOR.9).(defvar.js2 | 
| 5820 |  2d 42 49 54 58 4f 52 20 31 30 29 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 42 49 54 41 4e 44 20 31  | -BITXOR.10).(defvar.js2-BITAND.1 | 
| 5840 |  31 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45    51 20 31 32 29 0a 28 64 65 66 76 61 72 20 6a 73  | 1).(defvar.js2-EQ.12).(defvar.js | 
| 5860 |  32 2d 4e 45 20 31 33 29 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 4c 54 20 31 34 29 0a 28 64 65 66  | 2-NE.13).(defvar.js2-LT.14).(def | 
| 5880 |  76 61 72 20 6a 73 32 2d 4c 45 20 31 35 29 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 47 54 20 31 36  | var.js2-LE.15).(defvar.js2-GT.16 | 
| 58a0 |  29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47 45    20 31 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32  | ).(defvar.js2-GE.17).(defvar.js2 | 
| 58c0 |  2d 4c 53 48 20 31 38 29 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 52 53 48 20 31 39 29 0a 28 64 65  | -LSH.18).(defvar.js2-RSH.19).(de | 
| 58e0 |  66 76 61 72 20 6a 73 32 2d 55 52 53 48 20 32 30    29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 44  | fvar.js2-URSH.20).(defvar.js2-AD | 
| 5900 |  44 20 32 31 29 20 20 20 20 20 20 20 20 20 20 20    20 3b 20 69 6e 66 69 78 20 70 6c 75 73 0a 28 64  | D.21)............;.infix.plus.(d | 
| 5920 |  65 66 76 61 72 20 6a 73 32 2d 53 55 42 20 32 32    29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69  | efvar.js2-SUB.22)............;.i | 
| 5940 |  6e 66 69 78 20 6d 69 6e 75 73 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 4d 55 4c 20 32 33 29 0a 28  | nfix.minus.(defvar.js2-MUL.23).( | 
| 5960 |  64 65 66 76 61 72 20 6a 73 32 2d 44 49 56 20 32    34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4d  | defvar.js2-DIV.24).(defvar.js2-M | 
| 5980 |  4f 44 20 32 35 29 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 4e 4f 54 20 32 36 29 0a 28 64 65 66 76  | OD.25).(defvar.js2-NOT.26).(defv | 
| 59a0 |  61 72 20 6a 73 32 2d 42 49 54 4e 4f 54 20 32 37    29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 50 4f  | ar.js2-BITNOT.27).(defvar.js2-PO | 
| 59c0 |  53 20 32 38 29 20 20 20 20 20 20 20 20 20 20 20    20 3b 20 75 6e 61 72 79 20 70 6c 75 73 0a 28 64  | S.28)............;.unary.plus.(d | 
| 59e0 |  65 66 76 61 72 20 6a 73 32 2d 4e 45 47 20 32 39    29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75  | efvar.js2-NEG.29)............;.u | 
| 5a00 |  6e 61 72 79 20 6d 69 6e 75 73 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 4e 45 57 20 33 30 29 0a 28  | nary.minus.(defvar.js2-NEW.30).( | 
| 5a20 |  64 65 66 76 61 72 20 6a 73 32 2d 44 45 4c 50 52    4f 50 20 33 31 29 0a 28 64 65 66 76 61 72 20 6a  | defvar.js2-DELPROP.31).(defvar.j | 
| 5a40 |  73 32 2d 54 59 50 45 4f 46 20 33 32 29 0a 28 64    65 66 76 61 72 20 6a 73 32 2d 47 45 54 50 52 4f  | s2-TYPEOF.32).(defvar.js2-GETPRO | 
| 5a60 |  50 20 33 33 29 0a 28 64 65 66 76 61 72 20 6a 73    32 2d 47 45 54 50 52 4f 50 4e 4f 57 41 52 4e 20  | P.33).(defvar.js2-GETPROPNOWARN. | 
| 5a80 |  33 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    53 45 54 50 52 4f 50 20 33 35 29 0a 28 64 65 66  | 34).(defvar.js2-SETPROP.35).(def | 
| 5aa0 |  76 61 72 20 6a 73 32 2d 47 45 54 45 4c 45 4d 20    33 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | var.js2-GETELEM.36).(defvar.js2- | 
| 5ac0 |  53 45 54 45 4c 45 4d 20 33 37 29 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 43 41 4c 4c 20 33 38 29  | SETELEM.37).(defvar.js2-CALL.38) | 
| 5ae0 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4e 41 4d    45 20 33 39 29 20 20 20 20 20 20 20 20 20 20 20  | .(defvar.js2-NAME.39)........... | 
| 5b00 |  3b 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 0a    28 64 65 66 76 61 72 20 6a 73 32 2d 4e 55 4d 42  | ;.an.identifier.(defvar.js2-NUMB | 
| 5b20 |  45 52 20 34 30 29 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 53 54 52 49 4e 47 20 34 31 29 0a 28 64  | ER.40).(defvar.js2-STRING.41).(d | 
| 5b40 |  65 66 76 61 72 20 6a 73 32 2d 4e 55 4c 4c 20 34    32 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 54  | efvar.js2-NULL.42).(defvar.js2-T | 
| 5b60 |  48 49 53 20 34 33 29 0a 28 64 65 66 76 61 72 20    6a 73 32 2d 46 41 4c 53 45 20 34 34 29 0a 28 64  | HIS.43).(defvar.js2-FALSE.44).(d | 
| 5b80 |  65 66 76 61 72 20 6a 73 32 2d 54 52 55 45 20 34    35 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53  | efvar.js2-TRUE.45).(defvar.js2-S | 
| 5ba0 |  48 45 51 20 34 36 29 20 20 20 20 20 20 20 20 20    20 20 3b 20 73 68 61 6c 6c 6f 77 20 65 71 75 61  | HEQ.46)...........;.shallow.equa | 
| 5bc0 |  6c 69 74 79 20 28 3d 3d 3d 29 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 53 48 4e 45 20 34 37 29 20  | lity.(===).(defvar.js2-SHNE.47). | 
| 5be0 |  20 20 20 20 20 20 20 20 20 20 3b 20 73 68 61 6c    6c 6f 77 20 69 6e 65 71 75 61 6c 69 74 79 20 28  | ..........;.shallow.inequality.( | 
| 5c00 |  21 3d 3d 29 0a 28 64 65 66 76 61 72 20 6a 73 32    2d 52 45 47 45 58 50 20 34 38 29 0a 28 64 65 66  | !==).(defvar.js2-REGEXP.48).(def | 
| 5c20 |  76 61 72 20 6a 73 32 2d 42 49 4e 44 4e 41 4d 45    20 34 39 29 0a 28 64 65 66 76 61 72 20 6a 73 32  | var.js2-BINDNAME.49).(defvar.js2 | 
| 5c40 |  2d 54 48 52 4f 57 20 35 30 29 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 52 45 54 48 52 4f 57 20 35  | -THROW.50).(defvar.js2-RETHROW.5 | 
| 5c60 |  31 29 20 20 20 20 20 20 20 20 3b 20 72 65 74 68    72 6f 77 20 63 61 75 67 68 74 20 65 78 63 65 70  | 1)........;.rethrow.caught.excep | 
| 5c80 |  74 69 6f 6e 3a 20 63 61 74 63 68 20 28 65 20 69    66 20 29 20 75 73 65 73 20 69 74 0a 28 64 65 66  | tion:.catch.(e.if.).uses.it.(def | 
| 5ca0 |  76 61 72 20 6a 73 32 2d 49 4e 20 35 32 29 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 49 4e 53 54 41  | var.js2-IN.52).(defvar.js2-INSTA | 
| 5cc0 |  4e 43 45 4f 46 20 35 33 29 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 4c 4f 43 41 4c 5f 4c 4f 41 44  | NCEOF.53).(defvar.js2-LOCAL_LOAD | 
| 5ce0 |  20 35 34 29 0a 28 64 65 66 76 61 72 20 6a 73 32    2d 47 45 54 56 41 52 20 35 35 29 0a 28 64 65 66  | .54).(defvar.js2-GETVAR.55).(def | 
| 5d00 |  76 61 72 20 6a 73 32 2d 53 45 54 56 41 52 20 35    36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43  | var.js2-SETVAR.56).(defvar.js2-C | 
| 5d20 |  41 54 43 48 5f 53 43 4f 50 45 20 35 37 29 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 45 4e 55 4d 5f  | ATCH_SCOPE.57).(defvar.js2-ENUM_ | 
| 5d40 |  49 4e 49 54 5f 4b 45 59 53 20 35 38 29 20 3b 20    46 49 58 4d 45 3a 20 77 68 61 74 20 61 72 65 20  | INIT_KEYS.58).;.FIXME:.what.are. | 
| 5d60 |  74 68 65 73 65 3f 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 45 4e 55 4d 5f 49 4e 49 54 5f 56 41 4c  | these?.(defvar.js2-ENUM_INIT_VAL | 
| 5d80 |  55 45 53 20 35 39 29 0a 28 64 65 66 76 61 72 20    6a 73 32 2d 45 4e 55 4d 5f 49 4e 49 54 5f 41 52  | UES.59).(defvar.js2-ENUM_INIT_AR | 
| 5da0 |  52 41 59 20 36 30 29 0a 28 64 65 66 76 61 72 20    6a 73 32 2d 45 4e 55 4d 5f 4e 45 58 54 20 36 31  | RAY.60).(defvar.js2-ENUM_NEXT.61 | 
| 5dc0 |  29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 45 4e    55 4d 5f 49 44 20 36 32 29 0a 28 64 65 66 76 61  | ).(defvar.js2-ENUM_ID.62).(defva | 
| 5de0 |  72 20 6a 73 32 2d 54 48 49 53 46 4e 20 36 33 29    0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 54  | r.js2-THISFN.63).(defvar.js2-RET | 
| 5e00 |  55 52 4e 5f 52 45 53 55 4c 54 20 36 34 29 20 20    3b 20 74 6f 20 72 65 74 75 72 6e 20 70 72 65 76  | URN_RESULT.64)..;.to.return.prev | 
| 5e20 |  69 6f 75 73 6c 79 20 73 74 6f 72 65 64 20 72 65    74 75 72 6e 20 72 65 73 75 6c 74 0a 28 64 65 66  | iously.stored.return.result.(def | 
| 5e40 |  76 61 72 20 6a 73 32 2d 41 52 52 41 59 4c 49 54    20 36 35 29 20 20 20 20 20 20 20 3b 20 61 72 72  | var.js2-ARRAYLIT.65).......;.arr | 
| 5e60 |  61 79 20 6c 69 74 65 72 61 6c 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 4f 42 4a 45 43 54 4c 49 54  | ay.literal.(defvar.js2-OBJECTLIT | 
| 5e80 |  20 36 36 29 20 20 20 20 20 20 3b 20 6f 62 6a 65    63 74 20 6c 69 74 65 72 61 6c 0a 28 64 65 66 76  | .66)......;.object.literal.(defv | 
| 5ea0 |  61 72 20 6a 73 32 2d 47 45 54 5f 52 45 46 20 36    37 29 20 20 20 20 20 20 20 20 3b 20 2a 72 65 66  | ar.js2-GET_REF.67)........;.*ref | 
| 5ec0 |  65 72 65 6e 63 65 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 53 45 54 5f 52 45 46 20 36 38 29 20 20  | erence.(defvar.js2-SET_REF.68).. | 
| 5ee0 |  20 20 20 20 20 20 3b 20 2a 72 65 66 65 72 65 6e    63 65 20 3d 20 73 6f 6d 65 74 68 69 6e 67 0a 28  | ......;.*reference.=.something.( | 
| 5f00 |  64 65 66 76 61 72 20 6a 73 32 2d 44 45 4c 5f 52    45 46 20 36 39 29 20 20 20 20 20 20 20 20 3b 20  | defvar.js2-DEL_REF.69)........;. | 
| 5f20 |  64 65 6c 65 74 65 20 72 65 66 65 72 65 6e 63 65    0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52 45 46  | delete.reference.(defvar.js2-REF | 
| 5f40 |  5f 43 41 4c 4c 20 37 30 29 20 20 20 20 20 20 20    3b 20 66 28 61 72 67 73 29 20 3d 20 73 6f 6d 65  | _CALL.70).......;.f(args).=.some | 
| 5f60 |  74 68 69 6e 67 20 6f 72 20 66 28 61 72 67 73 29    2b 2b 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 52  | thing.or.f(args)++.(defvar.js2-R | 
| 5f80 |  45 46 5f 53 50 45 43 49 41 4c 20 37 31 29 20 20    20 20 3b 20 72 65 66 65 72 65 6e 63 65 20 66 6f  | EF_SPECIAL.71)....;.reference.fo | 
| 5fa0 |  72 20 73 70 65 63 69 61 6c 20 70 72 6f 70 65 72    74 69 65 73 20 6c 69 6b 65 20 5f 5f 70 72 6f 74  | r.special.properties.like.__prot | 
| 5fc0 |  6f 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 59 49    45 4c 44 20 37 32 29 20 20 20 20 20 20 20 20 20  | o.(defvar.js2-YIELD.72)......... | 
| 5fe0 |  20 3b 20 4a 53 20 31 2e 37 20 79 69 65 6c 64 20    70 73 65 75 64 6f 20 6b 65 79 77 6f 72 64 0a 0a  | .;.JS.1.7.yield.pseudo.keyword.. | 
| 6000 |  3b 3b 20 58 4d 4c 20 73 75 70 70 6f 72 74 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 44 45 46 41 55  | ;;.XML.support.(defvar.js2-DEFAU | 
| 6020 |  4c 54 4e 41 4d 45 53 50 41 43 45 20 37 33 29 0a    28 64 65 66 76 61 72 20 6a 73 32 2d 45 53 43 58  | LTNAMESPACE.73).(defvar.js2-ESCX | 
| 6040 |  4d 4c 41 54 54 52 20 37 34 29 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 45 53 43 58 4d 4c 54 45 58  | MLATTR.74).(defvar.js2-ESCXMLTEX | 
| 6060 |  54 20 37 35 29 0a 28 64 65 66 76 61 72 20 6a 73    32 2d 52 45 46 5f 4d 45 4d 42 45 52 20 37 36 29  | T.75).(defvar.js2-REF_MEMBER.76) | 
| 6080 |  20 20 20 20 20 3b 20 52 65 66 65 72 65 6e 63 65    20 66 6f 72 20 78 2e 40 79 2c 20 78 2e 2e 79 20  | .....;.Reference.for.x.@y,.x..y. | 
| 60a0 |  65 74 63 2e 0a 28 64 65 66 76 61 72 20 6a 73 32    2d 52 45 46 5f 4e 53 5f 4d 45 4d 42 45 52 20 37  | etc..(defvar.js2-REF_NS_MEMBER.7 | 
| 60c0 |  37 29 20 20 3b 20 52 65 66 65 72 65 6e 63 65 20    66 6f 72 20 78 2e 6e 73 3a 3a 79 2c 20 78 2e 2e  | 7)..;.Reference.for.x.ns::y,.x.. | 
| 60e0 |  6e 73 3a 3a 79 20 65 74 63 2e 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 52 45 46 5f 4e 41 4d 45 20  | ns::y.etc..(defvar.js2-REF_NAME. | 
| 6100 |  37 38 29 20 20 20 20 20 20 20 3b 20 52 65 66 65    72 65 6e 63 65 20 66 6f 72 20 40 79 2c 20 40 5b  | 78).......;.Reference.for.@y,.@[ | 
| 6120 |  79 5d 20 65 74 63 2e 0a 28 64 65 66 76 61 72 20    6a 73 32 2d 52 45 46 5f 4e 53 5f 4e 41 4d 45 20  | y].etc..(defvar.js2-REF_NS_NAME. | 
| 6140 |  37 39 29 20 20 20 20 3b 20 52 65 66 65 72 65 6e    63 65 20 66 6f 72 20 6e 73 3a 3a 79 2c 20 40 6e  | 79)....;.Reference.for.ns::y,.@n | 
| 6160 |  73 3a 3a 79 40 5b 79 5d 20 65 74 63 2e 0a 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 66 69 72 73 74  | s::y@[y].etc...(defvar.js2-first | 
| 6180 |  2d 62 79 74 65 63 6f 64 65 20 6a 73 32 2d 45 4e    54 45 52 57 49 54 48 29 0a 28 64 65 66 76 61 72  | -bytecode.js2-ENTERWITH).(defvar | 
| 61a0 |  20 6a 73 32 2d 6c 61 73 74 2d 62 79 74 65 63 6f    64 65 20 6a 73 32 2d 52 45 46 5f 4e 53 5f 4e 41  | .js2-last-bytecode.js2-REF_NS_NA | 
| 61c0 |  4d 45 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32    2d 54 52 59 20 38 30 29 0a 28 64 65 66 76 61 72  | ME)..(defvar.js2-TRY.80).(defvar | 
| 61e0 |  20 6a 73 32 2d 53 45 4d 49 20 38 31 29 20 20 20    20 20 20 20 20 20 20 20 3b 20 73 65 6d 69 63 6f  | .js2-SEMI.81)...........;.semico | 
| 6200 |  6c 6f 6e 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    4c 42 20 38 32 29 20 20 20 20 20 20 20 20 20 20  | lon.(defvar.js2-LB.82).......... | 
| 6220 |  20 20 20 3b 20 6c 65 66 74 20 61 6e 64 20 72 69    67 68 74 20 62 72 61 63 6b 65 74 73 0a 28 64 65  | ...;.left.and.right.brackets.(de | 
| 6240 |  66 76 61 72 20 6a 73 32 2d 52 42 20 38 33 29 0a    28 64 65 66 76 61 72 20 6a 73 32 2d 4c 43 20 38  | fvar.js2-RB.83).(defvar.js2-LC.8 | 
| 6260 |  34 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20  | 4).............;.left.and.right. | 
| 6280 |  63 75 72 6c 79 2d 62 72 61 63 65 73 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 52 43 20 38 35 29 0a  | curly-braces.(defvar.js2-RC.85). | 
| 62a0 |  28 64 65 66 76 61 72 20 6a 73 32 2d 4c 50 20 38    36 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b  | (defvar.js2-LP.86).............; | 
| 62c0 |  20 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20    70 61 72 65 6e 73 0a 28 64 65 66 76 61 72 20 6a  | .left.and.right.parens.(defvar.j | 
| 62e0 |  73 32 2d 52 50 20 38 37 29 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 43 4f 4d 4d 41 20 38 38 29 20  | s2-RP.87).(defvar.js2-COMMA.88). | 
| 6300 |  20 20 20 20 20 20 20 20 20 3b 20 63 6f 6d 6d 61    20 6f 70 65 72 61 74 6f 72 0a 0a 28 64 65 66 76  | .........;.comma.operator..(defv | 
| 6320 |  61 72 20 6a 73 32 2d 41 53 53 49 47 4e 20 38 39    29 20 20 20 20 20 20 20 20 20 3b 20 73 69 6d 70  | ar.js2-ASSIGN.89).........;.simp | 
| 6340 |  6c 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 28 3d    29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53  | le.assignment.(=).(defvar.js2-AS | 
| 6360 |  53 49 47 4e 5f 42 49 54 4f 52 20 39 30 29 20 20    20 3b 20 7c 3d 0a 28 64 65 66 76 61 72 20 6a 73  | SIGN_BITOR.90)...;.|=.(defvar.js | 
| 6380 |  32 2d 41 53 53 49 47 4e 5f 42 49 54 58 4f 52 20    39 31 29 20 20 3b 20 5e 3d 0a 28 64 65 66 76 61  | 2-ASSIGN_BITXOR.91)..;.^=.(defva | 
| 63a0 |  72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49 54    41 4e 44 20 39 32 29 20 20 3b 20 26 3d 0a 28 64  | r.js2-ASSIGN_BITAND.92)..;.&=.(d | 
| 63c0 |  65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e    5f 4c 53 48 20 39 33 29 20 20 20 20 20 3b 20 3c  | efvar.js2-ASSIGN_LSH.93).....;.< | 
| 63e0 |  3c 3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41    53 53 49 47 4e 5f 52 53 48 20 39 34 29 20 20 20  | <=.(defvar.js2-ASSIGN_RSH.94)... | 
| 6400 |  20 20 3b 20 3e 3e 3d 0a 28 64 65 66 76 61 72 20    6a 73 32 2d 41 53 53 49 47 4e 5f 55 52 53 48 20  | ..;.>>=.(defvar.js2-ASSIGN_URSH. | 
| 6420 |  39 35 29 20 20 20 20 3b 20 3e 3e 3e 3d 0a 28 64    65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e  | 95)....;.>>>=.(defvar.js2-ASSIGN | 
| 6440 |  5f 41 44 44 20 39 36 29 20 20 20 20 20 3b 20 2b    3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53  | _ADD.96).....;.+=.(defvar.js2-AS | 
| 6460 |  53 49 47 4e 5f 53 55 42 20 39 37 29 20 20 20 20    20 3b 20 2d 3d 0a 28 64 65 66 76 61 72 20 6a 73  | SIGN_SUB.97).....;.-=.(defvar.js | 
| 6480 |  32 2d 41 53 53 49 47 4e 5f 4d 55 4c 20 39 38 29    20 20 20 20 20 3b 20 2a 3d 0a 28 64 65 66 76 61  | 2-ASSIGN_MUL.98).....;.*=.(defva | 
| 64a0 |  72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56    20 39 39 29 20 20 20 20 20 3b 20 2f 3d 0a 28 64  | r.js2-ASSIGN_DIV.99).....;./=.(d | 
| 64c0 |  65 66 76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e    5f 4d 4f 44 20 31 30 30 29 20 20 20 20 3b 20 25  | efvar.js2-ASSIGN_MOD.100)....;.% | 
| 64e0 |  3d 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53    53 49 47 4e 5f 45 58 50 4f 4e 20 31 30 31 29 20  | =.(defvar.js2-ASSIGN_EXPON.101). | 
| 6500 |  20 3b 20 2a 2a 3d 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 41 53 53 49 47 4e 5f 41 4e 44 20 31 30  | .;.**=.(defvar.js2-ASSIGN_AND.10 | 
| 6520 |  32 29 20 20 20 20 3b 20 26 26 3d 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4f  | 2)....;.&&=.(defvar.js2-ASSIGN_O | 
| 6540 |  52 20 31 30 33 29 20 20 20 20 20 3b 20 7c 7c 3d    0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 53 53  | R.103).....;.||=.(defvar.js2-ASS | 
| 6560 |  49 47 4e 5f 4e 55 4c 4c 49 53 48 20 31 30 34 29    20 3b 20 3f 3f 3d 0a 0a 28 64 65 66 76 61 72 20  | IGN_NULLISH.104).;.??=..(defvar. | 
| 6580 |  6a 73 32 2d 66 69 72 73 74 2d 61 73 73 69 67 6e    20 6a 73 32 2d 41 53 53 49 47 4e 29 0a 28 64 65  | js2-first-assign.js2-ASSIGN).(de | 
| 65a0 |  66 76 61 72 20 6a 73 32 2d 6c 61 73 74 2d 61 73    73 69 67 6e 20 6a 73 32 2d 41 53 53 49 47 4e 5f  | fvar.js2-last-assign.js2-ASSIGN_ | 
| 65c0 |  4e 55 4c 4c 49 53 48 29 0a 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 43 4f 4c 4f 4e 20 31 30 35 29  | NULLISH)..(defvar.js2-COLON.105) | 
| 65e0 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4f 52 20    31 30 36 29 20 20 20 20 20 20 20 20 20 20 20 20  | .(defvar.js2-OR.106)............ | 
| 6600 |  3b 20 6c 6f 67 69 63 61 6c 20 6f 72 20 28 7c 7c    29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 4e  | ;.logical.or.(||).(defvar.js2-AN | 
| 6620 |  44 20 31 30 37 29 20 20 20 20 20 20 20 20 20 20    20 3b 20 6c 6f 67 69 63 61 6c 20 61 6e 64 20 28  | D.107)...........;.logical.and.( | 
| 6640 |  26 26 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    49 4e 43 20 31 30 38 29 20 20 20 20 20 20 20 20  | &&).(defvar.js2-INC.108)........ | 
| 6660 |  20 20 20 3b 20 69 6e 63 72 65 6d 65 6e 74 2f 64    65 63 72 65 6d 65 6e 74 20 28 2b 2b 20 2d 2d 29  | ...;.increment/decrement.(++.--) | 
| 6680 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 44 45 43    20 31 30 39 29 0a 28 64 65 66 76 61 72 20 6a 73  | .(defvar.js2-DEC.109).(defvar.js | 
| 66a0 |  32 2d 44 4f 54 20 31 31 30 29 20 20 20 20 20 20    20 20 20 20 20 3b 20 6d 65 6d 62 65 72 20 6f 70  | 2-DOT.110)...........;.member.op | 
| 66c0 |  65 72 61 74 6f 72 20 28 2e 29 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 20  | erator.(.).(defvar.js2-FUNCTION. | 
| 66e0 |  31 31 31 29 20 20 20 20 20 20 3b 20 66 75 6e 63    74 69 6f 6e 20 6b 65 79 77 6f 72 64 0a 28 64 65  | 111)......;.function.keyword.(de | 
| 6700 |  66 76 61 72 20 6a 73 32 2d 45 58 50 4f 52 54 20    31 31 32 29 20 20 20 20 20 20 20 20 3b 20 65 78  | fvar.js2-EXPORT.112)........;.ex | 
| 6720 |  70 6f 72 74 20 6b 65 79 77 6f 72 64 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 49 4d 50 4f 52 54 20  | port.keyword.(defvar.js2-IMPORT. | 
| 6740 |  31 31 33 29 20 20 20 20 20 20 20 20 3b 20 69 6d    70 6f 72 74 20 6b 65 79 77 6f 72 64 0a 28 64 65  | 113)........;.import.keyword.(de | 
| 6760 |  66 76 61 72 20 6a 73 32 2d 49 46 20 31 31 34 29    20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66  | fvar.js2-IF.114)............;.if | 
| 6780 |  20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 45 4c 53 45 20 31 31 35 29 20 20  | .keyword.(defvar.js2-ELSE.115).. | 
| 67a0 |  20 20 20 20 20 20 20 20 3b 20 65 6c 73 65 20 6b    65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a  | ........;.else.keyword.(defvar.j | 
| 67c0 |  73 32 2d 53 57 49 54 43 48 20 31 31 36 29 20 20    20 20 20 20 20 20 3b 20 73 77 69 74 63 68 20 6b  | s2-SWITCH.116)........;.switch.k | 
| 67e0 |  65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 43 41 53 45 20 31 31 37 29 20 20 20 20  | eyword.(defvar.js2-CASE.117).... | 
| 6800 |  20 20 20 20 20 20 3b 20 63 61 73 65 20 6b 65 79    77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32  | ......;.case.keyword.(defvar.js2 | 
| 6820 |  2d 44 45 46 41 55 4c 54 20 31 31 38 29 20 20 20    20 20 20 20 3b 20 64 65 66 61 75 6c 74 20 6b 65  | -DEFAULT.118).......;.default.ke | 
| 6840 |  79 77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73    32 2d 57 48 49 4c 45 20 31 31 39 29 20 20 20 20  | yword.(defvar.js2-WHILE.119).... | 
| 6860 |  20 20 20 20 20 3b 20 77 68 69 6c 65 20 6b 65 79    77 6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32  | .....;.while.keyword.(defvar.js2 | 
| 6880 |  2d 44 4f 20 31 32 30 29 20 20 20 20 20 20 20 20    20 20 20 20 3b 20 64 6f 20 6b 65 79 77 6f 72 64  | -DO.120)............;.do.keyword | 
| 68a0 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 46 4f 52    20 31 32 31 29 20 20 20 20 20 20 20 20 20 20 20  | .(defvar.js2-FOR.121)........... | 
| 68c0 |  3b 20 66 6f 72 20 6b 65 79 77 6f 72 64 0a 28 64    65 66 76 61 72 20 6a 73 32 2d 42 52 45 41 4b 20  | ;.for.keyword.(defvar.js2-BREAK. | 
| 68e0 |  31 32 32 29 20 20 20 20 20 20 20 20 20 3b 20 62    72 65 61 6b 20 6b 65 79 77 6f 72 64 0a 28 64 65  | 122).........;.break.keyword.(de | 
| 6900 |  66 76 61 72 20 6a 73 32 2d 43 4f 4e 54 49 4e 55    45 20 31 32 33 29 20 20 20 20 20 20 3b 20 63 6f  | fvar.js2-CONTINUE.123)......;.co | 
| 6920 |  6e 74 69 6e 75 65 20 6b 65 79 77 6f 72 64 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 56 41 52 20 31  | ntinue.keyword.(defvar.js2-VAR.1 | 
| 6940 |  32 34 29 20 20 20 20 20 20 20 20 20 20 20 3b 20    76 61 72 20 6b 65 79 77 6f 72 64 0a 28 64 65 66  | 24)...........;.var.keyword.(def | 
| 6960 |  76 61 72 20 6a 73 32 2d 57 49 54 48 20 31 32 35    29 20 20 20 20 20 20 20 20 20 20 3b 20 77 69 74  | var.js2-WITH.125)..........;.wit | 
| 6980 |  68 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 43 41 54 43 48 20 31 32 36 29  | h.keyword.(defvar.js2-CATCH.126) | 
| 69a0 |  20 20 20 20 20 20 20 20 20 3b 20 63 61 74 63 68    20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72  | .........;.catch.keyword.(defvar | 
| 69c0 |  20 6a 73 32 2d 46 49 4e 41 4c 4c 59 20 31 32 37    29 20 20 20 20 20 20 20 3b 20 66 69 6e 61 6c 6c  | .js2-FINALLY.127).......;.finall | 
| 69e0 |  79 20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 56 4f 49 44 20 31 32 38 29 20  | y.keyword.(defvar.js2-VOID.128). | 
| 6a00 |  20 20 20 20 20 20 20 20 20 3b 20 76 6f 69 64 20    6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72 20  | .........;.void.keyword.(defvar. | 
| 6a20 |  6a 73 32 2d 52 45 53 45 52 56 45 44 20 31 32 39    29 20 20 20 20 20 20 3b 20 72 65 73 65 72 76 65  | js2-RESERVED.129)......;.reserve | 
| 6a40 |  64 20 6b 65 79 77 6f 72 64 73 0a 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 45 4d 50 54 59 20 31 33  | d.keywords..(defvar.js2-EMPTY.13 | 
| 6a60 |  30 29 0a 0a 3b 3b 20 54 79 70 65 73 20 75 73 65    64 20 66 6f 72 20 74 68 65 20 70 61 72 73 65 20  | 0)..;;.Types.used.for.the.parse. | 
| 6a80 |  74 72 65 65 20 2d 20 6e 65 76 65 72 20 72 65 74    75 72 6e 65 64 20 62 79 20 73 63 61 6e 6e 65 72  | tree.-.never.returned.by.scanner | 
| 6aa0 |  2e 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 42    4c 4f 43 4b 20 31 33 31 29 20 20 20 20 20 20 20  | ...(defvar.js2-BLOCK.131)....... | 
| 6ac0 |  20 20 3b 20 73 74 61 74 65 6d 65 6e 74 20 62 6c    6f 63 6b 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | ..;.statement.block.(defvar.js2- | 
| 6ae0 |  4c 41 42 45 4c 20 31 33 32 29 20 20 20 20 20 20    20 20 20 3b 20 6c 61 62 65 6c 0a 28 64 65 66 76  | LABEL.132).........;.label.(defv | 
| 6b00 |  61 72 20 6a 73 32 2d 54 41 52 47 45 54 20 31 33    33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4c  | ar.js2-TARGET.133).(defvar.js2-L | 
| 6b20 |  4f 4f 50 20 31 33 34 29 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 45 58 50 52 5f 56 4f 49 44 20 31  | OOP.134).(defvar.js2-EXPR_VOID.1 | 
| 6b40 |  33 35 29 20 20 20 20 20 3b 20 65 78 70 72 65 73    73 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 20 69  | 35).....;.expression.statement.i | 
| 6b60 |  6e 20 66 75 6e 63 74 69 6f 6e 73 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 45 58 50 52 5f 52 45 53  | n.functions.(defvar.js2-EXPR_RES | 
| 6b80 |  55 4c 54 20 31 33 36 29 20 20 20 3b 20 65 78 70    72 65 73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e  | ULT.136)...;.expression.statemen | 
| 6ba0 |  74 20 69 6e 20 73 63 72 69 70 74 73 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 4a 53 52 20 31 33 37  | t.in.scripts.(defvar.js2-JSR.137 | 
| 6bc0 |  29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 53 43    52 49 50 54 20 31 33 38 29 20 20 20 20 20 20 20  | ).(defvar.js2-SCRIPT.138)....... | 
| 6be0 |  20 3b 20 74 6f 70 2d 6c 65 76 65 6c 20 6e 6f 64    65 20 66 6f 72 20 65 6e 74 69 72 65 20 73 63 72  | .;.top-level.node.for.entire.scr | 
| 6c00 |  69 70 74 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    54 59 50 45 4f 46 4e 41 4d 45 20 31 33 39 29 20  | ipt.(defvar.js2-TYPEOFNAME.139). | 
| 6c20 |  20 20 20 3b 20 66 6f 72 20 74 79 70 65 6f 66 28    73 69 6d 70 6c 65 2d 6e 61 6d 65 29 0a 28 64 65  | ...;.for.typeof(simple-name).(de | 
| 6c40 |  66 76 61 72 20 6a 73 32 2d 55 53 45 5f 53 54 41    43 4b 20 31 34 30 29 0a 28 64 65 66 76 61 72 20  | fvar.js2-USE_STACK.140).(defvar. | 
| 6c60 |  6a 73 32 2d 53 45 54 50 52 4f 50 5f 4f 50 20 31    34 31 29 20 20 20 20 3b 20 78 2e 79 20 6f 70 3d  | js2-SETPROP_OP.141)....;.x.y.op= | 
| 6c80 |  20 73 6f 6d 65 74 68 69 6e 67 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 53 45 54 45 4c 45 4d 5f 4f  | .something.(defvar.js2-SETELEM_O | 
| 6ca0 |  50 20 31 34 32 29 20 20 20 20 3b 20 78 5b 79 5d    20 6f 70 3d 20 73 6f 6d 65 74 68 69 6e 67 0a 28  | P.142)....;.x[y].op=.something.( | 
| 6cc0 |  64 65 66 76 61 72 20 6a 73 32 2d 4c 4f 43 41 4c    5f 42 4c 4f 43 4b 20 31 34 33 29 0a 28 64 65 66  | defvar.js2-LOCAL_BLOCK.143).(def | 
| 6ce0 |  76 61 72 20 6a 73 32 2d 53 45 54 5f 52 45 46 5f    4f 50 20 31 34 34 29 20 20 20 20 3b 20 2a 72 65  | var.js2-SET_REF_OP.144)....;.*re | 
| 6d00 |  66 65 72 65 6e 63 65 20 6f 70 3d 20 73 6f 6d 65    74 68 69 6e 67 0a 0a 3b 3b 20 46 6f 72 20 58 4d  | ference.op=.something..;;.For.XM | 
| 6d20 |  4c 20 73 75 70 70 6f 72 74 3a 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 44 4f 54 44 4f 54 20 31 34  | L.support:.(defvar.js2-DOTDOT.14 | 
| 6d40 |  35 29 20 20 20 20 20 20 20 20 3b 20 6d 65 6d 62    65 72 20 6f 70 65 72 61 74 6f 72 20 28 2e 2e 29  | 5)........;.member.operator.(..) | 
| 6d60 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 43 4f 4c    4f 4e 43 4f 4c 4f 4e 20 31 34 36 29 20 20 20 20  | .(defvar.js2-COLONCOLON.146).... | 
| 6d80 |  3b 20 6e 61 6d 65 73 70 61 63 65 3a 3a 6e 61 6d    65 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 58 4d  | ;.namespace::name.(defvar.js2-XM | 
| 6da0 |  4c 20 31 34 37 29 20 20 20 20 20 20 20 20 20 20    20 3b 20 58 4d 4c 20 74 79 70 65 0a 28 64 65 66  | L.147)...........;.XML.type.(def | 
| 6dc0 |  76 61 72 20 6a 73 32 2d 44 4f 54 51 55 45 52 59    20 31 34 38 29 20 20 20 20 20 20 3b 20 2e 28 29  | var.js2-DOTQUERY.148)......;..() | 
| 6de0 |  20 2d 2d 20 65 2e 67 2e 2c 20 78 2e 65 6d 70 73    2e 65 6d 70 2e 28 6e 61 6d 65 20 3d 3d 20 22 74  | .--.e.g.,.x.emps.emp.(name.==."t | 
| 6e00 |  65 72 72 79 22 29 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 58 4d 4c 41 54 54 52 20 31 34 39 29 20  | erry").(defvar.js2-XMLATTR.149). | 
| 6e20 |  20 20 20 20 20 20 3b 20 40 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 58 4d 4c 45 4e 44 20 31 35 30  | ......;.@.(defvar.js2-XMLEND.150 | 
| 6e40 |  29 0a 0a 3b 3b 20 4f 70 74 69 6d 69 7a 65 72 2d    6f 6e 6c 79 20 74 6f 6b 65 6e 73 0a 28 64 65 66  | )..;;.Optimizer-only.tokens.(def | 
| 6e60 |  76 61 72 20 6a 73 32 2d 54 4f 5f 4f 42 4a 45 43    54 20 31 35 31 29 0a 28 64 65 66 76 61 72 20 6a  | var.js2-TO_OBJECT.151).(defvar.j | 
| 6e80 |  73 32 2d 54 4f 5f 44 4f 55 42 4c 45 20 31 35 32    29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 47  | s2-TO_DOUBLE.152)..(defvar.js2-G | 
| 6ea0 |  45 54 20 31 35 33 29 20 20 20 20 20 20 20 20 20    20 20 3b 20 4a 53 20 31 2e 35 20 67 65 74 20 70  | ET.153)...........;.JS.1.5.get.p | 
| 6ec0 |  73 65 75 64 6f 20 6b 65 79 77 6f 72 64 0a 28 64    65 66 76 61 72 20 6a 73 32 2d 53 45 54 20 31 35  | seudo.keyword.(defvar.js2-SET.15 | 
| 6ee0 |  34 29 20 20 20 20 20 20 20 20 20 20 20 3b 20 4a    53 20 31 2e 35 20 73 65 74 20 70 73 65 75 64 6f  | 4)...........;.JS.1.5.set.pseudo | 
| 6f00 |  20 6b 65 79 77 6f 72 64 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 4c 45 54 20 31 35 35 29 20 20 20  | .keyword.(defvar.js2-LET.155)... | 
| 6f20 |  20 20 20 20 20 20 20 20 3b 20 4a 53 20 31 2e 37    20 6c 65 74 20 70 73 65 75 64 6f 20 6b 65 79 77  | ........;.JS.1.7.let.pseudo.keyw | 
| 6f40 |  6f 72 64 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    43 4f 4e 53 54 20 31 35 36 29 0a 28 64 65 66 76  | ord.(defvar.js2-CONST.156).(defv | 
| 6f60 |  61 72 20 6a 73 32 2d 53 45 54 43 4f 4e 53 54 20    31 35 37 29 0a 28 64 65 66 76 61 72 20 6a 73 32  | ar.js2-SETCONST.157).(defvar.js2 | 
| 6f80 |  2d 53 45 54 43 4f 4e 53 54 56 41 52 20 31 35 38    29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 41 52  | -SETCONSTVAR.158).(defvar.js2-AR | 
| 6fa0 |  52 41 59 43 4f 4d 50 20 31 35 39 29 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 4c 45 54 45 58 50 52  | RAYCOMP.159).(defvar.js2-LETEXPR | 
| 6fc0 |  20 31 36 30 29 0a 28 64 65 66 76 61 72 20 6a 73    32 2d 57 49 54 48 45 58 50 52 20 31 36 31 29 0a  | .160).(defvar.js2-WITHEXPR.161). | 
| 6fe0 |  28 64 65 66 76 61 72 20 6a 73 32 2d 44 45 42 55    47 47 45 52 20 31 36 32 29 0a 0a 28 64 65 66 76  | (defvar.js2-DEBUGGER.162)..(defv | 
| 7000 |  61 72 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 20 31    36 33 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | ar.js2-COMMENT.163).(defvar.js2- | 
| 7020 |  54 52 49 50 4c 45 44 4f 54 20 31 36 34 29 20 20    20 20 20 3b 20 66 6f 72 20 72 65 73 74 20 70 61  | TRIPLEDOT.164).....;.for.rest.pa | 
| 7040 |  72 61 6d 65 74 65 72 0a 28 64 65 66 76 61 72 20    6a 73 32 2d 41 52 52 4f 57 20 31 36 35 29 20 20  | rameter.(defvar.js2-ARROW.165).. | 
| 7060 |  20 20 20 20 20 20 20 3b 20 66 75 6e 63 74 69 6f    6e 20 61 72 72 6f 77 20 28 3d 3e 29 0a 28 64 65  | .......;.function.arrow.(=>).(de | 
| 7080 |  66 76 61 72 20 6a 73 32 2d 43 4c 41 53 53 20 31    36 36 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | fvar.js2-CLASS.166).(defvar.js2- | 
| 70a0 |  45 58 54 45 4e 44 53 20 31 36 37 29 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 53 55 50 45 52 20 31  | EXTENDS.167).(defvar.js2-SUPER.1 | 
| 70c0 |  36 38 29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d    54 45 4d 50 4c 41 54 45 5f 48 45 41 44 20 31 36  | 68).(defvar.js2-TEMPLATE_HEAD.16 | 
| 70e0 |  39 29 20 20 20 20 3b 20 70 61 72 74 20 6f 66 20    74 65 6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c  | 9)....;.part.of.template.literal | 
| 7100 |  20 62 65 66 6f 72 65 20 73 75 62 73 74 69 74 75    74 69 6f 6e 0a 28 64 65 66 76 61 72 20 6a 73 32  | .before.substitution.(defvar.js2 | 
| 7120 |  2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54    45 20 31 37 30 29 20 3b 20 74 65 6d 70 6c 61 74  | -NO_SUBS_TEMPLATE.170).;.templat | 
| 7140 |  65 20 6c 69 74 65 72 61 6c 20 77 69 74 68 6f 75    74 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 0a  | e.literal.without.substitutions. | 
| 7160 |  28 64 65 66 76 61 72 20 6a 73 32 2d 54 41 47 47    45 44 5f 54 45 4d 50 4c 41 54 45 20 31 37 31 29  | (defvar.js2-TAGGED_TEMPLATE.171) | 
| 7180 |  20 20 3b 20 74 61 67 67 65 64 20 74 65 6d 70 6c    61 74 65 20 6c 69 74 65 72 61 6c 0a 0a 28 64 65  | ..;.tagged.template.literal..(de | 
| 71a0 |  66 76 61 72 20 6a 73 32 2d 41 57 41 49 54 20 31    37 32 29 20 20 3b 20 61 77 61 69 74 20 28 70 73  | fvar.js2-AWAIT.172)..;.await.(ps | 
| 71c0 |  65 75 64 6f 20 6b 65 79 77 6f 72 64 29 0a 0a 28    64 65 66 76 61 72 20 6a 73 32 2d 48 4f 4f 4b 20  | eudo.keyword)..(defvar.js2-HOOK. | 
| 71e0 |  31 37 33 29 20 20 20 20 20 20 20 20 20 20 3b 20    63 6f 6e 64 69 74 69 6f 6e 61 6c 20 28 3f 3a 29  | 173)..........;.conditional.(?:) | 
| 7200 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 4f 50 54    49 4f 4e 41 4c 2d 43 48 41 49 4e 49 4e 47 20 31  | .(defvar.js2-OPTIONAL-CHAINING.1 | 
| 7220 |  37 34 29 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 63    68 61 69 6e 69 6e 67 20 28 3f 2e 70 72 6f 70 20  | 74).;.optional.chaining.(?.prop. | 
| 7240 |  6f 62 6a 3f 2e 5b 65 78 70 72 5d 20 66 75 6e 63    3f 2e 28 29 29 0a 28 64 65 66 76 61 72 20 6a 73  | obj?.[expr].func?.()).(defvar.js | 
| 7260 |  32 2d 45 58 50 4f 4e 20 31 37 35 29 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 4e 55 4c 4c 49 53 48  | 2-EXPON.175).(defvar.js2-NULLISH | 
| 7280 |  2d 43 4f 41 4c 45 53 43 49 4e 47 20 31 37 36 29    20 3b 20 6e 75 6c 6c 69 73 68 20 63 6f 61 6c 65  | -COALESCING.176).;.nullish.coale | 
| 72a0 |  73 63 69 6e 67 20 28 6f 62 6a 2e 76 61 6c 75 65    20 3f 3f 20 6f 62 6a 2e 64 65 66 61 75 6c 74 56  | scing.(obj.value.??.obj.defaultV | 
| 72c0 |  61 6c 75 65 20 3f 3f 20 30 29 29 0a 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 50 52 49 56 41 54 45  | alue.??.0))..(defvar.js2-PRIVATE | 
| 72e0 |  5f 4e 41 4d 45 20 31 37 37 29 20 20 20 20 20 20    3b 20 74 68 69 73 2e 23 62 61 72 28 29 3b 0a 0a  | _NAME.177)......;.this.#bar();.. | 
| 7300 |  28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6e 75    6d 2d 74 6f 6b 65 6e 73 20 28 31 2b 20 6a 73 32  | (defconst.js2-num-tokens.(1+.js2 | 
| 7320 |  2d 50 52 49 56 41 54 45 5f 4e 41 4d 45 29 29 0a    0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 64  | -PRIVATE_NAME))..(defconst.js2-d | 
| 7340 |  65 62 75 67 2d 70 72 69 6e 74 2d 74 72 65 65 73    20 6e 69 6c 29 0a 0a 3b 3b 20 52 68 69 6e 6f 20  | ebug-print-trees.nil)..;;.Rhino. | 
| 7360 |  61 63 63 65 70 74 73 20 61 6e 79 20 73 74 72 69    6e 67 20 6f 72 20 73 74 72 65 61 6d 20 61 73 20  | accepts.any.string.or.stream.as. | 
| 7380 |  69 6e 70 75 74 2e 20 20 45 6d 61 63 73 20 63 68    61 72 61 63 74 65 72 0a 3b 3b 20 70 72 6f 63 65  | input...Emacs.character.;;.proce | 
| 73a0 |  73 73 69 6e 67 20 77 6f 72 6b 73 20 62 65 73 74    20 69 6e 20 62 75 66 66 65 72 73 2c 20 73 6f 20  | ssing.works.best.in.buffers,.so. | 
| 73c0 |  77 65 27 6c 6c 20 61 73 73 75 6d 65 20 74 68 65    20 69 6e 70 75 74 20 69 73 20 61 0a 3b 3b 20 62  | we'll.assume.the.input.is.a.;;.b | 
| 73e0 |  75 66 66 65 72 2e 20 20 4a 61 76 61 53 63 72 69    70 74 20 73 74 72 69 6e 67 73 20 63 61 6e 20 62  | uffer...JavaScript.strings.can.b | 
| 7400 |  65 20 63 6f 70 69 65 64 20 69 6e 74 6f 20 74 65    6d 70 20 62 75 66 66 65 72 73 20 62 65 66 6f 72  | e.copied.into.temp.buffers.befor | 
| 7420 |  65 0a 3b 3b 20 73 63 61 6e 6e 69 6e 67 20 74 68    65 6d 2e 0a 0a 3b 3b 20 42 75 66 66 65 72 2d 6c  | e.;;.scanning.them...;;.Buffer-l | 
| 7440 |  6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 79    69 65 6c 64 20 6d 75 63 68 20 63 6c 65 61 6e 65  | ocal.variables.yield.much.cleane | 
| 7460 |  72 20 63 6f 64 65 20 74 68 61 6e 20 75 73 69 6e    67 20 60 64 65 66 73 74 72 75 63 74 27 2e 0a 3b  | r.code.than.using.`defstruct'..; | 
| 7480 |  3b 20 54 68 65 79 27 72 65 20 74 68 65 20 45 6d    61 63 73 20 65 71 75 69 76 61 6c 65 6e 74 20 6f  | ;.They're.the.Emacs.equivalent.o | 
| 74a0 |  66 20 69 6e 73 74 61 6e 63 65 20 76 61 72 69 61    62 6c 65 73 2c 20 6d 6f 72 65 20 6f 72 20 6c 65  | f.instance.variables,.more.or.le | 
| 74c0 |  73 73 2e 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63    61 6c 20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d  | ss...(js2-deflocal.js2-ts-dirty- | 
| 74e0 |  6c 69 6e 65 20 6e 69 6c 0a 20 20 22 54 6f 6b 65    6e 20 73 74 72 65 61 6d 20 62 75 66 66 65 72 2d  | line.nil..."Token.stream.buffer- | 
| 7500 |  6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 2e 0a    49 6e 64 69 63 61 74 65 73 20 73 74 75 66 66 20  | local.variable..Indicates.stuff. | 
| 7520 |  6f 74 68 65 72 20 74 68 61 6e 20 77 68 69 74 65    73 70 61 63 65 20 73 69 6e 63 65 20 73 74 61 72  | other.than.whitespace.since.star | 
| 7540 |  74 20 6f 66 20 6c 69 6e 65 2e 22 29 0a 0a 28 6a    73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d  | t.of.line.")..(js2-deflocal.js2- | 
| 7560 |  74 73 2d 68 69 74 2d 65 6f 66 20 6e 69 6c 0a 20    20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62  | ts-hit-eof.nil..."Token.stream.b | 
| 7580 |  75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69    61 62 6c 65 2e 22 29 0a 0a 3b 3b 20 46 49 58 4d  | uffer-local.variable.")..;;.FIXM | 
| 75a0 |  45 3a 20 55 6e 75 73 65 64 2e 0a 28 6a 73 32 2d    64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d  | E:.Unused..(js2-deflocal.js2-ts- | 
| 75c0 |  6c 69 6e 65 2d 73 74 61 72 74 20 30 0a 20 20 22    54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66  | line-start.0..."Token.stream.buf | 
| 75e0 |  66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62    6c 65 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c  | fer-local.variable.")..(js2-defl | 
| 7600 |  6f 63 61 6c 20 6a 73 32 2d 74 73 2d 6c 69 6e 65    6e 6f 20 31 0a 20 20 22 54 6f 6b 65 6e 20 73 74  | ocal.js2-ts-lineno.1..."Token.st | 
| 7620 |  72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63 61    6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 3b  | ream.buffer-local.variable.")..; | 
| 7640 |  3b 20 46 49 58 4d 45 3a 20 55 6e 75 73 65 64 2e    0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a  | ;.FIXME:.Unused..(js2-deflocal.j | 
| 7660 |  73 32 2d 74 73 2d 6c 69 6e 65 2d 65 6e 64 2d 63    68 61 72 20 2d 31 0a 20 20 22 54 6f 6b 65 6e 20  | s2-ts-line-end-char.-1..."Token. | 
| 7680 |  73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f    63 61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a  | stream.buffer-local.variable."). | 
| 76a0 |  0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 20 31 20 20  | .(js2-deflocal.js2-ts-cursor.1.. | 
| 76c0 |  3b 20 65 6d 61 63 73 20 62 75 66 66 65 72 73 20    61 72 65 20 31 2d 69 6e 64 65 78 65 64 0a 20 20  | ;.emacs.buffers.are.1-indexed... | 
| 76e0 |  22 54 6f 6b 65 6e 20 73 74 72 65 61 6d 20 62 75    66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61  | "Token.stream.buffer-local.varia | 
| 7700 |  62 6c 65 2e 0a 43 75 72 72 65 6e 74 20 73 63 61    6e 20 70 6f 73 69 74 69 6f 6e 2e 22 29 0a 0a 3b  | ble..Current.scan.position.")..; | 
| 7720 |  3b 20 46 49 58 4d 45 3a 20 55 6e 75 73 65 64 2e    0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a  | ;.FIXME:.Unused..(js2-deflocal.j | 
| 7740 |  73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74    72 69 62 75 74 65 20 6e 69 6c 0a 20 20 22 54 6f  | s2-ts-is-xml-attribute.nil..."To | 
| 7760 |  6b 65 6e 20 73 74 72 65 61 6d 20 62 75 66 66 65    72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65  | ken.stream.buffer-local.variable | 
| 7780 |  2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63    61 6c 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73  | .")..(js2-deflocal.js2-ts-xml-is | 
| 77a0 |  2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69 6c    0a 20 20 22 54 6f 6b 65 6e 20 73 74 72 65 61 6d  | -tag-content.nil..."Token.stream | 
| 77c0 |  20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61    72 69 61 62 6c 65 2e 22 29 0a 0a 28 6a 73 32 2d  | .buffer-local.variable.")..(js2- | 
| 77e0 |  64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74 73 2d    78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 6f  | deflocal.js2-ts-xml-open-tags-co | 
| 7800 |  75 6e 74 20 30 0a 20 20 22 54 6f 6b 65 6e 20 73    74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f 63  | unt.0..."Token.stream.buffer-loc | 
| 7820 |  61 6c 20 76 61 72 69 61 62 6c 65 2e 22 29 0a 0a    28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73  | al.variable.")..(js2-deflocal.js | 
| 7840 |  32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66    65 72 20 6e 69 6c 0a 20 20 22 54 6f 6b 65 6e 20  | 2-ts-string-buffer.nil..."Token. | 
| 7860 |  73 74 72 65 61 6d 20 62 75 66 66 65 72 2d 6c 6f    63 61 6c 20 76 61 72 69 61 62 6c 65 2e 0a 4c 69  | stream.buffer-local.variable..Li | 
| 7880 |  73 74 20 6f 66 20 63 68 61 72 73 20 62 75 69 6c    74 20 75 70 20 77 68 69 6c 65 20 73 63 61 6e 6e  | st.of.chars.built.up.while.scann | 
| 78a0 |  69 6e 67 20 76 61 72 69 6f 75 73 20 74 6f 6b 65    6e 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 73 74  | ing.various.tokens.")..(cl-defst | 
| 78c0 |  72 75 63 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ruct.(js2-token................( | 
| 78e0 |  3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b    65 2d 6a 73 32 2d 74 6f 6b 65 6e 20 28 62 65 67  | :constructor.make-js2-token.(beg | 
| 7900 |  29 29 29 0a 20 20 22 56 61 6c 75 65 20 72 65 74    75 72 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 74  | )))..."Value.returned.from.the.t | 
| 7920 |  6f 6b 65 6e 20 73 74 72 65 61 6d 2e 22 0a 20 20    28 74 79 70 65 20 6a 73 32 2d 45 4f 46 29 0a 20  | oken.stream."...(type.js2-EOF).. | 
| 7940 |  20 28 62 65 67 20 31 29 0a 20 20 28 65 6e 64 20    2d 31 29 0a 20 20 28 73 74 72 69 6e 67 20 22 22  | .(beg.1)...(end.-1)...(string."" | 
| 7960 |  29 0a 20 20 6e 75 6d 62 65 72 0a 20 20 6e 75 6d    62 65 72 2d 62 61 73 65 0a 20 20 6e 75 6d 62 65  | )...number...number-base...numbe | 
| 7980 |  72 2d 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70    0a 20 20 72 65 67 65 78 70 2d 66 6c 61 67 73 0a  | r-legacy-octal-p...regexp-flags. | 
| 79a0 |  20 20 63 6f 6d 6d 65 6e 74 2d 74 79 70 65 0a 20    20 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 2d 70 29 0a  | ..comment-type...follows-eol-p). | 
| 79c0 |  0a 3b 3b 20 48 61 76 65 20 74 6f 20 63 61 6c 6c    20 60 6a 73 32 2d 69 6e 69 74 2d 73 63 61 6e 6e  | .;;.Have.to.call.`js2-init-scann | 
| 79e0 |  65 72 27 20 74 6f 20 69 6e 69 74 69 61 6c 69 7a    65 20 74 68 65 20 76 61 6c 75 65 73 2e 0a 28 6a  | er'.to.initialize.the.values..(j | 
| 7a00 |  73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d    74 69 2d 74 6f 6b 65 6e 73 20 6e 69 6c 29 0a 28  | s2-deflocal.js2-ti-tokens.nil).( | 
| 7a20 |  6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32    2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f  | js2-deflocal.js2-ti-tokens-curso | 
| 7a40 |  72 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c    6f 63 61 6c 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b  | r.nil).(js2-deflocal.js2-ti-look | 
| 7a60 |  61 68 65 61 64 20 6e 69 6c 29 0a 0a 28 63 6c 2d    64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 74  | ahead.nil)..(cl-defstruct.(js2-t | 
| 7a80 |  73 2d 73 74 61 74 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75  | s-state................(:constru | 
| 7aa0 |  63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 74 73    2d 73 74 61 74 65 20 28 26 6b 65 79 20 28 6c 69  | ctor.make-js2-ts-state.(&key.(li | 
| 7ac0 |  6e 65 6e 6f 20 6a 73 32 2d 74 73 2d 6c 69 6e 65    6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | neno.js2-ts-lineno)............. | 
| 7ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 7b00 |  20 20 20 20 20 20 20 20 20 28 63 75 72 73 6f 72    20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a  | .........(cursor.js2-ts-cursor). | 
| 7b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 7b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 74 6f 6b 65 6e 73 20 28 63 6f  | .....................(tokens.(co | 
| 7b60 |  70 79 2d 73 65 71 75 65 6e 63 65 20 6a 73 32 2d    74 69 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20  | py-sequence.js2-ti-tokens))..... | 
| 7b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 7ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20  | .................(tokens-cursor. | 
| 7bc0 |  6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75    72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20  | js2-ti-tokens-cursor)........... | 
| 7be0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 7c00 |  20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b    61 68 65 61 64 20 6a 73 32 2d 74 69 2d 6c 6f 6f  | ...........(lookahead.js2-ti-loo | 
| 7c20 |  6b 61 68 65 61 64 29 29 29 29 0a 20 20 6c 69 6e    65 6e 6f 0a 20 20 63 75 72 73 6f 72 0a 20 20 74  | kahead))))...lineno...cursor...t | 
| 7c40 |  6f 6b 65 6e 73 0a 20 20 74 6f 6b 65 6e 73 2d 63    75 72 73 6f 72 0a 20 20 6c 6f 6f 6b 61 68 65 61  | okens...tokens-cursor...lookahea | 
| 7c60 |  64 29 0a 0a 3b 3b 3b 20 50 61 72 73 65 72 20 76    61 72 69 61 62 6c 65 73 0a 0a 28 6a 73 32 2d 64  | d)..;;;.Parser.variables..(js2-d | 
| 7c80 |  65 66 6c 6f 63 61 6c 20 6a 73 32 2d 70 61 72 73    65 64 2d 65 72 72 6f 72 73 20 6e 69 6c 0a 20 20  | eflocal.js2-parsed-errors.nil... | 
| 7ca0 |  22 4c 69 73 74 20 6f 66 20 65 72 72 6f 72 73 20    70 72 6f 64 75 63 65 64 20 64 75 72 69 6e 67 20  | "List.of.errors.produced.during. | 
| 7cc0 |  73 63 61 6e 6e 69 6e 67 2f 70 61 72 73 69 6e 67    2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63  | scanning/parsing.")..(js2-defloc | 
| 7ce0 |  61 6c 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61    72 6e 69 6e 67 73 20 6e 69 6c 0a 20 20 22 4c 69  | al.js2-parsed-warnings.nil..."Li | 
| 7d00 |  73 74 20 6f 66 20 77 61 72 6e 69 6e 67 73 20 70    72 6f 64 75 63 65 64 20 64 75 72 69 6e 67 20 73  | st.of.warnings.produced.during.s | 
| 7d20 |  63 61 6e 6e 69 6e 67 2f 70 61 72 73 69 6e 67 2e    22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61  | canning/parsing.")..(js2-defloca | 
| 7d40 |  6c 20 6a 73 32 2d 72 65 63 6f 76 65 72 2d 66 72    6f 6d 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 20  | l.js2-recover-from-parse-errors. | 
| 7d60 |  74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20    63 6f 6e 74 69 6e 75 65 20 70 61 72 73 69 6e 67  | t..."Non-nil.to.continue.parsing | 
| 7d80 |  20 61 66 74 65 72 20 61 20 73 79 6e 74 61 78 20    65 72 72 6f 72 2e 0a 0a 49 6e 20 72 65 63 6f 76  | .after.a.syntax.error...In.recov | 
| 7da0 |  65 72 79 20 6d 6f 64 65 2c 20 74 68 65 20 41 53    54 20 77 69 6c 6c 20 62 65 20 62 75 69 6c 74 20  | ery.mode,.the.AST.will.be.built. | 
| 7dc0 |  69 6e 20 66 75 6c 6c 2c 20 61 6e 64 20 61 6e 79    20 65 72 72 6f 72 0a 6e 6f 64 65 73 20 77 69 6c  | in.full,.and.any.error.nodes.wil | 
| 7de0 |  6c 20 62 65 20 66 6c 61 67 67 65 64 20 77 69 74    68 20 61 70 70 72 6f 70 72 69 61 74 65 20 65 72  | l.be.flagged.with.appropriate.er | 
| 7e00 |  72 6f 72 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e    20 20 49 66 0a 74 68 69 73 20 66 6c 61 67 20 69  | ror.information...If.this.flag.i | 
| 7e20 |  73 20 6e 69 6c 2c 20 61 20 73 79 6e 74 61 78 20    65 72 72 6f 72 20 77 69 6c 6c 20 72 65 73 75 6c  | s.nil,.a.syntax.error.will.resul | 
| 7e40 |  74 20 69 6e 20 61 6e 20 65 72 72 6f 72 20 62 65    69 6e 67 0a 73 69 67 6e 61 6c 65 64 2e 0a 0a 54  | t.in.an.error.being.signaled...T | 
| 7e60 |  68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20 61    75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 62 75 66  | he.variable.is.automatically.buf | 
| 7e80 |  66 65 72 2d 6c 6f 63 61 6c 2c 20 62 65 63 61 75    73 65 20 64 69 66 66 65 72 65 6e 74 0a 6d 6f 64  | fer-local,.because.different.mod | 
| 7ea0 |  65 73 20 74 68 61 74 20 75 73 65 20 74 68 65 20    70 61 72 73 65 72 20 77 69 6c 6c 20 6e 65 65 64  | es.that.use.the.parser.will.need | 
| 7ec0 |  20 64 69 66 66 65 72 65 6e 74 20 73 65 74 74 69    6e 67 73 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66  | .different.settings.")..(js2-def | 
| 7ee0 |  6c 6f 63 61 6c 20 6a 73 32 2d 70 61 72 73 65 2d    68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 4c 69 73 74  | local.js2-parse-hook.nil..."List | 
| 7f00 |  20 6f 66 20 63 61 6c 6c 62 61 63 6b 73 20 66 6f    72 20 72 65 63 65 69 76 69 6e 67 20 70 61 72 73  | .of.callbacks.for.receiving.pars | 
| 7f20 |  69 6e 67 20 70 72 6f 67 72 65 73 73 2e 22 29 0a    0a 28 64 65 66 76 61 72 20 6a 73 32 2d 70 61 72  | ing.progress.")..(defvar.js2-par | 
| 7f40 |  73 65 2d 66 69 6e 69 73 68 65 64 2d 68 6f 6f 6b    20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20  | se-finished-hook.nil..."List.of. | 
| 7f60 |  63 61 6c 6c 62 61 63 6b 73 20 74 6f 20 6e 6f 74    69 66 79 20 77 68 65 6e 20 70 61 72 73 69 6e 67  | callbacks.to.notify.when.parsing | 
| 7f80 |  20 66 69 6e 69 73 68 65 73 2e 0a 4e 6f 74 20 63    61 6c 6c 65 64 20 69 66 20 70 61 72 73 69 6e 67  | .finishes..Not.called.if.parsing | 
| 7fa0 |  20 77 61 73 20 69 6e 74 65 72 72 75 70 74 65 64    2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63  | .was.interrupted.")..(js2-defloc | 
| 7fc0 |  61 6c 20 6a 73 32 2d 69 73 2d 65 76 61 6c 2d 63    6f 64 65 20 6e 69 6c 0a 20 20 22 54 72 75 65 20  | al.js2-is-eval-code.nil..."True. | 
| 7fe0 |  69 66 20 77 65 27 72 65 20 65 76 61 6c 75 61 74    69 6e 67 20 63 6f 64 65 20 69 6e 20 61 20 73 74  | if.we're.evaluating.code.in.a.st | 
| 8000 |  72 69 6e 67 2e 0a 49 66 20 6e 6f 6e 2d 6e 69 6c    2c 20 74 68 65 20 74 6f 6b 65 6e 69 7a 65 72 20  | ring..If.non-nil,.the.tokenizer. | 
| 8020 |  77 69 6c 6c 20 72 65 63 6f 72 64 20 74 68 65 20    74 6f 6b 65 6e 20 74 65 78 74 2c 20 61 6e 64 20  | will.record.the.token.text,.and. | 
| 8040 |  74 68 65 20 41 53 54 20 6e 6f 64 65 73 0a 77 69    6c 6c 20 72 65 63 6f 72 64 20 74 68 65 69 72 20  | the.AST.nodes.will.record.their. | 
| 8060 |  73 6f 75 72 63 65 20 74 65 78 74 2e 20 20 4f 66    66 20 62 79 20 64 65 66 61 75 6c 74 20 66 6f 72  | source.text...Off.by.default.for | 
| 8080 |  20 49 44 45 20 6d 6f 64 65 73 2c 20 73 69 6e 63    65 20 74 68 65 0a 74 65 78 74 20 69 73 20 61 76  | .IDE.modes,.since.the.text.is.av | 
| 80a0 |  61 69 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 62    75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61  | ailable.in.the.buffer.")..(defva | 
| 80c0 |  72 20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d    6d 6f 64 65 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69  | r.js2-parse-ide-mode.t..."Non-ni | 
| 80e0 |  6c 20 69 66 20 74 68 65 20 70 61 72 73 65 72 20    69 73 20 62 65 69 6e 67 20 75 73 65 64 20 66 6f  | l.if.the.parser.is.being.used.fo | 
| 8100 |  72 20 60 6a 73 32 2d 6d 6f 64 65 27 2e 0a 49 66    20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 70 61  | r.`js2-mode'..If.non-nil,.the.pa | 
| 8120 |  72 73 65 72 20 77 69 6c 6c 20 73 65 74 20 74 65    78 74 20 70 72 6f 70 65 72 74 69 65 73 20 66 6f  | rser.will.set.text.properties.fo | 
| 8140 |  72 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 0a    61 6e 64 20 74 68 65 20 73 79 6e 74 61 78 20 74  | r.fontification.and.the.syntax.t | 
| 8160 |  61 62 6c 65 2e 20 20 54 68 65 20 76 61 6c 75 65    20 73 68 6f 75 6c 64 20 62 65 20 6e 69 6c 20 77  | able...The.value.should.be.nil.w | 
| 8180 |  68 65 6e 20 75 73 69 6e 67 20 74 68 65 0a 70 61    72 73 65 72 20 61 73 20 61 20 66 72 6f 6e 74 65  | hen.using.the.parser.as.a.fronte | 
| 81a0 |  6e 64 20 74 6f 20 61 6e 20 69 6e 74 65 72 70 72    65 74 65 72 20 6f 72 20 62 79 74 65 20 63 6f 6d  | nd.to.an.interpreter.or.byte.com | 
| 81c0 |  70 69 6c 65 72 2e 22 29 0a 0a 3b 3b 3b 20 50 61    72 73 65 72 20 69 6e 73 74 61 6e 63 65 20 76 61  | piler.")..;;;.Parser.instance.va | 
| 81e0 |  72 69 61 62 6c 65 73 20 28 62 75 66 66 65 72 2d    6c 6f 63 61 6c 20 76 61 72 73 20 66 6f 72 20 6a  | riables.(buffer-local.vars.for.j | 
| 8200 |  73 32 2d 70 61 72 73 65 29 0a 0a 28 64 65 66 63    6f 6e 73 74 20 6a 73 32 2d 74 69 2d 61 66 74 65  | s2-parse)..(defconst.js2-ti-afte | 
| 8220 |  72 2d 65 6f 6c 20 28 6c 73 68 20 31 20 31 36 29    0a 20 20 22 46 6c 61 67 3a 20 20 66 69 72 73 74  | r-eol.(lsh.1.16)..."Flag:..first | 
| 8240 |  20 74 6f 6b 65 6e 20 6f 66 20 74 68 65 20 73 6f    75 72 63 65 20 6c 69 6e 65 2e 22 29 0a 0a 3b 3b  | .token.of.the.source.line.")..;; | 
| 8260 |  20 49 6e 6c 69 6e 65 20 52 68 69 6e 6f 27 73 20    43 6f 6d 70 69 6c 65 72 45 6e 76 69 72 6f 6e 73  | .Inline.Rhino's.CompilerEnvirons | 
| 8280 |  20 76 61 72 73 20 61 73 20 62 75 66 66 65 72 2d    6c 6f 63 61 6c 73 2e 0a 0a 28 6a 73 32 2d 64 65  | .vars.as.buffer-locals...(js2-de | 
| 82a0 |  66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69    6c 65 72 2d 67 65 6e 65 72 61 74 65 2d 64 65 62  | flocal.js2-compiler-generate-deb | 
| 82c0 |  75 67 2d 69 6e 66 6f 20 74 29 0a 28 6a 73 32 2d    64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d  | ug-info.t).(js2-deflocal.js2-com | 
| 82e0 |  70 69 6c 65 72 2d 75 73 65 2d 64 79 6e 61 6d 69    63 2d 73 63 6f 70 65 20 6e 69 6c 29 0a 28 6a 73  | piler-use-dynamic-scope.nil).(js | 
| 8300 |  32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63    6f 6d 70 69 6c 65 72 2d 72 65 73 65 72 76 65 64  | 2-deflocal.js2-compiler-reserved | 
| 8320 |  2d 6b 65 79 77 6f 72 64 73 2d 61 73 2d 69 64 65    6e 74 69 66 69 65 72 20 6e 69 6c 29 0a 28 6a 73  | -keywords-as-identifier.nil).(js | 
| 8340 |  32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63    6f 6d 70 69 6c 65 72 2d 78 6d 6c 2d 61 76 61 69  | 2-deflocal.js2-compiler-xml-avai | 
| 8360 |  6c 61 62 6c 65 20 74 29 0a 28 6a 73 32 2d 64 65    66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69  | lable.t).(js2-deflocal.js2-compi | 
| 8380 |  6c 65 72 2d 6f 70 74 69 6d 69 7a 61 74 69 6f 6e    2d 6c 65 76 65 6c 20 30 29 0a 28 6a 73 32 2d 64  | ler-optimization-level.0).(js2-d | 
| 83a0 |  65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70    69 6c 65 72 2d 67 65 6e 65 72 61 74 69 6e 67 2d  | eflocal.js2-compiler-generating- | 
| 83c0 |  73 6f 75 72 63 65 20 74 29 0a 28 6a 73 32 2d 64    65 66 6c 6f 63 61 6c 20 6a 73 32 2d 63 6f 6d 70  | source.t).(js2-deflocal.js2-comp | 
| 83e0 |  69 6c 65 72 2d 73 74 72 69 63 74 2d 6d 6f 64 65    20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f  | iler-strict-mode.nil).(js2-deflo | 
| 8400 |  63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72    2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 2d  | cal.js2-compiler-report-warning- | 
| 8420 |  61 73 2d 65 72 72 6f 72 20 6e 69 6c 29 0a 28 6a    73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d  | as-error.nil).(js2-deflocal.js2- | 
| 8440 |  63 6f 6d 70 69 6c 65 72 2d 67 65 6e 65 72 61 74    65 2d 6f 62 73 65 72 76 65 72 2d 63 6f 75 6e 74  | compiler-generate-observer-count | 
| 8460 |  20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f    63 61 6c 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72  | .nil).(js2-deflocal.js2-compiler | 
| 8480 |  2d 61 63 74 69 76 61 74 69 6f 6e 2d 6e 61 6d 65    73 20 6e 69 6c 29 0a 0a 3b 3b 20 53 4b 49 50 3a  | -activation-names.nil)..;;.SKIP: | 
| 84a0 |  20 20 73 6f 75 72 63 65 55 52 49 0a 0a 3b 3b 20    54 68 65 72 65 27 73 20 61 20 63 6f 6d 70 69 6c  | ..sourceURI..;;.There's.a.compil | 
| 84c0 |  65 46 75 6e 63 74 69 6f 6e 20 6d 65 74 68 6f 64    20 69 6e 20 43 6f 6e 74 65 78 74 2e 6a 61 76 61  | eFunction.method.in.Context.java | 
| 84e0 |  20 2d 20 6d 61 79 20 6e 65 65 64 20 69 74 2e 0a    28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73  | .-.may.need.it..(js2-deflocal.js | 
| 8500 |  32 2d 63 61 6c 6c 65 64 2d 62 79 2d 63 6f 6d 70    69 6c 65 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c  | 2-called-by-compile-function.nil | 
| 8520 |  0a 20 20 22 54 72 75 65 20 69 66 20 60 6a 73 32    2d 70 61 72 73 65 27 20 77 61 73 20 63 61 6c 6c  | ..."True.if.`js2-parse'.was.call | 
| 8540 |  65 64 20 62 79 20 60 6a 73 32 2d 63 6f 6d 70 69    6c 65 2d 66 75 6e 63 74 69 6f 6e 27 2e 0a 57 69  | ed.by.`js2-compile-function'..Wi | 
| 8560 |  6c 6c 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20    77 68 65 6e 20 77 65 20 66 69 6e 69 73 68 20 69  | ll.only.be.used.when.we.finish.i | 
| 8580 |  6d 70 6c 65 6d 65 6e 74 69 6e 67 20 74 68 65 20    69 6e 74 65 72 70 72 65 74 65 72 2e 22 29 0a 0a  | mplementing.the.interpreter.").. | 
| 85a0 |  3b 3b 20 53 4b 49 50 3a 20 20 74 73 20 20 28 77    65 20 6a 75 73 74 20 63 61 6c 6c 20 60 6a 73 32  | ;;.SKIP:..ts..(we.just.call.`js2 | 
| 85c0 |  2d 69 6e 69 74 2d 73 63 61 6e 6e 65 72 27 20 61    6e 64 20 75 73 65 20 69 74 73 20 76 61 72 73 29  | -init-scanner'.and.use.its.vars) | 
| 85e0 |  0a 0a 3b 3b 20 53 4b 49 50 3a 20 20 6e 6f 64 65    20 66 61 63 74 6f 72 79 20 2d 20 77 65 27 72 65  | ..;;.SKIP:..node.factory.-.we're | 
| 8600 |  20 67 6f 69 6e 67 20 74 6f 20 6a 75 73 74 20 63    61 6c 6c 20 66 75 6e 63 74 69 6f 6e 73 20 64 69  | .going.to.just.call.functions.di | 
| 8620 |  72 65 63 74 6c 79 2c 0a 3b 3b 20 61 6e 64 20 65    76 65 6e 74 75 61 6c 6c 79 20 67 6f 20 74 6f 20  | rectly,.;;.and.eventually.go.to. | 
| 8640 |  61 20 75 6e 69 66 69 65 64 20 41 53 54 20 66 6f    72 6d 61 74 2e 0a 0a 28 6a 73 32 2d 64 65 66 6c  | a.unified.AST.format...(js2-defl | 
| 8660 |  6f 63 61 6c 20 6a 73 32 2d 6e 65 73 74 69 6e 67    2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 20 30 29 0a  | ocal.js2-nesting-of-function.0). | 
| 8680 |  0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a    73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64 65 6e  | .(js2-deflocal.js2-recorded-iden | 
| 86a0 |  74 69 66 69 65 72 73 20 6e 69 6c 0a 20 20 22 54    72 61 63 6b 73 20 69 64 65 6e 74 69 66 69 65 72  | tifiers.nil..."Tracks.identifier | 
| 86c0 |  73 20 66 6f 75 6e 64 20 64 75 72 69 6e 67 20 70    61 72 73 69 6e 67 2e 22 29 0a 0a 28 6a 73 32 2d  | s.found.during.parsing.")..(js2- | 
| 86e0 |  64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 69 73 2d    69 6e 2d 64 65 73 74 72 75 63 74 75 72 69 6e 67  | deflocal.js2-is-in-destructuring | 
| 8700 |  20 6e 69 6c 0a 20 20 22 54 72 75 65 20 77 68 69    6c 65 20 70 61 72 73 69 6e 67 20 64 65 73 74 72  | .nil..."True.while.parsing.destr | 
| 8720 |  75 63 74 75 72 69 6e 67 20 65 78 70 72 65 73 73    69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66  | ucturing.expression.")..(js2-def | 
| 8740 |  6c 6f 63 61 6c 20 6a 73 32 2d 69 6e 2d 75 73 65    2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69 76  | local.js2-in-use-strict-directiv | 
| 8760 |  65 20 6e 69 6c 0a 20 20 22 54 72 75 65 20 77 68    69 6c 65 20 69 6e 73 69 64 65 20 61 20 73 63 72  | e.nil..."True.while.inside.a.scr | 
| 8780 |  69 70 74 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20    75 6e 64 65 72 20 73 74 72 69 63 74 20 6d 6f 64  | ipt.or.function.under.strict.mod | 
| 87a0 |  65 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d    20 6a 73 32 2d 67 6c 6f 62 61 6c 2d 65 78 74 65  | e.")..(defcustom.js2-global-exte | 
| 87c0 |  72 6e 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73    74 20 6f 66 20 61 6e 79 20 65 78 74 65 72 6e 20  | rns.nil..."A.list.of.any.extern. | 
| 87e0 |  6e 61 6d 65 73 20 79 6f 75 27 64 20 6c 69 6b 65    20 74 6f 20 63 6f 6e 73 69 64 65 72 20 61 6c 77  | names.you'd.like.to.consider.alw | 
| 8800 |  61 79 73 20 64 65 63 6c 61 72 65 64 2e 0a 54 68    69 73 20 6c 69 73 74 20 69 73 20 67 6c 6f 62 61  | ays.declared..This.list.is.globa | 
| 8820 |  6c 20 61 6e 64 20 69 73 20 75 73 65 64 20 62 79    20 61 6c 6c 20 60 6a 73 32 2d 6d 6f 64 65 27 20  | l.and.is.used.by.all.`js2-mode'. | 
| 8840 |  66 69 6c 65 73 2e 0a 59 6f 75 20 63 61 6e 20 63    72 65 61 74 65 20 62 75 66 66 65 72 2d 6c 6f 63  | files..You.can.create.buffer-loc | 
| 8860 |  61 6c 20 65 78 74 65 72 6e 73 20 6c 69 73 74 20    75 73 69 6e 67 20 60 6a 73 32 2d 61 64 64 69 74  | al.externs.list.using.`js2-addit | 
| 8880 |  69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 2e 22    0a 20 20 3a 74 79 70 65 20 27 6c 69 73 74 0a 20  | ional-externs'."...:type.'list.. | 
| 88a0 |  20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64    65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a  | .:group.'js2-mode)..(defcustom.j | 
| 88c0 |  73 32 2d 69 6e 63 6c 75 64 65 2d 62 72 6f 77 73    65 72 2d 65 78 74 65 72 6e 73 20 74 0a 20 20 22  | s2-include-browser-externs.t..." | 
| 88e0 |  4e 6f 6e 2d 6e 69 6c 20 74 6f 20 69 6e 63 6c 75    64 65 20 62 72 6f 77 73 65 72 20 65 78 74 65 72  | Non-nil.to.include.browser.exter | 
| 8900 |  6e 73 20 69 6e 20 74 68 65 20 6d 61 73 74 65 72    20 65 78 74 65 72 6e 73 20 6c 69 73 74 2e 0a 49  | ns.in.the.master.externs.list..I | 
| 8920 |  66 20 79 6f 75 20 77 6f 72 6b 20 6f 6e 20 4a 61    76 61 53 63 72 69 70 74 20 66 69 6c 65 73 20 74  | f.you.work.on.JavaScript.files.t | 
| 8940 |  68 61 74 20 61 72 65 20 6e 6f 74 20 69 6e 74 65    6e 64 65 64 20 66 6f 72 20 62 72 6f 77 73 65 72  | hat.are.not.intended.for.browser | 
| 8960 |  73 2c 0a 73 75 63 68 20 61 73 20 4d 6f 7a 69 6c    6c 61 20 52 68 69 6e 6f 20 73 65 72 76 65 72 2d  | s,.such.as.Mozilla.Rhino.server- | 
| 8980 |  73 69 64 65 20 4a 61 76 61 53 63 72 69 70 74 2c    20 73 65 74 20 74 68 69 73 20 74 6f 20 6e 69 6c  | side.JavaScript,.set.this.to.nil | 
| 89a0 |  2e 0a 53 65 65 20 60 6a 73 32 2d 61 64 64 69 74    69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 20 66  | ..See.`js2-additional-externs'.f | 
| 89c0 |  6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74    69 6f 6e 20 61 62 6f 75 74 20 65 78 74 65 72 6e  | or.more.information.about.extern | 
| 89e0 |  73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f    6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a  | s."...:type.'boolean...:group.'j | 
| 8a00 |  73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75    73 74 6f 6d 20 6a 73 32 2d 69 6e 63 6c 75 64 65  | s2-mode)..(defcustom.js2-include | 
| 8a20 |  2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 20 6e    69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f  | -rhino-externs.nil..."Non-nil.to | 
| 8a40 |  20 69 6e 63 6c 75 64 65 20 4d 6f 7a 69 6c 6c 61    20 52 68 69 6e 6f 20 65 78 74 65 72 6e 73 20 69  | .include.Mozilla.Rhino.externs.i | 
| 8a60 |  6e 20 74 68 65 20 6d 61 73 74 65 72 20 65 78 74    65 72 6e 73 20 6c 69 73 74 2e 0a 53 65 65 20 60  | n.the.master.externs.list..See.` | 
| 8a80 |  6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65    78 74 65 72 6e 73 27 20 66 6f 72 20 6d 6f 72 65  | js2-additional-externs'.for.more | 
| 8aa0 |  20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f    75 74 20 65 78 74 65 72 6e 73 2e 22 0a 20 20 3a  | .information.about.externs."...: | 
| 8ac0 |  74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20    3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65  | type.'boolean...:group.'js2-mode | 
| 8ae0 |  29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73    32 2d 69 6e 63 6c 75 64 65 2d 6e 6f 64 65 2d 65  | )..(defcustom.js2-include-node-e | 
| 8b00 |  78 74 65 72 6e 73 20 6e 69 6c 0a 20 20 22 4e 6f    6e 2d 6e 69 6c 20 74 6f 20 69 6e 63 6c 75 64 65  | xterns.nil..."Non-nil.to.include | 
| 8b20 |  20 4e 6f 64 65 2e 6a 73 20 65 78 74 65 72 6e 73    20 69 6e 20 74 68 65 20 6d 61 73 74 65 72 20 65  | .Node.js.externs.in.the.master.e | 
| 8b40 |  78 74 65 72 6e 73 20 6c 69 73 74 2e 0a 53 65 65    20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c  | xterns.list..See.`js2-additional | 
| 8b60 |  2d 65 78 74 65 72 6e 73 27 20 66 6f 72 20 6d 6f    72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61  | -externs'.for.more.information.a | 
| 8b80 |  62 6f 75 74 20 65 78 74 65 72 6e 73 2e 22 0a 20    20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a  | bout.externs."...:type.'boolean. | 
| 8ba0 |  20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f    64 65 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63  | ..:group.'js2-mode)..(js2-defloc | 
| 8bc0 |  61 6c 20 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61    6c 2d 65 78 74 65 72 6e 73 20 6e 69 6c 0a 20 20  | al.js2-additional-externs.nil... | 
| 8be0 |  22 41 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20    6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e  | "A.buffer-local.list.of.addition | 
| 8c00 |  61 6c 20 65 78 74 65 72 6e 61 6c 20 64 65 63 6c    61 72 61 74 69 6f 6e 73 2e 0a 49 74 20 69 73 20  | al.external.declarations..It.is. | 
| 8c20 |  75 73 65 64 20 74 6f 20 64 65 63 69 64 65 20 77    68 65 74 68 65 72 20 76 61 72 69 61 62 6c 65 73  | used.to.decide.whether.variables | 
| 8c40 |  20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20    75 6e 64 65 63 6c 61 72 65 64 0a 66 6f 72 20 70  | .are.considered.undeclared.for.p | 
| 8c60 |  75 72 70 6f 73 65 73 20 6f 66 20 68 69 67 68 6c    69 67 68 74 69 6e 67 2e 20 20 53 65 65 20 60 6a  | urposes.of.highlighting...See.`j | 
| 8c80 |  73 32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 64    65 63 6c 61 72 65 64 2d 76 61 72 73 27 2e 0a 0a  | s2-highlight-undeclared-vars'... | 
| 8ca0 |  45 61 63 68 20 65 6e 74 72 79 20 69 73 20 61 20    4c 69 73 70 20 73 74 72 69 6e 67 2e 20 20 54 68  | Each.entry.is.a.Lisp.string...Th | 
| 8cc0 |  65 20 73 74 72 69 6e 67 20 73 68 6f 75 6c 64 20    62 65 20 74 68 65 20 66 75 6c 6c 79 20 71 75 61  | e.string.should.be.the.fully.qua | 
| 8ce0 |  6c 69 66 69 65 64 0a 6e 61 6d 65 20 6f 66 20 61    6e 20 65 78 74 65 72 6e 61 6c 20 65 6e 74 69 74  | lified.name.of.an.external.entit | 
| 8d00 |  79 2e 20 20 41 6c 6c 20 65 78 74 65 72 6e 73 20    73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 20  | y...All.externs.should.be.added. | 
| 8d20 |  74 6f 20 74 68 69 73 20 6c 69 73 74 2c 0a 73 6f    20 74 68 61 74 20 61 73 20 6a 73 32 2d 6d 6f 64  | to.this.list,.so.that.as.js2-mod | 
| 8d40 |  65 27 73 20 70 72 6f 63 65 73 73 69 6e 67 20 69    6d 70 72 6f 76 65 73 20 69 74 20 63 61 6e 20 74  | e's.processing.improves.it.can.t | 
| 8d60 |  61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66    20 74 68 65 6d 2e 0a 0a 59 6f 75 20 6d 61 79 20  | ake.advantage.of.them...You.may. | 
| 8d80 |  77 61 6e 74 20 74 6f 20 64 65 63 6c 61 72 65 20    79 6f 75 72 20 65 78 74 65 72 6e 73 20 69 6e 20  | want.to.declare.your.externs.in. | 
| 8da0 |  74 68 72 65 65 20 77 61 79 73 2e 0a 46 69 72 73    74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 65  | three.ways..First,.you.can.add.e | 
| 8dc0 |  78 74 65 72 6e 73 20 74 68 61 74 20 61 72 65 20    76 61 6c 69 64 20 66 6f 72 20 61 6c 6c 20 79 6f  | xterns.that.are.valid.for.all.yo | 
| 8de0 |  75 72 20 4a 61 76 61 53 63 72 69 70 74 20 66 69    6c 65 73 2e 0a 59 6f 75 20 73 68 6f 75 6c 64 20  | ur.JavaScript.files..You.should. | 
| 8e00 |  70 72 6f 62 61 62 6c 79 20 64 6f 20 74 68 69 73    20 62 79 20 61 64 64 69 6e 67 20 74 68 65 6d 20  | probably.do.this.by.adding.them. | 
| 8e20 |  74 6f 20 60 6a 73 32 2d 67 6c 6f 62 61 6c 2d 65    78 74 65 72 6e 73 27 2c 20 77 68 69 63 68 0a 69  | to.`js2-global-externs',.which.i | 
| 8e40 |  73 20 61 20 67 6c 6f 62 61 6c 20 6c 69 73 74 20    75 73 65 64 20 66 6f 72 20 61 6c 6c 20 6a 73 32  | s.a.global.list.used.for.all.js2 | 
| 8e60 |  2d 6d 6f 64 65 20 66 69 6c 65 73 2e 0a 0a 4e 65    78 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20  | -mode.files...Next,.you.can.add. | 
| 8e80 |  61 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 60 6a    73 32 2d 69 6e 69 74 2d 68 6f 6f 6b 27 20 74 68  | a.function.to.`js2-init-hook'.th | 
| 8ea0 |  61 74 20 61 64 64 73 20 61 64 64 69 74 69 6f 6e    61 6c 0a 65 78 74 65 72 6e 73 20 61 70 70 72 6f  | at.adds.additional.externs.appro | 
| 8ec0 |  70 72 69 61 74 65 20 66 6f 72 20 74 68 65 20 73    70 65 63 69 66 69 63 20 66 69 6c 65 2c 20 70 65  | priate.for.the.specific.file,.pe | 
| 8ee0 |  72 68 61 70 73 20 62 61 73 65 64 20 6f 6e 20 69    74 73 20 70 61 74 68 2e 0a 54 68 65 73 65 20 73  | rhaps.based.on.its.path..These.s | 
| 8f00 |  68 6f 75 6c 64 20 67 6f 20 69 6e 20 60 6a 73 32    2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65  | hould.go.in.`js2-additional-exte | 
| 8f20 |  72 6e 73 27 2c 20 77 68 69 63 68 20 69 73 20 62    75 66 66 65 72 2d 6c 6f 63 61 6c 2e 0a 0a 54 68  | rns',.which.is.buffer-local...Th | 
| 8f40 |  69 72 64 2c 20 79 6f 75 20 63 61 6e 20 75 73 65    20 4a 53 4c 69 6e 74 27 73 20 67 6c 6f 62 61 6c  | ird,.you.can.use.JSLint's.global | 
| 8f60 |  20 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 61 73    20 6c 6f 6e 67 20 61 73 0a 60 6a 73 32 2d 69 6e  | .declaration,.as.long.as.`js2-in | 
| 8f80 |  63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 67 6c 6f    62 61 6c 73 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c  | clude-jslint-globals'.is.non-nil | 
| 8fa0 |  2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 46 69    6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61  | ,.which.see...Finally,.you.can.a | 
| 8fc0 |  64 64 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 6f    20 60 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65  | dd.a.function.to.`js2-post-parse | 
| 8fe0 |  2d 63 61 6c 6c 62 61 63 6b 73 27 2c 0a 77 68 69    63 68 20 69 73 20 63 61 6c 6c 65 64 20 61 66 74  | -callbacks',.which.is.called.aft | 
| 9000 |  65 72 20 70 61 72 73 69 6e 67 20 63 6f 6d 70 6c    65 74 65 73 2c 20 61 6e 64 20 60 6a 73 32 2d 6d  | er.parsing.completes,.and.`js2-m | 
| 9020 |  6f 64 65 2d 61 73 74 27 20 69 73 20 62 6f 75 6e    64 20 74 6f 0a 74 68 65 20 72 6f 6f 74 20 6f 66  | ode-ast'.is.bound.to.the.root.of | 
| 9040 |  20 74 68 65 20 70 61 72 73 65 20 74 72 65 65 2e    20 20 41 74 20 74 68 69 73 20 73 74 61 67 65 20  | .the.parse.tree...At.this.stage. | 
| 9060 |  79 6f 75 20 63 61 6e 20 73 65 74 20 75 70 20 61    6e 20 41 53 54 0a 6e 6f 64 65 20 76 69 73 69 74  | you.can.set.up.an.AST.node.visit | 
| 9080 |  6f 72 20 75 73 69 6e 67 20 60 6a 73 32 2d 76 69    73 69 74 2d 61 73 74 27 20 61 6e 64 20 65 78 61  | or.using.`js2-visit-ast'.and.exa | 
| 90a0 |  6d 69 6e 65 20 74 68 65 20 70 61 72 73 65 20 74    72 65 65 0a 66 6f 72 20 73 70 65 63 69 66 69 63  | mine.the.parse.tree.for.specific | 
| 90c0 |  20 69 6d 70 6f 72 74 20 70 61 74 74 65 72 6e 73    20 74 68 61 74 20 6d 61 79 20 69 6d 70 6c 79 20  | .import.patterns.that.may.imply. | 
| 90e0 |  74 68 65 20 65 78 69 73 74 65 6e 63 65 20 6f 66    0a 6f 74 68 65 72 20 65 78 74 65 72 6e 73 2c 20  | the.existence.of.other.externs,. | 
| 9100 |  70 6f 73 73 69 62 6c 79 20 74 69 65 64 20 74 6f    20 79 6f 75 72 20 62 75 69 6c 64 20 73 79 73 74  | possibly.tied.to.your.build.syst | 
| 9120 |  65 6d 2e 20 20 54 68 65 73 65 20 73 68 6f 75 6c    64 20 61 6c 73 6f 0a 62 65 20 61 64 64 65 64 20  | em...These.should.also.be.added. | 
| 9140 |  74 6f 20 60 6a 73 32 2d 61 64 64 69 74 69 6f 6e    61 6c 2d 65 78 74 65 72 6e 73 27 2e 0a 0a 59 6f  | to.`js2-additional-externs'...Yo | 
| 9160 |  75 72 20 70 6f 73 74 2d 70 61 72 73 65 20 63 61    6c 6c 62 61 63 6b 20 6d 61 79 20 6f 66 20 63 6f  | ur.post-parse.callback.may.of.co | 
| 9180 |  75 72 73 65 20 61 6c 73 6f 20 75 73 65 20 74 68    65 20 73 69 6d 70 6c 65 72 20 61 6e 64 0a 66 61  | urse.also.use.the.simpler.and.fa | 
| 91a0 |  73 74 65 72 20 28 62 75 74 20 70 65 72 68 61 70    73 20 6c 65 73 73 20 72 6f 62 75 73 74 29 20 61  | ster.(but.perhaps.less.robust).a | 
| 91c0 |  70 70 72 6f 61 63 68 20 6f 66 20 73 69 6d 70 6c    79 20 73 63 61 6e 6e 69 6e 67 20 74 68 65 0a 62  | pproach.of.simply.scanning.the.b | 
| 91e0 |  75 66 66 65 72 20 74 65 78 74 20 66 6f 72 20 79    6f 75 72 20 69 6d 70 6f 72 74 73 2c 20 75 73 69  | uffer.text.for.your.imports,.usi | 
| 9200 |  6e 67 20 72 65 67 75 6c 61 72 20 65 78 70 72 65    73 73 69 6f 6e 73 2e 22 29 0a 0a 28 70 75 74 20  | ng.regular.expressions.")..(put. | 
| 9220 |  27 6a 73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d    65 78 74 65 72 6e 73 20 27 73 61 66 65 2d 6c 6f  | 'js2-additional-externs.'safe-lo | 
| 9240 |  63 61 6c 2d 76 61 72 69 61 62 6c 65 0a 20 20 20    20 20 28 6c 61 6d 62 64 61 20 28 76 61 6c 29 20  | cal-variable......(lambda.(val). | 
| 9260 |  28 63 6c 2d 65 76 65 72 79 20 23 27 73 74 72 69    6e 67 70 20 76 61 6c 29 29 29 0a 0a 3b 3b 20 53  | (cl-every.#'stringp.val)))..;;.S | 
| 9280 |  4b 49 50 3a 20 20 64 65 63 6f 6d 70 69 6c 65 72    0a 3b 3b 20 53 4b 49 50 3a 20 20 65 6e 63 6f 64  | KIP:..decompiler.;;.SKIP:..encod | 
| 92a0 |  65 64 2d 73 6f 75 72 63 65 0a 0a 3b 3b 3b 20 54    68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 76 61 72  | ed-source..;;;.The.following.var | 
| 92c0 |  69 61 62 6c 65 73 20 61 72 65 20 70 65 72 2d 66    75 6e 63 74 69 6f 6e 20 61 6e 64 20 73 68 6f 75  | iables.are.per-function.and.shou | 
| 92e0 |  6c 64 20 62 65 20 73 61 76 65 64 2f 72 65 73 74    6f 72 65 64 0a 3b 3b 3b 20 64 75 72 69 6e 67 20  | ld.be.saved/restored.;;;.during. | 
| 9300 |  66 75 6e 63 74 69 6f 6e 20 70 61 72 73 69 6e 67    2e 2e 2e 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63  | function.parsing.....(js2-defloc | 
| 9320 |  61 6c 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73    63 72 69 70 74 2d 6f 72 2d 66 6e 20 6e 69 6c 29  | al.js2-current-script-or-fn.nil) | 
| 9340 |  0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a    73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65  | .(js2-deflocal.js2-current-scope | 
| 9360 |  20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f    63 61 6c 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d  | .nil).(js2-deflocal.js2-nesting- | 
| 9380 |  6f 66 2d 77 69 74 68 20 30 29 0a 28 6a 73 32 2d    64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6c 61 62  | of-with.0).(js2-deflocal.js2-lab | 
| 93a0 |  65 6c 2d 73 65 74 20 6e 69 6c 0a 20 20 22 41 6e    20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 6c  | el-set.nil..."An.alist.mapping.l | 
| 93c0 |  61 62 65 6c 20 6e 61 6d 65 73 20 74 6f 20 6e 6f    64 65 73 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66  | abel.names.to.nodes.")..(js2-def | 
| 93e0 |  6c 6f 63 61 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 73    65 74 20 6e 69 6c 29 0a 28 6a 73 32 2d 64 65 66  | local.js2-loop-set.nil).(js2-def | 
| 9400 |  6c 6f 63 61 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 61    6e 64 2d 73 77 69 74 63 68 2d 73 65 74 20 6e 69  | local.js2-loop-and-switch-set.ni | 
| 9420 |  6c 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c    20 6a 73 32 2d 68 61 73 2d 72 65 74 75 72 6e 2d  | l).(js2-deflocal.js2-has-return- | 
| 9440 |  76 61 6c 75 65 20 6e 69 6c 29 0a 28 6a 73 32 2d    64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 65 6e 64  | value.nil).(js2-deflocal.js2-end | 
| 9460 |  2d 66 6c 61 67 73 20 30 29 0a 0a 3b 3b 3b 20 2e    2e 2e 65 6e 64 20 6f 66 20 70 65 72 20 66 75 6e  | -flags.0)..;;;....end.of.per.fun | 
| 9480 |  63 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 0a    0a 3b 3b 20 54 68 65 73 65 20 66 6c 61 67 73 20  | ction.variables..;;.These.flags. | 
| 94a0 |  65 6e 75 6d 65 72 61 74 65 20 74 68 65 20 70 6f    73 73 69 62 6c 65 20 77 61 79 73 20 61 20 73 74  | enumerate.the.possible.ways.a.st | 
| 94c0 |  61 74 65 6d 65 6e 74 2f 66 75 6e 63 74 69 6f 6e    20 63 61 6e 0a 3b 3b 20 74 65 72 6d 69 6e 61 74  | atement/function.can.;;.terminat | 
| 94e0 |  65 2e 20 54 68 65 73 65 20 66 6c 61 67 73 20 61    72 65 20 75 73 65 64 20 62 79 20 65 6e 64 43 68  | e..These.flags.are.used.by.endCh | 
| 9500 |  65 63 6b 28 29 20 61 6e 64 20 62 79 20 74 68 65    20 50 61 72 73 65 72 20 74 6f 0a 3b 3b 20 64 65  | eck().and.by.the.Parser.to.;;.de | 
| 9520 |  74 65 63 74 20 69 6e 63 6f 6e 73 69 73 74 65 6e    74 20 72 65 74 75 72 6e 20 75 73 61 67 65 2e 0a  | tect.inconsistent.return.usage.. | 
| 9540 |  3b 3b 0a 3b 3b 20 45 4e 44 5f 55 4e 52 45 41 43    48 45 44 20 69 73 20 72 65 73 65 72 76 65 64 20  | ;;.;;.END_UNREACHED.is.reserved. | 
| 9560 |  66 6f 72 20 63 6f 64 65 20 70 61 74 68 73 20 74    68 61 74 20 61 72 65 20 61 73 73 75 6d 65 64 20  | for.code.paths.that.are.assumed. | 
| 9580 |  74 6f 20 61 6c 77 61 79 73 20 62 65 0a 3b 3b 20    61 62 6c 65 20 74 6f 20 65 78 65 63 75 74 65 20  | to.always.be.;;.able.to.execute. | 
| 95a0 |  28 65 78 61 6d 70 6c 65 3a 20 74 68 72 6f 77 2c    20 63 6f 6e 74 69 6e 75 65 29 0a 3b 3b 0a 3b 3b  | (example:.throw,.continue).;;.;; | 
| 95c0 |  20 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 69    6e 64 69 63 61 74 65 73 20 69 66 20 74 68 65 20  | .END_DROPS_OFF.indicates.if.the. | 
| 95e0 |  73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20 74 72    61 6e 73 66 65 72 20 63 6f 6e 74 72 6f 6c 20 74  | statement.can.transfer.control.t | 
| 9600 |  6f 20 74 68 65 0a 3b 3b 20 6e 65 78 74 20 6f 6e    65 2e 20 53 74 61 74 65 6d 65 6e 74 20 73 75 63  | o.the.;;.next.one..Statement.suc | 
| 9620 |  68 20 61 73 20 72 65 74 75 72 6e 20 64 6f 6e 74    2e 20 41 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61  | h.as.return.dont..A.compound.sta | 
| 9640 |  74 65 6d 65 6e 74 20 6d 61 79 20 68 61 76 65 0a    3b 3b 20 73 6f 6d 65 20 62 72 61 6e 63 68 20 74  | tement.may.have.;;.some.branch.t | 
| 9660 |  68 61 74 20 64 72 6f 70 73 20 6f 66 66 20 63 6f    6e 74 72 6f 6c 20 74 6f 20 74 68 65 20 6e 65 78  | hat.drops.off.control.to.the.nex | 
| 9680 |  74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 3b 3b 0a    3b 3b 20 45 4e 44 5f 52 45 54 55 52 4e 53 20 69  | t.statement..;;.;;.END_RETURNS.i | 
| 96a0 |  6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74 68    65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e 20  | ndicates.that.the.statement.can. | 
| 96c0 |  72 65 74 75 72 6e 20 28 77 69 74 68 6f 75 74 20    61 72 67 75 6d 65 6e 74 73 29 0a 3b 3b 20 45 4e  | return.(without.arguments).;;.EN | 
| 96e0 |  44 5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 20    69 6e 64 69 63 61 74 65 73 20 74 68 61 74 20 74  | D_RETURNS_VALUE.indicates.that.t | 
| 9700 |  68 65 20 73 74 61 74 65 6d 65 6e 74 20 63 61 6e    20 72 65 74 75 72 6e 20 61 20 76 61 6c 75 65 2e  | he.statement.can.return.a.value. | 
| 9720 |  0a 3b 3b 0a 3b 3b 20 41 20 63 6f 6d 70 6f 75 6e    64 20 73 74 61 74 65 6d 65 6e 74 20 73 75 63 68  | .;;.;;.A.compound.statement.such | 
| 9740 |  20 61 73 0a 3b 3b 20 69 66 20 28 63 6f 6e 64 69    74 69 6f 6e 29 20 7b 0a 3b 3b 20 20 20 72 65 74  | .as.;;.if.(condition).{.;;...ret | 
| 9760 |  75 72 6e 20 76 61 6c 75 65 3b 0a 3b 3b 20 7d 0a    3b 3b 20 57 69 6c 6c 20 62 65 20 64 65 74 65 63  | urn.value;.;;.}.;;.Will.be.detec | 
| 9780 |  74 65 64 20 61 73 20 28 45 4e 44 5f 44 52 4f 50    53 5f 4f 46 46 20 7c 20 45 4e 44 5f 52 45 54 55  | ted.as.(END_DROPS_OFF.|.END_RETU | 
| 97a0 |  52 4e 5f 56 41 4c 55 45 29 20 62 79 20 65 6e 64    43 68 65 63 6b 28 29 0a 0a 28 64 65 66 63 6f 6e  | RN_VALUE).by.endCheck()..(defcon | 
| 97c0 |  73 74 20 6a 73 32 2d 65 6e 64 2d 75 6e 72 65 61    63 68 65 64 20 20 20 20 20 23 78 30 29 0a 28 64  | st.js2-end-unreached.....#x0).(d | 
| 97e0 |  65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 6e 64 2d    64 72 6f 70 73 2d 6f 66 66 20 20 20 20 20 23 78  | efconst.js2-end-drops-off.....#x | 
| 9800 |  31 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32    2d 65 6e 64 2d 72 65 74 75 72 6e 73 20 20 20 20  | 1).(defconst.js2-end-returns.... | 
| 9820 |  20 20 20 23 78 32 29 0a 28 64 65 66 63 6f 6e 73    74 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72 6e  | ...#x2).(defconst.js2-end-return | 
| 9840 |  73 2d 76 61 6c 75 65 20 23 78 34 29 0a 0a 3b 3b    20 52 68 69 6e 6f 20 61 77 6b 77 61 72 64 6c 79  | s-value.#x4)..;;.Rhino.awkwardly | 
| 9860 |  20 70 61 73 73 65 73 20 61 20 73 74 61 74 65 6d    65 6e 74 4c 61 62 65 6c 20 70 61 72 61 6d 65 74  | .passes.a.statementLabel.paramet | 
| 9880 |  65 72 20 74 6f 20 74 68 65 0a 3b 3b 20 73 74 61    74 65 6d 65 6e 74 48 65 6c 70 65 72 28 29 20 66  | er.to.the.;;.statementHelper().f | 
| 98a0 |  75 6e 63 74 69 6f 6e 2c 20 74 68 65 20 6d 61 69    6e 20 73 74 61 74 65 6d 65 6e 74 20 70 61 72 73  | unction,.the.main.statement.pars | 
| 98c0 |  65 72 2c 20 77 68 69 63 68 0a 3b 3b 20 69 73 20    74 68 65 6e 20 75 73 65 64 20 62 79 20 71 75 69  | er,.which.;;.is.then.used.by.qui | 
| 98e0 |  74 65 20 61 20 66 65 77 20 6f 66 20 74 68 65 20    73 75 62 2d 70 61 72 73 65 72 73 2e 20 20 57 65  | te.a.few.of.the.sub-parsers...We | 
| 9900 |  20 6a 75 73 74 20 6d 61 6b 65 0a 3b 3b 20 69 74    20 61 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20  | .just.make.;;.it.a.buffer-local. | 
| 9920 |  76 61 72 69 61 62 6c 65 20 61 6e 64 20 6d 61 6b    65 20 73 75 72 65 20 69 74 27 73 20 63 6c 65 61  | variable.and.make.sure.it's.clea | 
| 9940 |  6e 65 64 20 75 70 20 70 72 6f 70 65 72 6c 79 2e    0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a  | ned.up.properly..(js2-deflocal.j | 
| 9960 |  73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20    6e 69 6c 29 20 20 3b 20 74 79 70 65 20 60 6a 73  | s2-labeled-stmt.nil)..;.type.`js | 
| 9980 |  32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e    6f 64 65 27 0a 0a 3b 3b 20 53 69 6d 69 6c 61 72  | 2-labeled-stmt-node'..;;.Similar | 
| 99a0 |  6c 79 2c 20 52 68 69 6e 6f 20 70 61 73 73 65 73    20 61 6e 20 69 6e 46 6f 72 49 6e 69 74 20 62 6f  | ly,.Rhino.passes.an.inForInit.bo | 
| 99c0 |  6f 6c 65 61 6e 20 74 68 72 6f 75 67 68 20 61 62    6f 75 74 20 68 61 6c 66 0a 3b 3b 20 74 68 65 20  | olean.through.about.half.;;.the. | 
| 99e0 |  65 78 70 72 65 73 73 69 6f 6e 20 70 61 72 73 65    72 73 2e 20 20 57 65 20 75 73 65 20 61 20 64 79  | expression.parsers...We.use.a.dy | 
| 9a00 |  6e 61 6d 69 63 61 6c 6c 79 2d 73 63 6f 70 65 64    20 76 61 72 69 61 62 6c 65 2c 0a 3b 3b 20 77 68  | namically-scoped.variable,.;;.wh | 
| 9a20 |  69 63 68 20 6d 61 6b 65 73 20 69 74 20 65 61 73    69 65 72 20 74 6f 20 66 75 6e 63 61 6c 6c 20 74  | ich.makes.it.easier.to.funcall.t | 
| 9a40 |  68 65 20 70 61 72 73 65 72 73 20 69 6e 64 69 76    69 64 75 61 6c 6c 79 20 77 69 74 68 6f 75 74 0a  | he.parsers.individually.without. | 
| 9a60 |  3b 3b 20 77 6f 72 72 79 69 6e 67 20 61 62 6f 75    74 20 77 68 65 74 68 65 72 20 74 68 65 79 20 74  | ;;.worrying.about.whether.they.t | 
| 9a80 |  61 6b 65 20 74 68 65 20 70 61 72 61 6d 65 74 65    72 20 6f 72 20 6e 6f 74 2e 0a 28 6a 73 32 2d 64  | ake.the.parameter.or.not..(js2-d | 
| 9aa0 |  65 66 6c 6f 63 61 6c 20 6a 73 32 2d 69 6e 2d 66    6f 72 2d 69 6e 69 74 20 6e 69 6c 29 0a 28 6a 73  | eflocal.js2-in-for-init.nil).(js | 
| 9ac0 |  32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 74    65 6d 70 2d 6e 61 6d 65 2d 63 6f 75 6e 74 65 72  | 2-deflocal.js2-temp-name-counter | 
| 9ae0 |  20 30 29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61    6c 20 6a 73 32 2d 70 61 72 73 65 2d 73 74 6d 74  | .0).(js2-deflocal.js2-parse-stmt | 
| 9b00 |  2d 63 6f 75 6e 74 20 30 29 0a 0a 28 64 65 66 73    75 62 73 74 20 6a 73 32 2d 67 65 74 2d 6e 65 78  | -count.0)..(defsubst.js2-get-nex | 
| 9b20 |  74 2d 74 65 6d 70 2d 6e 61 6d 65 20 28 29 0a 20    20 28 66 6f 72 6d 61 74 20 22 24 25 64 22 20 28  | t-temp-name.()...(format."$%d".( | 
| 9b40 |  63 6c 2d 69 6e 63 66 20 6a 73 32 2d 74 65 6d 70    2d 6e 61 6d 65 2d 63 6f 75 6e 74 65 72 29 29 29  | cl-incf.js2-temp-name-counter))) | 
| 9b60 |  0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 70 61    72 73 65 2d 69 6e 74 65 72 72 75 70 74 61 62 6c  | ..(defvar.js2-parse-interruptabl | 
| 9b80 |  65 2d 70 20 74 0a 20 20 22 53 65 74 20 74 68 69    73 20 74 6f 20 6e 69 6c 20 74 6f 20 66 6f 72 63  | e-p.t..."Set.this.to.nil.to.forc | 
| 9ba0 |  65 20 70 61 72 73 65 20 74 6f 20 63 6f 6e 74 69    6e 75 65 20 75 6e 74 69 6c 20 66 69 6e 69 73 68  | e.parse.to.continue.until.finish | 
| 9bc0 |  65 64 2e 0a 54 68 69 73 20 77 69 6c 6c 20 6d 6f    73 74 6c 79 20 62 65 20 75 73 65 66 75 6c 20 66  | ed..This.will.mostly.be.useful.f | 
| 9be0 |  6f 72 20 69 6e 74 65 72 70 72 65 74 65 72 73 2e    22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | or.interpreters.")..(defvar.js2- | 
| 9c00 |  73 74 61 74 65 6d 65 6e 74 73 2d 70 65 72 2d 70    61 75 73 65 20 35 30 0a 20 20 22 50 61 75 73 65  | statements-per-pause.50..."Pause | 
| 9c20 |  20 61 66 74 65 72 20 74 68 69 73 20 6d 61 6e 79    20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 63  | .after.this.many.statements.to.c | 
| 9c40 |  68 65 63 6b 20 66 6f 72 20 75 73 65 72 20 69 6e    70 75 74 2e 0a 49 66 20 75 73 65 72 20 69 6e 70  | heck.for.user.input..If.user.inp | 
| 9c60 |  75 74 20 69 73 20 70 65 6e 64 69 6e 67 2c 20 73    74 6f 70 20 74 68 65 20 70 61 72 73 65 20 61 6e  | ut.is.pending,.stop.the.parse.an | 
| 9c80 |  64 20 64 69 73 63 61 72 64 20 74 68 65 20 74 72    65 65 2e 0a 54 68 69 73 20 6d 61 6b 65 73 20 66  | d.discard.the.tree..This.makes.f | 
| 9ca0 |  6f 72 20 61 20 73 6d 6f 6f 74 68 65 72 20 75 73    65 72 20 65 78 70 65 72 69 65 6e 63 65 20 66 6f  | or.a.smoother.user.experience.fo | 
| 9cc0 |  72 20 6c 61 72 67 65 20 66 69 6c 65 73 2e 0a 59    6f 75 20 6d 61 79 20 68 61 76 65 20 74 6f 20 77  | r.large.files..You.may.have.to.w | 
| 9ce0 |  61 69 74 20 61 20 73 65 63 6f 6e 64 20 6f 72 20    74 77 6f 20 62 65 66 6f 72 65 20 74 68 65 20 68  | ait.a.second.or.two.before.the.h | 
| 9d00 |  69 67 68 6c 69 67 68 74 69 6e 67 0a 61 6e 64 20    65 72 72 6f 72 2d 72 65 70 6f 72 74 69 6e 67 20  | ighlighting.and.error-reporting. | 
| 9d20 |  61 70 70 65 61 72 2c 20 62 75 74 20 79 6f 75 20    63 61 6e 20 61 6c 77 61 79 73 20 74 79 70 65 20  | appear,.but.you.can.always.type. | 
| 9d40 |  61 68 65 61 64 20 69 66 0a 79 6f 75 20 77 69 73    68 2e 20 20 54 68 69 73 20 61 70 70 65 61 72 73  | ahead.if.you.wish...This.appears | 
| 9d60 |  20 74 6f 20 62 65 20 6d 6f 72 65 20 6f 72 20 6c    65 73 73 20 68 6f 77 20 45 63 6c 69 70 73 65 2c  | .to.be.more.or.less.how.Eclipse, | 
| 9d80 |  20 49 6e 74 65 6c 6c 69 4a 0a 61 6e 64 20 6f 74    68 65 72 20 65 64 69 74 6f 72 73 20 77 6f 72 6b  | .IntelliJ.and.other.editors.work | 
| 9da0 |  2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63    61 6c 20 6a 73 32 2d 72 65 63 6f 72 64 2d 63 6f  | .")..(js2-deflocal.js2-record-co | 
| 9dc0 |  6d 6d 65 6e 74 73 20 74 0a 20 20 22 49 6e 73 74    72 75 63 74 73 20 74 68 65 20 73 63 61 6e 6e 65  | mments.t..."Instructs.the.scanne | 
| 9de0 |  72 20 74 6f 20 72 65 63 6f 72 64 20 63 6f 6d 6d    65 6e 74 73 20 69 6e 20 60 6a 73 32 2d 73 63 61  | r.to.record.comments.in.`js2-sca | 
| 9e00 |  6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 27 2e 22    29 0a 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c  | nned-comments'.")..(js2-deflocal | 
| 9e20 |  20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f 6d    6d 65 6e 74 73 20 6e 69 6c 0a 20 20 22 4c 69 73  | .js2-scanned-comments.nil..."Lis | 
| 9e40 |  74 20 6f 66 20 61 6c 6c 20 63 6f 6d 6d 65 6e 74    73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65  | t.of.all.comments.from.the.curre | 
| 9e60 |  6e 74 20 70 61 72 73 65 2e 22 29 0a 0a 28 64 65    66 63 75 73 74 6f 6d 20 6a 73 32 2d 6d 6f 64 65  | nt.parse.")..(defcustom.js2-mode | 
| 9e80 |  2d 69 6e 64 65 6e 74 2d 69 6e 68 69 62 69 74 2d    75 6e 64 6f 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d  | -indent-inhibit-undo.nil..."Non- | 
| 9ea0 |  6e 69 6c 20 74 6f 20 64 69 73 61 62 6c 65 20 63    6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 55 6e 64  | nil.to.disable.collection.of.Und | 
| 9ec0 |  6f 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 68    65 6e 20 69 6e 64 65 6e 74 69 6e 67 20 6c 69 6e  | o.information.when.indenting.lin | 
| 9ee0 |  65 73 2e 0a 53 6f 6d 65 20 75 73 65 72 73 20 68    61 76 65 20 72 65 71 75 65 73 74 65 64 20 74 68  | es..Some.users.have.requested.th | 
| 9f00 |  69 73 20 62 65 68 61 76 69 6f 72 2e 20 20 49 74    27 73 20 6e 69 6c 20 62 79 20 64 65 66 61 75 6c  | is.behavior...It's.nil.by.defaul | 
| 9f20 |  74 20 62 65 63 61 75 73 65 0a 6f 74 68 65 72 20    45 6d 61 63 73 20 6d 6f 64 65 73 20 64 6f 6e 27  | t.because.other.Emacs.modes.don' | 
| 9f40 |  74 20 77 6f 72 6b 20 74 68 69 73 20 77 61 79 2e    22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65  | t.work.this.way."...:type.'boole | 
| 9f60 |  61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32    2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74  | an...:group.'js2-mode)..(defcust | 
| 9f80 |  6f 6d 20 6a 73 32 2d 6d 6f 64 65 2d 69 6e 64 65    6e 74 2d 69 67 6e 6f 72 65 2d 66 69 72 73 74 2d  | om.js2-mode-indent-ignore-first- | 
| 9fa0 |  74 61 62 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f    6e 2d 6e 69 6c 2c 20 69 67 6e 6f 72 65 20 66 69  | tab.nil..."If.non-nil,.ignore.fi | 
| 9fc0 |  72 73 74 20 54 41 42 20 6b 65 79 70 72 65 73 73    20 69 66 20 77 65 20 6c 6f 6f 6b 20 69 6e 64 65  | rst.TAB.keypress.if.we.look.inde | 
| 9fe0 |  6e 74 65 64 20 70 72 6f 70 65 72 6c 79 2e 0a 49    74 27 73 20 66 61 69 72 6c 79 20 63 6f 6d 6d 6f  | nted.properly..It's.fairly.commo | 
| a000 |  6e 20 66 6f 72 20 75 73 65 72 73 20 74 6f 20 6e    61 76 69 67 61 74 65 20 74 6f 20 61 6e 20 61 6c  | n.for.users.to.navigate.to.an.al | 
| a020 |  72 65 61 64 79 2d 69 6e 64 65 6e 74 65 64 20 6c    69 6e 65 0a 61 6e 64 20 70 72 65 73 73 20 54 41  | ready-indented.line.and.press.TA | 
| a040 |  42 20 66 6f 72 20 72 65 61 73 73 75 72 61 6e 63    65 20 74 68 61 74 20 69 74 27 73 20 62 65 65 6e  | B.for.reassurance.that.it's.been | 
| a060 |  20 69 6e 64 65 6e 74 65 64 2e 20 20 46 6f 72 20    74 68 69 73 20 63 6c 61 73 73 0a 6f 66 20 75 73  | .indented...For.this.class.of.us | 
| a080 |  65 72 73 2c 20 77 65 20 77 61 6e 74 20 74 68 65    20 66 69 72 73 74 20 54 41 42 20 70 72 65 73 73  | ers,.we.want.the.first.TAB.press | 
| a0a0 |  20 6f 6e 20 61 20 6c 69 6e 65 20 74 6f 20 62 65    20 69 67 6e 6f 72 65 64 20 69 66 20 74 68 65 0a  | .on.a.line.to.be.ignored.if.the. | 
| a0c0 |  6c 69 6e 65 20 69 73 20 61 6c 72 65 61 64 79 20    69 6e 64 65 6e 74 65 64 20 74 6f 20 6f 6e 65 20  | line.is.already.indented.to.one. | 
| a0e0 |  6f 66 20 74 68 65 20 70 72 65 63 6f 6d 70 75 74    65 64 20 61 6c 74 65 72 6e 61 74 69 76 65 73 2e  | of.the.precomputed.alternatives. | 
| a100 |  0a 0a 54 68 69 73 20 62 65 68 61 76 69 6f 72 20    69 73 20 6f 6e 6c 79 20 70 61 72 74 6c 79 20 69  | ..This.behavior.is.only.partly.i | 
| a120 |  6d 70 6c 65 6d 65 6e 74 65 64 2e 20 20 49 66 20    79 6f 75 20 54 41 42 2d 69 6e 64 65 6e 74 20 61  | mplemented...If.you.TAB-indent.a | 
| a140 |  20 6c 69 6e 65 2c 0a 6e 61 76 69 67 61 74 65 20    74 6f 20 61 6e 6f 74 68 65 72 20 6c 69 6e 65 2c  | .line,.navigate.to.another.line, | 
| a160 |  20 61 6e 64 20 74 68 65 6e 20 6e 61 76 69 67 61    74 65 20 62 61 63 6b 2c 20 69 74 20 66 61 69 6c  | .and.then.navigate.back,.it.fail | 
| a180 |  73 20 74 6f 20 63 6c 65 61 72 0a 74 68 65 20 6c    61 73 74 2d 69 6e 64 65 6e 74 65 64 20 76 61 72  | s.to.clear.the.last-indented.var | 
| a1a0 |  69 61 62 6c 65 2c 20 73 6f 20 69 74 20 74 68 69    6e 6b 73 20 79 6f 75 27 76 65 20 61 6c 72 65 61  | iable,.so.it.thinks.you've.alrea | 
| a1c0 |  64 79 20 68 69 74 20 54 41 42 20 6f 6e 63 65 2c    0a 61 6e 64 20 70 65 72 66 6f 72 6d 73 20 74 68  | dy.hit.TAB.once,.and.performs.th | 
| a1e0 |  65 20 69 6e 64 65 6e 74 2e 20 20 41 20 66 75 6c    6c 20 73 6f 6c 75 74 69 6f 6e 20 77 6f 75 6c 64  | e.indent...A.full.solution.would | 
| a200 |  20 69 6e 76 6f 6c 76 65 20 67 65 74 74 69 6e 67    20 6f 6e 20 74 68 65 0a 70 6f 69 6e 74 2d 6d 6f  | .involve.getting.on.the.point-mo | 
| a220 |  74 69 6f 6e 20 68 6f 6f 6b 73 20 66 6f 72 20 74    68 65 20 65 6e 74 69 72 65 20 62 75 66 66 65 72  | tion.hooks.for.the.entire.buffer | 
| a240 |  2e 20 20 49 66 20 77 65 20 63 6f 6d 65 20 61 63    72 6f 73 73 20 61 6e 6f 74 68 65 72 0a 75 73 65  | ...If.we.come.across.another.use | 
| a260 |  20 63 61 73 65 73 20 74 68 61 74 20 72 65 71 75    69 72 65 73 20 77 61 74 63 68 69 6e 67 20 70 6f  | .cases.that.requires.watching.po | 
| a280 |  69 6e 74 20 6d 6f 74 69 6f 6e 2c 20 49 27 6c 6c    20 63 6f 6e 73 69 64 65 72 20 64 6f 69 6e 67 20  | int.motion,.I'll.consider.doing. | 
| a2a0 |  69 74 2e 0a 0a 49 66 20 79 6f 75 20 73 65 74 20    74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f  | it...If.you.set.this.variable.to | 
| a2c0 |  20 6e 69 6c 2c 20 74 68 65 6e 20 74 68 65 20 54    41 42 20 6b 65 79 20 77 69 6c 6c 20 61 6c 77 61  | .nil,.then.the.TAB.key.will.alwa | 
| a2e0 |  79 73 20 63 68 61 6e 67 65 0a 74 68 65 20 69 6e    64 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65  | ys.change.the.indentation.of.the | 
| a300 |  20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2c 20 69    66 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20  | .current.line,.if.more.than.one. | 
| a320 |  61 6c 74 65 72 6e 61 74 69 76 65 0a 69 6e 64 65    6e 74 61 74 69 6f 6e 20 73 70 6f 74 20 65 78 69  | alternative.indentation.spot.exi | 
| a340 |  73 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62    6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20  | sts."...:type.'boolean...:group. | 
| a360 |  27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 68  | 'js2-mode)..(defvar.js2-indent-h | 
| a380 |  6f 6f 6b 20 6e 69 6c 0a 20 20 22 41 20 68 6f 6f    6b 20 66 6f 72 20 75 73 65 72 2d 64 65 66 69 6e  | ook.nil..."A.hook.for.user-defin | 
| a3a0 |  65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 72    75 6c 65 73 2e 0a 0a 46 75 6e 63 74 69 6f 6e 73  | ed.indentation.rules...Functions | 
| a3c0 |  20 6f 6e 20 74 68 69 73 20 68 6f 6f 6b 20 73 68    6f 75 6c 64 20 65 78 70 65 63 74 20 74 77 6f 20  | .on.this.hook.should.expect.two. | 
| a3e0 |  61 72 67 75 6d 65 6e 74 73 3a 20 20 20 20 28 4c    49 53 54 20 49 4e 44 45 58 29 0a 54 68 65 20 4c  | arguments:....(LIST.INDEX).The.L | 
| a400 |  49 53 54 20 61 72 67 75 6d 65 6e 74 20 69 73 20    74 68 65 20 6c 69 73 74 20 6f 66 20 63 6f 6d 70  | IST.argument.is.the.list.of.comp | 
| a420 |  75 74 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e    20 70 6f 69 6e 74 73 20 66 6f 72 0a 74 68 65 20  | uted.indentation.points.for.the. | 
| a440 |  63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 20 20 49    4e 44 45 58 20 69 73 20 74 68 65 20 6c 69 73 74  | current.line...INDEX.is.the.list | 
| a460 |  20 69 6e 64 65 78 20 6f 66 20 74 68 65 20 69 6e    64 65 6e 74 61 74 69 6f 6e 20 70 6f 69 6e 74 0a  | .index.of.the.indentation.point. | 
| a480 |  74 68 61 74 20 60 6a 73 32 2d 62 6f 75 6e 63 65    2d 69 6e 64 65 6e 74 27 20 70 6c 61 6e 73 20 74  | that.`js2-bounce-indent'.plans.t | 
| a4a0 |  6f 20 75 73 65 2e 20 20 49 66 20 49 4e 44 45 58    20 69 73 20 6e 69 6c 2c 20 74 68 65 6e 20 74 68  | o.use...If.INDEX.is.nil,.then.th | 
| a4c0 |  65 0a 69 6e 64 65 6e 74 20 66 75 6e 63 74 69 6f    6e 20 69 73 20 6e 6f 74 20 67 6f 69 6e 67 20 74  | e.indent.function.is.not.going.t | 
| a4e0 |  6f 20 63 68 61 6e 67 65 20 74 68 65 20 63 75 72    72 65 6e 74 20 6c 69 6e 65 20 69 6e 64 65 6e 74  | o.change.the.current.line.indent | 
| a500 |  61 74 69 6f 6e 2e 0a 0a 49 66 20 61 20 68 6f 6f    6b 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 20 74 68  | ation...If.a.hook.function.on.th | 
| a520 |  69 73 20 6c 69 73 74 20 72 65 74 75 72 6e 73 20    61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 2c  | is.list.returns.a.non-nil.value, | 
| a540 |  20 74 68 65 6e 0a 60 6a 73 32 2d 62 6f 75 6e 63    65 2d 69 6e 64 65 6e 74 27 20 61 73 73 75 6d 65  | .then.`js2-bounce-indent'.assume | 
| a560 |  73 20 74 68 65 20 68 6f 6f 6b 20 66 75 6e 63 74    69 6f 6e 20 68 61 73 20 70 65 72 66 6f 72 6d 65  | s.the.hook.function.has.performe | 
| a580 |  64 20 69 74 73 20 6f 77 6e 0a 69 6e 64 65 6e 74    61 74 69 6f 6e 2c 20 61 6e 64 20 77 69 6c 6c 20  | d.its.own.indentation,.and.will. | 
| a5a0 |  64 6f 20 6e 6f 74 68 69 6e 67 2e 20 20 49 66 20    61 6c 6c 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f  | do.nothing...If.all.hook.functio | 
| a5c0 |  6e 73 20 6f 6e 20 74 68 65 20 6c 69 73 74 0a 72    65 74 75 72 6e 20 6e 69 6c 2c 20 74 68 65 6e 20  | ns.on.the.list.return.nil,.then. | 
| a5e0 |  60 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64 65    6e 74 27 20 77 69 6c 6c 20 75 73 65 20 69 74 73  | `js2-bounce-indent'.will.use.its | 
| a600 |  20 63 6f 6d 70 75 74 65 64 20 69 6e 64 65 6e 74    61 74 69 6f 6e 0a 61 6e 64 20 72 65 69 6e 64 65  | .computed.indentation.and.reinde | 
| a620 |  6e 74 20 74 68 65 20 6c 69 6e 65 2e 0a 0a 57 68    65 6e 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e  | nt.the.line...When.hook.function | 
| a640 |  73 20 6f 6e 20 74 68 69 73 20 68 6f 6f 6b 20 6c    69 73 74 20 61 72 65 20 63 61 6c 6c 65 64 2c 20  | s.on.this.hook.list.are.called,. | 
| a660 |  74 68 65 20 76 61 72 69 61 62 6c 65 0a 60 6a 73    32 2d 6d 6f 64 65 2d 61 73 74 27 20 6d 61 79 20  | the.variable.`js2-mode-ast'.may. | 
| a680 |  6f 72 20 6d 61 79 20 6e 6f 74 20 62 65 20 73 65    74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20  | or.may.not.be.set,.depending.on. | 
| a6a0 |  77 68 65 74 68 65 72 20 74 68 65 0a 70 61 72 73    65 20 74 72 65 65 20 69 73 20 61 76 61 69 6c 61  | whether.the.parse.tree.is.availa | 
| a6c0 |  62 6c 65 2e 20 20 49 66 20 74 68 65 20 76 61 72    69 61 62 6c 65 20 69 73 20 6e 69 6c 2c 20 79 6f  | ble...If.the.variable.is.nil,.yo | 
| a6e0 |  75 20 63 61 6e 20 70 61 73 73 20 61 0a 63 61 6c    6c 62 61 63 6b 20 74 6f 20 60 6a 73 32 2d 6d 6f  | u.can.pass.a.callback.to.`js2-mo | 
| a700 |  64 65 2d 77 61 69 74 2d 66 6f 72 2d 70 61 72 73    65 27 2c 20 61 6e 64 20 79 6f 75 72 20 63 61 6c  | de-wait-for-parse',.and.your.cal | 
| a720 |  6c 62 61 63 6b 20 77 69 6c 6c 20 62 65 0a 63 61    6c 6c 65 64 20 61 66 74 65 72 20 74 68 65 20 6e  | lback.will.be.called.after.the.n | 
| a740 |  65 77 20 70 61 72 73 65 20 74 72 65 65 20 69 73    20 62 75 69 6c 74 2e 20 20 54 68 69 73 20 63 61  | ew.parse.tree.is.built...This.ca | 
| a760 |  6e 20 74 61 6b 65 20 73 6f 6d 65 20 74 69 6d 65    0a 69 6e 20 6c 61 72 67 65 20 66 69 6c 65 73 2e  | n.take.some.time.in.large.files. | 
| a780 |  22 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32    2d 77 61 72 6e 69 6e 67 0a 20 20 60 28 28 28 28  | ")..(defface.js2-warning...`(((( | 
| a7a0 |  63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 62 61    63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29  | class.color).(background.light)) | 
| a7c0 |  0a 20 20 20 20 20 28 3a 75 6e 64 65 72 6c 69 6e    65 20 20 22 6f 72 61 6e 67 65 22 29 29 0a 20 20  | ......(:underline.."orange"))... | 
| a7e0 |  20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72    29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61  | ..(((class.color).(background.da | 
| a800 |  72 6b 29 29 0a 20 20 20 20 20 28 3a 75 6e 64 65    72 6c 69 6e 65 20 22 6f 72 61 6e 67 65 22 29 29  | rk))......(:underline."orange")) | 
| a820 |  0a 20 20 20 20 28 74 20 28 3a 75 6e 64 65 72 6c    69 6e 65 20 74 29 29 29 0a 20 20 22 46 61 63 65  | .....(t.(:underline.t)))..."Face | 
| a840 |  20 66 6f 72 20 4a 61 76 61 53 63 72 69 70 74 20    77 61 72 6e 69 6e 67 73 2e 22 0a 20 20 3a 67 72  | .for.JavaScript.warnings."...:gr | 
| a860 |  6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a    28 64 65 66 66 61 63 65 20 6a 73 32 2d 65 72 72  | oup.'js2-mode)..(defface.js2-err | 
| a880 |  6f 72 0a 20 20 60 28 28 28 28 63 6c 61 73 73 20    63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72 6f 75  | or...`((((class.color).(backgrou | 
| a8a0 |  6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20    28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72 65  | nd.light))......(:foreground."re | 
| a8c0 |  64 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73    73 20 63 6f 6c 6f 72 29 20 28 62 61 63 6b 67 72  | d")).....(((class.color).(backgr | 
| a8e0 |  6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20    20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 72  | ound.dark))......(:foreground."r | 
| a900 |  65 64 22 29 29 0a 20 20 20 20 28 74 20 28 3a 66    6f 72 65 67 72 6f 75 6e 64 20 22 72 65 64 22 29  | ed")).....(t.(:foreground."red") | 
| a920 |  29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4a    61 76 61 53 63 72 69 70 74 20 65 72 72 6f 72 73  | ))..."Face.for.JavaScript.errors | 
| a940 |  2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32    2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65  | ."...:group.'js2-mode)..(defface | 
| a960 |  20 6a 73 32 2d 6a 73 64 6f 63 2d 74 61 67 0a 20    20 27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e  | .js2-jsdoc-tag...'((t.:foregroun | 
| a980 |  64 20 22 53 6c 61 74 65 47 72 61 79 22 29 29 0a    20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20  | d."SlateGray"))..."Face.used.to. | 
| a9a0 |  68 69 67 68 6c 69 67 68 74 20 40 77 68 61 74 65    76 65 72 20 74 61 67 73 20 69 6e 20 6a 73 64 6f  | highlight.@whatever.tags.in.jsdo | 
| a9c0 |  63 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 3a    67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29  | c.comments."...:group.'js2-mode) | 
| a9e0 |  0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6a    73 64 6f 63 2d 74 79 70 65 0a 20 20 27 28 28 74  | ..(defface.js2-jsdoc-type...'((t | 
| aa00 |  20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 53 74    65 65 6c 42 6c 75 65 22 29 29 0a 20 20 22 46 61  | .:foreground."SteelBlue"))..."Fa | 
| aa20 |  63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c    69 67 68 74 20 7b 46 6f 6f 42 61 72 7d 20 74 79  | ce.used.to.highlight.{FooBar}.ty | 
| aa40 |  70 65 73 20 69 6e 20 6a 73 64 6f 63 20 63 6f 6d    6d 65 6e 74 73 2e 22 0a 20 20 3a 67 72 6f 75 70  | pes.in.jsdoc.comments."...:group | 
| aa60 |  20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65    66 66 61 63 65 20 6a 73 32 2d 6a 73 64 6f 63 2d  | .'js2-mode)..(defface.js2-jsdoc- | 
| aa80 |  76 61 6c 75 65 0a 20 20 27 28 28 74 20 3a 66 6f    72 65 67 72 6f 75 6e 64 20 22 50 65 61 63 68 50  | value...'((t.:foreground."PeachP | 
| aaa0 |  75 66 66 33 22 29 29 0a 20 20 22 46 61 63 65 20    75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68  | uff3"))..."Face.used.to.highligh | 
| aac0 |  74 20 74 61 67 20 76 61 6c 75 65 73 20 69 6e 20    6a 73 64 6f 63 20 63 6f 6d 6d 65 6e 74 73 2e 22  | t.tag.values.in.jsdoc.comments." | 
| aae0 |  0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d    6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a  | ...:group.'js2-mode)..(defface.j | 
| ab00 |  73 32 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61    6d 0a 20 20 27 28 28 74 20 3a 66 6f 72 65 67 72  | s2-function-param...'((t.:foregr | 
| ab20 |  6f 75 6e 64 20 22 53 65 61 47 72 65 65 6e 22 29    29 0a 20 20 22 46 61 63 65 20 75 73 65 64 20 74  | ound."SeaGreen"))..."Face.used.t | 
| ab40 |  6f 20 68 69 67 68 6c 69 67 68 74 20 66 75 6e 63    74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20  | o.highlight.function.parameters. | 
| ab60 |  69 6e 20 6a 61 76 61 73 63 72 69 70 74 2e 22 0a    20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f  | in.javascript."...:group.'js2-mo | 
| ab80 |  64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a 73    32 2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 0a  | de)..(defface.js2-function-call. | 
| aba0 |  20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20    64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63  | ..'((t.:inherit.default))..."Fac | 
| abc0 |  65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69    67 68 74 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d  | e.used.to.highlight.function.nam | 
| abe0 |  65 20 69 6e 20 63 61 6c 6c 73 2e 22 0a 20 20 3a    67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29  | e.in.calls."...:group.'js2-mode) | 
| ac00 |  0a 0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 6f    62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 0a 20  | ..(defface.js2-object-property.. | 
| ac20 |  20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64    65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65  | .'((t.:inherit.default))..."Face | 
| ac40 |  20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67    68 74 20 6e 61 6d 65 64 20 70 72 6f 70 65 72 74  | .used.to.highlight.named.propert | 
| ac60 |  79 20 69 6e 20 6f 62 6a 65 63 74 20 6c 69 74 65    72 61 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27  | y.in.object.literal."...:group.' | 
| ac80 |  6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66    61 63 65 20 6a 73 32 2d 6f 62 6a 65 63 74 2d 70  | js2-mode)..(defface.js2-object-p | 
| aca0 |  72 6f 70 65 72 74 79 2d 61 63 63 65 73 73 0a 20    20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6a  | roperty-access...'((t.:inherit.j | 
| acc0 |  73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72    74 79 29 29 0a 20 20 22 46 61 63 65 20 75 73 65  | s2-object-property))..."Face.use | 
| ace0 |  64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 70    72 6f 70 65 72 74 79 20 61 63 63 65 73 73 20 77  | d.to.highlight.property.access.w | 
| ad00 |  69 74 68 20 64 6f 74 20 6f 6e 20 61 6e 20 6f 62    6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20  | ith.dot.on.an.object."...:group. | 
| ad20 |  27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66    66 61 63 65 20 6a 73 32 2d 69 6e 73 74 61 6e 63  | 'js2-mode)..(defface.js2-instanc | 
| ad40 |  65 2d 6d 65 6d 62 65 72 0a 20 20 27 28 28 74 20    3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 44 61 72  | e-member...'((t.:foreground."Dar | 
| ad60 |  6b 4f 72 63 68 69 64 22 29 29 0a 20 20 22 46 61    63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c  | kOrchid"))..."Face.used.to.highl | 
| ad80 |  69 67 68 74 20 69 6e 73 74 61 6e 63 65 20 76 61    72 69 61 62 6c 65 73 20 69 6e 20 6a 61 76 61 73  | ight.instance.variables.in.javas | 
| ada0 |  63 72 69 70 74 2e 0a 4e 6f 74 20 63 75 72 72 65    6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 3a 67  | cript..Not.currently.used."...:g | 
| adc0 |  72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a    0a 28 64 65 66 66 61 63 65 20 6a 73 32 2d 70 72  | roup.'js2-mode)..(defface.js2-pr | 
| ade0 |  69 76 61 74 65 2d 6d 65 6d 62 65 72 0a 20 20 27    28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20  | ivate-member...'((t.:foreground. | 
| ae00 |  22 50 65 61 63 68 50 75 66 66 33 22 29 29 0a 20    20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68  | "PeachPuff3"))..."Face.used.to.h | 
| ae20 |  69 67 68 6c 69 67 68 74 20 63 61 6c 6c 73 20 74    6f 20 70 72 69 76 61 74 65 20 6d 65 74 68 6f 64  | ighlight.calls.to.private.method | 
| ae40 |  73 20 69 6e 20 6a 61 76 61 73 63 72 69 70 74 2e    0a 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75  | s.in.javascript..Not.currently.u | 
| ae60 |  73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27    6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66  | sed."...:group.'js2-mode)..(deff | 
| ae80 |  61 63 65 20 6a 73 32 2d 70 72 69 76 61 74 65 2d    66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 0a 20 20  | ace.js2-private-function-call... | 
| aea0 |  27 28 28 74 20 3a 66 6f 72 65 67 72 6f 75 6e 64    20 22 67 6f 6c 64 65 6e 72 6f 64 22 29 29 0a 20  | '((t.:foreground."goldenrod")).. | 
| aec0 |  20 22 46 61 63 65 20 75 73 65 64 20 74 6f 20 68    69 67 68 6c 69 67 68 74 20 63 61 6c 6c 73 20 74  | ."Face.used.to.highlight.calls.t | 
| aee0 |  6f 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69    6f 6e 73 20 69 6e 20 6a 61 76 61 73 63 72 69 70  | o.private.functions.in.javascrip | 
| af00 |  74 2e 0a 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79    20 75 73 65 64 2e 22 0a 20 20 3a 67 72 6f 75 70  | t..Not.currently.used."...:group | 
| af20 |  20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65    66 66 61 63 65 20 6a 73 32 2d 6a 73 64 6f 63 2d  | .'js2-mode)..(defface.js2-jsdoc- | 
| af40 |  68 74 6d 6c 2d 74 61 67 2d 6e 61 6d 65 0a 20 20    27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72  | html-tag-name...'((((class.color | 
| af60 |  29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38    29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69  | ).(min-colors.88).(background.li | 
| af80 |  67 68 74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72    65 67 72 6f 75 6e 64 20 22 72 6f 73 79 62 72 6f  | ght))......(:foreground."rosybro | 
| afa0 |  77 6e 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61    73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63  | wn")).....(((class.color).(min-c | 
| afc0 |  6f 6c 6f 72 73 20 38 29 20 28 62 61 63 6b 67 72    6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20  | olors.8).(background.dark))..... | 
| afe0 |  20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 79    65 6c 6c 6f 77 22 29 29 0a 20 20 20 20 28 28 28  | .(:foreground."yellow")).....((( | 
| b000 |  63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69    6e 2d 63 6f 6c 6f 72 73 20 38 29 20 28 62 61 63  | class.color).(min-colors.8).(bac | 
| b020 |  6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a    20 20 20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e  | kground.light))......(:foregroun | 
| b040 |  64 20 22 6d 61 67 65 6e 74 61 22 29 29 29 0a 20    20 20 20 22 46 61 63 65 20 75 73 65 64 20 74 6f  | d."magenta")))....."Face.used.to | 
| b060 |  20 68 69 67 68 6c 69 67 68 74 20 6a 73 64 6f 63    20 68 74 6d 6c 20 74 61 67 20 6e 61 6d 65 73 22  | .highlight.jsdoc.html.tag.names" | 
| b080 |  0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 6d    6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65 20 6a  | ...:group.'js2-mode)..(defface.j | 
| b0a0 |  73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74 61    67 2d 64 65 6c 69 6d 69 74 65 72 0a 20 20 27 28  | s2-jsdoc-html-tag-delimiter...'( | 
| b0c0 |  28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20    28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 20  | (((class.color).(min-colors.88). | 
| b0e0 |  28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68    74 29 29 0a 20 20 20 20 20 28 3a 66 6f 72 65 67  | (background.light))......(:foreg | 
| b100 |  72 6f 75 6e 64 20 22 64 61 72 6b 20 6b 68 61 6b    69 22 29 29 0a 20 20 20 20 28 28 28 63 6c 61 73  | round."dark.khaki")).....(((clas | 
| b120 |  73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f    6c 6f 72 73 20 38 29 20 28 62 61 63 6b 67 72 6f  | s.color).(min-colors.8).(backgro | 
| b140 |  75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20    28 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 67 72  | und.dark))......(:foreground."gr | 
| b160 |  65 65 6e 22 29 29 0a 20 20 20 20 28 28 28 63 6c    61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d  | een")).....(((class.color).(min- | 
| b180 |  63 6f 6c 6f 72 73 20 38 29 20 28 62 61 63 6b 67    72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20  | colors.8).(background.light))... | 
| b1a0 |  20 20 20 28 3a 66 6f 72 65 67 72 6f 75 6e 64 20    22 67 72 65 65 6e 22 29 29 29 0a 20 20 22 46 61  | ...(:foreground."green")))..."Fa | 
| b1c0 |  63 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c    69 67 68 74 20 62 72 61 63 6b 65 74 73 20 69 6e  | ce.used.to.highlight.brackets.in | 
| b1e0 |  20 6a 73 64 6f 63 20 68 74 6d 6c 20 74 61 67 73    2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32  | .jsdoc.html.tags."...:group.'js2 | 
| b200 |  2d 6d 6f 64 65 29 0a 0a 28 64 65 66 66 61 63 65    20 6a 73 32 2d 65 78 74 65 72 6e 61 6c 2d 76 61  | -mode)..(defface.js2-external-va | 
| b220 |  72 69 61 62 6c 65 0a 20 20 27 28 28 74 20 3a 66    6f 72 65 67 72 6f 75 6e 64 20 22 6f 72 61 6e 67  | riable...'((t.:foreground."orang | 
| b240 |  65 22 29 29 0a 20 20 22 46 61 63 65 20 75 73 65    64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 75  | e"))..."Face.used.to.highlight.u | 
| b260 |  6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62    6c 65 20 69 64 65 6e 74 69 66 69 65 72 73 2e 22  | ndeclared.variable.identifiers." | 
| b280 |  29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73    32 2d 69 6e 69 74 2d 68 6f 6f 6b 20 6e 69 6c 0a  | )..(defcustom.js2-init-hook.nil. | 
| b2a0 |  20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 64    6f 6e 27 74 20 72 65 61 6c 6c 79 20 6e 65 65 64  | ..;;.FIXME:.We.don't.really.need | 
| b2c0 |  20 74 68 69 73 20 61 6e 79 6d 6f 72 65 2e 0a 20    20 22 4c 69 73 74 20 6f 66 20 66 75 6e 63 74 69  | .this.anymore...."List.of.functi | 
| b2e0 |  6f 6e 73 20 74 6f 20 62 65 20 63 61 6c 6c 65 64    20 61 66 74 65 72 20 60 6a 73 32 2d 6d 6f 64 65  | ons.to.be.called.after.`js2-mode | 
| b300 |  27 20 6f 72 0a 60 6a 73 32 2d 6d 69 6e 6f 72 2d    6d 6f 64 65 27 20 68 61 73 20 69 6e 69 74 69 61  | '.or.`js2-minor-mode'.has.initia | 
| b320 |  6c 69 7a 65 64 20 61 6c 6c 20 76 61 72 69 61 62    6c 65 73 2c 20 62 65 66 6f 72 65 20 70 61 72 73  | lized.all.variables,.before.pars | 
| b340 |  69 6e 67 0a 74 68 65 20 62 75 66 66 65 72 20 66    6f 72 20 74 68 65 20 66 69 72 73 74 20 74 69 6d  | ing.the.buffer.for.the.first.tim | 
| b360 |  65 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f    6b 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d  | e."...:type.'hook...:group.'js2- | 
| b380 |  6d 6f 64 65 0a 20 20 3a 76 65 72 73 69 6f 6e 20    22 32 30 31 33 30 36 30 38 22 29 0a 0a 28 64 65  | mode...:version."20130608")..(de | 
| b3a0 |  66 63 75 73 74 6f 6d 20 6a 73 32 2d 70 6f 73 74    2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73  | fcustom.js2-post-parse-callbacks | 
| b3c0 |  20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20    63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f  | .nil..."List.of.callback.functio | 
| b3e0 |  6e 73 20 69 6e 76 6f 6b 65 64 20 61 66 74 65 72    20 70 61 72 73 69 6e 67 20 66 69 6e 69 73 68 65  | ns.invoked.after.parsing.finishe | 
| b400 |  73 2e 0a 43 75 72 72 65 6e 74 6c 79 2c 20 74 68    65 20 6d 61 69 6e 20 75 73 65 20 66 6f 72 20 74  | s..Currently,.the.main.use.for.t | 
| b420 |  68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20    74 6f 20 61 64 64 20 73 79 6e 74 68 65 74 69 63  | his.function.is.to.add.synthetic | 
| b440 |  0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 6f    20 60 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69  | .declarations.to.`js2-recorded-i | 
| b460 |  64 65 6e 74 69 66 69 65 72 73 27 2c 20 77 68 69    63 68 20 73 65 65 2e 22 0a 20 20 3a 74 79 70 65  | dentifiers',.which.see."...:type | 
| b480 |  20 27 68 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20    27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66  | .'hook...:group.'js2-mode)..(def | 
| b4a0 |  63 75 73 74 6f 6d 20 6a 73 32 2d 62 75 69 6c 64    2d 69 6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73  | custom.js2-build-imenu-callbacks | 
| b4c0 |  20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20    66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64  | .nil..."List.of.functions.called | 
| b4e0 |  20 64 75 72 69 6e 67 20 49 6d 65 6e 75 20 69 6e    64 65 78 20 67 65 6e 65 72 61 74 69 6f 6e 2e 0a  | .during.Imenu.index.generation.. | 
| b500 |  49 74 27 73 20 61 20 67 6f 6f 64 20 70 6c 61 63    65 20 74 6f 20 61 64 64 20 61 64 64 69 74 69 6f  | It's.a.good.place.to.add.additio | 
| b520 |  6e 61 6c 20 65 6e 74 72 69 65 73 20 74 6f 20 69    74 2c 20 75 73 69 6e 67 0a 60 6a 73 32 2d 72 65  | nal.entries.to.it,.using.`js2-re | 
| b540 |  63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79    27 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f  | cord-imenu-entry'."...:type.'hoo | 
| b560 |  6b 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d    6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74 6f  | k...:group.'js2-mode)..(defcusto | 
| b580 |  6d 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d    65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62 6c  | m.js2-highlight-external-variabl | 
| b5a0 |  65 73 20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20    74 6f 20 68 69 67 68 6c 69 67 68 74 20 75 6e 64  | es.t..."Non-nil.to.highlight.und | 
| b5c0 |  65 63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65    20 69 64 65 6e 74 69 66 69 65 72 73 2e 0a 41 6e  | eclared.variable.identifiers..An | 
| b5e0 |  20 75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69    61 62 6c 65 20 69 73 20 61 6e 79 20 76 61 72 69  | .undeclared.variable.is.any.vari | 
| b600 |  61 62 6c 65 20 6e 6f 74 20 64 65 63 6c 61 72 65    64 20 77 69 74 68 20 76 61 72 20 6f 72 20 6c 65  | able.not.declared.with.var.or.le | 
| b620 |  74 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74    20 73 63 6f 70 65 20 6f 72 20 61 6e 79 20 6c 65  | t.in.the.current.scope.or.any.le | 
| b640 |  78 69 63 61 6c 6c 79 20 65 6e 63 6c 6f 73 69 6e    67 20 73 63 6f 70 65 2e 20 20 49 66 20 79 6f 75  | xically.enclosing.scope...If.you | 
| b660 |  20 75 73 65 0a 73 75 63 68 20 61 20 76 61 72 69    61 62 6c 65 2c 20 74 68 65 6e 20 79 6f 75 20 61  | .use.such.a.variable,.then.you.a | 
| b680 |  72 65 20 65 69 74 68 65 72 20 65 78 70 65 63 74    69 6e 67 20 69 74 20 74 6f 20 6f 72 69 67 69 6e  | re.either.expecting.it.to.origin | 
| b6a0 |  61 74 65 20 66 72 6f 6d 0a 61 6e 6f 74 68 65 72    20 66 69 6c 65 2c 20 6f 72 20 79 6f 75 27 76 65  | ate.from.another.file,.or.you've | 
| b6c0 |  20 67 6f 74 20 61 20 70 6f 74 65 6e 74 69 61 6c    20 62 75 67 2e 22 0a 20 20 3a 74 79 70 65 20 27  | .got.a.potential.bug."...:type.' | 
| b6e0 |  62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70    20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65  | boolean...:group.'js2-mode)..(de | 
| b700 |  66 63 75 73 74 6f 6d 20 6a 73 32 2d 77 61 72 6e    2d 61 62 6f 75 74 2d 75 6e 75 73 65 64 2d 66 75  | fcustom.js2-warn-about-unused-fu | 
| b720 |  6e 63 74 69 6f 6e 2d 61 72 67 75 6d 65 6e 74 73    20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20  | nction-arguments.nil..."Non-nil. | 
| b740 |  74 6f 20 74 72 65 61 74 20 66 75 6e 63 74 69 6f    6e 20 61 72 67 75 6d 65 6e 74 73 20 6c 69 6b 65  | to.treat.function.arguments.like | 
| b760 |  20 64 65 63 6c 61 72 65 64 2d 62 75 74 2d 75 6e    75 73 65 64 20 76 61 72 69 61 62 6c 65 73 2e 22  | .declared-but-unused.variables." | 
| b780 |  0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61    6e 70 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32  | ...:type.'booleanp...:group.'js2 | 
| b7a0 |  2d 6d 6f 64 65 29 0a 0a 28 64 65 66 63 75 73 74    6f 6d 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a  | -mode)..(defcustom.js2-include-j | 
| b7c0 |  73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20 74 0a    20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 69 6e  | slint-globals.t..."Non-nil.to.in | 
| b7e0 |  63 6c 75 64 65 20 74 68 65 20 69 64 65 6e 74 69    66 69 65 72 73 20 66 72 6f 6d 20 4a 53 4c 69 6e  | clude.the.identifiers.from.JSLin | 
| b800 |  74 20 67 6c 6f 62 61 6c 0a 64 65 63 6c 61 72 61    74 69 6f 6e 20 28 73 65 65 20 68 74 74 70 3a 2f  | t.global.declaration.(see.http:/ | 
| b820 |  2f 77 77 77 2e 6a 73 6c 69 6e 74 2e 63 6f 6d 2f    68 65 6c 70 2e 68 74 6d 6c 23 67 6c 6f 62 61 6c  | /www.jslint.com/help.html#global | 
| b840 |  29 20 69 6e 20 74 68 65 0a 62 75 66 66 65 72 2d    6c 6f 63 61 6c 20 65 78 74 65 72 6e 73 20 6c 69  | ).in.the.buffer-local.externs.li | 
| b860 |  73 74 2e 20 20 53 65 65 20 60 6a 73 32 2d 61 64    64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73  | st...See.`js2-additional-externs | 
| b880 |  27 20 66 6f 72 20 6d 6f 72 65 0a 69 6e 66 6f 72    6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65  | '.for.more.information."...:type | 
| b8a0 |  20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f    75 70 20 27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28  | .'boolean...:group.'js2-mode)..( | 
| b8c0 |  64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6e    63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 64 65 63  | defcustom.js2-include-jslint-dec | 
| b8e0 |  6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73    20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f  | laration-externs.t..."Non-nil.to | 
| b900 |  20 69 6e 63 6c 75 64 65 20 74 68 65 20 69 64 65    6e 74 69 66 69 65 72 73 20 4a 53 4c 69 6e 74 20  | .include.the.identifiers.JSLint. | 
| b920 |  61 73 73 75 6d 65 73 20 74 6f 20 62 65 20 74 68    65 72 65 0a 75 6e 64 65 72 20 63 65 72 74 61 69  | assumes.to.be.there.under.certai | 
| b940 |  6e 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 69    6e 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63  | n.declarations.in.the.buffer-loc | 
| b960 |  61 6c 20 65 78 74 65 72 6e 73 20 6c 69 73 74 2e    20 20 53 65 65 0a 60 6a 73 32 2d 61 64 64 69 74  | al.externs.list...See.`js2-addit | 
| b980 |  69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 27 20 66    6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74  | ional-externs'.for.more.informat | 
| b9a0 |  69 6f 6e 2e 22 0a 20 20 3a 74 79 70 65 20 27 62    6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20  | ion."...:type.'boolean...:group. | 
| b9c0 |  27 6a 73 32 2d 6d 6f 64 65 29 0a 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 6d 61 70  | 'js2-mode)..(defvar.js2-mode-map | 
| b9e0 |  0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d    61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61  | ...(let.((map.(make-sparse-keyma | 
| ba00 |  70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65    2d 6b 65 79 20 6d 61 70 20 5b 72 65 6d 61 70 20  | p))).....(define-key.map.[remap. | 
| ba20 |  69 6e 64 65 6e 74 2d 6e 65 77 2d 63 6f 6d 6d 65    6e 74 2d 6c 69 6e 65 5d 20 23 27 6a 73 32 2d 6c  | indent-new-comment-line].#'js2-l | 
| ba40 |  69 6e 65 2d 62 72 65 61 6b 29 0a 20 20 20 20 28    64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28  | ine-break).....(define-key.map.( | 
| ba60 |  6b 62 64 20 22 43 2d 63 20 43 2d 65 22 29 20 23    27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 65  | kbd."C-c.C-e").#'js2-mode-hide-e | 
| ba80 |  6c 65 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66    69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64  | lement).....(define-key.map.(kbd | 
| baa0 |  20 22 43 2d 63 20 43 2d 73 22 29 20 23 27 6a 73    32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d  | ."C-c.C-s").#'js2-mode-show-elem | 
| bac0 |  65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65    2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43  | ent).....(define-key.map.(kbd."C | 
| bae0 |  2d 63 20 43 2d 61 22 29 20 23 27 6a 73 32 2d 6d    6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 29 0a 20 20  | -c.C-a").#'js2-mode-show-all)... | 
| bb00 |  20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61    70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 66 22  | ..(define-key.map.(kbd."C-c.C-f" | 
| bb20 |  29 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67    67 6c 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 6f  | ).#'js2-mode-toggle-hide-functio | 
| bb40 |  6e 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d    6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d  | ns).....(define-key.map.(kbd."C- | 
| bb60 |  63 20 43 2d 74 22 29 20 23 27 6a 73 32 2d 6d 6f    64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 63  | c.C-t").#'js2-mode-toggle-hide-c | 
| bb80 |  6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 64 65    66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62  | omments).....(define-key.map.(kb | 
| bba0 |  64 20 22 43 2d 63 20 43 2d 6f 22 29 20 23 27 6a    73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 65  | d."C-c.C-o").#'js2-mode-toggle-e | 
| bbc0 |  6c 65 6d 65 6e 74 29 0a 20 20 20 20 28 64 65 66    69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64  | lement).....(define-key.map.(kbd | 
| bbe0 |  20 22 43 2d 63 20 43 2d 77 22 29 20 23 27 6a 73    32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 77 61  | ."C-c.C-w").#'js2-mode-toggle-wa | 
| bc00 |  72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72 6f 72    73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b  | rnings-and-errors).....(define-k | 
| bc20 |  65 79 20 6d 61 70 20 5b 64 6f 77 6e 2d 6d 6f 75    73 65 2d 33 5d 20 23 27 6a 73 32 2d 64 6f 77 6e  | ey.map.[down-mouse-3].#'js2-down | 
| bc40 |  2d 6d 6f 75 73 65 2d 33 29 0a 20 20 20 20 28 64    65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 72  | -mouse-3).....(define-key.map.[r | 
| bc60 |  65 6d 61 70 20 6a 73 2d 66 69 6e 64 2d 73 79 6d    62 6f 6c 5d 20 23 27 6a 73 32 2d 6a 75 6d 70 2d  | emap.js-find-symbol].#'js2-jump- | 
| bc80 |  74 6f 2d 64 65 66 69 6e 69 74 69 6f 6e 29 0a 0a    20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20  | to-definition)......(define-key. | 
| bca0 |  6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61    76 61 73 63 72 69 70 74 5d 0a 20 20 20 20 20 20  | map.[menu-bar.javascript]....... | 
| bcc0 |  28 63 6f 6e 73 20 22 4a 61 76 61 53 63 72 69 70    74 22 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d  | (cons."JavaScript".(make-sparse- | 
| bce0 |  6b 65 79 6d 61 70 20 22 4a 61 76 61 53 63 72 69    70 74 22 29 29 29 0a 0a 20 20 20 20 28 64 65 66  | keymap."JavaScript")))......(def | 
| bd00 |  69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e    75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74  | ine-key.map.[menu-bar.javascript | 
| bd20 |  20 63 75 73 74 6f 6d 69 7a 65 2d 6a 73 32 2d 6d    6f 64 65 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e  | .customize-js2-mode].......'(men | 
| bd40 |  75 2d 69 74 65 6d 20 22 43 75 73 74 6f 6d 69 7a    65 20 6a 73 32 2d 6d 6f 64 65 22 20 6a 73 32 2d  | u-item."Customize.js2-mode".js2- | 
| bd60 |  6d 6f 64 65 2d 63 75 73 74 6f 6d 69 7a 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mode-customize.................. | 
| bd80 |  20 3a 68 65 6c 70 20 22 43 75 73 74 6f 6d 69 7a    65 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f  | .:help."Customize.the.behavior.o | 
| bda0 |  66 20 74 68 69 73 20 6d 6f 64 65 22 29 29 0a 0a    20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20  | f.this.mode"))......(define-key. | 
| bdc0 |  6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61    76 61 73 63 72 69 70 74 20 6a 73 32 2d 66 6f 72  | map.[menu-bar.javascript.js2-for | 
| bde0 |  63 65 2d 72 65 66 72 65 73 68 5d 0a 20 20 20 20    20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 46  | ce-refresh].......'(menu-item."F | 
| be00 |  6f 72 63 65 20 62 75 66 66 65 72 20 72 65 66 72    65 73 68 22 20 6a 73 32 2d 6d 6f 64 65 2d 72 65  | orce.buffer.refresh".js2-mode-re | 
| be20 |  73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 68 65 6c 70 20 22 52 65 2d  | set...................:help."Re- | 
| be40 |  70 61 72 73 65 20 74 68 65 20 62 75 66 66 65 72    20 66 72 6f 6d 20 73 63 72 61 74 63 68 22 29 29  | parse.the.buffer.from.scratch")) | 
| be60 |  0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65    79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20  | ......(define-key.map.[menu-bar. | 
| be80 |  6a 61 76 61 73 63 72 69 70 74 20 73 65 70 61 72    61 74 6f 72 2d 32 5d 0a 20 20 20 20 20 20 27 28  | javascript.separator-2].......'( | 
| bea0 |  22 2d 2d 22 29 29 0a 0a 20 20 20 20 28 64 65 66    69 6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e  | "--"))......(define-key.map.[men | 
| bec0 |  75 2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74    20 6e 65 78 74 2d 65 72 72 6f 72 5d 0a 20 20 20  | u-bar.javascript.next-error].... | 
| bee0 |  20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22    4e 65 78 74 20 77 61 72 6e 69 6e 67 20 6f 72 20  | ...'(menu-item."Next.warning.or. | 
| bf00 |  65 72 72 6f 72 22 20 6e 65 78 74 2d 65 72 72 6f    72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | error".next-error............... | 
| bf20 |  20 20 20 20 3a 65 6e 61 62 6c 65 64 20 28 61 6e    64 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20  | ....:enabled.(and.js2-mode-ast.. | 
| bf40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| bf60 |  6f 72 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74    2d 65 72 72 6f 72 73 20 6a 73 32 2d 6d 6f 64 65  | or.(js2-ast-root-errors.js2-mode | 
| bf80 |  2d 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -ast)........................... | 
| bfa0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61    73 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73  | ..........(js2-ast-root-warnings | 
| bfc0 |  20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-mode-ast)))................ | 
| bfe0 |  20 20 20 3a 68 65 6c 70 20 22 4d 6f 76 65 20 74    6f 20 6e 65 78 74 20 77 61 72 6e 69 6e 67 20 6f  | ...:help."Move.to.next.warning.o | 
| c000 |  72 20 65 72 72 6f 72 22 29 29 0a 0a 20 20 20 20    28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20  | r.error"))......(define-key.map. | 
| c020 |  5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73 63    72 69 70 74 20 64 69 73 70 6c 61 79 2d 65 72 72  | [menu-bar.javascript.display-err | 
| c040 |  6f 72 73 5d 0a 20 20 20 20 20 20 27 28 6d 65 6e    75 2d 69 74 65 6d 20 22 53 68 6f 77 20 65 72 72  | ors].......'(menu-item."Show.err | 
| c060 |  6f 72 73 20 61 6e 64 20 77 61 72 6e 69 6e 67 73    22 20 6a 73 32 2d 6d 6f 64 65 2d 64 69 73 70 6c  | ors.and.warnings".js2-mode-displ | 
| c080 |  61 79 2d 77 61 72 6e 69 6e 67 73 2d 61 6e 64 2d    65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20  | ay-warnings-and-errors.......... | 
| c0a0 |  20 20 20 20 20 20 20 20 20 3a 76 69 73 69 62 6c    65 20 28 6e 6f 74 20 6a 73 32 2d 6d 6f 64 65 2d  | .........:visible.(not.js2-mode- | 
| c0c0 |  73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | show-parse-errors).............. | 
| c0e0 |  20 20 20 20 20 3a 68 65 6c 70 20 22 54 75 72 6e    20 6f 6e 20 64 69 73 70 6c 61 79 20 6f 66 20 77  | .....:help."Turn.on.display.of.w | 
| c100 |  61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 6f    72 73 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69  | arnings.and.errors"))......(defi | 
| c120 |  6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75    2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20  | ne-key.map.[menu-bar.javascript. | 
| c140 |  68 69 64 65 2d 65 72 72 6f 72 73 5d 0a 20 20 20    20 20 20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22  | hide-errors].......'(menu-item." | 
| c160 |  48 69 64 65 20 65 72 72 6f 72 73 20 61 6e 64 20    77 61 72 6e 69 6e 67 73 22 20 6a 73 32 2d 6d 6f  | Hide.errors.and.warnings".js2-mo | 
| c180 |  64 65 2d 68 69 64 65 2d 77 61 72 6e 69 6e 67 73    2d 61 6e 64 2d 65 72 72 6f 72 73 0a 20 20 20 20  | de-hide-warnings-and-errors..... | 
| c1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 76    69 73 69 62 6c 65 20 6a 73 32 2d 6d 6f 64 65 2d  | ..............:visible.js2-mode- | 
| c1c0 |  73 68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | show-parse-errors............... | 
| c1e0 |  20 20 20 20 3a 68 65 6c 70 20 22 54 75 72 6e 20    6f 66 66 20 64 69 73 70 6c 61 79 20 6f 66 20 77  | ....:help."Turn.off.display.of.w | 
| c200 |  61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72 6f    72 73 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69  | arnings.and.errors"))......(defi | 
| c220 |  6e 65 2d 6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75    2d 62 61 72 20 6a 61 76 61 73 63 72 69 70 74 20  | ne-key.map.[menu-bar.javascript. | 
| c240 |  73 65 70 61 72 61 74 6f 72 2d 31 5d 0a 20 20 20    20 20 20 27 28 22 2d 2d 22 29 29 0a 0a 20 20 20  | separator-1].......'("--"))..... | 
| c260 |  20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70    20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73  | .(define-key.map.[menu-bar.javas | 
| c280 |  63 72 69 70 74 20 6a 73 32 2d 74 6f 67 67 6c 65    2d 66 75 6e 63 74 69 6f 6e 5d 0a 20 20 20 20 20  | cript.js2-toggle-function]...... | 
| c2a0 |  20 27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 53 68    6f 77 2f 63 6f 6c 6c 61 70 73 65 20 65 6c 65 6d  | .'(menu-item."Show/collapse.elem | 
| c2c0 |  65 6e 74 22 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f    67 67 6c 65 2d 65 6c 65 6d 65 6e 74 0a 20 20 20  | ent".js2-mode-toggle-element.... | 
| c2e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    68 65 6c 70 20 22 48 69 64 65 20 6f 72 20 73 68  | ...............:help."Hide.or.sh | 
| c300 |  6f 77 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79    20 6f 72 20 63 6f 6d 6d 65 6e 74 22 29 29 0a 0a  | ow.function.body.or.comment")).. | 
| c320 |  20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20    6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61  | ....(define-key.map.[menu-bar.ja | 
| c340 |  76 61 73 63 72 69 70 74 20 73 68 6f 77 2d 63 6f    6d 6d 65 6e 74 73 5d 0a 20 20 20 20 20 20 27 28  | vascript.show-comments].......'( | 
| c360 |  6d 65 6e 75 2d 69 74 65 6d 20 22 53 68 6f 77 20    62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 22 20  | menu-item."Show.block.comments". | 
| c380 |  6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d    68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20  | js2-mode-toggle-hide-comments... | 
| c3a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 76 69 73 69 62 6c 65 20 6a 73 32 2d 6d 6f 64  | ................:visible.js2-mod | 
| c3c0 |  65 2d 63 6f 6d 6d 65 6e 74 73 2d 68 69 64 64 65    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-comments-hidden............... | 
| c3e0 |  20 20 20 20 3a 68 65 6c 70 20 22 45 78 70 61 6e    64 20 61 6c 6c 20 68 69 64 64 65 6e 20 62 6c 6f  | ....:help."Expand.all.hidden.blo | 
| c400 |  63 6b 20 63 6f 6d 6d 65 6e 74 73 22 29 29 0a 0a    20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20  | ck.comments"))......(define-key. | 
| c420 |  6d 61 70 20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61    76 61 73 63 72 69 70 74 20 68 69 64 65 2d 63 6f  | map.[menu-bar.javascript.hide-co | 
| c440 |  6d 6d 65 6e 74 73 5d 0a 20 20 20 20 20 20 27 28    6d 65 6e 75 2d 69 74 65 6d 20 22 48 69 64 65 20  | mments].......'(menu-item."Hide. | 
| c460 |  62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 22 20    6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d  | block.comments".js2-mode-toggle- | 
| c480 |  68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | hide-comments................... | 
| c4a0 |  3a 76 69 73 69 62 6c 65 20 28 6e 6f 74 20 6a 73    32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d  | :visible.(not.js2-mode-comments- | 
| c4c0 |  68 69 64 64 65 6e 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 68 65 6c 70 20  | hidden)...................:help. | 
| c4e0 |  22 53 68 6f 77 20 62 6c 6f 63 6b 20 63 6f 6d 6d    65 6e 74 73 20 61 73 20 2f 2a 2e 2e 2e 2a 2f 22  | "Show.block.comments.as./*...*/" | 
| c500 |  29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d    6b 65 79 20 6d 61 70 20 5b 6d 65 6e 75 2d 62 61  | ))......(define-key.map.[menu-ba | 
| c520 |  72 20 6a 61 76 61 73 63 72 69 70 74 20 73 68 6f    77 2d 61 6c 6c 2d 66 75 6e 63 74 69 6f 6e 73 5d  | r.javascript.show-all-functions] | 
| c540 |  0a 20 20 20 20 20 20 27 28 6d 65 6e 75 2d 69 74    65 6d 20 22 53 68 6f 77 20 66 75 6e 63 74 69 6f  | .......'(menu-item."Show.functio | 
| c560 |  6e 20 62 6f 64 69 65 73 22 20 6a 73 32 2d 6d 6f    64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 66  | n.bodies".js2-mode-toggle-hide-f | 
| c580 |  75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 76 69 73 69  | unctions...................:visi | 
| c5a0 |  62 6c 65 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e    63 74 69 6f 6e 73 2d 68 69 64 64 65 6e 0a 20 20  | ble.js2-mode-functions-hidden... | 
| c5c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 68 65 6c 70 20 22 45 78 70 61 6e 64 20 61 6c  | ................:help."Expand.al | 
| c5e0 |  6c 20 68 69 64 64 65 6e 20 66 75 6e 63 74 69 6f    6e 20 62 6f 64 69 65 73 22 29 29 0a 0a 20 20 20  | l.hidden.function.bodies"))..... | 
| c600 |  20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70    20 5b 6d 65 6e 75 2d 62 61 72 20 6a 61 76 61 73  | .(define-key.map.[menu-bar.javas | 
| c620 |  63 72 69 70 74 20 68 69 64 65 2d 61 6c 6c 2d 66    75 6e 63 74 69 6f 6e 73 5d 0a 20 20 20 20 20 20  | cript.hide-all-functions]....... | 
| c640 |  27 28 6d 65 6e 75 2d 69 74 65 6d 20 22 48 69 64    65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 69 65  | '(menu-item."Hide.function.bodie | 
| c660 |  73 22 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67    6c 65 2d 68 69 64 65 2d 66 75 6e 63 74 69 6f 6e  | s".js2-mode-toggle-hide-function | 
| c680 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 76 69 73 69 62 6c 65 20 28 6e 6f  | s...................:visible.(no | 
| c6a0 |  74 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74    69 6f 6e 73 2d 68 69 64 64 65 6e 29 0a 20 20 20  | t.js2-mode-functions-hidden).... | 
| c6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    68 65 6c 70 20 22 53 68 6f 77 20 7b 2e 2e 2e 7d  | ...............:help."Show.{...} | 
| c6e0 |  20 66 6f 72 20 61 6c 6c 20 74 6f 70 2d 6c 65 76    65 6c 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 69  | .for.all.top-level.function.bodi | 
| c700 |  65 73 22 29 29 0a 0a 20 20 20 20 6d 61 70 29 0a    20 20 22 4b 65 79 6d 61 70 20 75 73 65 64 20 69  | es"))......map)..."Keymap.used.i | 
| c720 |  6e 20 60 6a 73 32 2d 6d 6f 64 65 27 20 62 75 66    66 65 72 73 2e 22 29 0a 0a 28 64 65 66 63 75 73  | n.`js2-mode'.buffers.")..(defcus | 
| c740 |  74 6f 6d 20 6a 73 32 2d 62 6f 75 6e 63 65 2d 69    6e 64 65 6e 74 2d 70 20 6e 69 6c 0a 20 20 22 4e  | tom.js2-bounce-indent-p.nil..."N | 
| c760 |  6f 6e 2d 6e 69 6c 20 74 6f 20 62 69 6e 64 20 60    6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63  | on-nil.to.bind.`js2-indent-bounc | 
| c780 |  65 27 20 61 6e 64 20 60 6a 73 32 2d 69 6e 64 65    6e 74 2d 62 6f 75 6e 63 65 2d 62 61 63 6b 77 61  | e'.and.`js2-indent-bounce-backwa | 
| c7a0 |  72 64 27 2e 0a 54 68 65 79 20 77 69 6c 6c 20 61    75 67 6d 65 6e 74 20 74 68 65 20 64 65 66 61 75  | rd'..They.will.augment.the.defau | 
| c7c0 |  6c 74 20 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 62    65 68 61 76 69 6f 72 20 77 69 74 68 20 63 79 63  | lt.indent-line.behavior.with.cyc | 
| c7e0 |  6c 69 6e 67 0a 61 6d 6f 6e 67 20 73 65 76 65 72    61 6c 20 63 6f 6d 70 75 74 65 64 20 61 6c 74 65  | ling.among.several.computed.alte | 
| c800 |  72 6e 61 74 69 76 65 73 2e 20 20 53 65 65 20 74    68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 6a 73 32  | rnatives...See.the.function.`js2 | 
| c820 |  2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 27 20    66 6f 72 20 64 65 74 61 69 6c 73 2e 20 20 54 68  | -bounce-indent'.for.details...Th | 
| c840 |  65 20 61 62 6f 76 65 20 63 6f 6d 6d 61 6e 64 73    20 77 69 6c 6c 20 62 65 0a 62 6f 75 6e 64 20 74  | e.above.commands.will.be.bound.t | 
| c860 |  6f 20 54 41 42 20 61 6e 64 20 62 61 63 6b 74 61    62 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f  | o.TAB.and.backtab."...:type.'boo | 
| c880 |  6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a    73 32 2d 6d 6f 64 65 0a 20 20 3a 73 65 74 20 28  | lean...:group.'js2-mode...:set.( | 
| c8a0 |  6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c 75    65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74  | lambda.(sym.value)..........(set | 
| c8c0 |  2d 64 65 66 61 75 6c 74 20 73 79 6d 20 76 61 6c    75 65 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65  | -default.sym.value)..........(le | 
| c8e0 |  74 20 28 28 6d 61 70 20 6a 73 32 2d 6d 6f 64 65    2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20  | t.((map.js2-mode-map)).......... | 
| c900 |  20 20 28 69 66 20 28 6e 6f 74 20 76 61 6c 75 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..(if.(not.value)............... | 
| c920 |  20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65  | .(progn..................(define | 
| c940 |  2d 6b 65 79 20 6d 61 70 20 22 5c 74 22 20 6e 69    6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | -key.map."\t".nil).............. | 
| c960 |  20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20    6d 61 70 20 28 6b 62 64 20 22 3c 62 61 63 6b 74  | ....(define-key.map.(kbd."<backt | 
| c980 |  61 62 3e 22 29 20 6e 69 6c 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65  | ab>").nil))..............(define | 
| c9a0 |  2d 6b 65 79 20 6d 61 70 20 22 5c 74 22 20 23 27    6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f 75 6e 63  | -key.map."\t".#'js2-indent-bounc | 
| c9c0 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20  | e)..............(define-key.map. | 
| c9e0 |  28 6b 62 64 20 22 3c 62 61 63 6b 74 61 62 3e 22    29 20 23 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 62  | (kbd."<backtab>").#'js2-indent-b | 
| ca00 |  6f 75 6e 63 65 2d 62 61 63 6b 77 61 72 64 29 29    29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a  | ounce-backward)))))..(defconst.j | 
| ca20 |  73 32 2d 6d 6f 64 65 2d 69 64 65 6e 74 69 66 69    65 72 2d 72 65 20 22 5b 5b 3a 61 6c 70 68 61 3a  | s2-mode-identifier-re."[[:alpha: | 
| ca40 |  5d 5f 24 5d 5b 5b 3a 61 6c 6e 75 6d 3a 5d 5f 24    5d 2a 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73  | ]_$][[:alnum:]_$]*")..(defvar.js | 
| ca60 |  32 2d 6d 6f 64 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e    74 2d 72 65 20 22 5e 5c 5c 28 5c 5c 73 2d 2a 5c  | 2-mode-//-comment-re."^\\(\\s-*\ | 
| ca80 |  5c 29 2f 2f 2e 2b 22 0a 20 20 22 4d 61 74 63 68    65 73 20 61 20 2f 2f 2d 63 6f 6d 6d 65 6e 74 20  | \)//.+"..."Matches.a.//-comment. | 
| caa0 |  6c 69 6e 65 2e 20 20 4d 75 73 74 20 62 65 20 66    69 72 73 74 20 6e 6f 6e 2d 77 68 69 74 65 73 70  | line...Must.be.first.non-whitesp | 
| cac0 |  61 63 65 20 6f 6e 20 6c 69 6e 65 2e 0a 46 69 72    73 74 20 6d 61 74 63 68 2d 67 72 6f 75 70 20 69  | ace.on.line..First.match-group.i | 
| cae0 |  73 20 74 68 65 20 6c 65 61 64 69 6e 67 20 77 68    69 74 65 73 70 61 63 65 2e 22 29 0a 0a 28 64 65  | s.the.leading.whitespace.")..(de | 
| cb00 |  66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 68 6f    6f 6b 20 6e 69 6c 29 0a 0a 28 6a 73 32 2d 64 65  | fvar.js2-mode-hook.nil)..(js2-de | 
| cb20 |  66 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d    61 73 74 20 6e 69 6c 20 22 50 72 69 76 61 74 65  | flocal.js2-mode-ast.nil."Private | 
| cb40 |  20 76 61 72 69 61 62 6c 65 2e 22 29 0a 28 6a 73    32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6d  | .variable.").(js2-deflocal.js2-m | 
| cb60 |  6f 64 65 2d 70 61 72 73 65 2d 74 69 6d 65 72 20    6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72  | ode-parse-timer.nil."Private.var | 
| cb80 |  69 61 62 6c 65 2e 22 29 0a 28 6a 73 32 2d 64 65    66 6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d  | iable.").(js2-deflocal.js2-mode- | 
| cba0 |  62 75 66 66 65 72 2d 64 69 72 74 79 2d 70 20 6e    69 6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69  | buffer-dirty-p.nil."Private.vari | 
| cbc0 |  61 62 6c 65 2e 22 29 0a 28 6a 73 32 2d 64 65 66    6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 70  | able.").(js2-deflocal.js2-mode-p | 
| cbe0 |  61 72 73 69 6e 67 20 6e 69 6c 20 22 50 72 69 76    61 74 65 20 76 61 72 69 61 62 6c 65 2e 22 29 0a  | arsing.nil."Private.variable."). | 
| cc00 |  28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73    32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72  | (js2-deflocal.js2-mode-node-over | 
| cc20 |  6c 61 79 20 6e 69 6c 29 0a 0a 28 64 65 66 76 61    72 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d  | lay.nil)..(defvar.js2-mode-show- | 
| cc40 |  6f 76 65 72 6c 61 79 20 6a 73 32 2d 6d 6f 64 65    2d 64 65 76 2d 6d 6f 64 65 2d 70 0a 20 20 22 44  | overlay.js2-mode-dev-mode-p..."D | 
| cc60 |  65 62 75 67 3a 20 20 4e 6f 6e 2d 6e 69 6c 20 74    6f 20 68 69 67 68 6c 69 67 68 74 20 41 53 54 20  | ebug:..Non-nil.to.highlight.AST. | 
| cc80 |  6e 6f 64 65 73 20 6f 6e 20 6d 6f 75 73 65 2d 64    6f 77 6e 2e 22 29 0a 0a 28 6a 73 32 2d 64 65 66  | nodes.on.mouse-down.")..(js2-def | 
| cca0 |  6c 6f 63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 66    6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 20 6e 69  | local.js2-mode-fontifications.ni | 
| ccc0 |  6c 20 22 50 72 69 76 61 74 65 20 76 61 72 69 61    62 6c 65 22 29 0a 28 6a 73 32 2d 64 65 66 6c 6f  | l."Private.variable").(js2-deflo | 
| cce0 |  63 61 6c 20 6a 73 32 2d 6d 6f 64 65 2d 64 65 66    65 72 72 65 64 2d 70 72 6f 70 65 72 74 69 65 73  | cal.js2-mode-deferred-properties | 
| cd00 |  20 6e 69 6c 20 22 50 72 69 76 61 74 65 20 76 61    72 69 61 62 6c 65 22 29 0a 28 6a 73 32 2d 64 65  | .nil."Private.variable").(js2-de | 
| cd20 |  66 6c 6f 63 61 6c 20 6a 73 32 2d 69 6d 65 6e 75    2d 72 65 63 6f 72 64 65 72 20 6e 69 6c 20 22 50  | flocal.js2-imenu-recorder.nil."P | 
| cd40 |  72 69 76 61 74 65 20 76 61 72 69 61 62 6c 65 22    29 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20  | rivate.variable").(js2-deflocal. | 
| cd60 |  6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69    6f 6e 2d 6d 61 70 20 6e 69 6c 20 22 50 72 69 76  | js2-imenu-function-map.nil."Priv | 
| cd80 |  61 74 65 20 76 61 72 69 61 62 6c 65 22 29 0a 0a    28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f 64 65  | ate.variable")..(defvar.js2-mode | 
| cda0 |  2d 76 65 72 62 6f 73 65 2d 70 61 72 73 65 2d 70    20 6a 73 32 2d 6d 6f 64 65 2d 64 65 76 2d 6d 6f  | -verbose-parse-p.js2-mode-dev-mo | 
| cdc0 |  64 65 2d 70 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20    74 6f 20 65 6d 69 74 20 73 74 61 74 75 73 20 6d  | de-p..."Non-nil.to.emit.status.m | 
| cde0 |  65 73 73 61 67 65 73 20 64 75 72 69 6e 67 20 70    61 72 73 69 6e 67 2e 22 29 0a 0a 28 64 65 66 76  | essages.during.parsing.")..(defv | 
| ce00 |  61 72 20 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e    67 65 2d 73 79 6e 74 61 78 2d 70 20 74 0a 20 20  | ar.js2-mode-change-syntax-p.t... | 
| ce20 |  22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 73 65 74 20    74 68 65 20 73 79 6e 74 61 78 2d 74 61 62 6c 65  | "Non-nil.to.set.the.syntax-table | 
| ce40 |  20 74 65 78 74 20 70 72 6f 70 65 72 74 79 20 6f    6e 20 63 65 72 74 61 69 6e 20 6c 69 74 65 72 61  | .text.property.on.certain.litera | 
| ce60 |  6c 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a    73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69 6f 6e  | ls.")..(defvar.js2-mode-function | 
| ce80 |  73 2d 68 69 64 64 65 6e 20 6e 69 6c 20 22 50 72    69 76 61 74 65 20 76 61 72 69 61 62 6c 65 2e 22  | s-hidden.nil."Private.variable." | 
| cea0 |  29 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 6f    64 65 2d 63 6f 6d 6d 65 6e 74 73 2d 68 69 64 64  | ).(defvar.js2-mode-comments-hidd | 
| cec0 |  65 6e 20 6e 69 6c 20 22 50 72 69 76 61 74 65 20    76 61 72 69 61 62 6c 65 2e 22 29 0a 0a 28 64 65  | en.nil."Private.variable.")..(de | 
| cee0 |  66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 73 79    6e 74 61 78 2d 74 61 62 6c 65 0a 20 20 28 6c 65  | fvar.js2-mode-syntax-table...(le | 
| cf00 |  74 20 28 28 74 61 62 6c 65 20 28 6d 61 6b 65 2d    73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 29 0a  | t.((table.(make-syntax-table))). | 
| cf20 |  20 20 20 20 28 63 2d 70 6f 70 75 6c 61 74 65 2d    73 79 6e 74 61 78 2d 74 61 62 6c 65 20 74 61 62  | ....(c-populate-syntax-table.tab | 
| cf40 |  6c 65 29 0a 20 20 20 20 28 6d 6f 64 69 66 79 2d    73 79 6e 74 61 78 2d 65 6e 74 72 79 20 3f 60 20  | le).....(modify-syntax-entry.?`. | 
| cf60 |  22 5c 22 22 20 74 61 62 6c 65 29 0a 20 20 20 20    74 61 62 6c 65 29 0a 20 20 22 53 79 6e 74 61 78  | "\"".table).....table)..."Syntax | 
| cf80 |  20 74 61 62 6c 65 20 75 73 65 64 20 69 6e 20 60    6a 73 32 2d 6d 6f 64 65 27 20 62 75 66 66 65 72  | .table.used.in.`js2-mode'.buffer | 
| cfa0 |  73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6a 73    32 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61  | s.")..(defvar.js2-mode-abbrev-ta | 
| cfc0 |  62 6c 65 20 6e 69 6c 0a 20 20 22 41 62 62 72 65    76 20 74 61 62 6c 65 20 69 6e 20 75 73 65 20 69  | ble.nil..."Abbrev.table.in.use.i | 
| cfe0 |  6e 20 60 6a 73 32 2d 6d 6f 64 65 27 20 62 75 66    66 65 72 73 2e 22 29 0a 28 64 65 66 69 6e 65 2d  | n.`js2-mode'.buffers.").(define- | 
| d000 |  61 62 62 72 65 76 2d 74 61 62 6c 65 20 27 6a 73    32 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61  | abbrev-table.'js2-mode-abbrev-ta | 
| d020 |  62 6c 65 20 28 29 29 0a 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e  | ble.())..(defvar.js2-mode-pendin | 
| d040 |  67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b    73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66  | g-parse-callbacks.nil..."List.of | 
| d060 |  20 66 75 6e 63 74 69 6f 6e 73 20 77 61 69 74 69    6e 67 20 74 6f 20 62 65 20 6e 6f 74 69 66 69 65  | .functions.waiting.to.be.notifie | 
| d080 |  64 20 74 68 61 74 20 70 61 72 73 65 20 69 73 20    66 69 6e 69 73 68 65 64 2e 22 29 0a 0a 28 64 65  | d.that.parse.is.finished.")..(de | 
| d0a0 |  66 76 61 72 20 6a 73 32 2d 6d 6f 64 65 2d 6c 61    73 74 2d 69 6e 64 65 6e 74 65 64 2d 6c 69 6e 65  | fvar.js2-mode-last-indented-line | 
| d0c0 |  20 2d 31 29 0a 0a 3b 3b 3b 20 4c 6f 63 61 6c 69    7a 61 62 6c 65 20 65 72 72 6f 72 20 61 6e 64 20  | .-1)..;;;.Localizable.error.and. | 
| d0e0 |  77 61 72 6e 69 6e 67 20 6d 65 73 73 61 67 65 73    0a 0a 3b 3b 20 4d 65 73 73 61 67 65 73 20 61 72  | warning.messages..;;.Messages.ar | 
| d100 |  65 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 52 68    69 6e 6f 27 73 20 4d 65 73 73 61 67 65 73 2e 70  | e.copied.from.Rhino's.Messages.p | 
| d120 |  72 6f 70 65 72 74 69 65 73 2e 0a 3b 3b 20 4d 61    6e 79 20 6f 66 20 74 68 65 20 4a 61 76 61 2d 73  | roperties..;;.Many.of.the.Java-s | 
| d140 |  70 65 63 69 66 69 63 20 6d 65 73 73 61 67 65 73    20 68 61 76 65 20 62 65 65 6e 20 65 6c 69 64 65  | pecific.messages.have.been.elide | 
| d160 |  64 2e 0a 3b 3b 20 41 64 64 20 61 6e 79 20 6a 73    32 2d 73 70 65 63 69 66 69 63 20 6f 6e 65 73 20  | d..;;.Add.any.js2-specific.ones. | 
| d180 |  61 74 20 74 68 65 20 65 6e 64 2c 20 73 6f 20 77    65 20 63 61 6e 20 6b 65 65 70 0a 3b 3b 20 74 68  | at.the.end,.so.we.can.keep.;;.th | 
| d1a0 |  69 73 20 66 69 6c 65 20 73 79 6e 63 65 64 20 77    69 74 68 20 63 68 61 6e 67 65 73 20 74 6f 20 52  | is.file.synced.with.changes.to.R | 
| d1c0 |  68 69 6e 6f 27 73 2e 0a 0a 28 64 65 66 76 61 72    20 6a 73 32 2d 6d 65 73 73 61 67 65 2d 74 61 62  | hino's...(defvar.js2-message-tab | 
| d1e0 |  6c 65 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d    74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71 75  | le...(make-hash-table.:test.'equ | 
| d200 |  61 6c 20 3a 73 69 7a 65 20 32 35 30 29 0a 20 20    22 43 6f 6e 74 61 69 6e 73 20 6c 6f 63 61 6c 69  | al.:size.250)..."Contains.locali | 
| d220 |  7a 65 64 20 6d 65 73 73 61 67 65 73 20 66 6f 72    20 60 6a 73 32 2d 6d 6f 64 65 27 2e 22 29 0a 0a  | zed.messages.for.`js2-mode'.").. | 
| d240 |  3b 3b 20 54 4f 44 4f 28 73 74 65 76 65 79 29 3a    20 20 63 6f 6e 73 74 72 75 63 74 20 74 68 69 73  | ;;.TODO(stevey):..construct.this | 
| d260 |  20 74 61 62 6c 65 20 61 74 20 63 6f 6d 70 69 6c    65 2d 74 69 6d 65 2e 0a 28 64 65 66 6d 61 63 72  | .table.at.compile-time..(defmacr | 
| d280 |  6f 20 6a 73 32 2d 6d 73 67 20 28 6b 65 79 20 26    72 65 73 74 20 73 74 72 69 6e 67 73 29 0a 20 20  | o.js2-msg.(key.&rest.strings)... | 
| d2a0 |  60 28 70 75 74 68 61 73 68 20 2c 6b 65 79 20 28    63 6f 6e 63 61 74 20 2c 40 73 74 72 69 6e 67 73  | `(puthash.,key.(concat.,@strings | 
| d2c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73    32 2d 6d 65 73 73 61 67 65 2d 74 61 62 6c 65 29  | ).............js2-message-table) | 
| d2e0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65    74 2d 6d 73 67 20 28 6d 73 67 2d 6b 65 79 29 0a  | )..(defun.js2-get-msg.(msg-key). | 
| d300 |  20 20 22 4c 6f 6f 6b 20 75 70 20 61 20 6c 6f 63    61 6c 69 7a 65 64 20 6d 65 73 73 61 67 65 2e 0a  | .."Look.up.a.localized.message.. | 
| d320 |  4d 53 47 2d 4b 45 59 20 69 73 20 61 20 6c 69 73    74 20 6f 66 20 28 4d 53 47 20 41 52 47 53 29 2e  | MSG-KEY.is.a.list.of.(MSG.ARGS). | 
| d340 |  20 20 49 66 20 74 68 65 20 6d 65 73 73 61 67 65    20 74 61 6b 65 73 20 70 61 72 61 6d 65 74 65 72  | ..If.the.message.takes.parameter | 
| d360 |  73 2c 0a 74 68 65 20 63 6f 72 72 65 63 74 20 6e    75 6d 62 65 72 20 6f 66 20 41 52 47 53 20 6d 75  | s,.the.correct.number.of.ARGS.mu | 
| d380 |  73 74 20 62 65 20 70 72 6f 76 69 64 65 64 2e 22    0a 20 20 28 6c 65 74 2a 20 28 28 6b 65 79 20 28  | st.be.provided."...(let*.((key.( | 
| d3a0 |  69 66 20 28 6c 69 73 74 70 20 6d 73 67 2d 6b 65    79 29 20 28 63 61 72 20 6d 73 67 2d 6b 65 79 29  | if.(listp.msg-key).(car.msg-key) | 
| d3c0 |  20 6d 73 67 2d 6b 65 79 29 29 0a 20 20 20 20 20    20 20 20 20 28 61 72 67 73 20 28 69 66 20 28 6c  | .msg-key))..........(args.(if.(l | 
| d3e0 |  69 73 74 70 20 6d 73 67 2d 6b 65 79 29 20 28 63    64 72 20 6d 73 67 2d 6b 65 79 29 29 29 0a 20 20  | istp.msg-key).(cdr.msg-key)))... | 
| d400 |  20 20 20 20 20 20 20 28 6d 73 67 20 28 67 65 74    68 61 73 68 20 6b 65 79 20 6a 73 32 2d 6d 65 73  | .......(msg.(gethash.key.js2-mes | 
| d420 |  73 61 67 65 2d 74 61 62 6c 65 29 29 29 0a 20 20    20 20 28 69 66 20 6d 73 67 0a 20 20 20 20 20 20  | sage-table))).....(if.msg....... | 
| d440 |  20 20 28 61 70 70 6c 79 20 23 27 66 6f 72 6d 61    74 20 6d 73 67 20 61 72 67 73 29 0a 20 20 20 20  | ..(apply.#'format.msg.args)..... | 
| d460 |  20 20 6b 65 79 29 29 29 20 20 3b 20 64 65 66 61    75 6c 74 20 74 6f 20 73 68 6f 77 69 6e 67 20 74  | ..key)))..;.default.to.showing.t | 
| d480 |  68 65 20 6b 65 79 0a 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 64 75 70 2e 70 61 72 6d 73 22  | he.key..(js2-msg."msg.dup.parms" | 
| d4a0 |  0a 20 20 20 20 20 20 20 20 20 22 44 75 70 6c 69    63 61 74 65 20 70 61 72 61 6d 65 74 65 72 20 6e  | .........."Duplicate.parameter.n | 
| d4c0 |  61 6d 65 20 27 25 73 27 2e 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 74 6f 6f 2e 62  | ame.'%s'.")..(js2-msg."msg.too.b | 
| d4e0 |  69 67 2e 6a 75 6d 70 22 0a 20 20 20 20 20 20 20    20 20 22 50 72 6f 67 72 61 6d 20 74 6f 6f 20 63  | ig.jump".........."Program.too.c | 
| d500 |  6f 6d 70 6c 65 78 3a 20 6a 75 6d 70 20 6f 66 66    73 65 74 20 74 6f 6f 20 62 69 67 2e 22 29 0a 0a  | omplex:.jump.offset.too.big.").. | 
| d520 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 74 6f    6f 2e 62 69 67 2e 69 6e 64 65 78 22 0a 20 20 20  | (js2-msg."msg.too.big.index".... | 
| d540 |  20 20 20 20 20 20 22 50 72 6f 67 72 61 6d 20 74    6f 6f 20 63 6f 6d 70 6c 65 78 3a 20 69 6e 74 65  | ......"Program.too.complex:.inte | 
| d560 |  72 6e 61 6c 20 69 6e 64 65 78 20 65 78 63 65 65    64 73 20 36 34 4b 20 6c 69 6d 69 74 2e 22 29 0a  | rnal.index.exceeds.64K.limit."). | 
| d580 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 77    68 69 6c 65 2e 63 6f 6d 70 69 6c 69 6e 67 2e 66  | .(js2-msg."msg.while.compiling.f | 
| d5a0 |  6e 22 0a 20 20 20 20 20 20 20 20 20 22 45 6e 63    6f 75 6e 74 65 72 65 64 20 63 6f 64 65 20 67 65  | n".........."Encountered.code.ge | 
| d5c0 |  6e 65 72 61 74 69 6f 6e 20 65 72 72 6f 72 20 77    68 69 6c 65 20 63 6f 6d 70 69 6c 69 6e 67 20 66  | neration.error.while.compiling.f | 
| d5e0 |  75 6e 63 74 69 6f 6e 20 27 25 73 27 3a 20 25 73    22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73  | unction.'%s':.%s")..(js2-msg."ms | 
| d600 |  67 2e 77 68 69 6c 65 2e 63 6f 6d 70 69 6c 69 6e    67 2e 73 63 72 69 70 74 22 0a 20 20 20 20 20 20  | g.while.compiling.script"....... | 
| d620 |  20 20 20 22 45 6e 63 6f 75 6e 74 65 72 65 64 20    63 6f 64 65 20 67 65 6e 65 72 61 74 69 6f 6e 20  | ..."Encountered.code.generation. | 
| d640 |  65 72 72 6f 72 20 77 68 69 6c 65 20 63 6f 6d 70    69 6c 69 6e 67 20 73 63 72 69 70 74 3a 20 25 73  | error.while.compiling.script:.%s | 
| d660 |  22 29 0a 0a 3b 3b 20 43 6f 6e 74 65 78 74 0a 28    6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 74 6f  | ")..;;.Context.(js2-msg."msg.cto | 
| d680 |  72 2e 6e 6f 74 2e 66 6f 75 6e 64 22 0a 20 20 20    20 20 20 20 20 20 22 43 6f 6e 73 74 72 75 63 74  | r.not.found".........."Construct | 
| d6a0 |  6f 72 20 66 6f 72 20 27 25 73 27 20 6e 6f 74 20    66 6f 75 6e 64 2e 22 29 0a 0a 28 6a 73 32 2d 6d  | or.for.'%s'.not.found.")..(js2-m | 
| d6c0 |  73 67 20 22 6d 73 67 2e 6e 6f 74 2e 63 74 6f 72    22 0a 20 20 20 20 20 20 20 20 20 22 27 25 73 27  | sg."msg.not.ctor".........."'%s' | 
| d6e0 |  20 69 73 20 6e 6f 74 20 61 20 63 6f 6e 73 74 72    75 63 74 6f 72 2e 22 29 0a 0a 3b 3b 20 46 75 6e  | .is.not.a.constructor.")..;;.Fun | 
| d700 |  63 74 69 6f 6e 4f 62 6a 65 63 74 0a 28 6a 73 32    2d 6d 73 67 20 22 6d 73 67 2e 76 61 72 61 72 67  | ctionObject.(js2-msg."msg.vararg | 
| d720 |  73 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20    20 22 4d 65 74 68 6f 64 20 6f 72 20 63 6f 6e 73  | s.ctor".........."Method.or.cons | 
| d740 |  74 72 75 63 74 6f 72 20 27 25 73 27 20 6d 75 73    74 20 62 65 20 73 74 61 74 69 63 20 22 0a 20 20  | tructor.'%s'.must.be.static."... | 
| d760 |  20 20 20 20 20 20 20 22 77 69 74 68 20 74 68 65    20 73 69 67 6e 61 74 75 72 65 20 28 43 6f 6e 74  | ......."with.the.signature.(Cont | 
| d780 |  65 78 74 20 63 78 2c 20 4f 62 6a 65 63 74 5b 5d    20 61 72 67 73 2c 20 22 0a 20 20 20 20 20 20 20  | ext.cx,.Object[].args,."........ | 
| d7a0 |  20 20 22 46 75 6e 63 74 69 6f 6e 20 63 74 6f 72    4f 62 6a 2c 20 62 6f 6f 6c 65 61 6e 20 69 6e 4e  | .."Function.ctorObj,.boolean.inN | 
| d7c0 |  65 77 45 78 70 72 29 20 22 0a 20 20 20 20 20 20    20 20 20 22 74 6f 20 64 65 66 69 6e 65 20 61 20  | ewExpr).".........."to.define.a. | 
| d7e0 |  76 61 72 69 61 62 6c 65 20 61 72 67 75 6d 65 6e    74 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e 22  | variable.arguments.constructor." | 
| d800 |  29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 76 61 72 61 72 67 73 2e 66 75 6e 22 0a 20 20  | )..(js2-msg."msg.varargs.fun"... | 
| d820 |  20 20 20 20 20 20 20 22 4d 65 74 68 6f 64 20 27    25 73 27 20 6d 75 73 74 20 62 65 20 73 74 61 74  | ......."Method.'%s'.must.be.stat | 
| d840 |  69 63 20 77 69 74 68 20 74 68 65 20 73 69 67 6e    61 74 75 72 65 20 22 0a 20 20 20 20 20 20 20 20  | ic.with.the.signature."......... | 
| d860 |  20 22 28 43 6f 6e 74 65 78 74 20 63 78 2c 20 53    63 72 69 70 74 61 62 6c 65 20 74 68 69 73 4f 62  | ."(Context.cx,.Scriptable.thisOb | 
| d880 |  6a 2c 20 4f 62 6a 65 63 74 5b 5d 20 61 72 67 73    2c 20 46 75 6e 63 74 69 6f 6e 20 66 75 6e 4f 62  | j,.Object[].args,.Function.funOb | 
| d8a0 |  6a 29 20 22 0a 20 20 20 20 20 20 20 20 20 22 74    6f 20 64 65 66 69 6e 65 20 61 20 76 61 72 69 61  | j).".........."to.define.a.varia | 
| d8c0 |  62 6c 65 20 61 72 67 75 6d 65 6e 74 73 20 66 75    6e 63 74 69 6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d  | ble.arguments.function.")..(js2- | 
| d8e0 |  6d 73 67 20 22 6d 73 67 2e 69 6e 63 6f 6d 70 61    74 2e 63 61 6c 6c 22 0a 20 20 20 20 20 20 20 20  | msg."msg.incompat.call"......... | 
| d900 |  20 22 4d 65 74 68 6f 64 20 27 25 73 27 20 63 61    6c 6c 65 64 20 6f 6e 20 69 6e 63 6f 6d 70 61 74  | ."Method.'%s'.called.on.incompat | 
| d920 |  69 62 6c 65 20 6f 62 6a 65 63 74 2e 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61  | ible.object.")..(js2-msg."msg.ba | 
| d940 |  64 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20    20 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 70  | d.parms".........."Unsupported.p | 
| d960 |  61 72 61 6d 65 74 65 72 20 74 79 70 65 20 27 25    73 27 20 69 6e 20 6d 65 74 68 6f 64 20 27 25 73  | arameter.type.'%s'.in.method.'%s | 
| d980 |  27 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 62 61 64 2e 6d 65 74 68 6f 64 2e 72  | '.")..(js2-msg."msg.bad.method.r | 
| d9a0 |  65 74 75 72 6e 22 0a 20 20 20 20 20 20 20 20 20    22 55 6e 73 75 70 70 6f 72 74 65 64 20 72 65 74  | eturn".........."Unsupported.ret | 
| d9c0 |  75 72 6e 20 74 79 70 65 20 27 25 73 27 20 69 6e    20 6d 65 74 68 6f 64 20 27 25 73 27 2e 22 29 0a  | urn.type.'%s'.in.method.'%s'."). | 
| d9e0 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62    61 64 2e 63 74 6f 72 2e 72 65 74 75 72 6e 22 0a  | .(js2-msg."msg.bad.ctor.return". | 
| da00 |  20 20 20 20 20 20 20 20 20 22 43 6f 6e 73 74 72    75 63 74 69 6f 6e 20 6f 66 20 6f 62 6a 65 63 74  | ........."Construction.of.object | 
| da20 |  73 20 6f 66 20 74 79 70 65 20 27 25 73 27 20 69    73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 2e  | s.of.type.'%s'.is.not.supported. | 
| da40 |  22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73    67 2e 6e 6f 2e 6f 76 65 72 6c 6f 61 64 22 0a 20  | ")..(js2-msg."msg.no.overload".. | 
| da60 |  20 20 20 20 20 20 20 20 22 4d 65 74 68 6f 64 20    27 25 73 27 20 6f 63 63 75 72 73 20 6d 75 6c 74  | ........"Method.'%s'.occurs.mult | 
| da80 |  69 70 6c 65 20 74 69 6d 65 73 20 69 6e 20 63 6c    61 73 73 20 27 25 73 27 2e 22 29 0a 0a 28 6a 73  | iple.times.in.class.'%s'.")..(js | 
| daa0 |  32 2d 6d 73 67 20 22 6d 73 67 2e 6d 65 74 68 6f    64 2e 6e 6f 74 2e 66 6f 75 6e 64 22 0a 20 20 20  | 2-msg."msg.method.not.found".... | 
| dac0 |  20 20 20 20 20 20 22 4d 65 74 68 6f 64 20 27 25    73 27 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20  | ......"Method.'%s'.not.found.in. | 
| dae0 |  27 25 73 27 2e 22 29 0a 0a 3b 3b 20 49 52 46 61    63 74 6f 72 79 0a 0a 28 6a 73 32 2d 6d 73 67 20  | '%s'.")..;;.IRFactory..(js2-msg. | 
| db00 |  22 6d 73 67 2e 62 61 64 2e 66 6f 72 2e 69 6e 2e    6c 68 73 22 0a 20 20 20 20 20 20 20 20 20 22 49  | "msg.bad.for.in.lhs".........."I | 
| db20 |  6e 76 61 6c 69 64 20 6c 65 66 74 2d 68 61 6e 64    20 73 69 64 65 20 6f 66 20 66 6f 72 2e 2e 69 6e  | nvalid.left-hand.side.of.for..in | 
| db40 |  20 6c 6f 6f 70 2e 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 6d 75 6c 74 2e 69 6e 64  | .loop.")..(js2-msg."msg.mult.ind | 
| db60 |  65 78 22 0a 20 20 20 20 20 20 20 20 20 22 4f 6e    6c 79 20 6f 6e 65 20 76 61 72 69 61 62 6c 65 20  | ex".........."Only.one.variable. | 
| db80 |  61 6c 6c 6f 77 65 64 20 69 6e 20 66 6f 72 2e 2e    69 6e 20 6c 6f 6f 70 2e 22 29 0a 0a 28 6a 73 32  | allowed.in.for..in.loop.")..(js2 | 
| dba0 |  2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 66 6f    72 2e 69 6e 2e 64 65 73 74 72 75 63 74 22 0a 20  | -msg."msg.bad.for.in.destruct".. | 
| dbc0 |  20 20 20 20 20 20 20 20 22 4c 65 66 74 20 68 61    6e 64 20 73 69 64 65 20 6f 66 20 66 6f 72 2e 2e  | ........"Left.hand.side.of.for.. | 
| dbe0 |  69 6e 20 6c 6f 6f 70 20 6d 75 73 74 20 62 65 20    61 6e 20 61 72 72 61 79 20 6f 66 20 22 0a 20 20  | in.loop.must.be.an.array.of."... | 
| dc00 |  20 20 20 20 20 20 20 22 6c 65 6e 67 74 68 20 32    20 74 6f 20 61 63 63 65 70 74 20 6b 65 79 2f 76  | ......."length.2.to.accept.key/v | 
| dc20 |  61 6c 75 65 20 70 61 69 72 2e 22 29 0a 0a 28 6a    73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 6e 74  | alue.pair.")..(js2-msg."msg.cant | 
| dc40 |  2e 63 6f 6e 76 65 72 74 22 0a 20 20 20 20 20 20    20 20 20 22 43 61 6e 27 74 20 63 6f 6e 76 65 72  | .convert".........."Can't.conver | 
| dc60 |  74 20 74 6f 20 74 79 70 65 20 27 25 73 27 2e 22    29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67  | t.to.type.'%s'.")..(js2-msg."msg | 
| dc80 |  2e 62 61 64 2e 61 73 73 69 67 6e 2e 6c 65 66 74    22 0a 20 20 20 20 20 20 20 20 20 22 49 6e 76 61  | .bad.assign.left".........."Inva | 
| dca0 |  6c 69 64 20 61 73 73 69 67 6e 6d 65 6e 74 20 6c    65 66 74 2d 68 61 6e 64 20 73 69 64 65 2e 22 29  | lid.assignment.left-hand.side.") | 
| dcc0 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    62 61 64 2e 64 65 63 72 22 0a 20 20 20 20 20 20  | ..(js2-msg."msg.bad.decr"....... | 
| dce0 |  20 20 20 22 49 6e 76 61 6c 69 64 20 64 65 63 72    65 6d 65 6e 74 20 6f 70 65 72 61 6e 64 2e 22 29  | ..."Invalid.decrement.operand.") | 
| dd00 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    62 61 64 2e 69 6e 63 72 22 0a 20 20 20 20 20 20  | ..(js2-msg."msg.bad.incr"....... | 
| dd20 |  20 20 20 22 49 6e 76 61 6c 69 64 20 69 6e 63 72    65 6d 65 6e 74 20 6f 70 65 72 61 6e 64 2e 22 29  | ..."Invalid.increment.operand.") | 
| dd40 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    62 61 64 2e 79 69 65 6c 64 22 0a 20 20 20 20 20  | ..(js2-msg."msg.bad.yield"...... | 
| dd60 |  20 20 20 20 22 79 69 65 6c 64 20 6d 75 73 74 20    62 65 20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e  | ...."yield.must.be.in.a.function | 
| dd80 |  2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 62 61 64 2e 61 77 61 69 74 22 0a 20 20  | .")..(js2-msg."msg.bad.await"... | 
| dda0 |  20 20 20 20 20 20 20 22 61 77 61 69 74 20 6d 75    73 74 20 62 65 20 69 6e 20 61 73 79 6e 63 20 66  | ......."await.must.be.in.async.f | 
| ddc0 |  75 6e 63 74 69 6f 6e 73 2e 22 29 0a 0a 3b 3b 20    4e 61 74 69 76 65 47 6c 6f 62 61 6c 0a 28 6a 73  | unctions.")..;;.NativeGlobal.(js | 
| dde0 |  32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 6e 74 2e    63 61 6c 6c 2e 69 6e 64 69 72 65 63 74 22 0a 20  | 2-msg."msg.cant.call.indirect".. | 
| de00 |  20 20 20 20 20 20 20 20 20 22 46 75 6e 63 74 69    6f 6e 20 27 25 73 27 20 6d 75 73 74 20 62 65 20  | ........."Function.'%s'.must.be. | 
| de20 |  63 61 6c 6c 65 64 20 64 69 72 65 63 74 6c 79 2c    20 61 6e 64 20 6e 6f 74 20 62 79 20 77 61 79 20  | called.directly,.and.not.by.way. | 
| de40 |  6f 66 20 61 20 22 0a 20 20 20 20 20 20 20 20 20    20 22 66 75 6e 63 74 69 6f 6e 20 6f 66 20 61 6e  | of.a."..........."function.of.an | 
| de60 |  6f 74 68 65 72 20 6e 61 6d 65 2e 22 29 0a 0a 28    6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 76 61  | other.name.")..(js2-msg."msg.eva | 
| de80 |  6c 2e 6e 6f 6e 73 74 72 69 6e 67 22 0a 20 20 20    20 20 20 20 20 20 20 22 43 61 6c 6c 69 6e 67 20  | l.nonstring"..........."Calling. | 
| dea0 |  65 76 61 6c 28 29 20 77 69 74 68 20 61 6e 79 74    68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20  | eval().with.anything.other.than. | 
| dec0 |  61 20 70 72 69 6d 69 74 69 76 65 20 22 0a 20 20    20 20 20 20 20 20 20 20 22 73 74 72 69 6e 67 20  | a.primitive."..........."string. | 
| dee0 |  76 61 6c 75 65 20 77 69 6c 6c 20 73 69 6d 70 6c    79 20 72 65 74 75 72 6e 20 74 68 65 20 76 61 6c  | value.will.simply.return.the.val | 
| df00 |  75 65 2e 20 22 0a 20 20 20 20 20 20 20 20 20 20    22 49 73 20 74 68 69 73 20 77 68 61 74 20 79 6f  | ue.."..........."Is.this.what.yo | 
| df20 |  75 20 69 6e 74 65 6e 64 65 64 3f 22 29 0a 0a 28    6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 76 61  | u.intended?")..(js2-msg."msg.eva | 
| df40 |  6c 2e 6e 6f 6e 73 74 72 69 6e 67 2e 73 74 72 69    63 74 22 0a 20 20 20 20 20 20 20 20 20 22 43 61  | l.nonstring.strict".........."Ca | 
| df60 |  6c 6c 69 6e 67 20 65 76 61 6c 28 29 20 77 69 74    68 20 61 6e 79 74 68 69 6e 67 20 6f 74 68 65 72  | lling.eval().with.anything.other | 
| df80 |  20 74 68 61 6e 20 61 20 70 72 69 6d 69 74 69 76    65 20 22 0a 20 20 20 20 20 20 20 20 20 22 73 74  | .than.a.primitive.".........."st | 
| dfa0 |  72 69 6e 67 20 76 61 6c 75 65 20 69 73 20 6e 6f    74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 73 74 72  | ring.value.is.not.allowed.in.str | 
| dfc0 |  69 63 74 20 6d 6f 64 65 2e 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 64  | ict.mode.")..(js2-msg."msg.bad.d | 
| dfe0 |  65 73 74 72 75 63 74 2e 6f 70 22 0a 20 20 20 20    20 20 20 20 20 22 49 6e 76 61 6c 69 64 20 64 65  | estruct.op".........."Invalid.de | 
| e000 |  73 74 72 75 63 74 75 72 69 6e 67 20 61 73 73 69    67 6e 6d 65 6e 74 20 6f 70 65 72 61 74 6f 72 22  | structuring.assignment.operator" | 
| e020 |  29 0a 0a 3b 3b 20 4e 61 74 69 76 65 43 61 6c 6c    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6f  | )..;;.NativeCall.(js2-msg."msg.o | 
| e040 |  6e 6c 79 2e 66 72 6f 6d 2e 6e 65 77 22 0a 20 20    20 20 20 20 20 20 20 22 27 25 73 27 20 6d 61 79  | nly.from.new".........."'%s'.may | 
| e060 |  20 6f 6e 6c 79 20 62 65 20 69 6e 76 6f 6b 65 64    20 66 72 6f 6d 20 61 20 60 6e 65 77 27 20 65 78  | .only.be.invoked.from.a.`new'.ex | 
| e080 |  70 72 65 73 73 69 6f 6e 2e 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 64 65 70 72 65  | pression.")..(js2-msg."msg.depre | 
| e0a0 |  63 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20 20    20 22 54 68 65 20 27 25 73 27 20 63 6f 6e 73 74  | c.ctor".........."The.'%s'.const | 
| e0c0 |  72 75 63 74 6f 72 20 69 73 20 64 65 70 72 65 63    61 74 65 64 2e 22 29 0a 0a 3b 3b 20 4e 61 74 69  | ructor.is.deprecated.")..;;.Nati | 
| e0e0 |  76 65 46 75 6e 63 74 69 6f 6e 0a 28 6a 73 32 2d    6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 66 75 6e 63  | veFunction.(js2-msg."msg.no.func | 
| e100 |  74 69 6f 6e 2e 72 65 66 2e 66 6f 75 6e 64 22 0a    20 20 20 20 20 20 20 20 20 22 6e 6f 20 73 6f 75  | tion.ref.found".........."no.sou | 
| e120 |  72 63 65 20 66 6f 75 6e 64 20 74 6f 20 64 65 63    6f 6d 70 69 6c 65 20 66 75 6e 63 74 69 6f 6e 20  | rce.found.to.decompile.function. | 
| e140 |  72 65 66 65 72 65 6e 63 65 20 25 73 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 61 72  | reference.%s")..(js2-msg."msg.ar | 
| e160 |  67 2e 69 73 6e 74 2e 61 72 72 61 79 22 0a 20 20    20 20 20 20 20 20 20 22 73 65 63 6f 6e 64 20 61  | g.isnt.array".........."second.a | 
| e180 |  72 67 75 6d 65 6e 74 20 74 6f 20 46 75 6e 63 74    69 6f 6e 2e 70 72 6f 74 6f 74 79 70 65 2e 61 70  | rgument.to.Function.prototype.ap | 
| e1a0 |  70 6c 79 20 6d 75 73 74 20 62 65 20 61 6e 20 61    72 72 61 79 22 29 0a 0a 3b 3b 20 4e 61 74 69 76  | ply.must.be.an.array")..;;.Nativ | 
| e1c0 |  65 47 6c 6f 62 61 6c 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 62 61 64 2e 65 73 63 2e 6d 61  | eGlobal.(js2-msg."msg.bad.esc.ma | 
| e1e0 |  73 6b 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e    76 61 6c 69 64 20 73 74 72 69 6e 67 20 65 73 63  | sk".........."invalid.string.esc | 
| e200 |  61 70 65 20 6d 61 73 6b 22 29 0a 0a 3b 3b 20 4e    61 74 69 76 65 52 65 67 45 78 70 0a 28 6a 73 32  | ape.mask")..;;.NativeRegExp.(js2 | 
| e220 |  2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 71 75    61 6e 74 22 0a 20 20 22 49 6e 76 61 6c 69 64 20  | -msg."msg.bad.quant"..."Invalid. | 
| e240 |  71 75 61 6e 74 69 66 69 65 72 20 25 73 22 29 0a    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6f  | quantifier.%s")..(js2-msg."msg.o | 
| e260 |  76 65 72 6c 61 72 67 65 2e 62 61 63 6b 72 65 66    22 0a 20 20 22 4f 76 65 72 6c 79 20 6c 61 72 67  | verlarge.backref"..."Overly.larg | 
| e280 |  65 20 62 61 63 6b 20 72 65 66 65 72 65 6e 63 65    20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20  | e.back.reference.%s")..(js2-msg. | 
| e2a0 |  22 6d 73 67 2e 6f 76 65 72 6c 61 72 67 65 2e 6d    69 6e 22 0a 20 20 22 4f 76 65 72 6c 79 20 6c 61  | "msg.overlarge.min"..."Overly.la | 
| e2c0 |  72 67 65 20 6d 69 6e 69 6d 75 6d 20 25 73 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | rge.minimum.%s")..(js2-msg."msg. | 
| e2e0 |  6f 76 65 72 6c 61 72 67 65 2e 6d 61 78 22 0a 20    20 22 4f 76 65 72 6c 79 20 6c 61 72 67 65 20 6d  | overlarge.max"..."Overly.large.m | 
| e300 |  61 78 69 6d 75 6d 20 25 73 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 7a 65 72 6f 2e  | aximum.%s")..(js2-msg."msg.zero. | 
| e320 |  71 75 61 6e 74 22 0a 20 20 22 5a 65 72 6f 20 71    75 61 6e 74 69 66 69 65 72 20 25 73 22 29 0a 0a  | quant"..."Zero.quantifier.%s").. | 
| e340 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 61    78 2e 6c 74 2e 6d 69 6e 22 0a 20 20 22 4d 61 78  | (js2-msg."msg.max.lt.min"..."Max | 
| e360 |  69 6d 75 6d 20 25 73 20 6c 65 73 73 20 74 68 61    6e 20 6d 69 6e 69 6d 75 6d 22 29 0a 0a 28 6a 73  | imum.%s.less.than.minimum")..(js | 
| e380 |  32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 74 65 72    6d 2e 71 75 61 6e 74 22 0a 20 20 22 55 6e 74 65  | 2-msg."msg.unterm.quant"..."Unte | 
| e3a0 |  72 6d 69 6e 61 74 65 64 20 71 75 61 6e 74 69 66    69 65 72 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d  | rminated.quantifier.%s")..(js2-m | 
| e3c0 |  73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 2e 70    61 72 65 6e 22 0a 20 20 22 55 6e 74 65 72 6d 69  | sg."msg.unterm.paren"..."Untermi | 
| e3e0 |  6e 61 74 65 64 20 70 61 72 65 6e 74 68 65 74 69    63 61 6c 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d  | nated.parenthetical.%s")..(js2-m | 
| e400 |  73 67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 2e 63    6c 61 73 73 22 0a 20 20 22 55 6e 74 65 72 6d 69  | sg."msg.unterm.class"..."Untermi | 
| e420 |  6e 61 74 65 64 20 63 68 61 72 61 63 74 65 72 20    63 6c 61 73 73 20 25 73 22 29 0a 0a 28 6a 73 32  | nated.character.class.%s")..(js2 | 
| e440 |  2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 72 61    6e 67 65 22 0a 20 20 22 49 6e 76 61 6c 69 64 20  | -msg."msg.bad.range"..."Invalid. | 
| e460 |  72 61 6e 67 65 20 69 6e 20 63 68 61 72 61 63 74    65 72 20 63 6c 61 73 73 2e 22 29 0a 0a 28 6a 73  | range.in.character.class.")..(js | 
| e480 |  32 2d 6d 73 67 20 22 6d 73 67 2e 74 72 61 69 6c    2e 62 61 63 6b 73 6c 61 73 68 22 0a 20 20 22 54  | 2-msg."msg.trail.backslash"..."T | 
| e4a0 |  72 61 69 6c 69 6e 67 20 5c 5c 20 69 6e 20 72 65    67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e  | railing.\\.in.regular.expression | 
| e4c0 |  2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 72 65 2e 75 6e 6d 61 74 63 68 65 64 2e  | .")..(js2-msg."msg.re.unmatched. | 
| e4e0 |  72 69 67 68 74 2e 70 61 72 65 6e 22 0a 20 20 22    75 6e 6d 61 74 63 68 65 64 20 29 20 69 6e 20 72  | right.paren"..."unmatched.).in.r | 
| e500 |  65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f    6e 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22  | egular.expression.")..(js2-msg." | 
| e520 |  6d 73 67 2e 6e 6f 2e 72 65 67 65 78 70 22 0a 20    20 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73  | msg.no.regexp"..."Regular.expres | 
| e540 |  73 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20 61 76    61 69 6c 61 62 6c 65 2e 22 29 0a 0a 28 6a 73 32  | sions.are.not.available.")..(js2 | 
| e560 |  2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 62 61    63 6b 72 65 66 22 0a 20 20 22 62 61 63 6b 2d 72  | -msg."msg.bad.backref"..."back-r | 
| e580 |  65 66 65 72 65 6e 63 65 20 65 78 63 65 65 64 73    20 6e 75 6d 62 65 72 20 6f 66 20 63 61 70 74 75  | eference.exceeds.number.of.captu | 
| e5a0 |  72 69 6e 67 20 70 61 72 65 6e 74 68 65 73 65 73    2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | ring.parentheses.")..(js2-msg."m | 
| e5c0 |  73 67 2e 62 61 64 2e 72 65 67 65 78 70 2e 63 6f    6d 70 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20  | sg.bad.regexp.compile".......... | 
| e5e0 |  22 4f 6e 6c 79 20 6f 6e 65 20 61 72 67 75 6d 65    6e 74 20 6d 61 79 20 62 65 20 73 70 65 63 69 66  | "Only.one.argument.may.be.specif | 
| e600 |  69 65 64 20 69 66 20 74 68 65 20 66 69 72 73 74    20 22 0a 20 20 20 20 20 20 20 20 20 22 61 72 67  | ied.if.the.first.".........."arg | 
| e620 |  75 6d 65 6e 74 20 74 6f 20 52 65 67 45 78 70 2e    70 72 6f 74 6f 74 79 70 65 2e 63 6f 6d 70 69 6c  | ument.to.RegExp.prototype.compil | 
| e640 |  65 20 69 73 20 61 20 52 65 67 45 78 70 20 6f 62    6a 65 63 74 2e 22 29 0a 0a 3b 3b 20 50 61 72 73  | e.is.a.RegExp.object.")..;;.Pars | 
| e660 |  65 72 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 67 6f 74 2e 73 79 6e 74 61 78 2e 65 72 72 6f  | er.(js2-msg."msg.got.syntax.erro | 
| e680 |  72 73 22 0a 20 20 20 20 20 20 20 20 20 22 43 6f    6d 70 69 6c 61 74 69 6f 6e 20 70 72 6f 64 75 63  | rs".........."Compilation.produc | 
| e6a0 |  65 64 20 25 73 20 73 79 6e 74 61 78 20 65 72 72    6f 72 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | ed.%s.syntax.errors.")..(js2-msg | 
| e6c0 |  20 22 6d 73 67 2e 76 61 72 2e 72 65 64 65 63 6c    22 0a 20 20 20 20 20 20 20 20 20 22 52 65 64 65  | ."msg.var.redecl".........."Rede | 
| e6e0 |  63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 76 61 72    20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | claration.of.var.%s.")..(js2-msg | 
| e700 |  20 22 6d 73 67 2e 63 6f 6e 73 74 2e 72 65 64 65    63 6c 22 0a 20 20 20 20 20 20 20 20 20 22 54 79  | ."msg.const.redecl".........."Ty | 
| e720 |  70 65 45 72 72 6f 72 3a 20 72 65 64 65 63 6c 61    72 61 74 69 6f 6e 20 6f 66 20 63 6f 6e 73 74 20  | peError:.redeclaration.of.const. | 
| e740 |  25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20    22 6d 73 67 2e 6c 65 74 2e 72 65 64 65 63 6c 22  | %s.")..(js2-msg."msg.let.redecl" | 
| e760 |  0a 20 20 20 20 20 20 20 20 20 22 54 79 70 65 45    72 72 6f 72 3a 20 72 65 64 65 63 6c 61 72 61 74  | .........."TypeError:.redeclarat | 
| e780 |  69 6f 6e 20 6f 66 20 76 61 72 69 61 62 6c 65 20    25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20  | ion.of.variable.%s.")..(js2-msg. | 
| e7a0 |  22 6d 73 67 2e 70 61 72 6d 2e 72 65 64 65 63 6c    22 0a 20 20 20 20 20 20 20 20 20 22 54 79 70 65  | "msg.parm.redecl".........."Type | 
| e7c0 |  45 72 72 6f 72 3a 20 72 65 64 65 63 6c 61 72 61    74 69 6f 6e 20 6f 66 20 66 6f 72 6d 61 6c 20 70  | Error:.redeclaration.of.formal.p | 
| e7e0 |  61 72 61 6d 65 74 65 72 20 25 73 2e 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 66 6e  | arameter.%s.")..(js2-msg."msg.fn | 
| e800 |  2e 72 65 64 65 63 6c 22 0a 20 20 20 20 20 20 20    20 20 22 54 79 70 65 45 72 72 6f 72 3a 20 72 65  | .redecl".........."TypeError:.re | 
| e820 |  64 65 63 6c 61 72 61 74 69 6f 6e 20 6f 66 20 66    75 6e 63 74 69 6f 6e 20 25 73 2e 22 29 0a 0a 28  | declaration.of.function.%s.")..( | 
| e840 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6c 65 74    2e 64 65 63 6c 2e 6e 6f 74 2e 69 6e 2e 62 6c 6f  | js2-msg."msg.let.decl.not.in.blo | 
| e860 |  63 6b 22 0a 20 20 20 20 20 20 20 20 20 22 53 79    6e 74 61 78 45 72 72 6f 72 3a 20 6c 65 74 20 64  | ck".........."SyntaxError:.let.d | 
| e880 |  65 63 6c 61 72 61 74 69 6f 6e 20 6e 6f 74 20 64    69 72 65 63 74 6c 79 20 77 69 74 68 69 6e 20 62  | eclaration.not.directly.within.b | 
| e8a0 |  6c 6f 63 6b 22 29 0a 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 6d 6f 64 2e 69 6d 70 6f 72 74  | lock")..(js2-msg."msg.mod.import | 
| e8c0 |  2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76    65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 53 79  | .decl.at.top.level".........."Sy | 
| e8e0 |  6e 74 61 78 45 72 72 6f 72 3a 20 69 6d 70 6f 72    74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6d  | ntaxError:.import.declarations.m | 
| e900 |  61 79 20 6f 6e 6c 79 20 61 70 70 65 61 72 20 61    74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 22  | ay.only.appear.at.the.top.level" | 
| e920 |  29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 6d 6f 64 2e 61 73 2e 61 66 74 65 72 2e 72 65  | )..(js2-msg."msg.mod.as.after.re | 
| e940 |  73 65 72 76 65 64 2e 77 6f 72 64 22 0a 20 20 20    20 20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72  | served.word".........."SyntaxErr | 
| e960 |  6f 72 3a 20 6d 69 73 73 69 6e 67 20 6b 65 79 77    6f 72 64 20 27 61 73 27 20 61 66 74 65 72 20 72  | or:.missing.keyword.'as'.after.r | 
| e980 |  65 73 65 72 76 65 64 20 77 6f 72 64 20 25 73 22    29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67  | eserved.word.%s")..(js2-msg."msg | 
| e9a0 |  2e 6d 6f 64 2e 72 63 2e 61 66 74 65 72 2e 69 6d    70 6f 72 74 2e 73 70 65 63 2e 6c 69 73 74 22 0a  | .mod.rc.after.import.spec.list". | 
| e9c0 |  20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78    45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 27  | ........."SyntaxError:.missing.' | 
| e9e0 |  7d 27 20 61 66 74 65 72 20 6d 6f 64 75 6c 65 20    73 70 65 63 69 66 69 65 72 20 6c 69 73 74 22 29  | }'.after.module.specifier.list") | 
| ea00 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    6d 6f 64 2e 66 72 6f 6d 2e 61 66 74 65 72 2e 69  | ..(js2-msg."msg.mod.from.after.i | 
| ea20 |  6d 70 6f 72 74 2e 73 70 65 63 2e 73 65 74 22 0a    20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78  | mport.spec.set".........."Syntax | 
| ea40 |  45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 6b    65 79 77 6f 72 64 20 27 66 72 6f 6d 27 20 61 66  | Error:.missing.keyword.'from'.af | 
| ea60 |  74 65 72 20 69 6d 70 6f 72 74 20 73 70 65 63 69    66 69 65 72 20 73 65 74 22 29 0a 0a 28 6a 73 32  | ter.import.specifier.set")..(js2 | 
| ea80 |  2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 64 65    63 6c 61 72 61 74 69 6f 6e 2e 61 66 74 65 72 2e  | -msg."msg.mod.declaration.after. | 
| eaa0 |  69 6d 70 6f 72 74 22 0a 20 20 20 20 20 20 20 20    20 22 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 6d  | import".........."SyntaxError:.m | 
| eac0 |  69 73 73 69 6e 67 20 64 65 63 6c 61 72 61 74 69    6f 6e 20 61 66 74 65 72 20 27 69 6d 70 6f 72 74  | issing.declaration.after.'import | 
| eae0 |  27 20 6b 65 79 77 6f 72 64 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64 2e 73  | '.keyword")..(js2-msg."msg.mod.s | 
| eb00 |  70 65 63 2e 61 66 74 65 72 2e 66 72 6f 6d 22 0a    20 20 20 20 20 20 20 20 20 22 53 79 6e 74 61 78  | pec.after.from".........."Syntax | 
| eb20 |  45 72 72 6f 72 3a 20 6d 69 73 73 69 6e 67 20 6d    6f 64 75 6c 65 20 73 70 65 63 69 66 69 65 72 20  | Error:.missing.module.specifier. | 
| eb40 |  61 66 74 65 72 20 27 66 72 6f 6d 27 20 6b 65 79    77 6f 72 64 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | after.'from'.keyword")..(js2-msg | 
| eb60 |  20 22 6d 73 67 2e 6d 6f 64 2e 65 78 70 6f 72 74    2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76  | ."msg.mod.export.decl.at.top.lev | 
| eb80 |  65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 53 79    6e 74 61 78 45 72 72 6f 72 3a 20 65 78 70 6f 72  | el".........."SyntaxError:.expor | 
| eba0 |  74 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 6d    61 79 20 6f 6e 6c 79 20 61 70 70 65 61 72 20 61  | t.declarations.may.only.appear.a | 
| ebc0 |  74 20 74 6f 70 20 6c 65 76 65 6c 22 29 0a 0a 28    6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f 64  | t.top.level")..(js2-msg."msg.mod | 
| ebe0 |  2e 72 63 2e 61 66 74 65 72 2e 65 78 70 6f 72 74    2e 73 70 65 63 2e 6c 69 73 74 22 0a 20 20 20 20  | .rc.after.export.spec.list"..... | 
| ec00 |  20 20 20 20 20 22 53 79 6e 74 61 78 45 72 72 6f    72 3a 20 6d 69 73 73 69 6e 67 20 27 7d 27 20 61  | ....."SyntaxError:.missing.'}'.a | 
| ec20 |  66 74 65 72 20 65 78 70 6f 72 74 20 73 70 65 63    69 66 69 65 72 20 6c 69 73 74 22 29 0a 0a 3b 3b  | fter.export.specifier.list")..;; | 
| ec40 |  20 4e 6f 64 65 54 72 61 6e 73 66 6f 72 6d 65 72    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 64  | .NodeTransformer.(js2-msg."msg.d | 
| ec60 |  75 70 2e 6c 61 62 65 6c 22 0a 20 20 20 20 20 20    20 20 20 22 64 75 70 6c 69 63 61 74 65 64 20 6c  | up.label".........."duplicated.l | 
| ec80 |  61 62 65 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 75 6e 64 65 66 2e 6c 61 62 65  | abel")..(js2-msg."msg.undef.labe | 
| eca0 |  6c 22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 64    65 66 69 6e 65 64 20 6c 61 62 65 6c 22 29 0a 0a  | l".........."undefined.label").. | 
| ecc0 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61    64 2e 62 72 65 61 6b 22 0a 20 20 20 20 20 20 20  | (js2-msg."msg.bad.break"........ | 
| ece0 |  20 20 22 75 6e 6c 61 62 65 6c 6c 65 64 20 62 72    65 61 6b 20 6d 75 73 74 20 62 65 20 69 6e 73 69  | .."unlabelled.break.must.be.insi | 
| ed00 |  64 65 20 6c 6f 6f 70 20 6f 72 20 73 77 69 74 63    68 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | de.loop.or.switch")..(js2-msg."m | 
| ed20 |  73 67 2e 63 6f 6e 74 69 6e 75 65 2e 6f 75 74 73    69 64 65 22 0a 20 20 20 20 20 20 20 20 20 22 63  | sg.continue.outside".........."c | 
| ed40 |  6f 6e 74 69 6e 75 65 20 6d 75 73 74 20 62 65 20    69 6e 73 69 64 65 20 6c 6f 6f 70 22 29 0a 0a 28  | ontinue.must.be.inside.loop")..( | 
| ed60 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 6f 6e    74 69 6e 75 65 2e 6e 6f 6e 6c 6f 6f 70 22 0a 20  | js2-msg."msg.continue.nonloop".. | 
| ed80 |  20 20 20 20 20 20 20 20 22 63 6f 6e 74 69 6e 75    65 20 63 61 6e 20 6f 6e 6c 79 20 75 73 65 20 6c  | ........"continue.can.only.use.l | 
| eda0 |  61 62 65 6c 73 20 6f 66 20 69 74 65 72 61 74 69    6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 22 29 0a  | abels.of.iteration.statements"). | 
| edc0 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62    61 64 2e 74 68 72 6f 77 2e 65 6f 6c 22 0a 20 20  | .(js2-msg."msg.bad.throw.eol"... | 
| ede0 |  20 20 20 20 20 20 20 22 4c 69 6e 65 20 74 65 72    6d 69 6e 61 74 6f 72 20 69 73 20 6e 6f 74 20 61  | ......."Line.terminator.is.not.a | 
| ee00 |  6c 6c 6f 77 65 64 20 62 65 74 77 65 65 6e 20 74    68 65 20 74 68 72 6f 77 20 22 0a 20 20 20 20 20  | llowed.between.the.throw."...... | 
| ee20 |  20 20 20 20 22 6b 65 79 77 6f 72 64 20 61 6e 64    20 74 68 72 6f 77 20 65 78 70 72 65 73 73 69 6f  | ...."keyword.and.throw.expressio | 
| ee40 |  6e 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 75 6e 6e 61 6d 65 64 2e 66 75 6e 63  | n.")..(js2-msg."msg.unnamed.func | 
| ee60 |  74 69 6f 6e 2e 73 74 6d 74 22 20 3b 20 61 64 64    65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20  | tion.stmt".;.added.by.js2-mode.. | 
| ee80 |  20 20 20 20 20 20 20 20 22 66 75 6e 63 74 69 6f    6e 20 73 74 61 74 65 6d 65 6e 74 20 72 65 71 75  | ........"function.statement.requ | 
| eea0 |  69 72 65 73 20 61 20 6e 61 6d 65 22 29 0a 0a 28    6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e  | ires.a.name")..(js2-msg."msg.no. | 
| eec0 |  70 61 72 65 6e 2e 70 61 72 6d 73 22 0a 20 20 20    20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 28  | paren.parms".........."missing.( | 
| eee0 |  20 62 65 66 6f 72 65 20 66 75 6e 63 74 69 6f 6e    20 70 61 72 61 6d 65 74 65 72 73 2e 22 29 0a 0a  | .before.function.parameters.").. | 
| ef00 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f    2e 70 61 72 6d 22 0a 20 20 20 20 20 20 20 20 20  | (js2-msg."msg.no.parm".......... | 
| ef20 |  22 6d 69 73 73 69 6e 67 20 66 6f 72 6d 61 6c 20    70 61 72 61 6d 65 74 65 72 22 29 0a 0a 28 6a 73  | "missing.formal.parameter")..(js | 
| ef40 |  32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61    72 65 6e 2e 61 66 74 65 72 2e 70 61 72 6d 73 22  | 2-msg."msg.no.paren.after.parms" | 
| ef60 |  0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69    6e 67 20 29 20 61 66 74 65 72 20 66 6f 72 6d 61  | .........."missing.).after.forma | 
| ef80 |  6c 20 70 61 72 61 6d 65 74 65 72 73 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f  | l.parameters")..(js2-msg."msg.no | 
| efa0 |  2e 64 65 66 61 75 6c 74 2e 61 66 74 65 72 2e 64    65 66 61 75 6c 74 2e 70 61 72 61 6d 22 20 3b 20  | .default.after.default.param".;. | 
| efc0 |  61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64    65 0a 20 20 20 20 20 20 20 20 20 22 70 61 72 61  | added.by.js2-mode.........."para | 
| efe0 |  6d 65 74 65 72 20 77 69 74 68 6f 75 74 20 64 65    66 61 75 6c 74 20 66 6f 6c 6c 6f 77 73 20 70 61  | meter.without.default.follows.pa | 
| f000 |  72 61 6d 65 74 65 72 20 77 69 74 68 20 64 65 66    61 75 6c 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | rameter.with.default")..(js2-msg | 
| f020 |  20 22 6d 73 67 2e 70 61 72 61 6d 2e 61 66 74 65    72 2e 72 65 73 74 22 20 3b 20 61 64 64 65 64 20  | ."msg.param.after.rest".;.added. | 
| f040 |  62 79 20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20    20 20 20 20 20 22 70 61 72 61 6d 65 74 65 72 20  | by.js2-mode.........."parameter. | 
| f060 |  61 66 74 65 72 20 72 65 73 74 20 70 61 72 61 6d    65 74 65 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | after.rest.parameter")..(js2-msg | 
| f080 |  20 22 6d 73 67 2e 62 61 64 2e 61 72 72 6f 77 2e    61 72 67 73 22 20 3b 20 61 64 64 65 64 20 62 79  | ."msg.bad.arrow.args".;.added.by | 
| f0a0 |  20 6a 73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20    20 20 20 22 69 6e 76 61 6c 69 64 20 61 72 72 6f  | .js2-mode.........."invalid.arro | 
| f0c0 |  77 2d 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d    65 6e 74 73 20 28 70 61 72 65 6e 74 68 65 73 65  | w-function.arguments.(parenthese | 
| f0e0 |  73 20 61 72 6f 75 6e 64 20 74 68 65 20 61 72 72    6f 77 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20  | s.around.the.arrow-function.may. | 
| f100 |  68 65 6c 70 29 22 29 0a 0a 28 6a 73 32 2d 6d 73    67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e  | help)")..(js2-msg."msg.no.brace. | 
| f120 |  62 6f 64 79 22 0a 20 20 20 20 20 20 20 20 20 22    6d 69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f  | body".........."missing.'{'.befo | 
| f140 |  72 65 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79    22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73  | re.function.body")..(js2-msg."ms | 
| f160 |  67 2e 6e 6f 2e 62 72 61 63 65 2e 61 66 74 65 72    2e 62 6f 64 79 22 0a 20 20 20 20 20 20 20 20 20  | g.no.brace.after.body".......... | 
| f180 |  22 6d 69 73 73 69 6e 67 20 7d 20 61 66 74 65 72    20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 22 29  | "missing.}.after.function.body") | 
| f1a0 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    6e 6f 2e 70 61 72 65 6e 2e 63 6f 6e 64 22 0a 20  | ..(js2-msg."msg.no.paren.cond".. | 
| f1c0 |  20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67    20 28 20 62 65 66 6f 72 65 20 63 6f 6e 64 69 74  | ........"missing.(.before.condit | 
| f1e0 |  69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20    22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66  | ion")..(js2-msg."msg.no.paren.af | 
| f200 |  74 65 72 2e 63 6f 6e 64 22 0a 20 20 20 20 20 20    20 20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66  | ter.cond".........."missing.).af | 
| f220 |  74 65 72 20 63 6f 6e 64 69 74 69 6f 6e 22 29 0a    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e  | ter.condition")..(js2-msg."msg.n | 
| f240 |  6f 2e 73 65 6d 69 2e 73 74 6d 74 22 0a 20 20 20    20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 3b  | o.semi.stmt".........."missing.; | 
| f260 |  20 62 65 66 6f 72 65 20 73 74 61 74 65 6d 65 6e    74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | .before.statement")..(js2-msg."m | 
| f280 |  73 67 2e 6d 69 73 73 69 6e 67 2e 73 65 6d 69 22    0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69  | sg.missing.semi".........."missi | 
| f2a0 |  6e 67 20 3b 20 61 66 74 65 72 20 73 74 61 74 65    6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | ng.;.after.statement")..(js2-msg | 
| f2c0 |  20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66    74 65 72 2e 64 6f 74 22 0a 20 20 20 20 20 20 20  | ."msg.no.name.after.dot"........ | 
| f2e0 |  20 20 22 6d 69 73 73 69 6e 67 20 6e 61 6d 65 20    61 66 74 65 72 20 2e 20 6f 70 65 72 61 74 6f 72  | .."missing.name.after...operator | 
| f300 |  22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73    67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66 74 65 72 2e  | ")..(js2-msg."msg.no.name.after. | 
| f320 |  63 6f 6c 6f 6e 63 6f 6c 6f 6e 22 0a 20 20 20 20    20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 6e 61  | coloncolon".........."missing.na | 
| f340 |  6d 65 20 61 66 74 65 72 20 3a 3a 20 6f 70 65 72    61 74 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | me.after.::.operator")..(js2-msg | 
| f360 |  20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66    74 65 72 2e 64 6f 74 64 6f 74 22 0a 20 20 20 20  | ."msg.no.name.after.dotdot"..... | 
| f380 |  20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 6e 61    6d 65 20 61 66 74 65 72 20 2e 2e 20 6f 70 65 72  | ....."missing.name.after....oper | 
| f3a0 |  61 74 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66  | ator")..(js2-msg."msg.no.name.af | 
| f3c0 |  74 65 72 2e 78 6d 6c 41 74 74 72 22 0a 20 20 20    20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 6e  | ter.xmlAttr".........."missing.n | 
| f3e0 |  61 6d 65 20 61 66 74 65 72 20 2e 40 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f  | ame.after..@")..(js2-msg."msg.no | 
| f400 |  2e 62 72 61 63 6b 65 74 2e 69 6e 64 65 78 22 0a    20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e  | .bracket.index".........."missin | 
| f420 |  67 20 5d 20 69 6e 20 69 6e 64 65 78 20 65 78 70    72 65 73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d  | g.].in.index.expression")..(js2- | 
| f440 |  6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65    6e 2e 73 77 69 74 63 68 22 0a 20 20 20 20 20 20  | msg."msg.no.paren.switch"....... | 
| f460 |  20 20 20 22 6d 69 73 73 69 6e 67 20 28 20 62 65    66 6f 72 65 20 73 77 69 74 63 68 20 65 78 70 72  | ..."missing.(.before.switch.expr | 
| f480 |  65 73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e  | ession")..(js2-msg."msg.no.paren | 
| f4a0 |  2e 61 66 74 65 72 2e 73 77 69 74 63 68 22 0a 20    20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67  | .after.switch".........."missing | 
| f4c0 |  20 29 20 61 66 74 65 72 20 73 77 69 74 63 68 20    65 78 70 72 65 73 73 69 6f 6e 22 29 0a 0a 28 6a  | .).after.switch.expression")..(j | 
| f4e0 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62    72 61 63 65 2e 73 77 69 74 63 68 22 0a 20 20 20  | s2-msg."msg.no.brace.switch".... | 
| f500 |  20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 27    7b 27 20 62 65 66 6f 72 65 20 73 77 69 74 63 68  | ......"missing.'{'.before.switch | 
| f520 |  20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d 6d 73    67 20 22 6d 73 67 2e 62 61 64 2e 73 77 69 74 63  | .body")..(js2-msg."msg.bad.switc | 
| f540 |  68 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76    61 6c 69 64 20 73 77 69 74 63 68 20 73 74 61 74  | h".........."invalid.switch.stat | 
| f560 |  65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73    67 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e  | ement")..(js2-msg."msg.no.colon. | 
| f580 |  63 61 73 65 22 0a 20 20 20 20 20 20 20 20 20 22    6d 69 73 73 69 6e 67 20 3a 20 61 66 74 65 72 20  | case".........."missing.:.after. | 
| f5a0 |  63 61 73 65 20 65 78 70 72 65 73 73 69 6f 6e 22    29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67  | case.expression")..(js2-msg."msg | 
| f5c0 |  2e 64 6f 75 62 6c 65 2e 73 77 69 74 63 68 2e 64    65 66 61 75 6c 74 22 0a 20 20 20 20 20 20 20 20  | .double.switch.default"......... | 
| f5e0 |  20 22 64 6f 75 62 6c 65 20 64 65 66 61 75 6c 74    20 6c 61 62 65 6c 20 69 6e 20 74 68 65 20 73 77  | ."double.default.label.in.the.sw | 
| f600 |  69 74 63 68 20 73 74 61 74 65 6d 65 6e 74 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | itch.statement")..(js2-msg."msg. | 
| f620 |  6e 6f 2e 77 68 69 6c 65 2e 64 6f 22 0a 20 20 20    20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 77  | no.while.do".........."missing.w | 
| f640 |  68 69 6c 65 20 61 66 74 65 72 20 64 6f 2d 6c 6f    6f 70 20 62 6f 64 79 22 29 0a 0a 28 6a 73 32 2d  | hile.after.do-loop.body")..(js2- | 
| f660 |  6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65    6e 2e 66 6f 72 22 0a 20 20 20 20 20 20 20 20 20  | msg."msg.no.paren.for".......... | 
| f680 |  22 6d 69 73 73 69 6e 67 20 28 20 61 66 74 65 72    20 66 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | "missing.(.after.for")..(js2-msg | 
| f6a0 |  20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69 2e 66 6f    72 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73  | ."msg.no.semi.for".........."mis | 
| f6c0 |  73 69 6e 67 20 3b 20 61 66 74 65 72 20 66 6f 72    2d 6c 6f 6f 70 20 69 6e 69 74 69 61 6c 69 7a 65  | sing.;.after.for-loop.initialize | 
| f6e0 |  72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 6e 6f 2e 73 65 6d 69 2e 66 6f 72 2e 63  | r")..(js2-msg."msg.no.semi.for.c | 
| f700 |  6f 6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 6d    69 73 73 69 6e 67 20 3b 20 61 66 74 65 72 20 66  | ond".........."missing.;.after.f | 
| f720 |  6f 72 2d 6c 6f 6f 70 20 63 6f 6e 64 69 74 69 6f    6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | or-loop.condition")..(js2-msg."m | 
| f740 |  73 67 2e 69 6e 2e 61 66 74 65 72 2e 66 6f 72 2e    6e 61 6d 65 22 0a 20 20 20 20 20 20 20 20 20 22  | sg.in.after.for.name".........." | 
| f760 |  6d 69 73 73 69 6e 67 20 69 6e 20 6f 72 20 6f 66    20 61 66 74 65 72 20 66 6f 72 22 29 0a 0a 28 6a  | missing.in.or.of.after.for")..(j | 
| f780 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70    61 72 65 6e 2e 66 6f 72 2e 63 74 72 6c 22 0a 20  | s2-msg."msg.no.paren.for.ctrl".. | 
| f7a0 |  20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67    20 29 20 61 66 74 65 72 20 66 6f 72 2d 6c 6f 6f  | ........"missing.).after.for-loo | 
| f7c0 |  70 20 63 6f 6e 74 72 6f 6c 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61  | p.control")..(js2-msg."msg.no.pa | 
| f7e0 |  72 65 6e 2e 77 69 74 68 22 0a 20 20 20 20 20 20    20 20 20 22 6d 69 73 73 69 6e 67 20 28 20 62 65  | ren.with".........."missing.(.be | 
| f800 |  66 6f 72 65 20 77 69 74 68 2d 73 74 61 74 65 6d    65 6e 74 20 6f 62 6a 65 63 74 22 29 0a 0a 28 6a  | fore.with-statement.object")..(j | 
| f820 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70    61 72 65 6e 2e 61 66 74 65 72 2e 77 69 74 68 22  | s2-msg."msg.no.paren.after.with" | 
| f840 |  0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69    6e 67 20 29 20 61 66 74 65 72 20 77 69 74 68 2d  | .........."missing.).after.with- | 
| f860 |  73 74 61 74 65 6d 65 6e 74 20 6f 62 6a 65 63 74    22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73  | statement.object")..(js2-msg."ms | 
| f880 |  67 2e 6e 6f 2e 77 69 74 68 2e 73 74 72 69 63 74    22 0a 20 20 20 20 20 20 20 20 20 22 77 69 74 68  | g.no.with.strict".........."with | 
| f8a0 |  20 73 74 61 74 65 6d 65 6e 74 73 20 6e 6f 74 20    61 6c 6c 6f 77 65 64 20 69 6e 20 73 74 72 69 63  | .statements.not.allowed.in.stric | 
| f8c0 |  74 20 6d 6f 64 65 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e  | t.mode")..(js2-msg."msg.no.paren | 
| f8e0 |  2e 61 66 74 65 72 2e 6c 65 74 22 0a 20 20 20 20    20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 28 20  | .after.let".........."missing.(. | 
| f900 |  61 66 74 65 72 20 6c 65 74 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61  | after.let")..(js2-msg."msg.no.pa | 
| f920 |  72 65 6e 2e 6c 65 74 22 0a 20 20 20 20 20 20 20    20 20 22 6d 69 73 73 69 6e 67 20 29 20 61 66 74  | ren.let".........."missing.).aft | 
| f940 |  65 72 20 76 61 72 69 61 62 6c 65 20 6c 69 73 74    22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73  | er.variable.list")..(js2-msg."ms | 
| f960 |  67 2e 6e 6f 2e 63 75 72 6c 79 2e 6c 65 74 22 0a    20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e  | g.no.curly.let".........."missin | 
| f980 |  67 20 7d 20 61 66 74 65 72 20 6c 65 74 20 73 74    61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d  | g.}.after.let.statement")..(js2- | 
| f9a0 |  6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 72 65 74    75 72 6e 22 0a 20 20 20 20 20 20 20 20 20 22 69  | msg."msg.bad.return".........."i | 
| f9c0 |  6e 76 61 6c 69 64 20 72 65 74 75 72 6e 22 29 0a    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e  | nvalid.return")..(js2-msg."msg.n | 
| f9e0 |  6f 2e 62 72 61 63 65 2e 62 6c 6f 63 6b 22 0a 20    20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67  | o.brace.block".........."missing | 
| fa00 |  20 7d 20 69 6e 20 63 6f 6d 70 6f 75 6e 64 20 73    74 61 74 65 6d 65 6e 74 22 29 0a 0a 28 6a 73 32  | .}.in.compound.statement")..(js2 | 
| fa20 |  2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 6c 61    62 65 6c 22 0a 20 20 20 20 20 20 20 20 20 22 69  | -msg."msg.bad.label".........."i | 
| fa40 |  6e 76 61 6c 69 64 20 6c 61 62 65 6c 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61  | nvalid.label")..(js2-msg."msg.ba | 
| fa60 |  64 2e 76 61 72 22 0a 20 20 20 20 20 20 20 20 20    22 6d 69 73 73 69 6e 67 20 76 61 72 69 61 62 6c  | d.var".........."missing.variabl | 
| fa80 |  65 20 6e 61 6d 65 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 62 61 64 2e 76 61 72 2e  | e.name")..(js2-msg."msg.bad.var. | 
| faa0 |  69 6e 69 74 22 0a 20 20 20 20 20 20 20 20 20 22    69 6e 76 61 6c 69 64 20 76 61 72 69 61 62 6c 65  | init".........."invalid.variable | 
| fac0 |  20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 22    29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67  | .initialization")..(js2-msg."msg | 
| fae0 |  2e 6e 6f 2e 63 6f 6c 6f 6e 2e 63 6f 6e 64 22 0a    20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e  | .no.colon.cond".........."missin | 
| fb00 |  67 20 3a 20 69 6e 20 63 6f 6e 64 69 74 69 6f 6e    61 6c 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a  | g.:.in.conditional.expression"). | 
| fb20 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62    61 64 2e 6f 70 74 69 6f 6e 61 6c 2e 63 68 61 69  | .(js2-msg."msg.bad.optional.chai | 
| fb40 |  6e 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 22    6d 69 73 73 69 6e 67 20 70 72 6f 70 65 72 74 79  | ning".........."missing.property | 
| fb60 |  20 6e 61 6d 65 20 6f 72 20 5b 20 6f 72 20 28 20    61 66 74 65 72 20 6f 70 74 69 6f 6e 61 6c 20 63  | .name.or.[.or.(.after.optional.c | 
| fb80 |  68 61 69 6e 69 6e 67 20 6f 70 65 72 61 74 6f 72    22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73  | haining.operator")..(js2-msg."ms | 
| fba0 |  67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 72 67 22 0a    20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e  | g.no.paren.arg".........."missin | 
| fbc0 |  67 20 29 20 61 66 74 65 72 20 61 72 67 75 6d 65    6e 74 20 6c 69 73 74 22 29 0a 0a 28 6a 73 32 2d  | g.).after.argument.list")..(js2- | 
| fbe0 |  6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63    6b 65 74 2e 61 72 67 22 0a 20 20 20 20 20 20 20  | msg."msg.no.bracket.arg"........ | 
| fc00 |  20 20 22 6d 69 73 73 69 6e 67 20 5d 20 61 66 74    65 72 20 65 6c 65 6d 65 6e 74 20 6c 69 73 74 22  | .."missing.].after.element.list" | 
| fc20 |  29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 62 61 64 2e 70 72 6f 70 22 0a 20 20 20 20 20  | )..(js2-msg."msg.bad.prop"...... | 
| fc40 |  20 20 20 20 22 69 6e 76 61 6c 69 64 20 70 72 6f    70 65 72 74 79 20 69 64 22 29 0a 0a 28 6a 73 32  | ...."invalid.property.id")..(js2 | 
| fc60 |  2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c    6f 6e 2e 70 72 6f 70 22 0a 20 20 20 20 20 20 20  | -msg."msg.no.colon.prop"........ | 
| fc80 |  20 20 22 6d 69 73 73 69 6e 67 20 3a 20 61 66 74    65 72 20 70 72 6f 70 65 72 74 79 20 69 64 22 29  | .."missing.:.after.property.id") | 
| fca0 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    6e 6f 2e 62 72 61 63 65 2e 70 72 6f 70 22 0a 20  | ..(js2-msg."msg.no.brace.prop".. | 
| fcc0 |  20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67    20 7d 20 61 66 74 65 72 20 70 72 6f 70 65 72 74  | ........"missing.}.after.propert | 
| fce0 |  79 20 6c 69 73 74 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e  | y.list")..(js2-msg."msg.no.paren | 
| fd00 |  22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73    69 6e 67 20 29 20 69 6e 20 70 61 72 65 6e 74 68  | ".........."missing.).in.parenth | 
| fd20 |  65 74 69 63 61 6c 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 72 65 73 65 72 76 65 64  | etical")..(js2-msg."msg.reserved | 
| fd40 |  2e 69 64 22 0a 20 20 20 20 20 20 20 20 20 22 27    25 73 27 20 69 73 20 61 20 72 65 73 65 72 76 65  | .id".........."'%s'.is.a.reserve | 
| fd60 |  64 20 69 64 65 6e 74 69 66 69 65 72 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f  | d.identifier")..(js2-msg."msg.no | 
| fd80 |  2e 70 61 72 65 6e 2e 63 61 74 63 68 22 0a 20 20    20 20 20 20 20 20 20 22 6d 69 73 73 69 6e 67 20  | .paren.catch".........."missing. | 
| fda0 |  28 20 62 65 66 6f 72 65 20 63 61 74 63 68 2d 62    6c 6f 63 6b 20 63 6f 6e 64 69 74 69 6f 6e 22 29  | (.before.catch-block.condition") | 
| fdc0 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    62 61 64 2e 63 61 74 63 68 63 6f 6e 64 22 0a 20  | ..(js2-msg."msg.bad.catchcond".. | 
| fde0 |  20 20 20 20 20 20 20 20 22 69 6e 76 61 6c 69 64    20 63 61 74 63 68 20 62 6c 6f 63 6b 20 63 6f 6e  | ........"invalid.catch.block.con | 
| fe00 |  64 69 74 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 63 61 74 63 68 2e 75 6e  | dition")..(js2-msg."msg.catch.un | 
| fe20 |  72 65 61 63 68 61 62 6c 65 22 0a 20 20 20 20 20    20 20 20 20 22 61 6e 79 20 63 61 74 63 68 20 63  | reachable".........."any.catch.c | 
| fe40 |  6c 61 75 73 65 73 20 66 6f 6c 6c 6f 77 69 6e 67    20 61 6e 20 75 6e 71 75 61 6c 69 66 69 65 64 20  | lauses.following.an.unqualified. | 
| fe60 |  63 61 74 63 68 20 61 72 65 20 75 6e 72 65 61 63    68 61 62 6c 65 22 29 0a 0a 28 6a 73 32 2d 6d 73  | catch.are.unreachable")..(js2-ms | 
| fe80 |  67 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e    74 72 79 22 0a 20 20 20 20 20 20 20 20 20 22 6d  | g."msg.no.brace.try".........."m | 
| fea0 |  69 73 73 69 6e 67 20 27 7b 27 20 62 65 66 6f 72    65 20 74 72 79 20 62 6c 6f 63 6b 22 29 0a 0a 28  | issing.'{'.before.try.block")..( | 
| fec0 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e    62 72 61 63 65 2e 63 61 74 63 68 62 6c 6f 63 6b  | js2-msg."msg.no.brace.catchblock | 
| fee0 |  22 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73 73    69 6e 67 20 27 7b 27 20 62 65 66 6f 72 65 20 63  | ".........."missing.'{'.before.c | 
| ff00 |  61 74 63 68 2d 62 6c 6f 63 6b 20 62 6f 64 79 22    29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67  | atch-block.body")..(js2-msg."msg | 
| ff20 |  2e 74 72 79 2e 6e 6f 2e 63 61 74 63 68 66 69 6e    61 6c 6c 79 22 0a 20 20 20 20 20 20 20 20 20 22  | .try.no.catchfinally".........." | 
| ff40 |  27 74 72 79 27 20 77 69 74 68 6f 75 74 20 27 63    61 74 63 68 27 20 6f 72 20 27 66 69 6e 61 6c 6c  | 'try'.without.'catch'.or.'finall | 
| ff60 |  79 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61  | y'")..(js2-msg."msg.no.return.va | 
| ff80 |  6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 22 66    75 6e 63 74 69 6f 6e 20 25 73 20 64 6f 65 73 20  | lue".........."function.%s.does. | 
| ffa0 |  6e 6f 74 20 61 6c 77 61 79 73 20 72 65 74 75 72    6e 20 61 20 76 61 6c 75 65 22 29 0a 0a 28 6a 73  | not.always.return.a.value")..(js | 
| ffc0 |  32 2d 6d 73 67 20 22 6d 73 67 2e 61 6e 6f 6e 2e    6e 6f 2e 72 65 74 75 72 6e 2e 76 61 6c 75 65 22  | 2-msg."msg.anon.no.return.value" | 
| ffe0 |  0a 20 20 20 20 20 20 20 20 20 22 61 6e 6f 6e 79    6d 6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 64 6f  | .........."anonymous.function.do | 
| 10000 |  65 73 20 6e 6f 74 20 61 6c 77 61 79 73 20 72 65    74 75 72 6e 20 61 20 76 61 6c 75 65 22 29 0a 0a  | es.not.always.return.a.value").. | 
| 10020 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 72 65    74 75 72 6e 2e 69 6e 63 6f 6e 73 69 73 74 65 6e  | (js2-msg."msg.return.inconsisten | 
| 10040 |  74 22 0a 20 20 20 20 20 20 20 20 20 22 72 65 74    75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 69 73  | t".........."return.statement.is | 
| 10060 |  20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 77 69    74 68 20 70 72 65 76 69 6f 75 73 20 75 73 61 67  | .inconsistent.with.previous.usag | 
| 10080 |  65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 67 65 6e 65 72 61 74 6f 72 2e 72 65 74  | e")..(js2-msg."msg.generator.ret | 
| 100a0 |  75 72 6e 73 22 0a 20 20 20 20 20 20 20 20 20 22    54 79 70 65 45 72 72 6f 72 3a 20 6c 65 67 61 63  | urns".........."TypeError:.legac | 
| 100c0 |  79 20 67 65 6e 65 72 61 74 6f 72 20 66 75 6e 63    74 69 6f 6e 20 27 25 73 27 20 72 65 74 75 72 6e  | y.generator.function.'%s'.return | 
| 100e0 |  73 20 61 20 76 61 6c 75 65 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 61 6e 6f 6e 2e  | s.a.value")..(js2-msg."msg.anon. | 
| 10100 |  67 65 6e 65 72 61 74 6f 72 2e 72 65 74 75 72 6e    73 22 0a 20 20 20 20 20 20 20 20 20 22 54 79 70  | generator.returns".........."Typ | 
| 10120 |  65 45 72 72 6f 72 3a 20 61 6e 6f 6e 79 6d 6f 75    73 20 6c 65 67 61 63 79 20 67 65 6e 65 72 61 74  | eError:.anonymous.legacy.generat | 
| 10140 |  6f 72 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75    72 6e 73 20 61 20 76 61 6c 75 65 22 29 0a 0a 28  | or.function.returns.a.value")..( | 
| 10160 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 79 6e    74 61 78 22 0a 20 20 20 20 20 20 20 20 20 22 73  | js2-msg."msg.syntax".........."s | 
| 10180 |  79 6e 74 61 78 20 65 72 72 6f 72 22 29 0a 0a 28    6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 65  | yntax.error")..(js2-msg."msg.une | 
| 101a0 |  78 70 65 63 74 65 64 2e 65 6f 66 22 0a 20 20 20    20 20 20 20 20 20 22 55 6e 65 78 70 65 63 74 65  | xpected.eof".........."Unexpecte | 
| 101c0 |  64 20 65 6e 64 20 6f 66 20 66 69 6c 65 22 29 0a    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 58  | d.end.of.file")..(js2-msg."msg.X | 
| 101e0 |  4d 4c 2e 62 61 64 2e 66 6f 72 6d 22 0a 20 20 20    20 20 20 20 20 20 22 69 6c 6c 65 67 61 6c 6c 79  | ML.bad.form".........."illegally | 
| 10200 |  20 66 6f 72 6d 65 64 20 58 4d 4c 20 73 79 6e 74    61 78 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22  | .formed.XML.syntax")..(js2-msg." | 
| 10220 |  6d 73 67 2e 58 4d 4c 2e 6e 6f 74 2e 61 76 61 69    6c 61 62 6c 65 22 0a 20 20 20 20 20 20 20 20 20  | msg.XML.not.available".......... | 
| 10240 |  22 58 4d 4c 20 72 75 6e 74 69 6d 65 20 6e 6f 74    20 61 76 61 69 6c 61 62 6c 65 22 29 0a 0a 28 6a  | "XML.runtime.not.available")..(j | 
| 10260 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 74 6f 6f 2e    64 65 65 70 2e 70 61 72 73 65 72 2e 72 65 63 75  | s2-msg."msg.too.deep.parser.recu | 
| 10280 |  72 73 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20    22 54 6f 6f 20 64 65 65 70 20 72 65 63 75 72 73  | rsion".........."Too.deep.recurs | 
| 102a0 |  69 6f 6e 20 77 68 69 6c 65 20 70 61 72 73 69 6e    67 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | ion.while.parsing")..(js2-msg."m | 
| 102c0 |  73 67 2e 6e 6f 2e 73 69 64 65 2e 65 66 66 65 63    74 73 22 0a 20 20 20 20 20 20 20 20 20 22 43 6f  | sg.no.side.effects".........."Co | 
| 102e0 |  64 65 20 68 61 73 20 6e 6f 20 73 69 64 65 20 65    66 66 65 63 74 73 22 29 0a 0a 28 6a 73 32 2d 6d  | de.has.no.side.effects")..(js2-m | 
| 10300 |  73 67 20 22 6d 73 67 2e 65 78 74 72 61 2e 74 72    61 69 6c 69 6e 67 2e 63 6f 6d 6d 61 22 0a 20 20  | sg."msg.extra.trailing.comma"... | 
| 10320 |  20 20 20 20 20 20 20 22 54 72 61 69 6c 69 6e 67    20 63 6f 6d 6d 61 20 69 73 20 6e 6f 74 20 73 75  | ......."Trailing.comma.is.not.su | 
| 10340 |  70 70 6f 72 74 65 64 20 69 6e 20 73 6f 6d 65 20    62 72 6f 77 73 65 72 73 22 29 0a 0a 28 6a 73 32  | pported.in.some.browsers")..(js2 | 
| 10360 |  2d 6d 73 67 20 22 6d 73 67 2e 61 72 72 61 79 2e    74 72 61 69 6c 69 6e 67 2e 63 6f 6d 6d 61 22 0a  | -msg."msg.array.trailing.comma". | 
| 10380 |  20 20 20 20 20 20 20 20 20 22 54 72 61 69 6c 69    6e 67 20 63 6f 6d 6d 61 20 79 69 65 6c 64 73 20  | ........."Trailing.comma.yields. | 
| 103a0 |  64 69 66 66 65 72 65 6e 74 20 62 65 68 61 76 69    6f 72 20 61 63 72 6f 73 73 20 62 72 6f 77 73 65  | different.behavior.across.browse | 
| 103c0 |  72 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 65 71 75 61 6c 2e 61 73 2e 61 73 73  | rs")..(js2-msg."msg.equal.as.ass | 
| 103e0 |  69 67 6e 22 0a 20 20 20 20 20 20 20 20 20 28 63    6f 6e 63 61 74 20 22 54 65 73 74 20 66 6f 72 20  | ign"..........(concat."Test.for. | 
| 10400 |  65 71 75 61 6c 69 74 79 20 28 3d 3d 29 20 6d 69    73 74 79 70 65 64 20 61 73 20 61 73 73 69 67 6e  | equality.(==).mistyped.as.assign | 
| 10420 |  6d 65 6e 74 20 28 3d 29 3f 22 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 22 20 28 70  | ment.(=)?"..................".(p | 
| 10440 |  61 72 65 6e 74 68 65 73 69 7a 65 20 74 6f 20 73    75 70 70 72 65 73 73 20 77 61 72 6e 69 6e 67 29  | arenthesize.to.suppress.warning) | 
| 10460 |  22 29 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 76 61 72 2e 68 69 64 65 73 2e 61 72 67  | "))..(js2-msg."msg.var.hides.arg | 
| 10480 |  22 0a 20 20 20 20 20 20 20 20 20 22 56 61 72 69    61 62 6c 65 20 25 73 20 68 69 64 65 73 20 61 72  | ".........."Variable.%s.hides.ar | 
| 104a0 |  67 75 6d 65 6e 74 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 64 65 73 74 72 75 63 74  | gument")..(js2-msg."msg.destruct | 
| 104c0 |  2e 61 73 73 69 67 6e 2e 6e 6f 2e 69 6e 69 74 22    0a 20 20 20 20 20 20 20 20 20 22 4d 69 73 73 69  | .assign.no.init".........."Missi | 
| 104e0 |  6e 67 20 3d 20 69 6e 20 64 65 73 74 72 75 63 74    75 72 69 6e 67 20 64 65 63 6c 61 72 61 74 69 6f  | ng.=.in.destructuring.declaratio | 
| 10500 |  6e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 69 6e 69 74 2e 6e 6f 2e 64 65 73 74 72  | n")..(js2-msg."msg.init.no.destr | 
| 10520 |  75 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 42    69 6e 64 69 6e 67 20 69 6e 69 74 69 61 6c 69 7a  | uct".........."Binding.initializ | 
| 10540 |  65 72 20 6e 6f 74 20 69 6e 20 64 65 73 74 72 75    63 74 75 72 69 6e 67 20 61 73 73 69 67 6e 6d 65  | er.not.in.destructuring.assignme | 
| 10560 |  6e 74 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 6e 6f 2e 6f 63 74 61 6c 2e 73 74 72  | nt")..(js2-msg."msg.no.octal.str | 
| 10580 |  69 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 4f    63 74 61 6c 20 6e 75 6d 62 65 72 73 20 70 72 6f  | ict".........."Octal.numbers.pro | 
| 105a0 |  68 69 62 69 74 65 64 20 69 6e 20 73 74 72 69 63    74 20 6d 6f 64 65 2e 22 29 0a 0a 28 6a 73 32 2d  | hibited.in.strict.mode.")..(js2- | 
| 105c0 |  6d 73 67 20 22 6d 73 67 2e 64 75 70 2e 6f 62 6a    2e 6c 69 74 2e 70 72 6f 70 2e 73 74 72 69 63 74  | msg."msg.dup.obj.lit.prop.strict | 
| 105e0 |  22 0a 20 20 20 20 20 20 20 20 20 22 50 72 6f 70    65 72 74 79 20 27 25 73 27 20 61 6c 72 65 61 64  | ".........."Property.'%s'.alread | 
| 10600 |  79 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 69    73 20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c  | y.defined.in.this.object.literal | 
| 10620 |  2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 64 75 70 2e 70 61 72 61 6d 2e 73 74 72  | .")..(js2-msg."msg.dup.param.str | 
| 10640 |  69 63 74 22 0a 20 20 20 20 20 20 20 20 20 22 50    61 72 61 6d 65 74 65 72 20 27 25 73 27 20 61 6c  | ict".........."Parameter.'%s'.al | 
| 10660 |  72 65 61 64 79 20 64 65 63 6c 61 72 65 64 20 69    6e 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e  | ready.declared.in.this.function. | 
| 10680 |  22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73    67 2e 62 61 64 2e 69 64 2e 73 74 72 69 63 74 22  | ")..(js2-msg."msg.bad.id.strict" | 
| 106a0 |  0a 20 20 20 20 20 20 20 20 20 22 27 25 73 27 20    69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 69  | .........."'%s'.is.not.a.valid.i | 
| 106c0 |  64 65 6e 74 69 66 69 65 72 20 66 6f 72 20 74 68    69 73 20 75 73 65 20 69 6e 20 73 74 72 69 63 74  | dentifier.for.this.use.in.strict | 
| 106e0 |  20 6d 6f 64 65 2e 22 29 0a 0a 3b 3b 20 53 63 72    69 70 74 52 75 6e 74 69 6d 65 0a 28 6a 73 32 2d  | .mode.")..;;.ScriptRuntime.(js2- | 
| 10700 |  6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 70 72 6f 70    65 72 74 69 65 73 22 0a 20 20 20 20 20 20 20 20  | msg."msg.no.properties"......... | 
| 10720 |  20 22 25 73 20 68 61 73 20 6e 6f 20 70 72 6f 70    65 72 74 69 65 73 2e 22 29 0a 0a 28 6a 73 32 2d  | ."%s.has.no.properties.")..(js2- | 
| 10740 |  6d 73 67 20 22 6d 73 67 2e 69 6e 76 61 6c 69 64    2e 69 74 65 72 61 74 6f 72 22 0a 20 20 20 20 20  | msg."msg.invalid.iterator"...... | 
| 10760 |  20 20 20 20 22 49 6e 76 61 6c 69 64 20 69 74 65    72 61 74 6f 72 20 76 61 6c 75 65 22 29 0a 0a 28  | ...."Invalid.iterator.value")..( | 
| 10780 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 74 65    72 61 74 6f 72 2e 70 72 69 6d 69 74 69 76 65 22  | js2-msg."msg.iterator.primitive" | 
| 107a0 |  0a 20 20 20 20 20 20 20 20 20 22 5f 5f 69 74 65    72 61 74 6f 72 5f 5f 20 72 65 74 75 72 6e 65 64  | .........."__iterator__.returned | 
| 107c0 |  20 61 20 70 72 69 6d 69 74 69 76 65 20 76 61 6c    75 65 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22  | .a.primitive.value")..(js2-msg." | 
| 107e0 |  6d 73 67 2e 61 73 73 6e 2e 63 72 65 61 74 65 2e    73 74 72 69 63 74 22 0a 20 20 20 20 20 20 20 20  | msg.assn.create.strict"......... | 
| 10800 |  20 22 41 73 73 69 67 6e 6d 65 6e 74 20 74 6f 20    75 6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61  | ."Assignment.to.undeclared.varia | 
| 10820 |  62 6c 65 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 75 6e 64 65 63 6c 61 72  | ble.%s")..(js2-msg."msg.undeclar | 
| 10840 |  65 64 2e 76 61 72 69 61 62 6c 65 22 20 20 3b 20    61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64  | ed.variable"..;.added.by.js2-mod | 
| 10860 |  65 0a 20 20 20 20 20 20 20 20 20 22 55 6e 64 65    63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20  | e.........."Undeclared.variable. | 
| 10880 |  6f 72 20 66 75 6e 63 74 69 6f 6e 20 27 25 73 27    22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73  | or.function.'%s'")..(js2-msg."ms | 
| 108a0 |  67 2e 75 6e 75 73 65 64 2e 76 61 72 69 61 62 6c    65 22 20 20 3b 20 61 64 64 65 64 20 62 79 20 6a  | g.unused.variable"..;.added.by.j | 
| 108c0 |  73 32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20    20 22 55 6e 75 73 65 64 20 76 61 72 69 61 62 6c  | s2-mode.........."Unused.variabl | 
| 108e0 |  65 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 27 25    73 27 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22  | e.or.function.'%s'")..(js2-msg." | 
| 10900 |  6d 73 67 2e 75 6e 69 6e 69 74 69 61 6c 69 7a 65    64 2e 76 61 72 69 61 62 6c 65 22 20 20 3b 20 61  | msg.uninitialized.variable"..;.a | 
| 10920 |  64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65    0a 20 20 20 20 20 20 20 20 20 22 56 61 72 69 61  | dded.by.js2-mode.........."Varia | 
| 10940 |  62 6c 65 20 27 25 73 27 20 72 65 66 65 72 65 6e    63 65 64 20 62 75 74 20 6e 65 76 65 72 20 69 6e  | ble.'%s'.referenced.but.never.in | 
| 10960 |  69 74 69 61 6c 69 7a 65 64 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 72 65 66 2e 75  | itialized")..(js2-msg."msg.ref.u | 
| 10980 |  6e 64 65 66 69 6e 65 64 2e 70 72 6f 70 22 0a 20    20 20 20 20 20 20 20 20 22 52 65 66 65 72 65 6e  | ndefined.prop".........."Referen | 
| 109a0 |  63 65 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 20    70 72 6f 70 65 72 74 79 20 27 25 73 27 22 29 0a  | ce.to.undefined.property.'%s'"). | 
| 109c0 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 70    72 6f 70 2e 6e 6f 74 2e 66 6f 75 6e 64 22 0a 20  | .(js2-msg."msg.prop.not.found".. | 
| 109e0 |  20 20 20 20 20 20 20 20 22 50 72 6f 70 65 72 74    79 20 25 73 20 6e 6f 74 20 66 6f 75 6e 64 2e 22  | ........"Property.%s.not.found." | 
| 10a00 |  29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 69 6e 76 61 6c 69 64 2e 74 79 70 65 22 0a 20  | )..(js2-msg."msg.invalid.type".. | 
| 10a20 |  20 20 20 20 20 20 20 20 22 49 6e 76 61 6c 69 64    20 4a 61 76 61 53 63 72 69 70 74 20 76 61 6c 75  | ........"Invalid.JavaScript.valu | 
| 10a40 |  65 20 6f 66 20 74 79 70 65 20 25 73 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 70 72  | e.of.type.%s")..(js2-msg."msg.pr | 
| 10a60 |  69 6d 69 74 69 76 65 2e 65 78 70 65 63 74 65 64    22 0a 20 20 20 20 20 20 20 20 20 22 50 72 69 6d  | imitive.expected".........."Prim | 
| 10a80 |  69 74 69 76 65 20 74 79 70 65 20 65 78 70 65 63    74 65 64 20 28 68 61 64 20 25 73 20 69 6e 73 74  | itive.type.expected.(had.%s.inst | 
| 10aa0 |  65 61 64 29 22 29 0a 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 6e 61 6d 65 73 70 61 63 65 2e  | ead)")..(js2-msg."msg.namespace. | 
| 10ac0 |  65 78 70 65 63 74 65 64 22 0a 20 20 20 20 20 20    20 20 20 22 4e 61 6d 65 73 70 61 63 65 20 6f 62  | expected".........."Namespace.ob | 
| 10ae0 |  6a 65 63 74 20 65 78 70 65 63 74 65 64 20 74 6f    20 6c 65 66 74 20 6f 66 20 3a 3a 20 28 66 6f 75  | ject.expected.to.left.of.::.(fou | 
| 10b00 |  6e 64 20 25 73 20 69 6e 73 74 65 61 64 29 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | nd.%s.instead)")..(js2-msg."msg. | 
| 10b20 |  6e 75 6c 6c 2e 74 6f 2e 6f 62 6a 65 63 74 22 0a    20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74  | null.to.object".........."Cannot | 
| 10b40 |  20 63 6f 6e 76 65 72 74 20 6e 75 6c 6c 20 74 6f    20 61 6e 20 6f 62 6a 65 63 74 2e 22 29 0a 0a 28  | .convert.null.to.an.object.")..( | 
| 10b60 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 64    65 66 2e 74 6f 2e 6f 62 6a 65 63 74 22 0a 20 20  | js2-msg."msg.undef.to.object"... | 
| 10b80 |  20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 63    6f 6e 76 65 72 74 20 75 6e 64 65 66 69 6e 65 64  | ......."Cannot.convert.undefined | 
| 10ba0 |  20 74 6f 20 61 6e 20 6f 62 6a 65 63 74 2e 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | .to.an.object.")..(js2-msg."msg. | 
| 10bc0 |  63 79 63 6c 69 63 2e 76 61 6c 75 65 22 0a 20 20    20 20 20 20 20 20 20 22 43 79 63 6c 69 63 20 25  | cyclic.value".........."Cyclic.% | 
| 10be0 |  73 20 76 61 6c 75 65 20 6e 6f 74 20 61 6c 6c 6f    77 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | s.value.not.allowed.")..(js2-msg | 
| 10c00 |  20 22 6d 73 67 2e 69 73 2e 6e 6f 74 2e 64 65 66    69 6e 65 64 22 0a 20 20 20 20 20 20 20 20 20 22  | ."msg.is.not.defined".........." | 
| 10c20 |  27 25 73 27 20 69 73 20 6e 6f 74 20 64 65 66 69    6e 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | '%s'.is.not.defined.")..(js2-msg | 
| 10c40 |  20 22 6d 73 67 2e 75 6e 64 65 66 2e 70 72 6f 70    2e 72 65 61 64 22 0a 20 20 20 20 20 20 20 20 20  | ."msg.undef.prop.read".......... | 
| 10c60 |  22 43 61 6e 6e 6f 74 20 72 65 61 64 20 70 72 6f    70 65 72 74 79 20 27 25 73 27 20 66 72 6f 6d 20  | "Cannot.read.property.'%s'.from. | 
| 10c80 |  25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 75 6e 64 65 66 2e 70 72 6f 70 2e 77  | %s")..(js2-msg."msg.undef.prop.w | 
| 10ca0 |  72 69 74 65 22 0a 20 20 20 20 20 20 20 20 20 22    43 61 6e 6e 6f 74 20 73 65 74 20 70 72 6f 70 65  | rite".........."Cannot.set.prope | 
| 10cc0 |  72 74 79 20 27 25 73 27 20 6f 66 20 25 73 20 74    6f 20 27 25 73 27 22 29 0a 0a 28 6a 73 32 2d 6d  | rty.'%s'.of.%s.to.'%s'")..(js2-m | 
| 10ce0 |  73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 70 72    6f 70 2e 64 65 6c 65 74 65 22 0a 20 20 20 20 20  | sg."msg.undef.prop.delete"...... | 
| 10d00 |  20 20 20 20 22 43 61 6e 6e 6f 74 20 64 65 6c 65    74 65 20 70 72 6f 70 65 72 74 79 20 27 25 73 27  | ...."Cannot.delete.property.'%s' | 
| 10d20 |  20 6f 66 20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 75 6e 64 65 66 2e 6d 65  | .of.%s")..(js2-msg."msg.undef.me | 
| 10d40 |  74 68 6f 64 2e 63 61 6c 6c 22 0a 20 20 20 20 20    20 20 20 20 22 43 61 6e 6e 6f 74 20 63 61 6c 6c  | thod.call".........."Cannot.call | 
| 10d60 |  20 6d 65 74 68 6f 64 20 27 25 73 27 20 6f 66 20    25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22  | .method.'%s'.of.%s")..(js2-msg." | 
| 10d80 |  6d 73 67 2e 75 6e 64 65 66 2e 77 69 74 68 22 0a    20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74  | msg.undef.with".........."Cannot | 
| 10da0 |  20 61 70 70 6c 79 20 27 77 69 74 68 27 20 74 6f    20 25 73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20  | .apply.'with'.to.%s")..(js2-msg. | 
| 10dc0 |  22 6d 73 67 2e 69 73 6e 74 2e 66 75 6e 63 74 69    6f 6e 22 0a 20 20 20 20 20 20 20 20 20 22 25 73  | "msg.isnt.function".........."%s | 
| 10de0 |  20 69 73 20 6e 6f 74 20 61 20 66 75 6e 63 74 69    6f 6e 2c 20 69 74 20 69 73 20 25 73 2e 22 29 0a  | .is.not.a.function,.it.is.%s."). | 
| 10e00 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 69    73 6e 74 2e 66 75 6e 63 74 69 6f 6e 2e 69 6e 22  | .(js2-msg."msg.isnt.function.in" | 
| 10e20 |  0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f    74 20 63 61 6c 6c 20 70 72 6f 70 65 72 74 79 20  | .........."Cannot.call.property. | 
| 10e40 |  25 73 20 69 6e 20 6f 62 6a 65 63 74 20 25 73 2e    20 22 0a 20 20 20 20 20 20 20 20 20 22 49 74 20  | %s.in.object.%s..".........."It. | 
| 10e60 |  69 73 20 6e 6f 74 20 61 20 66 75 6e 63 74 69 6f    6e 2c 20 69 74 20 69 73 20 27 25 73 27 2e 22 29  | is.not.a.function,.it.is.'%s'.") | 
| 10e80 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    66 75 6e 63 74 69 6f 6e 2e 6e 6f 74 2e 66 6f 75  | ..(js2-msg."msg.function.not.fou | 
| 10ea0 |  6e 64 22 0a 20 20 20 20 20 20 20 20 20 22 43 61    6e 6e 6f 74 20 66 69 6e 64 20 66 75 6e 63 74 69  | nd".........."Cannot.find.functi | 
| 10ec0 |  6f 6e 20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 66 75 6e 63 74 69 6f 6e  | on.%s.")..(js2-msg."msg.function | 
| 10ee0 |  2e 6e 6f 74 2e 66 6f 75 6e 64 2e 69 6e 22 0a 20    20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20  | .not.found.in".........."Cannot. | 
| 10f00 |  66 69 6e 64 20 66 75 6e 63 74 69 6f 6e 20 25 73    20 69 6e 20 6f 62 6a 65 63 74 20 25 73 2e 22 29  | find.function.%s.in.object.%s.") | 
| 10f20 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    69 73 6e 74 2e 78 6d 6c 2e 6f 62 6a 65 63 74 22  | ..(js2-msg."msg.isnt.xml.object" | 
| 10f40 |  0a 20 20 20 20 20 20 20 20 20 22 25 73 20 69 73    20 6e 6f 74 20 61 6e 20 78 6d 6c 20 6f 62 6a 65  | .........."%s.is.not.an.xml.obje | 
| 10f60 |  63 74 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20    22 6d 73 67 2e 6e 6f 2e 72 65 66 2e 74 6f 2e 67  | ct.")..(js2-msg."msg.no.ref.to.g | 
| 10f80 |  65 74 22 0a 20 20 20 20 20 20 20 20 20 22 25 73    20 69 73 20 6e 6f 74 20 61 20 72 65 66 65 72 65  | et".........."%s.is.not.a.refere | 
| 10fa0 |  6e 63 65 20 74 6f 20 72 65 61 64 20 72 65 66 65    72 65 6e 63 65 20 76 61 6c 75 65 2e 22 29 0a 0a  | nce.to.read.reference.value.").. | 
| 10fc0 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f    2e 72 65 66 2e 74 6f 2e 73 65 74 22 0a 20 20 20  | (js2-msg."msg.no.ref.to.set".... | 
| 10fe0 |  20 20 20 20 20 20 22 25 73 20 69 73 20 6e 6f 74    20 61 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20  | ......"%s.is.not.a.reference.to. | 
| 11000 |  73 65 74 20 72 65 66 65 72 65 6e 63 65 20 76 61    6c 75 65 20 74 6f 20 25 73 2e 22 29 0a 0a 28 6a  | set.reference.value.to.%s.")..(j | 
| 11020 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 72    65 66 2e 66 72 6f 6d 2e 66 75 6e 63 74 69 6f 6e  | s2-msg."msg.no.ref.from.function | 
| 11040 |  22 0a 20 20 20 20 20 20 20 20 20 22 46 75 6e 63    74 69 6f 6e 20 25 73 20 63 61 6e 20 6e 6f 74 20  | ".........."Function.%s.can.not. | 
| 11060 |  62 65 20 75 73 65 64 20 61 73 20 74 68 65 20 6c    65 66 74 2d 68 61 6e 64 20 22 0a 20 20 20 20 20  | be.used.as.the.left-hand."...... | 
| 11080 |  20 20 20 20 22 73 69 64 65 20 6f 66 20 61 73 73    69 67 6e 6d 65 6e 74 20 6f 72 20 61 73 20 61 6e  | ...."side.of.assignment.or.as.an | 
| 110a0 |  20 6f 70 65 72 61 6e 64 20 6f 66 20 2b 2b 20 6f    72 20 2d 2d 20 6f 70 65 72 61 74 6f 72 2e 22 29  | .operand.of.++.or.--.operator.") | 
| 110c0 |  0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e    62 61 64 2e 64 65 66 61 75 6c 74 2e 76 61 6c 75  | ..(js2-msg."msg.bad.default.valu | 
| 110e0 |  65 22 0a 20 20 20 20 20 20 20 20 20 22 4f 62 6a    65 63 74 27 73 20 67 65 74 44 65 66 61 75 6c 74  | e".........."Object's.getDefault | 
| 11100 |  56 61 6c 75 65 28 29 20 6d 65 74 68 6f 64 20 72    65 74 75 72 6e 65 64 20 61 6e 20 6f 62 6a 65 63  | Value().method.returned.an.objec | 
| 11120 |  74 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 69 6e 73 74 61 6e 63 65 6f 66 2e 6e  | t.")..(js2-msg."msg.instanceof.n | 
| 11140 |  6f 74 2e 6f 62 6a 65 63 74 22 0a 20 20 20 20 20    20 20 20 20 22 43 61 6e 27 74 20 75 73 65 20 69  | ot.object".........."Can't.use.i | 
| 11160 |  6e 73 74 61 6e 63 65 6f 66 20 6f 6e 20 61 20 6e    6f 6e 2d 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 6a  | nstanceof.on.a.non-object.")..(j | 
| 11180 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 69 6e 73 74    61 6e 63 65 6f 66 2e 62 61 64 2e 70 72 6f 74 6f  | s2-msg."msg.instanceof.bad.proto | 
| 111a0 |  74 79 70 65 22 0a 20 20 20 20 20 20 20 20 20 22    27 70 72 6f 74 6f 74 79 70 65 27 20 70 72 6f 70  | type".........."'prototype'.prop | 
| 111c0 |  65 72 74 79 20 6f 66 20 25 73 20 69 73 20 6e 6f    74 20 61 6e 20 6f 62 6a 65 63 74 2e 22 29 0a 0a  | erty.of.%s.is.not.an.object.").. | 
| 111e0 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61    64 2e 72 61 64 69 78 22 0a 20 20 20 20 20 20 20  | (js2-msg."msg.bad.radix"........ | 
| 11200 |  20 20 22 69 6c 6c 65 67 61 6c 20 72 61 64 69 78    20 25 73 2e 22 29 0a 0a 3b 3b 20 53 63 72 69 70  | .."illegal.radix.%s.")..;;.Scrip | 
| 11220 |  74 61 62 6c 65 4f 62 6a 65 63 74 0a 28 6a 73 32    2d 6d 73 67 20 22 6d 73 67 2e 64 65 66 61 75 6c  | tableObject.(js2-msg."msg.defaul | 
| 11240 |  74 2e 76 61 6c 75 65 22 0a 20 20 20 20 20 20 20    20 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 64  | t.value".........."Cannot.find.d | 
| 11260 |  65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f 72    20 6f 62 6a 65 63 74 2e 22 29 0a 0a 28 6a 73 32  | efault.value.for.object.")..(js2 | 
| 11280 |  2d 6d 73 67 20 22 6d 73 67 2e 7a 65 72 6f 2e 61    72 67 2e 63 74 6f 72 22 0a 20 20 20 20 20 20 20  | -msg."msg.zero.arg.ctor"........ | 
| 112a0 |  20 20 22 43 61 6e 6e 6f 74 20 6c 6f 61 64 20 63    6c 61 73 73 20 27 25 73 27 20 77 68 69 63 68 20  | .."Cannot.load.class.'%s'.which. | 
| 112c0 |  68 61 73 20 6e 6f 20 7a 65 72 6f 2d 70 61 72 61    6d 65 74 65 72 20 63 6f 6e 73 74 72 75 63 74 6f  | has.no.zero-parameter.constructo | 
| 112e0 |  72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22    6d 73 67 2e 63 74 6f 72 2e 6d 75 6c 74 69 70 6c  | r.")..(js2-msg."msg.ctor.multipl | 
| 11300 |  65 2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20    20 20 22 43 61 6e 27 74 20 64 65 66 69 6e 65 20  | e.parms".........."Can't.define. | 
| 11320 |  63 6f 6e 73 74 72 75 63 74 6f 72 20 6f 72 20 63    6c 61 73 73 20 25 73 20 73 69 6e 63 65 20 6d 6f  | constructor.or.class.%s.since.mo | 
| 11340 |  72 65 20 74 68 61 6e 20 22 0a 20 20 20 20 20 20    20 20 20 22 6f 6e 65 20 63 6f 6e 73 74 72 75 63  | re.than.".........."one.construc | 
| 11360 |  74 6f 72 20 68 61 73 20 6d 75 6c 74 69 70 6c 65    20 70 61 72 61 6d 65 74 65 72 73 2e 22 29 0a 0a  | tor.has.multiple.parameters.").. | 
| 11380 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 65 78    74 65 6e 64 2e 73 63 72 69 70 74 61 62 6c 65 22  | (js2-msg."msg.extend.scriptable" | 
| 113a0 |  0a 20 20 20 20 20 20 20 20 20 22 25 73 20 6d 75    73 74 20 65 78 74 65 6e 64 20 53 63 72 69 70 74  | .........."%s.must.extend.Script | 
| 113c0 |  61 62 6c 65 4f 62 6a 65 63 74 20 69 6e 20 6f 72    64 65 72 20 74 6f 20 64 65 66 69 6e 65 20 70 72  | ableObject.in.order.to.define.pr | 
| 113e0 |  6f 70 65 72 74 79 20 25 73 2e 22 29 0a 0a 28 6a    73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e  | operty.%s.")..(js2-msg."msg.bad. | 
| 11400 |  67 65 74 74 65 72 2e 70 61 72 6d 73 22 0a 20 20    20 20 20 20 20 20 20 22 49 6e 20 6f 72 64 65 72  | getter.parms".........."In.order | 
| 11420 |  20 74 6f 20 64 65 66 69 6e 65 20 61 20 70 72 6f    70 65 72 74 79 2c 20 67 65 74 74 65 72 20 25 73  | .to.define.a.property,.getter.%s | 
| 11440 |  20 6d 75 73 74 20 68 61 76 65 20 7a 65 72 6f 20    22 0a 20 20 20 20 20 20 20 20 20 22 70 61 72 61  | .must.have.zero.".........."para | 
| 11460 |  6d 65 74 65 72 73 20 6f 72 20 61 20 73 69 6e 67    6c 65 20 53 63 72 69 70 74 61 62 6c 65 4f 62 6a  | meters.or.a.single.ScriptableObj | 
| 11480 |  65 63 74 20 70 61 72 61 6d 65 74 65 72 2e 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | ect.parameter.")..(js2-msg."msg. | 
| 114a0 |  6f 62 6a 2e 67 65 74 74 65 72 2e 70 61 72 6d 73    22 0a 20 20 20 20 20 20 20 20 20 22 45 78 70 65  | obj.getter.parms".........."Expe | 
| 114c0 |  63 74 65 64 20 73 74 61 74 69 63 20 6f 72 20 64    65 6c 65 67 61 74 65 64 20 67 65 74 74 65 72 20  | cted.static.or.delegated.getter. | 
| 114e0 |  25 73 20 74 6f 20 74 61 6b 65 20 22 0a 20 20 20    20 20 20 20 20 20 22 61 20 53 63 72 69 70 74 61  | %s.to.take.".........."a.Scripta | 
| 11500 |  62 6c 65 4f 62 6a 65 63 74 20 70 61 72 61 6d 65    74 65 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | bleObject.parameter.")..(js2-msg | 
| 11520 |  20 22 6d 73 67 2e 67 65 74 74 65 72 2e 73 74 61    74 69 63 22 0a 20 20 20 20 20 20 20 20 20 22 47  | ."msg.getter.static".........."G | 
| 11540 |  65 74 74 65 72 20 61 6e 64 20 73 65 74 74 65 72    20 6d 75 73 74 20 62 6f 74 68 20 62 65 20 73 74  | etter.and.setter.must.both.be.st | 
| 11560 |  61 74 69 63 20 6f 72 20 6e 65 69 74 68 65 72 20    62 65 20 73 74 61 74 69 63 2e 22 29 0a 0a 28 6a  | atic.or.neither.be.static.")..(j | 
| 11580 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74    65 72 2e 72 65 74 75 72 6e 22 0a 20 20 20 20 20  | s2-msg."msg.setter.return"...... | 
| 115a0 |  20 20 20 20 22 53 65 74 74 65 72 20 6d 75 73 74    20 68 61 76 65 20 76 6f 69 64 20 72 65 74 75 72  | ...."Setter.must.have.void.retur | 
| 115c0 |  6e 20 74 79 70 65 3a 20 25 73 22 29 0a 0a 28 6a    73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74  | n.type:.%s")..(js2-msg."msg.sett | 
| 115e0 |  65 72 32 2e 70 61 72 6d 73 22 0a 20 20 20 20 20    20 20 20 20 22 54 77 6f 2d 70 61 72 61 6d 65 74  | er2.parms".........."Two-paramet | 
| 11600 |  65 72 20 73 65 74 74 65 72 20 6d 75 73 74 20 74    61 6b 65 20 61 20 53 63 72 69 70 74 61 62 6c 65  | er.setter.must.take.a.Scriptable | 
| 11620 |  4f 62 6a 65 63 74 20 61 73 20 22 0a 20 20 20 20    20 20 20 20 20 22 69 74 73 20 66 69 72 73 74 20  | Object.as.".........."its.first. | 
| 11640 |  70 61 72 61 6d 65 74 65 72 2e 22 29 0a 0a 28 6a    73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74  | parameter.")..(js2-msg."msg.sett | 
| 11660 |  65 72 31 2e 70 61 72 6d 73 22 0a 20 20 20 20 20    20 20 20 20 22 45 78 70 65 63 74 65 64 20 73 69  | er1.parms".........."Expected.si | 
| 11680 |  6e 67 6c 65 20 70 61 72 61 6d 65 74 65 72 20 73    65 74 74 65 72 20 66 6f 72 20 25 73 22 29 0a 0a  | ngle.parameter.setter.for.%s").. | 
| 116a0 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73 65    74 74 65 72 32 2e 65 78 70 65 63 74 65 64 22 0a  | (js2-msg."msg.setter2.expected". | 
| 116c0 |  20 20 20 20 20 20 20 20 20 22 45 78 70 65 63 74    65 64 20 73 74 61 74 69 63 20 6f 72 20 64 65 6c  | ........."Expected.static.or.del | 
| 116e0 |  65 67 61 74 65 64 20 73 65 74 74 65 72 20 25 73    20 74 6f 20 74 61 6b 65 20 74 77 6f 20 70 61 72  | egated.setter.%s.to.take.two.par | 
| 11700 |  61 6d 65 74 65 72 73 2e 22 29 0a 0a 28 6a 73 32    2d 6d 73 67 20 22 6d 73 67 2e 73 65 74 74 65 72  | ameters.")..(js2-msg."msg.setter | 
| 11720 |  2e 70 61 72 6d 73 22 0a 20 20 20 20 20 20 20 20    20 22 45 78 70 65 63 74 65 64 20 65 69 74 68 65  | .parms".........."Expected.eithe | 
| 11740 |  72 20 6f 6e 65 20 6f 72 20 74 77 6f 20 70 61 72    61 6d 65 74 65 72 73 20 66 6f 72 20 73 65 74 74  | r.one.or.two.parameters.for.sett | 
| 11760 |  65 72 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20    22 6d 73 67 2e 73 65 74 74 65 72 2e 62 61 64 2e  | er.")..(js2-msg."msg.setter.bad. | 
| 11780 |  74 79 70 65 22 0a 20 20 20 20 20 20 20 20 20 22    55 6e 73 75 70 70 6f 72 74 65 64 20 70 61 72 61  | type".........."Unsupported.para | 
| 117a0 |  6d 65 74 65 72 20 74 79 70 65 20 27 25 73 27 20    69 6e 20 73 65 74 74 65 72 20 27 25 73 27 2e 22  | meter.type.'%s'.in.setter.'%s'." | 
| 117c0 |  29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 61 64 64 2e 73 65 61 6c 65 64 22 0a 20 20 20  | )..(js2-msg."msg.add.sealed".... | 
| 117e0 |  20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 61 64    64 20 61 20 70 72 6f 70 65 72 74 79 20 74 6f 20  | ......"Cannot.add.a.property.to. | 
| 11800 |  61 20 73 65 61 6c 65 64 20 6f 62 6a 65 63 74 3a    20 25 73 2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67  | a.sealed.object:.%s.")..(js2-msg | 
| 11820 |  20 22 6d 73 67 2e 72 65 6d 6f 76 65 2e 73 65 61    6c 65 64 22 0a 20 20 20 20 20 20 20 20 20 22 43  | ."msg.remove.sealed".........."C | 
| 11840 |  61 6e 6e 6f 74 20 72 65 6d 6f 76 65 20 61 20 70    72 6f 70 65 72 74 79 20 66 72 6f 6d 20 61 20 73  | annot.remove.a.property.from.a.s | 
| 11860 |  65 61 6c 65 64 20 6f 62 6a 65 63 74 3a 20 25 73    2e 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | ealed.object:.%s.")..(js2-msg."m | 
| 11880 |  73 67 2e 6d 6f 64 69 66 79 2e 73 65 61 6c 65 64    22 0a 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e  | sg.modify.sealed".........."Cann | 
| 118a0 |  6f 74 20 6d 6f 64 69 66 79 20 61 20 70 72 6f 70    65 72 74 79 20 6f 66 20 61 20 73 65 61 6c 65 64  | ot.modify.a.property.of.a.sealed | 
| 118c0 |  20 6f 62 6a 65 63 74 3a 20 25 73 2e 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 6f  | .object:.%s.")..(js2-msg."msg.mo | 
| 118e0 |  64 69 66 79 2e 72 65 61 64 6f 6e 6c 79 22 0a 20    20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20  | dify.readonly".........."Cannot. | 
| 11900 |  6d 6f 64 69 66 79 20 72 65 61 64 6f 6e 6c 79 20    70 72 6f 70 65 72 74 79 3a 20 25 73 2e 22 29 0a  | modify.readonly.property:.%s."). | 
| 11920 |  0a 3b 3b 20 54 6f 6b 65 6e 53 74 72 65 61 6d 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69  | .;;.TokenStream.(js2-msg."msg.mi | 
| 11940 |  73 73 69 6e 67 2e 65 78 70 6f 6e 65 6e 74 22 0a    20 20 20 20 20 20 20 20 20 22 6d 69 73 73 69 6e  | ssing.exponent".........."missin | 
| 11960 |  67 20 65 78 70 6f 6e 65 6e 74 22 29 0a 0a 28 6a    73 32 2d 6d 73 67 20 22 6d 73 67 2e 63 61 75 67  | g.exponent")..(js2-msg."msg.caug | 
| 11980 |  68 74 2e 6e 66 65 22 0a 20 20 20 20 20 20 20 20    20 22 6e 75 6d 62 65 72 20 66 6f 72 6d 61 74 20  | ht.nfe".........."number.format. | 
| 119a0 |  65 72 72 6f 72 22 29 0a 0a 28 6a 73 32 2d 6d 73    67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61  | error")..(js2-msg."msg.untermina | 
| 119c0 |  74 65 64 2e 73 74 72 69 6e 67 2e 6c 69 74 22 0a    20 20 20 20 20 20 20 20 20 22 75 6e 74 65 72 6d  | ted.string.lit".........."unterm | 
| 119e0 |  69 6e 61 74 65 64 20 73 74 72 69 6e 67 20 6c 69    74 65 72 61 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73  | inated.string.literal")..(js2-ms | 
| 11a00 |  67 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61    74 65 64 2e 63 6f 6d 6d 65 6e 74 22 0a 20 20 20  | g."msg.unterminated.comment".... | 
| 11a20 |  20 20 20 20 20 20 22 75 6e 74 65 72 6d 69 6e 61    74 65 64 20 63 6f 6d 6d 65 6e 74 22 29 0a 0a 28  | ......"unterminated.comment")..( | 
| 11a40 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 75 6e 74    65 72 6d 69 6e 61 74 65 64 2e 72 65 2e 6c 69 74  | js2-msg."msg.unterminated.re.lit | 
| 11a60 |  22 0a 20 20 20 20 20 20 20 20 20 22 75 6e 74 65    72 6d 69 6e 61 74 65 64 20 72 65 67 75 6c 61 72  | ".........."unterminated.regular | 
| 11a80 |  20 65 78 70 72 65 73 73 69 6f 6e 20 6c 69 74 65    72 61 6c 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20  | .expression.literal")..(js2-msg. | 
| 11aa0 |  22 6d 73 67 2e 69 6e 76 61 6c 69 64 2e 72 65 2e    66 6c 61 67 22 0a 20 20 20 20 20 20 20 20 20 22  | "msg.invalid.re.flag".........." | 
| 11ac0 |  69 6e 76 61 6c 69 64 20 66 6c 61 67 20 61 66 74    65 72 20 72 65 67 75 6c 61 72 20 65 78 70 72 65  | invalid.flag.after.regular.expre | 
| 11ae0 |  73 73 69 6f 6e 22 29 0a 0a 28 6a 73 32 2d 6d 73    67 20 22 6d 73 67 2e 6e 6f 2e 72 65 2e 69 6e 70  | ssion")..(js2-msg."msg.no.re.inp | 
| 11b00 |  75 74 2e 66 6f 72 22 0a 20 20 20 20 20 20 20 20    20 22 6e 6f 20 69 6e 70 75 74 20 66 6f 72 20 25  | ut.for".........."no.input.for.% | 
| 11b20 |  73 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 69 6c 6c 65 67 61 6c 2e 63 68 61 72 61  | s")..(js2-msg."msg.illegal.chara | 
| 11b40 |  63 74 65 72 22 0a 20 20 20 20 20 20 20 20 20 22    69 6c 6c 65 67 61 6c 20 63 68 61 72 61 63 74 65  | cter".........."illegal.characte | 
| 11b60 |  72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d    73 67 2e 69 6e 76 61 6c 69 64 2e 65 73 63 61 70  | r")..(js2-msg."msg.invalid.escap | 
| 11b80 |  65 22 0a 20 20 20 20 20 20 20 20 20 22 69 6e 76    61 6c 69 64 20 55 6e 69 63 6f 64 65 20 65 73 63  | e".........."invalid.Unicode.esc | 
| 11ba0 |  61 70 65 20 73 65 71 75 65 6e 63 65 22 29 0a 0a    28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 62 61  | ape.sequence")..(js2-msg."msg.ba | 
| 11bc0 |  64 2e 6e 61 6d 65 73 70 61 63 65 22 0a 20 20 20    20 20 20 20 20 20 22 6e 6f 74 20 61 20 76 61 6c  | d.namespace".........."not.a.val | 
| 11be0 |  69 64 20 64 65 66 61 75 6c 74 20 6e 61 6d 65 73    70 61 63 65 20 73 74 61 74 65 6d 65 6e 74 2e 20  | id.default.namespace.statement.. | 
| 11c00 |  22 0a 20 20 20 20 20 20 20 20 20 22 53 79 6e 74    61 78 20 69 73 3a 20 64 65 66 61 75 6c 74 20 78  | ".........."Syntax.is:.default.x | 
| 11c20 |  6d 6c 20 6e 61 6d 65 73 70 61 63 65 20 3d 20 45    58 50 52 45 53 53 49 4f 4e 3b 22 29 0a 0a 28 6a  | ml.namespace.=.EXPRESSION;")..(j | 
| 11c40 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f 2e 74    72 61 69 6c 69 6e 67 2e 6e 75 6d 65 72 69 63 2e  | s2-msg."msg.no.trailing.numeric. | 
| 11c60 |  6c 69 74 65 72 61 6c 22 0a 20 20 20 20 20 20 20    20 20 22 75 6e 64 65 72 73 63 6f 72 65 20 63 61  | literal".........."underscore.ca | 
| 11c80 |  6e 6e 6f 74 20 61 70 70 65 61 72 20 61 66 74 65    72 20 6c 61 73 74 20 64 69 67 69 74 22 29 0a 0a  | nnot.appear.after.last.digit").. | 
| 11ca0 |  28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e 6f    2e 63 6f 6e 73 65 63 75 74 69 76 65 2e 6e 75 6d  | (js2-msg."msg.no.consecutive.num | 
| 11cc0 |  65 72 69 63 2e 6c 69 74 65 72 61 6c 22 0a 20 20    20 20 20 20 20 20 20 22 75 6e 64 65 72 73 63 6f  | eric.literal".........."undersco | 
| 11ce0 |  72 65 73 20 63 61 6e 6e 6f 74 20 62 65 20 6e 65    78 74 20 74 6f 20 65 61 63 68 20 6f 74 68 65 72  | res.cannot.be.next.to.each.other | 
| 11d00 |  22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73    67 2e 6e 6f 2e 6e 75 6d 65 72 69 63 2e 73 65 70  | ")..(js2-msg."msg.no.numeric.sep | 
| 11d20 |  61 72 61 74 6f 72 2e 61 66 74 65 72 2e 6c 65 61    64 69 6e 67 2e 7a 65 72 6f 22 0a 20 20 20 20 20  | arator.after.leading.zero"...... | 
| 11d40 |  20 20 20 20 22 75 6e 64 65 72 73 63 6f 72 65 20    63 61 6e 6e 6f 74 20 61 70 70 65 61 72 20 61 66  | ...."underscore.cannot.appear.af | 
| 11d60 |  74 65 72 20 6c 65 61 64 69 6e 67 20 7a 65 72 6f    22 29 0a 0a 3b 3b 20 54 6f 6b 65 6e 73 53 74 72  | ter.leading.zero")..;;.TokensStr | 
| 11d80 |  65 61 6d 20 77 61 72 6e 69 6e 67 73 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 62 61 64 2e 6f  | eam.warnings.(js2-msg."msg.bad.o | 
| 11da0 |  63 74 61 6c 2e 6c 69 74 65 72 61 6c 22 0a 20 20    20 20 20 20 20 20 20 22 69 6c 6c 65 67 61 6c 20  | ctal.literal".........."illegal. | 
| 11dc0 |  6f 63 74 61 6c 20 6c 69 74 65 72 61 6c 20 64 69    67 69 74 20 25 73 3b 20 22 0a 20 20 20 20 20 20  | octal.literal.digit.%s;."....... | 
| 11de0 |  20 20 20 22 69 6e 74 65 72 70 72 65 74 69 6e 67    20 69 74 20 61 73 20 61 20 64 65 63 69 6d 61 6c  | ..."interpreting.it.as.a.decimal | 
| 11e00 |  20 64 69 67 69 74 22 29 0a 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e  | .digit")..(js2-msg."msg.missing. | 
| 11e20 |  68 65 78 2e 64 69 67 69 74 73 22 0a 20 20 20 20    20 20 20 20 20 22 6d 69 73 73 69 6e 67 20 68 65  | hex.digits".........."missing.he | 
| 11e40 |  78 61 64 65 63 69 6d 61 6c 20 64 69 67 69 74 73    20 61 66 74 65 72 20 27 30 78 27 22 29 0a 0a 28  | xadecimal.digits.after.'0x'")..( | 
| 11e60 |  6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69 73    73 69 6e 67 2e 62 69 6e 61 72 79 2e 64 69 67 69  | js2-msg."msg.missing.binary.digi | 
| 11e80 |  74 73 22 0a 20 20 20 20 20 20 20 20 20 22 6d 69    73 73 69 6e 67 20 62 69 6e 61 72 79 20 64 69 67  | ts".........."missing.binary.dig | 
| 11ea0 |  69 74 73 20 61 66 74 65 72 20 27 30 62 27 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | its.after.'0b'")..(js2-msg."msg. | 
| 11ec0 |  6d 69 73 73 69 6e 67 2e 6f 63 74 61 6c 2e 64 69    67 69 74 73 22 0a 20 20 20 20 20 20 20 20 20 22  | missing.octal.digits".........." | 
| 11ee0 |  6d 69 73 73 69 6e 67 20 6f 63 74 61 6c 20 64 69    67 69 74 73 20 61 66 74 65 72 20 27 30 6f 27 22  | missing.octal.digits.after.'0o'" | 
| 11f00 |  29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 73 63 72 69 70 74 2e 69 73 2e 6e 6f 74 2e 63  | )..(js2-msg."msg.script.is.not.c | 
| 11f20 |  6f 6e 73 74 72 75 63 74 6f 72 22 0a 20 20 20 20    20 20 20 20 20 22 53 63 72 69 70 74 20 6f 62 6a  | onstructor".........."Script.obj | 
| 11f40 |  65 63 74 73 20 61 72 65 20 6e 6f 74 20 63 6f 6e    73 74 72 75 63 74 6f 72 73 2e 22 29 0a 0a 3b 3b  | ects.are.not.constructors.")..;; | 
| 11f60 |  20 41 72 72 61 79 73 0a 28 6a 73 32 2d 6d 73 67    20 22 6d 73 67 2e 61 72 72 61 79 6c 65 6e 67 74  | .Arrays.(js2-msg."msg.arraylengt | 
| 11f80 |  68 2e 62 61 64 22 0a 20 20 20 20 20 20 20 20 20    22 49 6e 61 70 70 72 6f 70 72 69 61 74 65 20 61  | h.bad".........."Inappropriate.a | 
| 11fa0 |  72 72 61 79 20 6c 65 6e 67 74 68 2e 22 29 0a 0a    3b 3b 20 41 72 72 61 79 73 0a 28 6a 73 32 2d 6d  | rray.length.")..;;.Arrays.(js2-m | 
| 11fc0 |  73 67 20 22 6d 73 67 2e 61 72 72 61 79 6c 65 6e    67 74 68 2e 74 6f 6f 2e 62 69 67 22 0a 20 20 20  | sg."msg.arraylength.too.big".... | 
| 11fe0 |  20 20 20 20 20 20 22 41 72 72 61 79 20 6c 65 6e    67 74 68 20 25 73 20 65 78 63 65 65 64 73 20 73  | ......"Array.length.%s.exceeds.s | 
| 12000 |  75 70 70 6f 72 74 65 64 20 63 61 70 61 63 69 74    79 20 6c 69 6d 69 74 2e 22 29 0a 0a 3b 3b 20 55  | upported.capacity.limit.")..;;.U | 
| 12020 |  52 49 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67    2e 62 61 64 2e 75 72 69 22 0a 20 20 20 20 20 20  | RI.(js2-msg."msg.bad.uri"....... | 
| 12040 |  20 20 20 22 4d 61 6c 66 6f 72 6d 65 64 20 55 52    49 20 73 65 71 75 65 6e 63 65 2e 22 29 0a 0a 3b  | ..."Malformed.URI.sequence.")..; | 
| 12060 |  3b 20 4e 75 6d 62 65 72 0a 28 6a 73 32 2d 6d 73    67 20 22 6d 73 67 2e 62 61 64 2e 70 72 65 63 69  | ;.Number.(js2-msg."msg.bad.preci | 
| 12080 |  73 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 22    50 72 65 63 69 73 69 6f 6e 20 25 73 20 6f 75 74  | sion".........."Precision.%s.out | 
| 120a0 |  20 6f 66 20 72 61 6e 67 65 2e 22 29 0a 0a 3b 3b    20 4e 61 74 69 76 65 47 65 6e 65 72 61 74 6f 72  | .of.range.")..;;.NativeGenerator | 
| 120c0 |  0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 73    65 6e 64 2e 6e 65 77 62 6f 72 6e 22 0a 20 20 20  | .(js2-msg."msg.send.newborn".... | 
| 120e0 |  20 20 20 20 20 20 22 41 74 74 65 6d 70 74 20 74    6f 20 73 65 6e 64 20 76 61 6c 75 65 20 74 6f 20  | ......"Attempt.to.send.value.to. | 
| 12100 |  6e 65 77 62 6f 72 6e 20 67 65 6e 65 72 61 74 6f    72 22 29 0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d  | newborn.generator")..(js2-msg."m | 
| 12120 |  73 67 2e 61 6c 72 65 61 64 79 2e 65 78 65 63 2e    67 65 6e 22 0a 20 20 20 20 20 20 20 20 20 22 41  | sg.already.exec.gen".........."A | 
| 12140 |  6c 72 65 61 64 79 20 65 78 65 63 75 74 69 6e 67    20 67 65 6e 65 72 61 74 6f 72 22 29 0a 0a 28 6a  | lready.executing.generator")..(j | 
| 12160 |  73 32 2d 6d 73 67 20 22 6d 73 67 2e 53 74 6f 70    49 74 65 72 61 74 69 6f 6e 2e 69 6e 76 61 6c 69  | s2-msg."msg.StopIteration.invali | 
| 12180 |  64 22 0a 20 20 20 20 20 20 20 20 20 22 53 74 6f    70 49 74 65 72 61 74 69 6f 6e 20 6d 61 79 20 6e  | d".........."StopIteration.may.n | 
| 121a0 |  6f 74 20 62 65 20 63 68 61 6e 67 65 64 20 74 6f    20 61 6e 20 61 72 62 69 74 72 61 72 79 20 6f 62  | ot.be.changed.to.an.arbitrary.ob | 
| 121c0 |  6a 65 63 74 2e 22 29 0a 0a 3b 3b 20 49 6e 74 65    72 70 72 65 74 65 72 0a 28 6a 73 32 2d 6d 73 67  | ject.")..;;.Interpreter.(js2-msg | 
| 121e0 |  20 22 6d 73 67 2e 79 69 65 6c 64 2e 63 6c 6f 73    69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 22 59  | ."msg.yield.closing".........."Y | 
| 12200 |  69 65 6c 64 20 66 72 6f 6d 20 63 6c 6f 73 69 6e    67 20 67 65 6e 65 72 61 74 6f 72 22 29 0a 0a 3b  | ield.from.closing.generator")..; | 
| 12220 |  3b 20 43 6c 61 73 73 65 73 0a 28 6a 73 32 2d 6d    73 67 20 22 6d 73 67 2e 75 6e 6e 61 6d 65 64 2e  | ;.Classes.(js2-msg."msg.unnamed. | 
| 12240 |  63 6c 61 73 73 2e 73 74 6d 74 22 20 3b 20 61 64    64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65 0a  | class.stmt".;.added.by.js2-mode. | 
| 12260 |  20 20 20 20 20 20 20 20 20 22 63 6c 61 73 73 20    73 74 61 74 65 6d 65 6e 74 20 72 65 71 75 69 72  | ........."class.statement.requir | 
| 12280 |  65 73 20 61 20 6e 61 6d 65 22 29 0a 0a 28 6a 73    32 2d 6d 73 67 20 22 6d 73 67 2e 63 6c 61 73 73  | es.a.name")..(js2-msg."msg.class | 
| 122a0 |  2e 75 6e 65 78 70 65 63 74 65 64 2e 63 6f 6d 6d    61 22 20 3b 20 61 64 64 65 64 20 62 79 20 6a 73  | .unexpected.comma".;.added.by.js | 
| 122c0 |  32 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20    22 75 6e 65 78 70 65 63 74 65 64 20 27 2c 27 20  | 2-mode.........."unexpected.','. | 
| 122e0 |  62 65 74 77 65 65 6e 20 63 6c 61 73 73 20 70 72    6f 70 65 72 74 69 65 73 22 29 0a 0a 28 6a 73 32  | between.class.properties")..(js2 | 
| 12300 |  2d 6d 73 67 20 22 6d 73 67 2e 75 6e 65 78 70 65    63 74 65 64 2e 73 74 61 74 69 63 22 20 3b 20 61  | -msg."msg.unexpected.static".;.a | 
| 12320 |  64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f 64 65    0a 20 20 20 20 20 20 20 20 20 22 75 6e 65 78 70  | dded.by.js2-mode.........."unexp | 
| 12340 |  65 63 74 65 64 20 27 73 74 61 74 69 63 27 22 29    0a 0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e  | ected.'static'")..(js2-msg."msg. | 
| 12360 |  6d 69 73 73 69 6e 67 2e 65 78 74 65 6e 64 73 22    20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d  | missing.extends".;.added.by.js2- | 
| 12380 |  6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 6e    61 6d 65 20 69 73 20 72 65 71 75 69 72 65 64 20  | mode.........."name.is.required. | 
| 123a0 |  61 66 74 65 72 20 65 78 74 65 6e 64 73 22 29 0a    0a 28 6a 73 32 2d 6d 73 67 20 22 6d 73 67 2e 6e  | after.extends")..(js2-msg."msg.n | 
| 123c0 |  6f 2e 62 72 61 63 65 2e 63 6c 61 73 73 22 20 3b    20 61 64 64 65 64 20 62 79 20 6a 73 32 2d 6d 6f  | o.brace.class".;.added.by.js2-mo | 
| 123e0 |  64 65 0a 20 20 20 20 20 20 20 20 20 22 6d 69 73    73 69 6e 67 20 27 7b 27 20 62 65 66 6f 72 65 20  | de.........."missing.'{'.before. | 
| 12400 |  63 6c 61 73 73 20 62 6f 64 79 22 29 0a 0a 28 6a    73 32 2d 6d 73 67 20 22 6d 73 67 2e 6d 69 73 73  | class.body")..(js2-msg."msg.miss | 
| 12420 |  69 6e 67 2e 63 6f 6d 70 75 74 65 64 2e 72 62 22    20 3b 20 61 64 64 65 64 20 62 79 20 6a 73 32 2d  | ing.computed.rb".;.added.by.js2- | 
| 12440 |  6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 22 6d    69 73 73 69 6e 67 20 27 5d 27 20 61 66 74 65 72  | mode.........."missing.']'.after | 
| 12460 |  20 63 6f 6d 70 75 74 65 64 20 70 72 6f 70 65 72    74 79 20 65 78 70 72 65 73 73 69 6f 6e 22 29 0a  | .computed.property.expression"). | 
| 12480 |  0a 3b 3b 3b 20 54 6f 6b 65 6e 73 20 42 75 66 66    65 72 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73  | .;;;.Tokens.Buffer..(defconst.js | 
| 124a0 |  32 2d 74 69 2d 6d 61 78 2d 6c 6f 6f 6b 61 68 65    61 64 20 32 29 0a 28 64 65 66 63 6f 6e 73 74 20  | 2-ti-max-lookahead.2).(defconst. | 
| 124c0 |  6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73 20 28    31 2b 20 6a 73 32 2d 74 69 2d 6d 61 78 2d 6c 6f  | js2-ti-ntokens.(1+.js2-ti-max-lo | 
| 124e0 |  6f 6b 61 68 65 61 64 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 6e 65 77 2d 74 6f 6b 65 6e 20  | okahead))..(defun.js2-new-token. | 
| 12500 |  28 6f 66 66 73 65 74 29 0a 20 20 28 6c 65 74 20    28 28 74 6f 6b 65 6e 20 28 6d 61 6b 65 2d 6a 73  | (offset)...(let.((token.(make-js | 
| 12520 |  32 2d 74 6f 6b 65 6e 20 28 2b 20 6f 66 66 73 65    74 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29  | 2-token.(+.offset.js2-ts-cursor) | 
| 12540 |  29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73    32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73  | ))).....(setq.js2-ti-tokens-curs | 
| 12560 |  6f 72 20 28 6d 6f 64 20 28 31 2b 20 6a 73 32 2d    74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72  | or.(mod.(1+.js2-ti-tokens-cursor | 
| 12580 |  29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73    29 29 0a 20 20 20 20 28 61 73 65 74 20 6a 73 32  | ).js2-ti-ntokens)).....(aset.js2 | 
| 125a0 |  2d 74 69 2d 74 6f 6b 65 6e 73 20 6a 73 32 2d 74    69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20  | -ti-tokens.js2-ti-tokens-cursor. | 
| 125c0 |  74 6f 6b 65 6e 29 0a 20 20 20 20 74 6f 6b 65 6e    29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73  | token).....token))..(defsubst.js | 
| 125e0 |  32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 20    28 29 0a 20 20 28 61 72 65 66 20 6a 73 32 2d 74  | 2-current-token.()...(aref.js2-t | 
| 12600 |  69 2d 74 6f 6b 65 6e 73 20 6a 73 32 2d 74 69 2d    74 6f 6b 65 6e 73 2d 63 75 72 73 6f 72 29 29 0a  | i-tokens.js2-ti-tokens-cursor)). | 
| 12620 |  0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72  | .(defsubst.js2-current-token-str | 
| 12640 |  69 6e 67 20 28 29 0a 20 20 28 6a 73 32 2d 74 6f    6b 65 6e 2d 73 74 72 69 6e 67 20 28 6a 73 32 2d  | ing.()...(js2-token-string.(js2- | 
| 12660 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29    0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d  | current-token)))..(defsubst.js2- | 
| 12680 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79    70 65 20 28 29 0a 20 20 28 6a 73 32 2d 74 6f 6b  | current-token-type.()...(js2-tok | 
| 126a0 |  65 6e 2d 74 79 70 65 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 0a 0a 28  | en-type.(js2-current-token)))..( | 
| 126c0 |  64 65 66 73 75 62 73 74 20 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 20 28  | defsubst.js2-current-token-beg.( | 
| 126e0 |  29 0a 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62    65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | )...(js2-token-beg.(js2-current- | 
| 12700 |  74 6f 6b 65 6e 29 29 29 0a 0a 28 64 65 66 73 75    62 73 74 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | token)))..(defsubst.js2-current- | 
| 12720 |  74 6f 6b 65 6e 2d 65 6e 64 20 28 29 0a 20 20 28    6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 28 6a  | token-end.()...(js2-token-end.(j | 
| 12740 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | s2-current-token)))..(defun.js2- | 
| 12760 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65    6e 20 28 29 0a 20 20 28 6c 65 74 20 28 28 74 6f  | current-token-len.()...(let.((to | 
| 12780 |  6b 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 2d  | ken.(js2-current-token))).....(- | 
| 127a0 |  20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20    74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 28 6a  | .(js2-token-end.token)........(j | 
| 127c0 |  73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b    65 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | s2-token-beg.token))))..(defun.j | 
| 127e0 |  73 32 2d 74 73 2d 73 65 65 6b 20 28 73 74 61 74    65 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 74  | s2-ts-seek.(state)...(setq.js2-t | 
| 12800 |  73 2d 6c 69 6e 65 6e 6f 20 28 6a 73 32 2d 74 73    2d 73 74 61 74 65 2d 6c 69 6e 65 6e 6f 20 73 74  | s-lineno.(js2-ts-state-lineno.st | 
| 12820 |  61 74 65 29 0a 20 20 20 20 20 20 20 20 6a 73 32    2d 74 73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d  | ate).........js2-ts-cursor.(js2- | 
| 12840 |  74 73 2d 73 74 61 74 65 2d 63 75 72 73 6f 72 20    73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 6a  | ts-state-cursor.state).........j | 
| 12860 |  73 32 2d 74 69 2d 74 6f 6b 65 6e 73 20 28 6a 73    32 2d 74 73 2d 73 74 61 74 65 2d 74 6f 6b 65 6e  | s2-ti-tokens.(js2-ts-state-token | 
| 12880 |  73 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20    20 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63  | s.state).........js2-ti-tokens-c | 
| 128a0 |  75 72 73 6f 72 20 28 6a 73 32 2d 74 73 2d 73 74    61 74 65 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f  | ursor.(js2-ts-state-tokens-curso | 
| 128c0 |  72 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20    20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61  | r.state).........js2-ti-lookahea | 
| 128e0 |  64 20 28 6a 73 32 2d 74 73 2d 73 74 61 74 65 2d    6c 6f 6f 6b 61 68 65 61 64 20 73 74 61 74 65 29  | d.(js2-ts-state-lookahead.state) | 
| 12900 |  29 29 0a 0a 3b 3b 3b 20 55 74 69 6c 69 74 69 65    73 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 65  | ))..;;;.Utilities..(defun.js2-de | 
| 12920 |  6c 65 74 65 2d 69 66 20 28 70 72 65 64 69 63 61    74 65 20 6c 69 73 74 29 0a 20 20 22 52 65 6d 6f  | lete-if.(predicate.list)..."Remo | 
| 12940 |  76 65 20 61 6c 6c 20 69 74 65 6d 73 20 73 61 74    69 73 66 79 69 6e 67 20 50 52 45 44 49 43 41 54  | ve.all.items.satisfying.PREDICAT | 
| 12960 |  45 20 69 6e 20 4c 49 53 54 2e 22 0a 20 20 28 63    6c 2d 6c 6f 6f 70 20 66 6f 72 20 69 74 65 6d 20  | E.in.LIST."...(cl-loop.for.item. | 
| 12980 |  69 6e 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20    20 20 20 69 66 20 28 6e 6f 74 20 28 66 75 6e 63  | in.list............if.(not.(func | 
| 129a0 |  61 6c 6c 20 70 72 65 64 69 63 61 74 65 20 69 74    65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | all.predicate.item))............ | 
| 129c0 |  63 6f 6c 6c 65 63 74 20 69 74 65 6d 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 70 6f 73 69 74  | collect.item))..(defun.js2-posit | 
| 129e0 |  69 6f 6e 20 28 65 6c 65 6d 65 6e 74 20 6c 69 73    74 29 0a 20 20 22 46 69 6e 64 20 30 2d 69 6e 64  | ion.(element.list)..."Find.0-ind | 
| 12a00 |  65 78 65 64 20 70 6f 73 69 74 69 6f 6e 20 6f 66    20 45 4c 45 4d 45 4e 54 20 69 6e 20 4c 49 53 54  | exed.position.of.ELEMENT.in.LIST | 
| 12a20 |  20 63 6f 6d 70 61 72 69 6e 67 20 77 69 74 68 20    60 65 71 27 2e 0a 52 65 74 75 72 6e 73 20 6e 69  | .comparing.with.`eq'..Returns.ni | 
| 12a40 |  6c 20 69 66 20 65 6c 65 6d 65 6e 74 20 69 73 20    6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 74 68 65  | l.if.element.is.not.found.in.the | 
| 12a60 |  20 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28    28 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20  | .list."...(let.((count.0)....... | 
| 12a80 |  20 20 66 6f 75 6e 64 29 0a 20 20 20 20 28 77 68    69 6c 65 20 28 61 6e 64 20 6c 69 73 74 20 28 6e  | ..found).....(while.(and.list.(n | 
| 12aa0 |  6f 74 20 66 6f 75 6e 64 29 29 0a 20 20 20 20 20    20 28 69 66 20 28 65 71 20 65 6c 65 6d 65 6e 74  | ot.found)).......(if.(eq.element | 
| 12ac0 |  20 28 63 61 72 20 6c 69 73 74 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 75  | .(car.list))...........(setq.fou | 
| 12ae0 |  6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 6f 75 6e 74 20 28 31 2b 20 63 6f  | nd.t).........(setq.count.(1+.co | 
| 12b00 |  75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6c 69 73 74 20 28 63 64 72 20 6c 69 73  | unt)...............list.(cdr.lis | 
| 12b20 |  74 29 29 29 29 0a 20 20 20 20 28 69 66 20 66 6f    75 6e 64 20 63 6f 75 6e 74 29 29 29 0a 0a 28 64  | t)))).....(if.found.count)))..(d | 
| 12b40 |  65 66 75 6e 20 6a 73 32 2d 66 69 6e 64 2d 69 66    20 28 70 72 65 64 69 63 61 74 65 20 6c 69 73 74  | efun.js2-find-if.(predicate.list | 
| 12b60 |  29 0a 20 20 22 46 69 6e 64 20 66 69 72 73 74 20    69 74 65 6d 20 73 61 74 69 73 66 79 69 6e 67 20  | )..."Find.first.item.satisfying. | 
| 12b80 |  50 52 45 44 49 43 41 54 45 20 69 6e 20 4c 49 53    54 2e 22 0a 20 20 28 6c 65 74 20 28 72 65 73 75  | PREDICATE.in.LIST."...(let.(resu | 
| 12ba0 |  6c 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28    61 6e 64 20 6c 69 73 74 20 28 6e 6f 74 20 72 65  | lt).....(while.(and.list.(not.re | 
| 12bc0 |  73 75 6c 74 29 29 0a 20 20 20 20 20 20 28 69 66    20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 69 63  | sult)).......(if.(funcall.predic | 
| 12be0 |  61 74 65 20 28 63 61 72 20 6c 69 73 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | ate.(car.list))...........(setq. | 
| 12c00 |  72 65 73 75 6c 74 20 28 63 61 72 20 6c 69 73 74    29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20  | result.(car.list))).......(setq. | 
| 12c20 |  6c 69 73 74 20 28 63 64 72 20 6c 69 73 74 29 29    29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a  | list.(cdr.list))).....result)).. | 
| 12c40 |  28 64 65 66 6d 61 63 72 6f 20 6a 73 32 2d 74 69    6d 65 20 28 66 6f 72 6d 29 0a 20 20 22 45 76 61  | (defmacro.js2-time.(form)..."Eva | 
| 12c60 |  6c 75 61 74 65 20 46 4f 52 4d 2c 20 64 69 73 63    61 72 64 20 72 65 73 75 6c 74 2c 20 61 6e 64 20  | luate.FORM,.discard.result,.and. | 
| 12c80 |  72 65 74 75 72 6e 20 65 6c 61 70 73 65 64 20 74    69 6d 65 20 69 6e 20 73 65 63 2e 22 0a 20 20 28  | return.elapsed.time.in.sec."...( | 
| 12ca0 |  64 65 63 6c 61 72 65 20 28 64 65 62 75 67 20 74    29 29 0a 20 20 28 6c 65 74 20 28 28 62 65 67 20  | declare.(debug.t))...(let.((beg. | 
| 12cc0 |  28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 2d 2d    6a 73 32 2d 74 69 6d 65 2d 62 65 67 2d 2d 22 29  | (make-symbol."--js2-time-beg--") | 
| 12ce0 |  29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 2c    62 65 67 20 28 63 75 72 72 65 6e 74 2d 74 69 6d  | )).....`(let.((,beg.(current-tim | 
| 12d00 |  65 29 29 29 0a 20 20 20 20 20 20 20 2c 66 6f 72    6d 0a 20 20 20 20 20 20 20 28 2f 20 28 74 72 75  | e)))........,form........(/.(tru | 
| 12d20 |  6e 63 61 74 65 20 28 2a 20 28 2d 20 28 66 6c 6f    61 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74  | ncate.(*.(-.(float-time.(current | 
| 12d40 |  2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -time))......................... | 
| 12d60 |  20 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 2c 62    65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ..(float-time.,beg))............ | 
| 12d80 |  20 20 20 20 20 20 20 20 20 20 20 20 31 30 30 30    30 29 29 0a 20 20 20 20 20 20 20 20 20 20 31 30  | ............10000))...........10 | 
| 12da0 |  30 30 30 2e 30 29 29 29 29 0a 0a 28 64 65 66 73    75 62 73 74 20 6a 73 32 2d 73 61 6d 65 2d 6c 69  | 000.0))))..(defsubst.js2-same-li | 
| 12dc0 |  6e 65 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75    72 6e 20 74 20 69 66 20 50 4f 53 20 69 73 20 6f  | ne.(pos)..."Return.t.if.POS.is.o | 
| 12de0 |  6e 20 74 68 65 20 73 61 6d 65 20 6c 69 6e 65 20    61 73 20 63 75 72 72 65 6e 74 20 70 6f 69 6e 74  | n.the.same.line.as.current.point | 
| 12e00 |  2e 22 0a 20 20 28 61 6e 64 20 28 3e 3d 20 70 6f    73 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29  | ."...(and.(>=.pos.(point-at-bol) | 
| 12e20 |  29 0a 20 20 20 20 20 20 20 28 3c 3d 20 70 6f 73    20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29 29  | )........(<=.pos.(point-at-eol)) | 
| 12e40 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63    6f 64 65 2d 62 75 67 20 28 29 0a 20 20 22 53 69  | ))..(defun.js2-code-bug.()..."Si | 
| 12e60 |  67 6e 61 6c 20 61 6e 20 65 72 72 6f 72 20 77 68    65 6e 20 77 65 20 65 6e 63 6f 75 6e 74 65 72 20  | gnal.an.error.when.we.encounter. | 
| 12e80 |  61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 63 6f    64 65 20 70 61 74 68 2e 22 0a 20 20 28 65 72 72  | an.unexpected.code.path."...(err | 
| 12ea0 |  6f 72 20 22 66 61 69 6c 65 64 20 61 73 73 65 72    74 69 6f 6e 22 29 29 0a 0a 28 64 65 66 73 75 62  | or."failed.assertion"))..(defsub | 
| 12ec0 |  73 74 20 6a 73 32 2d 72 65 63 6f 72 64 2d 74 65    78 74 2d 70 72 6f 70 65 72 74 79 20 28 62 65 67  | st.js2-record-text-property.(beg | 
| 12ee0 |  20 65 6e 64 20 70 72 6f 70 20 76 61 6c 75 65 29    0a 20 20 22 52 65 63 6f 72 64 20 61 20 74 65 78  | .end.prop.value)..."Record.a.tex | 
| 12f00 |  74 20 70 72 6f 70 65 72 74 79 20 74 6f 20 73 65    74 20 77 68 65 6e 20 70 61 72 73 69 6e 67 20 66  | t.property.to.set.when.parsing.f | 
| 12f20 |  69 6e 69 73 68 65 73 2e 22 0a 20 20 28 70 75 73    68 20 28 6c 69 73 74 20 62 65 67 20 65 6e 64 20  | inishes."...(push.(list.beg.end. | 
| 12f40 |  70 72 6f 70 20 76 61 6c 75 65 29 20 6a 73 32 2d    6d 6f 64 65 2d 64 65 66 65 72 72 65 64 2d 70 72  | prop.value).js2-mode-deferred-pr | 
| 12f60 |  6f 70 65 72 74 69 65 73 29 29 0a 0a 3b 3b 20 49    27 64 20 6c 69 6b 65 20 74 6f 20 61 73 73 6f 63  | operties))..;;.I'd.like.to.assoc | 
| 12f80 |  69 61 74 65 20 65 72 72 6f 72 73 20 77 69 74 68    20 6e 6f 64 65 73 2c 20 62 75 74 20 66 6f 72 20  | iate.errors.with.nodes,.but.for. | 
| 12fa0 |  6e 6f 77 20 74 68 65 0a 3b 3b 20 65 61 73 69 65    73 74 20 74 68 69 6e 67 20 74 6f 20 64 6f 20 69  | now.the.;;.easiest.thing.to.do.i | 
| 12fc0 |  73 20 67 65 74 20 74 68 65 20 63 6f 6e 74 65 78    74 20 69 6e 66 6f 20 66 72 6f 6d 20 74 68 65 20  | s.get.the.context.info.from.the. | 
| 12fe0 |  6c 61 73 74 20 74 6f 6b 65 6e 2e 0a 28 64 65 66    75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 70 61  | last.token..(defun.js2-record-pa | 
| 13000 |  72 73 65 2d 65 72 72 6f 72 20 28 6d 73 67 20 26    6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 70 6f 73  | rse-error.(msg.&optional.arg.pos | 
| 13020 |  20 6c 65 6e 29 0a 20 20 28 70 75 73 68 20 28 6c    69 73 74 20 28 6c 69 73 74 20 6d 73 67 20 61 72  | .len)...(push.(list.(list.msg.ar | 
| 13040 |  67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6f 72 20 70 6f 73 20 28 6a 73 32 2d 63 75  | g)...............(or.pos.(js2-cu | 
| 13060 |  72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rrent-token-beg))............... | 
| 13080 |  28 6f 72 20 6c 65 6e 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e 29 29  | (or.len.(js2-current-token-len)) | 
| 130a0 |  29 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61    72 73 65 64 2d 65 72 72 6f 72 73 29 29 0a 0a 28  | ).........js2-parsed-errors))..( | 
| 130c0 |  64 65 66 75 6e 20 6a 73 32 2d 72 65 70 6f 72 74    2d 65 72 72 6f 72 20 28 6d 73 67 20 26 6f 70 74  | defun.js2-report-error.(msg.&opt | 
| 130e0 |  69 6f 6e 61 6c 20 6d 73 67 2d 61 72 67 20 70 6f    73 20 6c 65 6e 29 0a 20 20 22 53 69 67 6e 61 6c  | ional.msg-arg.pos.len)..."Signal | 
| 13100 |  20 61 20 73 79 6e 74 61 78 20 65 72 72 6f 72 20    6f 72 20 72 65 63 6f 72 64 20 61 20 70 61 72 73  | .a.syntax.error.or.record.a.pars | 
| 13120 |  65 20 65 72 72 6f 72 2e 22 0a 20 20 28 69 66 20    6a 73 32 2d 72 65 63 6f 76 65 72 2d 66 72 6f 6d  | e.error."...(if.js2-recover-from | 
| 13140 |  2d 70 61 72 73 65 2d 65 72 72 6f 72 73 0a 20 20    20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d  | -parse-errors.......(js2-record- | 
| 13160 |  70 61 72 73 65 2d 65 72 72 6f 72 20 6d 73 67 20    6d 73 67 2d 61 72 67 20 70 6f 73 20 6c 65 6e 29  | parse-error.msg.msg-arg.pos.len) | 
| 13180 |  0a 20 20 20 20 20 20 28 73 69 67 6e 61 6c 20 27    6a 73 32 2d 73 79 6e 74 61 78 2d 65 72 72 6f 72  | .......(signal.'js2-syntax-error | 
| 131a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6c 69 73 74 20 6d 73 67 0a 20 20 20 20 20 20 20  | ...............(list.msg........ | 
| 131c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 74 73 2d 6c 69 6e 65 6e 6f 0a 20 20 20 20 20  | .............js2-ts-lineno...... | 
| 131e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20  | ...............(save-excursion.. | 
| 13200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6a  | ....................(goto-char.j | 
| 13220 |  73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ts-cursor)................... | 
| 13240 |  20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75    6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ...(current-column))............ | 
| 13260 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d    68 69 74 2d 65 6f 66 29 29 29 29 0a 0a 28 64 65  | .........js2-ts-hit-eof))))..(de | 
| 13280 |  66 75 6e 20 6a 73 32 2d 72 65 70 6f 72 74 2d 77    61 72 6e 69 6e 67 20 28 6d 73 67 20 26 6f 70 74  | fun.js2-report-warning.(msg.&opt | 
| 132a0 |  69 6f 6e 61 6c 20 6d 73 67 2d 61 72 67 20 70 6f    73 20 6c 65 6e 20 66 61 63 65 29 0a 20 20 28 69  | ional.msg-arg.pos.len.face)...(i | 
| 132c0 |  66 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 72    65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 2d 61 73  | f.js2-compiler-report-warning-as | 
| 132e0 |  2d 65 72 72 6f 72 0a 20 20 20 20 20 20 28 6a 73    32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d  | -error.......(js2-report-error.m | 
| 13300 |  73 67 20 6d 73 67 2d 61 72 67 20 70 6f 73 20 6c    65 6e 29 0a 20 20 20 20 28 70 75 73 68 20 28 6c  | sg.msg-arg.pos.len).....(push.(l | 
| 13320 |  69 73 74 20 28 6c 69 73 74 20 6d 73 67 20 6d 73    67 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20  | ist.(list.msg.msg-arg).......... | 
| 13340 |  20 20 20 20 20 20 20 28 6f 72 20 70 6f 73 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | .......(or.pos.(js2-current-toke | 
| 13360 |  6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6f 72 20 6c 65 6e 20  | n-beg)).................(or.len. | 
| 13380 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 6c 65 6e 29 29 0a 20 20 20 20 20 20 20  | (js2-current-token-len))........ | 
| 133a0 |  20 20 20 20 20 20 20 20 20 66 61 63 65 29 0a 20    20 20 20 20 20 20 20 20 20 6a 73 32 2d 70 61 72  | .........face)...........js2-par | 
| 133c0 |  73 65 64 2d 77 61 72 6e 69 6e 67 73 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 64 64 2d  | sed-warnings)))..(defun.js2-add- | 
| 133e0 |  73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 28    6d 73 67 2d 69 64 20 26 6f 70 74 69 6f 6e 61 6c  | strict-warning.(msg-id.&optional | 
| 13400 |  20 6d 73 67 2d 61 72 67 20 62 65 67 20 65 6e 64    29 0a 20 20 28 69 66 20 6a 73 32 2d 63 6f 6d 70  | .msg-arg.beg.end)...(if.js2-comp | 
| 13420 |  69 6c 65 72 2d 73 74 72 69 63 74 2d 6d 6f 64 65    0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | iler-strict-mode.......(js2-repo | 
| 13440 |  72 74 2d 77 61 72 6e 69 6e 67 20 6d 73 67 2d 69    64 20 6d 73 67 2d 61 72 67 20 62 65 67 0a 20 20  | rt-warning.msg-id.msg-arg.beg... | 
| 13460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 61 6e 64 20 62 65 67  | ........................(and.beg | 
| 13480 |  20 65 6e 64 20 28 2d 20 65 6e 64 20 62 65 67 29    29 29 29 29 0a 0a 28 70 75 74 20 27 6a 73 32 2d  | .end.(-.end.beg)))))..(put.'js2- | 
| 134a0 |  73 79 6e 74 61 78 2d 65 72 72 6f 72 20 27 65 72    72 6f 72 2d 63 6f 6e 64 69 74 69 6f 6e 73 0a 20  | syntax-error.'error-conditions.. | 
| 134c0 |  20 20 20 20 27 28 65 72 72 6f 72 20 73 79 6e 74    61 78 2d 65 72 72 6f 72 20 6a 73 32 2d 73 79 6e  | ....'(error.syntax-error.js2-syn | 
| 134e0 |  74 61 78 2d 65 72 72 6f 72 29 29 0a 28 70 75 74    20 27 6a 73 32 2d 73 79 6e 74 61 78 2d 65 72 72  | tax-error)).(put.'js2-syntax-err | 
| 13500 |  6f 72 20 27 65 72 72 6f 72 2d 6d 65 73 73 61 67    65 20 22 53 79 6e 74 61 78 20 65 72 72 6f 72 22  | or.'error-message."Syntax.error" | 
| 13520 |  29 0a 0a 28 70 75 74 20 27 6a 73 32 2d 70 61 72    73 65 2d 65 72 72 6f 72 20 27 65 72 72 6f 72 2d  | )..(put.'js2-parse-error.'error- | 
| 13540 |  63 6f 6e 64 69 74 69 6f 6e 73 0a 20 20 20 20 20    27 28 65 72 72 6f 72 20 70 61 72 73 65 2d 65 72  | conditions......'(error.parse-er | 
| 13560 |  72 6f 72 20 6a 73 32 2d 70 61 72 73 65 2d 65 72    72 6f 72 29 29 0a 28 70 75 74 20 27 6a 73 32 2d  | ror.js2-parse-error)).(put.'js2- | 
| 13580 |  70 61 72 73 65 2d 65 72 72 6f 72 20 27 65 72 72    6f 72 2d 6d 65 73 73 61 67 65 20 22 50 61 72 73  | parse-error.'error-message."Pars | 
| 135a0 |  65 20 65 72 72 6f 72 22 29 0a 0a 28 64 65 66 6d    61 63 72 6f 20 6a 73 32 2d 63 6c 65 61 72 2d 66  | e.error")..(defmacro.js2-clear-f | 
| 135c0 |  6c 61 67 20 28 66 6c 61 67 73 20 66 6c 61 67 29    0a 20 20 60 28 73 65 74 71 20 2c 66 6c 61 67 73  | lag.(flags.flag)...`(setq.,flags | 
| 135e0 |  20 28 6c 6f 67 61 6e 64 20 2c 66 6c 61 67 73 20    28 6c 6f 67 6e 6f 74 20 2c 66 6c 61 67 29 29 29  | .(logand.,flags.(lognot.,flag))) | 
| 13600 |  29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6a 73 32    2d 73 65 74 2d 66 6c 61 67 20 28 66 6c 61 67 73  | )..(defmacro.js2-set-flag.(flags | 
| 13620 |  20 66 6c 61 67 29 0a 20 20 22 4c 6f 67 69 63 61    6c 2d 6f 72 20 46 4c 41 47 20 69 6e 74 6f 20 46  | .flag)..."Logical-or.FLAG.into.F | 
| 13640 |  4c 41 47 53 2e 22 0a 20 20 60 28 73 65 74 71 20    2c 66 6c 61 67 73 20 28 6c 6f 67 69 6f 72 20 2c  | LAGS."...`(setq.,flags.(logior., | 
| 13660 |  66 6c 61 67 73 20 2c 66 6c 61 67 29 29 29 0a 0a    28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 66 6c  | flags.,flag)))..(defsubst.js2-fl | 
| 13680 |  61 67 2d 73 65 74 2d 70 20 28 66 6c 61 67 73 20    66 6c 61 67 29 0a 20 20 28 2f 3d 20 30 20 28 6c  | ag-set-p.(flags.flag)...(/=.0.(l | 
| 136a0 |  6f 67 61 6e 64 20 66 6c 61 67 73 20 66 6c 61 67    29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a  | ogand.flags.flag)))..(defsubst.j | 
| 136c0 |  73 32 2d 66 6c 61 67 2d 6e 6f 74 2d 73 65 74 2d    70 20 28 66 6c 61 67 73 20 66 6c 61 67 29 0a 20  | s2-flag-not-set-p.(flags.flag).. | 
| 136e0 |  20 28 7a 65 72 6f 70 20 28 6c 6f 67 61 6e 64 20    66 6c 61 67 73 20 66 6c 61 67 29 29 29 0a 0a 3b  | .(zerop.(logand.flags.flag)))..; | 
| 13700 |  3b 3b 20 41 53 54 20 73 74 72 75 63 74 20 61 6e    64 20 66 75 6e 63 74 69 6f 6e 20 64 65 66 69 6e  | ;;.AST.struct.and.function.defin | 
| 13720 |  69 74 69 6f 6e 73 0a 0a 3b 3b 20 66 6c 61 67 73    20 66 6f 72 20 61 73 74 20 6e 6f 64 65 20 70 72  | itions..;;.flags.for.ast.node.pr | 
| 13740 |  6f 70 65 72 74 79 20 27 6d 65 6d 62 65 72 2d 74    79 70 65 20 28 75 73 65 64 20 66 6f 72 20 65 34  | operty.'member-type.(used.for.e4 | 
| 13760 |  78 20 6f 70 65 72 61 74 6f 72 73 29 0a 28 64 65    66 76 61 72 20 6a 73 32 2d 70 72 6f 70 65 72 74  | x.operators).(defvar.js2-propert | 
| 13780 |  79 2d 66 6c 61 67 20 20 20 20 23 78 31 20 22 50    72 6f 70 65 72 74 79 20 61 63 63 65 73 73 3a 20  | y-flag....#x1."Property.access:. | 
| 137a0 |  65 6c 65 6d 65 6e 74 20 69 73 20 76 61 6c 69 64    20 6e 61 6d 65 2e 22 29 0a 28 64 65 66 76 61 72  | element.is.valid.name.").(defvar | 
| 137c0 |  20 6a 73 32 2d 61 74 74 72 69 62 75 74 65 2d 66    6c 61 67 20 20 20 23 78 32 20 22 78 2e 40 79 20  | .js2-attribute-flag...#x2."x.@y. | 
| 137e0 |  6f 72 20 78 2e 2e 40 79 2e 22 29 0a 28 64 65 66    76 61 72 20 6a 73 32 2d 64 65 73 63 65 6e 64 61  | or.x..@y.").(defvar.js2-descenda | 
| 13800 |  6e 74 73 2d 66 6c 61 67 20 23 78 34 20 22 78 2e    2e 79 20 6f 72 20 78 2e 2e 40 69 2e 22 29 0a 0a  | nts-flag.#x4."x..y.or.x..@i.").. | 
| 13820 |  28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 72 65    6c 70 6f 73 20 28 70 6f 73 20 61 6e 63 68 6f 72  | (defsubst.js2-relpos.(pos.anchor | 
| 13840 |  29 0a 20 20 22 43 6f 6e 76 65 72 74 20 50 4f 53    20 74 6f 20 62 65 20 72 65 6c 61 74 69 76 65 20  | )..."Convert.POS.to.be.relative. | 
| 13860 |  74 6f 20 41 4e 43 48 4f 52 2e 0a 49 66 20 50 4f    53 20 69 73 20 6e 69 6c 2c 20 72 65 74 75 72 6e  | to.ANCHOR..If.POS.is.nil,.return | 
| 13880 |  73 20 6e 69 6c 2e 22 0a 20 20 28 61 6e 64 20 70    6f 73 20 28 2d 20 70 6f 73 20 61 6e 63 68 6f 72  | s.nil."...(and.pos.(-.pos.anchor | 
| 138a0 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    6d 61 6b 65 2d 70 61 64 20 28 69 6e 64 65 6e 74  | )))..(defun.js2-make-pad.(indent | 
| 138c0 |  29 0a 20 20 28 69 66 20 28 7a 65 72 6f 70 20 69    6e 64 65 6e 74 29 0a 20 20 20 20 20 20 22 22 0a  | )...(if.(zerop.indent)......."". | 
| 138e0 |  20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67    20 28 2a 20 69 6e 64 65 6e 74 20 6a 73 32 2d 62  | ....(make-string.(*.indent.js2-b | 
| 13900 |  61 73 69 63 2d 6f 66 66 73 65 74 29 20 3f 20 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76  | asic-offset).?.)))..(defun.js2-v | 
| 13920 |  69 73 69 74 2d 61 73 74 20 28 6e 6f 64 65 20 63    61 6c 6c 62 61 63 6b 29 0a 20 20 22 56 69 73 69  | isit-ast.(node.callback)..."Visi | 
| 13940 |  74 20 65 76 65 72 79 20 6e 6f 64 65 20 69 6e 20    61 73 74 20 4e 4f 44 45 20 77 69 74 68 20 76 69  | t.every.node.in.ast.NODE.with.vi | 
| 13960 |  73 69 74 6f 72 20 43 41 4c 4c 42 41 43 4b 2e 0a    0a 43 41 4c 4c 42 41 43 4b 20 69 73 20 61 20 66  | sitor.CALLBACK...CALLBACK.is.a.f | 
| 13980 |  75 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b    65 73 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73  | unction.that.takes.two.arguments | 
| 139a0 |  3a 20 20 28 4e 4f 44 45 20 45 4e 44 2d 50 29 2e    20 20 49 74 20 69 73 0a 63 61 6c 6c 65 64 20 74  | :..(NODE.END-P)...It.is.called.t | 
| 139c0 |  77 69 63 65 3a 20 20 6f 6e 63 65 20 74 6f 20 76    69 73 69 74 20 74 68 65 20 6e 6f 64 65 2c 20 61  | wice:..once.to.visit.the.node,.a | 
| 139e0 |  6e 64 20 61 67 61 69 6e 20 61 66 74 65 72 20 61    6c 6c 20 74 68 65 20 6e 6f 64 65 27 73 0a 63 68  | nd.again.after.all.the.node's.ch | 
| 13a00 |  69 6c 64 72 65 6e 20 68 61 76 65 20 62 65 65 6e    20 70 72 6f 63 65 73 73 65 64 2e 20 20 54 68 65  | ildren.have.been.processed...The | 
| 13a20 |  20 45 4e 44 2d 50 20 61 72 67 75 6d 65 6e 74 20    69 73 20 6e 69 6c 20 6f 6e 20 74 68 65 20 66 69  | .END-P.argument.is.nil.on.the.fi | 
| 13a40 |  72 73 74 0a 63 61 6c 6c 20 61 6e 64 20 6e 6f 6e    2d 6e 69 6c 20 6f 6e 20 74 68 65 20 73 65 63 6f  | rst.call.and.non-nil.on.the.seco | 
| 13a60 |  6e 64 20 63 61 6c 6c 2e 20 20 54 68 65 20 72 65    74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 74 68  | nd.call...The.return.value.of.th | 
| 13a80 |  65 20 63 61 6c 6c 62 61 63 6b 0a 61 66 66 65 63    74 73 20 74 68 65 20 74 72 61 76 65 72 73 61 6c  | e.callback.affects.the.traversal | 
| 13aa0 |  3a 20 20 69 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74    68 65 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 4e  | :..if.non-nil,.the.children.of.N | 
| 13ac0 |  4f 44 45 20 61 72 65 20 70 72 6f 63 65 73 73 65    64 2e 0a 49 66 20 74 68 65 20 63 61 6c 6c 62 61  | ODE.are.processed..If.the.callba | 
| 13ae0 |  63 6b 20 72 65 74 75 72 6e 73 20 6e 69 6c 2c 20    6f 72 20 69 66 20 74 68 65 20 6e 6f 64 65 20 68  | ck.returns.nil,.or.if.the.node.h | 
| 13b00 |  61 73 20 6e 6f 20 63 68 69 6c 64 72 65 6e 2c 20    74 68 65 6e 20 74 68 65 0a 63 61 6c 6c 62 61 63  | as.no.children,.then.the.callbac | 
| 13b20 |  6b 20 69 73 20 63 61 6c 6c 65 64 20 69 6d 6d 65    64 69 61 74 65 6c 79 20 77 69 74 68 20 61 20 6e  | k.is.called.immediately.with.a.n | 
| 13b40 |  6f 6e 2d 6e 69 6c 20 45 4e 44 2d 50 20 61 72 67    75 6d 65 6e 74 2e 0a 0a 54 68 65 20 6e 6f 64 65  | on-nil.END-P.argument...The.node | 
| 13b60 |  20 74 72 61 76 65 72 73 61 6c 20 69 73 20 61 70    70 72 6f 78 69 6d 61 74 65 6c 79 20 6c 65 78 69  | .traversal.is.approximately.lexi | 
| 13b80 |  63 61 6c 2d 6f 72 64 65 72 2c 20 61 6c 74 68 6f    75 67 68 20 74 68 65 72 65 0a 61 72 65 20 63 75  | cal-order,.although.there.are.cu | 
| 13ba0 |  72 72 65 6e 74 6c 79 20 6e 6f 20 67 75 61 72 61    6e 74 65 65 73 20 61 72 6f 75 6e 64 20 74 68 69  | rrently.no.guarantees.around.thi | 
| 13bc0 |  73 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f 64 65    0a 20 20 20 20 28 6c 65 74 20 28 28 76 66 75 6e  | s."...(when.node.....(let.((vfun | 
| 13be0 |  63 20 28 67 65 74 20 28 61 72 65 66 20 6e 6f 64    65 20 30 29 20 27 6a 73 32 2d 76 69 73 69 74 6f  | c.(get.(aref.node.0).'js2-visito | 
| 13c00 |  72 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 76 69    73 69 74 20 74 68 65 20 6e 6f 64 65 0a 20 20 20  | r))).......;;.visit.the.node.... | 
| 13c20 |  20 20 20 28 77 68 65 6e 20 20 28 66 75 6e 63 61    6c 6c 20 63 61 6c 6c 62 61 63 6b 20 6e 6f 64 65  | ...(when..(funcall.callback.node | 
| 13c40 |  20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 3b 3b    20 76 69 73 69 74 20 74 68 65 20 6b 69 64 73 0a  | .nil).........;;.visit.the.kids. | 
| 13c60 |  20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20    20 20 20 20 20 20 20 28 28 65 71 20 76 66 75 6e  | ........(cond..........((eq.vfun | 
| 13c80 |  63 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e    65 29 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c  | c.'js2-visit-none)...........nil | 
| 13ca0 |  29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64  | )............................;.d | 
| 13cc0 |  6f 6e 27 74 20 65 76 65 6e 20 62 6f 74 68 65 72    20 63 61 6c 6c 69 6e 67 20 69 74 0a 20 20 20 20  | on't.even.bother.calling.it..... | 
| 13ce0 |  20 20 20 20 20 3b 3b 20 45 61 63 68 20 41 53 54    20 6e 6f 64 65 20 74 79 70 65 20 68 61 73 20 74  | .....;;.Each.AST.node.type.has.t | 
| 13d00 |  6f 20 64 65 66 69 6e 65 20 61 20 60 6a 73 32 2d    76 69 73 69 74 6f 72 27 20 66 75 6e 63 74 69 6f  | o.define.a.`js2-visitor'.functio | 
| 13d20 |  6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68    61 74 20 74 61 6b 65 73 20 61 20 6e 6f 64 65 20  | n..........;;.that.takes.a.node. | 
| 13d40 |  61 6e 64 20 61 20 63 61 6c 6c 62 61 63 6b 2c 20    61 6e 64 20 63 61 6c 6c 73 20 60 6a 73 32 2d 76  | and.a.callback,.and.calls.`js2-v | 
| 13d60 |  69 73 69 74 2d 61 73 74 27 0a 20 20 20 20 20 20    20 20 20 3b 3b 20 6f 6e 20 65 61 63 68 20 63 68  | isit-ast'..........;;.on.each.ch | 
| 13d80 |  69 6c 64 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e    0a 20 20 20 20 20 20 20 20 20 28 76 66 75 6e 63  | ild.of.the.node...........(vfunc | 
| 13da0 |  0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63    61 6c 6c 20 76 66 75 6e 63 20 6e 6f 64 65 20 63  | ...........(funcall.vfunc.node.c | 
| 13dc0 |  61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 20 20    20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20  | allback))..........(t........... | 
| 13de0 |  28 65 72 72 6f 72 20 22 25 73 20 64 6f 65 73 20    6e 6f 74 20 64 65 66 69 6e 65 20 61 20 76 69 73  | (error."%s.does.not.define.a.vis | 
| 13e00 |  69 74 6f 72 2d 74 72 61 76 65 72 73 61 6c 20 66    75 6e 63 74 69 6f 6e 22 0a 20 20 20 20 20 20 20  | itor-traversal.function"........ | 
| 13e20 |  20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20    6e 6f 64 65 20 30 29 29 29 29 29 0a 20 20 20 20  | ..........(aref.node.0)))))..... | 
| 13e40 |  20 20 3b 3b 20 63 61 6c 6c 20 74 68 65 20 65 6e    64 2d 76 69 73 69 74 0a 20 20 20 20 20 20 28 66  | ..;;.call.the.end-visit.......(f | 
| 13e60 |  75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20    6e 6f 64 65 20 74 29 29 29 29 0a 0a 28 63 6c 2d  | uncall.callback.node.t))))..(cl- | 
| 13e80 |  64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6e    6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | defstruct.(js2-node............. | 
| 13ea0 |  20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72    20 6e 69 6c 29 29 20 20 3b 20 61 62 73 74 72 61  | ...(:constructor.nil))..;.abstra | 
| 13ec0 |  63 74 0a 20 20 22 42 61 73 65 20 41 53 54 20 6e    6f 64 65 20 74 79 70 65 2e 22 0a 20 20 28 74 79  | ct..."Base.AST.node.type."...(ty | 
| 13ee0 |  70 65 20 2d 31 29 20 20 3b 20 74 6f 6b 65 6e 20    74 79 70 65 0a 20 20 28 70 6f 73 20 2d 31 29 20  | pe.-1)..;.token.type...(pos.-1). | 
| 13f00 |  20 20 3b 20 73 74 61 72 74 20 70 6f 73 69 74 69    6f 6e 20 6f 66 20 74 68 69 73 20 41 53 54 20 6e  | ..;.start.position.of.this.AST.n | 
| 13f20 |  6f 64 65 20 69 6e 20 70 61 72 73 65 64 20 69 6e    70 75 74 0a 20 20 28 6c 65 6e 20 31 29 20 20 20  | ode.in.parsed.input...(len.1)... | 
| 13f40 |  20 3b 20 6e 75 6d 20 63 68 61 72 61 63 74 65 72    73 20 73 70 61 6e 6e 65 64 20 62 79 20 74 68 65  | .;.num.characters.spanned.by.the | 
| 13f60 |  20 6e 6f 64 65 0a 20 20 70 72 6f 70 73 20 20 20    20 20 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 6e 6f  | .node...props......;.optional.no | 
| 13f80 |  64 65 20 70 72 6f 70 65 72 74 79 20 6c 69 73 74    20 28 61 6e 20 61 6c 69 73 74 29 0a 20 20 70 61  | de.property.list.(an.alist)...pa | 
| 13fa0 |  72 65 6e 74 29 20 20 20 20 3b 20 6c 69 6e 6b 20    74 6f 20 70 61 72 65 6e 74 20 6e 6f 64 65 3b 20  | rent)....;.link.to.parent.node;. | 
| 13fc0 |  6e 75 6c 6c 20 66 6f 72 20 72 6f 6f 74 0a 0a 28    64 65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64  | null.for.root..(defsubst.js2-nod | 
| 13fe0 |  65 2d 67 65 74 2d 70 72 6f 70 20 28 6e 6f 64 65    20 70 72 6f 70 20 26 6f 70 74 69 6f 6e 61 6c 20  | e-get-prop.(node.prop.&optional. | 
| 14000 |  64 65 66 61 75 6c 74 29 0a 20 20 28 6f 72 20 28    63 61 64 72 20 28 61 73 73 6f 63 20 70 72 6f 70  | default)...(or.(cadr.(assoc.prop | 
| 14020 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 70 72 6f 70 73    20 6e 6f 64 65 29 29 29 20 64 65 66 61 75 6c 74  | .(js2-node-props.node))).default | 
| 14040 |  29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73    32 2d 6e 6f 64 65 2d 73 65 74 2d 70 72 6f 70 20  | ))..(defsubst.js2-node-set-prop. | 
| 14060 |  28 6e 6f 64 65 20 70 72 6f 70 20 76 61 6c 75 65    29 0a 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e  | (node.prop.value)...(setf.(js2-n | 
| 14080 |  6f 64 65 2d 70 72 6f 70 73 20 6e 6f 64 65 29 0a    20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c  | ode-props.node).........(cons.(l | 
| 140a0 |  69 73 74 20 70 72 6f 70 20 76 61 6c 75 65 29 20    28 6a 73 32 2d 6e 6f 64 65 2d 70 72 6f 70 73 20  | ist.prop.value).(js2-node-props. | 
| 140c0 |  6e 6f 64 65 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 66 69 78 75 70 2d 73 74 61 72 74  | node))))..(defun.js2-fixup-start | 
| 140e0 |  73 20 28 6e 20 6e 6f 64 65 73 29 0a 20 20 22 41    64 6a 75 73 74 20 74 68 65 20 73 74 61 72 74 20  | s.(n.nodes)..."Adjust.the.start. | 
| 14100 |  70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 4e 4f 44    45 53 20 74 6f 20 62 65 20 72 65 6c 61 74 69 76  | positions.of.NODES.to.be.relativ | 
| 14120 |  65 20 74 6f 20 4e 2e 0a 41 6e 79 20 6e 6f 64 65    20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 61 79  | e.to.N..Any.node.in.the.list.may | 
| 14140 |  20 62 65 20 6e 69 6c 2c 20 66 6f 72 20 63 6f 6e    76 65 6e 69 65 6e 63 65 2e 22 0a 20 20 28 64 6f  | .be.nil,.for.convenience."...(do | 
| 14160 |  6c 69 73 74 20 28 6e 6f 64 65 20 6e 6f 64 65 73    29 0a 20 20 20 20 28 77 68 65 6e 20 6e 6f 64 65  | list.(node.nodes).....(when.node | 
| 14180 |  0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73    32 2d 6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29  | .......(setf.(js2-node-pos.node) | 
| 141a0 |  20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f    73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20  | .(-.(js2-node-pos.node)......... | 
| 141c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...........................(js2- | 
| 141e0 |  6e 6f 64 65 2d 70 6f 73 20 6e 29 29 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64  | node-pos.n))))))..(defun.js2-nod | 
| 14200 |  65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 28    70 61 72 65 6e 74 20 26 72 65 73 74 20 6e 6f 64  | e-add-children.(parent.&rest.nod | 
| 14220 |  65 73 29 0a 20 20 22 53 65 74 20 70 61 72 65 6e    74 20 6e 6f 64 65 20 6f 66 20 4e 4f 44 45 53 20  | es)..."Set.parent.node.of.NODES. | 
| 14240 |  74 6f 20 50 41 52 45 4e 54 2c 20 61 6e 64 20 72    65 74 75 72 6e 20 50 41 52 45 4e 54 2e 0a 44 6f  | to.PARENT,.and.return.PARENT..Do | 
| 14260 |  65 73 20 6e 6f 74 68 69 6e 67 20 69 66 20 77 65    27 72 65 20 6e 6f 74 20 72 65 63 6f 72 64 69 6e  | es.nothing.if.we're.not.recordin | 
| 14280 |  67 20 70 61 72 65 6e 74 20 6c 69 6e 6b 73 2e 0a    49 66 20 61 6e 79 20 67 69 76 65 6e 20 6e 6f 64  | g.parent.links..If.any.given.nod | 
| 142a0 |  65 20 69 6e 20 4e 4f 44 45 53 20 69 73 20 6e 69    6c 2c 20 64 6f 65 73 6e 27 74 20 72 65 63 6f 72  | e.in.NODES.is.nil,.doesn't.recor | 
| 142c0 |  64 20 74 68 61 74 20 6c 69 6e 6b 2e 22 0a 20 20    28 6a 73 32 2d 66 69 78 75 70 2d 73 74 61 72 74  | d.that.link."...(js2-fixup-start | 
| 142e0 |  73 20 70 61 72 65 6e 74 20 6e 6f 64 65 73 29 0a    20 20 28 64 6f 6c 69 73 74 20 28 6e 6f 64 65 20  | s.parent.nodes)...(dolist.(node. | 
| 14300 |  6e 6f 64 65 73 29 0a 20 20 20 20 28 61 6e 64 20    6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 28 73  | nodes).....(and.node..........(s | 
| 14320 |  65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61    72 65 6e 74 20 6e 6f 64 65 29 20 70 61 72 65 6e  | etf.(js2-node-parent.node).paren | 
| 14340 |  74 29 29 29 29 0a 0a 3b 3b 20 4e 6f 6e 2d 72 65    63 75 72 73 69 76 65 20 73 69 6e 63 65 20 69 74  | t))))..;;.Non-recursive.since.it | 
| 14360 |  27 73 20 63 61 6c 6c 65 64 20 61 20 66 72 69 67    68 74 65 6e 69 6e 67 20 6e 75 6d 62 65 72 20 6f  | 's.called.a.frightening.number.o | 
| 14380 |  66 20 74 69 6d 65 73 2e 0a 28 64 65 66 75 6e 20    6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73  | f.times..(defun.js2-node-abs-pos | 
| 143a0 |  20 28 6e 29 0a 20 20 28 6c 65 74 20 28 28 70 6f    73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20  | .(n)...(let.((pos.(js2-node-pos. | 
| 143c0 |  6e 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20    28 73 65 74 71 20 6e 20 28 6a 73 32 2d 6e 6f 64  | n))).....(while.(setq.n.(js2-nod | 
| 143e0 |  65 2d 70 61 72 65 6e 74 20 6e 29 29 0a 20 20 20    20 20 20 28 73 65 74 71 20 70 6f 73 20 28 2b 20  | e-parent.n)).......(setq.pos.(+. | 
| 14400 |  70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f    73 20 6e 29 29 29 29 0a 20 20 20 20 70 6f 73 29  | pos.(js2-node-pos.n)))).....pos) | 
| 14420 |  29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 20 28 6e  | )..(defsubst.js2-node-abs-end.(n | 
| 14440 |  29 0a 20 20 22 52 65 74 75 72 6e 20 61 62 73 6f    6c 75 74 65 20 62 75 66 66 65 72 20 70 6f 73 69  | )..."Return.absolute.buffer.posi | 
| 14460 |  74 69 6f 6e 20 6f 66 20 65 6e 64 20 6f 66 20 4e    2e 22 0a 20 20 28 2b 20 28 6a 73 32 2d 6e 6f 64  | tion.of.end.of.N."...(+.(js2-nod | 
| 14480 |  65 2d 61 62 73 2d 70 6f 73 20 6e 29 20 28 6a 73    32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 29 29 29 0a  | e-abs-pos.n).(js2-node-len.n))). | 
| 144a0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 28 6e 61 6d 65 20 6b 65  | .(defun.js2--struct-put.(name.ke | 
| 144c0 |  79 20 76 61 6c 75 65 29 0a 20 20 28 70 75 74 20    6e 61 6d 65 20 6b 65 79 20 76 61 6c 75 65 29 0a  | y.value)...(put.name.key.value). | 
| 144e0 |  20 20 28 70 75 74 20 28 69 6e 74 65 72 6e 20 28    66 6f 72 6d 61 74 20 22 63 6c 2d 73 74 72 75 63  | ..(put.(intern.(format."cl-struc | 
| 14500 |  74 2d 25 73 22 20 6e 61 6d 65 29 29 20 6b 65 79    20 76 61 6c 75 65 29 29 0a 0a 3b 3b 20 49 74 27  | t-%s".name)).key.value))..;;.It' | 
| 14520 |  73 20 69 6d 70 6f 72 74 61 6e 74 20 74 6f 20 6d    61 6b 65 20 73 75 72 65 20 62 6c 6f 63 6b 20 6e  | s.important.to.make.sure.block.n | 
| 14540 |  6f 64 65 73 20 68 61 76 65 20 61 20 4c 69 73 70    20 6c 69 73 74 20 66 6f 72 20 74 68 65 0a 3b 3b  | odes.have.a.Lisp.list.for.the.;; | 
| 14560 |  20 63 68 69 6c 64 20 6e 6f 64 65 73 2c 20 74 6f    20 6c 69 6d 69 74 20 70 72 69 6e 74 69 6e 67 20  | .child.nodes,.to.limit.printing. | 
| 14580 |  72 65 63 75 72 73 69 6f 6e 20 64 65 70 74 68 20    69 6e 20 61 6e 20 41 53 54 20 74 68 61 74 0a 3b  | recursion.depth.in.an.AST.that.; | 
| 145a0 |  3b 20 6f 74 68 65 72 77 69 73 65 20 63 6f 6e 73    69 73 74 73 20 6f 66 20 64 65 66 73 74 72 75 63  | ;.otherwise.consists.of.defstruc | 
| 145c0 |  74 20 76 65 63 74 6f 72 73 2e 20 20 45 6d 61 63    73 20 77 69 6c 6c 20 63 72 61 73 68 20 70 72 69  | t.vectors...Emacs.will.crash.pri | 
| 145e0 |  6e 74 69 6e 67 0a 3b 3b 20 61 20 73 75 66 66 69    63 69 65 6e 74 6c 79 20 6c 61 72 67 65 20 76 65  | nting.;;.a.sufficiently.large.ve | 
| 14600 |  63 74 6f 72 20 74 72 65 65 2e 0a 0a 28 63 6c 2d    64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 62  | ctor.tree...(cl-defstruct.(js2-b | 
| 14620 |  6c 6f 63 6b 2d 6e 6f 64 65 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75  | lock-node................(:inclu | 
| 14640 |  64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f  | de.js2-node)................(:co | 
| 14660 |  6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a    73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 20 28 26  | nstructor.make-js2-block-node.(& | 
| 14680 |  6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 42 4c    4f 43 4b 29 0a 20 20 20 20 20 20 20 20 20 20 20  | key.(type.js2-BLOCK)............ | 
| 146a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 146c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | ............(pos.(js2-current-to | 
| 146e0 |  6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ken-beg))....................... | 
| 14700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 14720 |  20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .len............................ | 
| 14740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70  | ............................prop | 
| 14760 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s............................... | 
| 14780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6b 69 64 73 29 29 29  | .........................kids))) | 
| 147a0 |  0a 20 20 22 41 20 62 6c 6f 63 6b 20 6f 66 20 73    74 61 74 65 6d 65 6e 74 73 2e 22 0a 20 20 6b 69  | ..."A.block.of.statements."...ki | 
| 147c0 |  64 73 29 20 20 3b 20 61 20 4c 69 73 70 20 6c 69    73 74 20 6f 66 20 74 68 65 20 63 68 69 6c 64 20  | ds)..;.a.Lisp.list.of.the.child. | 
| 147e0 |  73 74 61 74 65 6d 65 6e 74 20 6e 6f 64 65 73 0a    0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75  | statement.nodes..(js2--struct-pu | 
| 14800 |  74 20 27 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64    65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27  | t.'js2-block-node.'js2-visitor.' | 
| 14820 |  6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b 29    0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75  | js2-visit-block).(js2--struct-pu | 
| 14840 |  74 20 27 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64    65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27  | t.'js2-block-node.'js2-printer.' | 
| 14860 |  6a 73 32 2d 70 72 69 6e 74 2d 62 6c 6f 63 6b 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73  | js2-print-block)..(defun.js2-vis | 
| 14880 |  69 74 2d 62 6c 6f 63 6b 20 28 61 73 74 20 63 61    6c 6c 62 61 63 6b 29 0a 20 20 22 56 69 73 69 74  | it-block.(ast.callback)..."Visit | 
| 148a0 |  20 74 68 65 20 60 6a 73 32 2d 62 6c 6f 63 6b 2d    6e 6f 64 65 27 20 63 68 69 6c 64 72 65 6e 20 6f  | .the.`js2-block-node'.children.o | 
| 148c0 |  66 20 41 53 54 2e 22 0a 20 20 28 64 6f 6c 69 73    74 20 28 6b 69 64 20 28 6a 73 32 2d 62 6c 6f 63  | f.AST."...(dolist.(kid.(js2-bloc | 
| 148e0 |  6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 61 73 74 29    29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74  | k-node-kids.ast)).....(js2-visit | 
| 14900 |  2d 61 73 74 20 6b 69 64 20 63 61 6c 6c 62 61 63    6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | -ast.kid.callback)))..(defun.js2 | 
| 14920 |  2d 70 72 69 6e 74 2d 62 6c 6f 63 6b 20 28 6e 20    69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20  | -print-block.(n.i)...(let.((pad. | 
| 14940 |  28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29    29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70  | (js2-make-pad.i))).....(insert.p | 
| 14960 |  61 64 20 22 7b 5c 6e 22 29 0a 20 20 20 20 28 64    6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d  | ad."{\n").....(dolist.(kid.(js2- | 
| 14980 |  62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20    6e 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70  | block-node-kids.n)).......(js2-p | 
| 149a0 |  72 69 6e 74 2d 61 73 74 20 6b 69 64 20 28 31 2b    20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72  | rint-ast.kid.(1+.i))).....(inser | 
| 149c0 |  74 20 70 61 64 20 22 7d 22 29 29 29 0a 0a 28 63    6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32  | t.pad."}")))..(cl-defstruct.(js2 | 
| 149e0 |  2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20  | -scope................(:include. | 
| 14a00 |  6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | js2-block-node)................( | 
| 14a20 |  3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b    65 2d 6a 73 32 2d 73 63 6f 70 65 20 28 26 6b 65  | :constructor.make-js2-scope.(&ke | 
| 14a40 |  79 20 28 74 79 70 65 20 6a 73 32 2d 42 4c 4f 43    4b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | y.(type.js2-BLOCK).............. | 
| 14a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 14a80 |  20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67  | .....(pos.(js2-current-token-beg | 
| 14aa0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )).............................. | 
| 14ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20  | .....................len........ | 
| 14ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 14b00 |  20 20 20 20 20 20 20 20 20 20 20 6b 69 64 73 29    29 29 0a 20 20 3b 3b 20 54 68 65 20 73 79 6d 62  | ...........kids)))...;;.The.symb | 
| 14b20 |  6f 6c 2d 74 61 62 6c 65 20 69 73 20 61 20 4c 69    6e 6b 65 64 48 61 73 68 4d 61 70 3c 53 74 72 69  | ol-table.is.a.LinkedHashMap<Stri | 
| 14b40 |  6e 67 2c 53 79 6d 62 6f 6c 3e 20 69 6e 20 52 68    69 6e 6f 2e 0a 20 20 3b 3b 20 49 20 64 6f 6e 27  | ng,Symbol>.in.Rhino....;;.I.don' | 
| 14b60 |  74 20 68 61 76 65 20 6f 6e 65 20 6f 66 20 74 68    6f 73 65 20 68 61 6e 64 79 2c 20 73 6f 20 49 27  | t.have.one.of.those.handy,.so.I' | 
| 14b80 |  6c 6c 20 75 73 65 20 61 6e 20 61 6c 69 73 74 20    66 6f 72 20 6e 6f 77 2e 0a 20 20 3b 3b 20 49 74  | ll.use.an.alist.for.now....;;.It | 
| 14ba0 |  27 73 20 61 73 20 66 61 73 74 20 61 73 20 61 6e    20 65 6d 61 63 73 20 68 61 73 68 74 61 62 6c 65  | 's.as.fast.as.an.emacs.hashtable | 
| 14bc0 |  20 66 6f 72 20 75 70 20 74 6f 20 61 62 6f 75 74    20 35 30 20 65 6c 65 6d 65 6e 74 73 2c 0a 20 20  | .for.up.to.about.50.elements,... | 
| 14be0 |  3b 3b 20 61 6e 64 20 69 73 20 6d 75 63 68 20 6c    69 67 68 74 65 72 2d 77 65 69 67 68 74 20 74 6f  | ;;.and.is.much.lighter-weight.to | 
| 14c00 |  20 63 6f 6e 73 74 72 75 63 74 20 28 62 6f 74 68    20 43 50 55 20 61 6e 64 20 6d 65 6d 29 2e 0a 20  | .construct.(both.CPU.and.mem)... | 
| 14c20 |  20 3b 3b 20 54 68 65 20 6b 65 79 73 20 61 72 65    20 69 6e 74 65 72 6e 65 64 20 73 74 72 69 6e 67  | .;;.The.keys.are.interned.string | 
| 14c40 |  73 20 28 73 79 6d 62 6f 6c 73 29 20 66 6f 72 20    66 61 73 74 65 72 20 6c 6f 6f 6b 75 70 2e 0a 20  | s.(symbols).for.faster.lookup... | 
| 14c60 |  20 3b 3b 20 53 68 6f 75 6c 64 20 73 77 69 74 63    68 20 74 6f 20 68 79 62 72 69 64 20 61 6c 69 73  | .;;.Should.switch.to.hybrid.alis | 
| 14c80 |  74 2f 68 61 73 68 74 61 62 6c 65 20 65 76 65 6e    74 75 61 6c 6c 79 2e 0a 20 20 73 79 6d 62 6f 6c  | t/hashtable.eventually....symbol | 
| 14ca0 |  2d 74 61 62 6c 65 20 20 3b 20 61 6e 20 61 6c 69    73 74 20 6f 66 20 28 73 79 6d 62 6f 6c 20 2e 20  | -table..;.an.alist.of.(symbol... | 
| 14cc0 |  6a 73 32 2d 73 79 6d 62 6f 6c 29 0a 20 20 70 61    72 65 6e 74 2d 73 63 6f 70 65 20 20 3b 20 61 20  | js2-symbol)...parent-scope..;.a. | 
| 14ce0 |  60 6a 73 32 2d 73 63 6f 70 65 27 0a 20 20 74 6f    70 29 20 20 20 20 20 20 20 20 20 20 3b 20 74 6f  | `js2-scope'...top)..........;.to | 
| 14d00 |  70 2d 6c 65 76 65 6c 20 60 6a 73 32 2d 73 63 6f    70 65 27 20 28 73 63 72 69 70 74 2f 66 75 6e 63  | p-level.`js2-scope'.(script/func | 
| 14d20 |  74 69 6f 6e 29 0a 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 63 6f  | tion)..(js2--struct-put.'js2-sco | 
| 14d40 |  70 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20    27 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b  | pe.'js2-visitor.'js2-visit-block | 
| 14d60 |  29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70    75 74 20 27 6a 73 32 2d 73 63 6f 70 65 20 27 6a  | ).(js2--struct-put.'js2-scope.'j | 
| 14d80 |  73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d    70 72 69 6e 74 2d 62 6c 6f 63 6b 29 0a 0a 28 64  | s2-printer.'js2-print-block)..(d | 
| 14da0 |  65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 67 65    74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63 6f 70  | efun.js2-node-get-enclosing-scop | 
| 14dc0 |  65 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75    72 6e 20 74 68 65 20 69 6e 6e 65 72 6d 6f 73 74  | e.(node)..."Return.the.innermost | 
| 14de0 |  20 60 6a 73 32 2d 73 63 6f 70 65 27 20 6e 6f 64    65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 4e 4f  | .`js2-scope'.node.surrounding.NO | 
| 14e00 |  44 45 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20    69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 65  | DE..Returns.nil.if.there.is.no.e | 
| 14e20 |  6e 63 6c 6f 73 69 6e 67 20 73 63 6f 70 65 20 6e    6f 64 65 2e 22 0a 20 20 3b 3b 20 77 68 65 6e 20  | nclosing.scope.node."...;;.when. | 
| 14e40 |  6e 6f 64 65 20 69 73 20 74 68 65 20 6e 61 6d 65    20 6f 66 20 61 20 66 75 6e 63 74 69 6f 6e 20 73  | node.is.the.name.of.a.function.s | 
| 14e60 |  74 61 74 65 6d 65 6e 74 2c 20 74 68 65 20 65 6e    63 6c 6f 73 69 6e 67 0a 20 20 3b 3b 20 73 63 6f  | tatement,.the.enclosing...;;.sco | 
| 14e80 |  70 65 20 69 73 20 6e 6f 74 20 74 68 61 74 20 66    75 6e 63 74 69 6f 6e 20 69 74 73 65 6c 66 20 62  | pe.is.not.that.function.itself.b | 
| 14ea0 |  75 74 20 74 68 65 20 73 75 72 72 6f 75 6e 64 69    6e 67 20 73 63 6f 70 65 2e 0a 20 20 28 6c 65 74  | ut.the.surrounding.scope....(let | 
| 14ec0 |  20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e    6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29  | .((parent.(js2-node-parent.node) | 
| 14ee0 |  29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e    64 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65  | )).....(when.(and.(js2-name-node | 
| 14f00 |  2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e  | -p.node)................(js2-fun | 
| 14f20 |  63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72    65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ction-node-p.parent)............ | 
| 14f40 |  20 20 20 20 28 65 71 20 27 46 55 4e 43 54 49 4f    4e 5f 53 54 41 54 45 4d 45 4e 54 20 28 6a 73 32  | ....(eq.'FUNCTION_STATEMENT.(js2 | 
| 14f60 |  2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66    6f 72 6d 20 70 61 72 65 6e 74 29 29 0a 20 20 20  | -function-node-form.parent)).... | 
| 14f80 |  20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20    6e 6f 64 65 20 28 6a 73 32 2d 66 75 6e 63 74 69  | ............(eq.node.(js2-functi | 
| 14fa0 |  6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 61 72    65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 73 65  | on-node-name.parent))).......(se | 
| 14fc0 |  74 71 20 6e 6f 64 65 20 70 61 72 65 6e 74 29 29    29 0a 20 20 3b 3b 20 64 69 67 20 75 70 20 74 6f  | tq.node.parent)))...;;.dig.up.to | 
| 14fe0 |  20 66 69 6e 64 20 74 68 65 20 63 6c 6f 73 65 73    74 20 73 63 6f 70 65 20 70 61 72 65 6e 74 0a 20  | .find.the.closest.scope.parent.. | 
| 15000 |  20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 73 65    74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64  | .(while.(and.(setq.node.(js2-nod | 
| 15020 |  65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e  | e-parent.node))...............(n | 
| 15040 |  6f 74 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 20    6e 6f 64 65 29 29 29 29 0a 20 20 6e 6f 64 65 29  | ot.(js2-scope-p.node))))...node) | 
| 15060 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74    2d 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20  | ..(defun.js2-get-defining-scope. | 
| 15080 |  28 73 63 6f 70 65 20 6e 61 6d 65 20 26 6f 70 74    69 6f 6e 61 6c 20 70 6f 69 6e 74 29 0a 20 20 22  | (scope.name.&optional.point)..." | 
| 150a0 |  53 65 61 72 63 68 20 75 70 20 73 63 6f 70 65 20    63 68 61 69 6e 20 66 72 6f 6d 20 53 43 4f 50 45  | Search.up.scope.chain.from.SCOPE | 
| 150c0 |  20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20 4e 41 4d    45 2c 20 61 20 73 74 72 69 6e 67 20 6f 72 20 73  | .looking.for.NAME,.a.string.or.s | 
| 150e0 |  79 6d 62 6f 6c 2e 0a 52 65 74 75 72 6e 73 20 60    6a 73 32 2d 73 63 6f 70 65 27 20 69 6e 20 77 68  | ymbol..Returns.`js2-scope'.in.wh | 
| 15100 |  69 63 68 20 4e 41 4d 45 20 69 73 20 64 65 66 69    6e 65 64 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6e  | ich.NAME.is.defined,.or.nil.if.n | 
| 15120 |  6f 74 20 66 6f 75 6e 64 2e 0a 0a 49 66 20 50 4f    49 4e 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20  | ot.found...If.POINT.is.non-nil,. | 
| 15140 |  61 6e 64 20 69 66 20 74 68 65 20 66 6f 75 6e 64    20 64 65 63 6c 61 72 61 74 69 6f 6e 20 74 79 70  | and.if.the.found.declaration.typ | 
| 15160 |  65 20 69 73 0a 60 6a 73 32 2d 4c 45 54 27 2c 20    61 6c 73 6f 20 63 68 65 63 6b 20 74 68 61 74 20  | e.is.`js2-LET',.also.check.that. | 
| 15180 |  74 68 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20    6e 6f 64 65 20 69 73 20 62 65 66 6f 72 65 20 50  | the.declaration.node.is.before.P | 
| 151a0 |  4f 49 4e 54 2e 22 0a 20 20 28 6c 65 74 20 28 28    73 79 6d 20 28 69 66 20 28 73 79 6d 62 6f 6c 70  | OINT."...(let.((sym.(if.(symbolp | 
| 151c0 |  20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6e 61 6d 65 0a 20 20 20  | .name)..................name.... | 
| 151e0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74    65 72 6e 20 6e 61 6d 65 29 29 29 0a 20 20 20 20  | ............(intern.name)))..... | 
| 15200 |  20 20 20 20 72 65 73 75 6c 74 0a 20 20 20 20 20    20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29  | ....result.........(continue.t)) | 
| 15220 |  0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64    20 73 63 6f 70 65 20 63 6f 6e 74 69 6e 75 65 29  | .....(while.(and.scope.continue) | 
| 15240 |  0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 0a 20    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28  | .......(if.(or............(let.( | 
| 15260 |  28 65 6e 74 72 79 20 28 63 64 72 20 28 61 73 73    71 20 73 79 6d 20 28 6a 73 32 2d 73 63 6f 70 65  | (entry.(cdr.(assq.sym.(js2-scope | 
| 15280 |  2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63    6f 70 65 29 29 29 29 29 0a 20 20 20 20 20 20 20  | -symbol-table.scope)))))........ | 
| 152a0 |  20 20 20 20 20 20 28 61 6e 64 20 65 6e 74 72 79    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......(and.entry................ | 
| 152c0 |  20 20 20 28 6f 72 20 28 6e 6f 74 20 70 6f 69 6e    74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(or.(not.point).............. | 
| 152e0 |  20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65    71 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d 73  | .........(not.(eq.js2-LET.(js2-s | 
| 15300 |  79 6d 62 6f 6c 2d 64 65 63 6c 2d 74 79 70 65 20    65 6e 74 72 79 29 29 29 0a 20 20 20 20 20 20 20  | ymbol-decl-type.entry)))........ | 
| 15320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    3e 3d 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20  | ...............(>=.point........ | 
| 15340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73  | ...................(js2-node-abs | 
| 15360 |  2d 70 6f 73 20 28 6a 73 32 2d 73 79 6d 62 6f 6c    2d 61 73 74 2d 6e 6f 64 65 20 65 6e 74 72 79 29  | -pos.(js2-symbol-ast-node.entry) | 
| 15380 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 28 61 6e 64 20 28 65 71 20 73 79 6d 20 27 61  | )))))............(and.(eq.sym.'a | 
| 153a0 |  72 67 75 6d 65 6e 74 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66  | rguments).................(js2-f | 
| 153c0 |  75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 73    63 6f 70 65 29 29 29 0a 20 20 20 20 20 20 20 20  | unction-node-p.scope)))......... | 
| 153e0 |  20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65    20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20  | ..(setq.continue.nil............ | 
| 15400 |  20 20 20 20 20 72 65 73 75 6c 74 20 73 63 6f 70    65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71  | .....result.scope).........(setq | 
| 15420 |  20 73 63 6f 70 65 20 28 6a 73 32 2d 73 63 6f 70    65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20 73  | .scope.(js2-scope-parent-scope.s | 
| 15440 |  63 6f 70 65 29 29 29 29 0a 20 20 20 20 72 65 73    75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | cope)))).....result))..(defun.js | 
| 15460 |  32 2d 73 63 6f 70 65 2d 67 65 74 2d 73 79 6d 62    6f 6c 20 28 73 63 6f 70 65 20 6e 61 6d 65 29 0a  | 2-scope-get-symbol.(scope.name). | 
| 15480 |  20 20 22 52 65 74 75 72 6e 20 73 79 6d 62 6f 6c    20 74 61 62 6c 65 20 65 6e 74 72 79 20 66 6f 72  | .."Return.symbol.table.entry.for | 
| 154a0 |  20 4e 41 4d 45 20 69 6e 20 53 43 4f 50 45 2e 0a    4e 41 4d 45 20 63 61 6e 20 62 65 20 61 20 73 74  | .NAME.in.SCOPE..NAME.can.be.a.st | 
| 154c0 |  72 69 6e 67 20 6f 72 20 73 79 6d 62 6f 6c 2e 20    20 20 52 65 74 75 72 6e 73 20 61 20 60 6a 73 32  | ring.or.symbol....Returns.a.`js2 | 
| 154e0 |  2d 73 79 6d 62 6f 6c 27 20 6f 72 20 6e 69 6c 20    69 66 20 6e 6f 74 20 66 6f 75 6e 64 2e 22 0a 20  | -symbol'.or.nil.if.not.found.".. | 
| 15500 |  20 28 61 6e 64 20 28 6a 73 32 2d 73 63 6f 70 65    2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63  | .(and.(js2-scope-symbol-table.sc | 
| 15520 |  6f 70 65 29 0a 20 20 20 20 20 20 20 28 63 64 72    20 28 61 73 73 71 20 28 69 66 20 28 73 79 6d 62  | ope)........(cdr.(assq.(if.(symb | 
| 15540 |  6f 6c 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | olp.name)....................... | 
| 15560 |  6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e  | name.....................(intern | 
| 15580 |  20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73  | .name))...................(js2-s | 
| 155a0 |  63 6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c    65 20 73 63 6f 70 65 29 29 29 29 29 0a 0a 28 64  | cope-symbol-table.scope)))))..(d | 
| 155c0 |  65 66 75 6e 20 6a 73 32 2d 73 63 6f 70 65 2d 70    75 74 2d 73 79 6d 62 6f 6c 20 28 73 63 6f 70 65  | efun.js2-scope-put-symbol.(scope | 
| 155e0 |  20 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 0a 20 20    22 45 6e 74 65 72 20 53 59 4d 42 4f 4c 20 69 6e  | .name.symbol)..."Enter.SYMBOL.in | 
| 15600 |  74 6f 20 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20    66 6f 72 20 53 43 4f 50 45 20 75 6e 64 65 72 20  | to.symbol-table.for.SCOPE.under. | 
| 15620 |  4e 41 4d 45 2e 0a 4e 41 4d 45 20 63 61 6e 20 62    65 20 61 20 4c 69 73 70 20 73 79 6d 62 6f 6c 20  | NAME..NAME.can.be.a.Lisp.symbol. | 
| 15640 |  6f 72 20 73 74 72 69 6e 67 2e 20 20 53 59 4d 42    4f 4c 20 69 73 20 61 20 60 6a 73 32 2d 73 79 6d  | or.string...SYMBOL.is.a.`js2-sym | 
| 15660 |  62 6f 6c 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28    28 74 61 62 6c 65 20 28 6a 73 32 2d 73 63 6f 70  | bol'."...(let*.((table.(js2-scop | 
| 15680 |  65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73    63 6f 70 65 29 29 0a 20 20 20 20 20 20 20 20 20  | e-symbol-table.scope)).......... | 
| 156a0 |  28 73 79 6d 20 28 69 66 20 28 73 79 6d 62 6f 6c    70 20 6e 61 6d 65 29 20 6e 61 6d 65 20 28 69 6e  | (sym.(if.(symbolp.name).name.(in | 
| 156c0 |  74 65 72 6e 20 6e 61 6d 65 29 29 29 0a 20 20 20    20 20 20 20 20 20 28 65 6e 74 72 79 20 28 61 73  | tern.name)))..........(entry.(as | 
| 156e0 |  73 71 20 73 79 6d 20 74 61 62 6c 65 29 29 29 0a    20 20 20 20 28 69 66 20 65 6e 74 72 79 0a 20 20  | sq.sym.table))).....(if.entry... | 
| 15700 |  20 20 20 20 20 20 28 73 65 74 63 64 72 20 65 6e    74 72 79 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20  | ......(setcdr.entry.symbol)..... | 
| 15720 |  20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 73 79    6d 20 73 79 6d 62 6f 6c 29 0a 20 20 20 20 20 20  | ..(push.(cons.sym.symbol)....... | 
| 15740 |  20 20 20 20 20 20 28 6a 73 32 2d 73 63 6f 70 65    2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65 20 73 63  | ......(js2-scope-symbol-table.sc | 
| 15760 |  6f 70 65 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65    66 73 74 72 75 63 74 20 28 6a 73 32 2d 73 79 6d  | ope)))))..(cl-defstruct.(js2-sym | 
| 15780 |  62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72  | bol................(:constructor | 
| 157a0 |  20 6d 61 6b 65 2d 6a 73 32 2d 73 79 6d 62 6f 6c    20 28 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65  | .make-js2-symbol.(decl-type.name | 
| 157c0 |  20 26 6f 70 74 69 6f 6e 61 6c 20 61 73 74 2d 6e    6f 64 65 29 29 29 0a 20 20 22 41 20 73 79 6d 62  | .&optional.ast-node)))..."A.symb | 
| 157e0 |  6f 6c 20 74 61 62 6c 65 20 65 6e 74 72 79 2e 22    0a 20 20 3b 3b 20 4f 6e 65 20 6f 66 20 6a 73 32  | ol.table.entry."...;;.One.of.js2 | 
| 15800 |  2d 46 55 4e 43 54 49 4f 4e 2c 20 6a 73 32 2d 4c    50 20 28 66 6f 72 20 70 61 72 61 6d 65 74 65 72  | -FUNCTION,.js2-LP.(for.parameter | 
| 15820 |  73 29 2c 20 6a 73 32 2d 56 41 52 2c 0a 20 20 3b    3b 20 6a 73 32 2d 4c 45 54 2c 20 6f 72 20 6a 73  | s),.js2-VAR,...;;.js2-LET,.or.js | 
| 15840 |  32 2d 43 4f 4e 53 54 0a 20 20 64 65 63 6c 2d 74    79 70 65 0a 20 20 6e 61 6d 65 20 20 3b 20 73 74  | 2-CONST...decl-type...name..;.st | 
| 15860 |  72 69 6e 67 0a 20 20 61 73 74 2d 6e 6f 64 65 29    20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 0a  | ring...ast-node).;.a.`js2-node'. | 
| 15880 |  0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28    6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65 0a 20  | .(cl-defstruct.(js2-error-node.. | 
| 158a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a    69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65  | ..............(:include.js2-node | 
| 158c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d  | )................(:constructor.m | 
| 158e0 |  61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f    64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a  | ake-js2-error-node.(&key.(type.j | 
| 15900 |  73 32 2d 45 52 52 4f 52 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ERROR)....................... | 
| 15920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 15940 |  20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65    6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20  | .(pos.(js2-current-token-beg)).. | 
| 15960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 15980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6c 65 6e 29 29 29 0a 20 20 22  | ......................len)))..." | 
| 159a0 |  41 53 54 20 6e 6f 64 65 20 72 65 70 72 65 73 65    6e 74 69 6e 67 20 61 20 70 61 72 73 65 20 65 72  | AST.node.representing.a.parse.er | 
| 159c0 |  72 6f 72 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74    72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 72  | ror.")..(js2--struct-put.'js2-er | 
| 159e0 |  72 6f 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69    73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74  | ror-node.'js2-visitor.'js2-visit | 
| 15a00 |  2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 72 72  | -none).(js2--struct-put.'js2-err | 
| 15a20 |  6f 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69    6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d  | or-node.'js2-printer.'js2-print- | 
| 15a40 |  6e 6f 6e 65 29 0a 0a 28 63 6c 2d 64 65 66 73 74    72 75 63 74 20 28 6a 73 32 2d 73 63 72 69 70 74  | none)..(cl-defstruct.(js2-script | 
| 15a60 |  2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a  | -node................(:include.j | 
| 15a80 |  73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74  | s2-scope)................(:const | 
| 15aa0 |  72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d    73 63 72 69 70 74 2d 6e 6f 64 65 20 28 26 6b 65  | ructor.make-js2-script-node.(&ke | 
| 15ac0 |  79 20 28 74 79 70 65 20 6a 73 32 2d 53 43 52 49    50 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | y.(type.js2-SCRIPT)............. | 
| 15ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 15b00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | ............(pos.(js2-current-to | 
| 15b20 |  6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ken-beg))....................... | 
| 15b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 15b60 |  20 20 6c 65 6e 29 29 29 0a 20 20 66 75 6e 63 74    69 6f 6e 73 20 20 20 3b 20 4c 69 73 70 20 6c 69  | ..len)))...functions...;.Lisp.li | 
| 15b80 |  73 74 20 6f 66 20 6e 65 73 74 65 64 20 66 75 6e    63 74 69 6f 6e 73 0a 20 20 72 65 67 65 78 70 73  | st.of.nested.functions...regexps | 
| 15ba0 |  20 20 20 20 20 3b 20 4c 69 73 70 20 6c 69 73 74    20 6f 66 20 28 73 74 72 69 6e 67 20 2e 20 66 6c  | .....;.Lisp.list.of.(string...fl | 
| 15bc0 |  61 67 73 29 0a 20 20 73 79 6d 62 6f 6c 73 20 20    20 20 20 3b 20 61 6c 69 73 74 20 28 65 76 65 72  | ags)...symbols.....;.alist.(ever | 
| 15be0 |  79 20 73 79 6d 62 6f 6c 20 67 65 74 73 20 75 6e    69 71 75 65 20 69 6e 64 65 78 29 0a 20 20 28 70  | y.symbol.gets.unique.index)...(p | 
| 15c00 |  61 72 61 6d 2d 63 6f 75 6e 74 20 30 29 0a 20 20    76 61 72 2d 6e 61 6d 65 73 20 20 20 3b 20 76 65  | aram-count.0)...var-names...;.ve | 
| 15c20 |  63 74 6f 72 20 6f 66 20 73 74 72 69 6e 67 20 6e    61 6d 65 73 0a 20 20 63 6f 6e 73 74 73 20 20 20  | ctor.of.string.names...consts... | 
| 15c40 |  20 20 20 3b 20 62 6f 6f 6c 2d 76 65 63 74 6f 72    20 6d 61 74 63 68 69 6e 67 20 76 61 72 2d 64 65  | ...;.bool-vector.matching.var-de | 
| 15c60 |  63 6c 73 0a 20 20 28 74 65 6d 70 2d 6e 75 6d 62    65 72 20 30 29 29 20 20 3b 20 66 6f 72 20 67 65  | cls...(temp-number.0))..;.for.ge | 
| 15c80 |  6e 65 72 61 74 69 6e 67 20 74 65 6d 70 20 76 61    72 69 61 62 6c 65 73 0a 0a 28 6a 73 32 2d 2d 73  | nerating.temp.variables..(js2--s | 
| 15ca0 |  74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73    63 72 69 70 74 2d 6e 6f 64 65 20 27 6a 73 32 2d  | truct-put.'js2-script-node.'js2- | 
| 15cc0 |  76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73    69 74 2d 62 6c 6f 63 6b 29 0a 28 6a 73 32 2d 2d  | visitor.'js2-visit-block).(js2-- | 
| 15ce0 |  73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d    73 63 72 69 70 74 2d 6e 6f 64 65 20 27 6a 73 32  | struct-put.'js2-script-node.'js2 | 
| 15d00 |  2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72    69 6e 74 2d 73 63 72 69 70 74 29 0a 0a 28 64 65  | -printer.'js2-print-script)..(de | 
| 15d20 |  66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 73 63    72 69 70 74 20 28 6e 6f 64 65 20 69 6e 64 65 6e  | fun.js2-print-script.(node.inden | 
| 15d40 |  74 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6b 69    64 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64  | t)...(dolist.(kid.(js2-block-nod | 
| 15d60 |  65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20    20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74  | e-kids.node)).....(js2-print-ast | 
| 15d80 |  20 6b 69 64 20 69 6e 64 65 6e 74 29 29 29 0a 0a    28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a  | .kid.indent)))..(cl-defstruct.(j | 
| 15da0 |  73 32 2d 61 73 74 2d 72 6f 6f 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63  | s2-ast-root................(:inc | 
| 15dc0 |  6c 75 64 65 20 6a 73 32 2d 73 63 72 69 70 74 2d    6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  | lude.js2-script-node)........... | 
| 15de0 |  20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74    6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 61 73 74 2d  | .....(:constructor.make-js2-ast- | 
| 15e00 |  72 6f 6f 74 20 28 26 6b 65 79 20 28 74 79 70 65    20 6a 73 32 2d 53 43 52 49 50 54 29 0a 20 20 20  | root.(&key.(type.js2-SCRIPT).... | 
| 15e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 15e40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72  | ..................(pos.(js2-curr | 
| 15e60 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ent-token-beg))................. | 
| 15e80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 15ea0 |  20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....len........................ | 
| 15ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75  | ..............................bu | 
| 15ee0 |  66 66 65 72 29 29 29 0a 20 20 22 54 68 65 20 72    6f 6f 74 20 6e 6f 64 65 20 6f 66 20 61 20 6a 73  | ffer)))..."The.root.node.of.a.js | 
| 15f00 |  32 20 41 53 54 2e 22 0a 20 20 62 75 66 66 65 72    20 20 20 20 20 20 20 20 20 3b 20 74 68 65 20 73  | 2.AST."...buffer.........;.the.s | 
| 15f20 |  6f 75 72 63 65 20 62 75 66 66 65 72 20 66 72 6f    6d 20 77 68 69 63 68 20 74 68 65 20 63 6f 64 65  | ource.buffer.from.which.the.code | 
| 15f40 |  20 77 61 73 20 70 61 72 73 65 64 0a 20 20 63 6f    6d 6d 65 6e 74 73 20 20 20 20 20 20 20 3b 20 61  | .was.parsed...comments.......;.a | 
| 15f60 |  20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 63 6f    6d 6d 65 6e 74 73 2c 20 6f 72 64 65 72 65 64 20  | .Lisp.list.of.comments,.ordered. | 
| 15f80 |  62 79 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f    6e 0a 20 20 65 72 72 6f 72 73 20 20 20 20 20 20  | by.start.position...errors...... | 
| 15fa0 |  20 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74    20 6f 66 20 65 72 72 6f 72 73 20 66 6f 75 6e 64  | ...;.a.Lisp.list.of.errors.found | 
| 15fc0 |  20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 0a    20 20 77 61 72 6e 69 6e 67 73 20 20 20 20 20 20  | .during.parsing...warnings...... | 
| 15fe0 |  20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f    66 20 77 61 72 6e 69 6e 67 73 20 66 6f 75 6e 64  | .;.a.Lisp.list.of.warnings.found | 
| 16000 |  20 64 75 72 69 6e 67 20 70 61 72 73 69 6e 67 0a    20 20 6e 6f 64 65 2d 63 6f 75 6e 74 29 20 20 20  | .during.parsing...node-count)... | 
| 16020 |  20 3b 20 6e 75 6d 62 65 72 20 6f 66 20 6e 6f 64    65 73 20 69 6e 20 74 68 65 20 74 72 65 65 2c 20  | .;.number.of.nodes.in.the.tree,. | 
| 16040 |  69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 72 6f    6f 74 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74  | including.the.root..(js2--struct | 
| 16060 |  2d 70 75 74 20 27 6a 73 32 2d 61 73 74 2d 72 6f    6f 74 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20  | -put.'js2-ast-root.'js2-visitor. | 
| 16080 |  27 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 2d 72    6f 6f 74 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | 'js2-visit-ast-root).(js2--struc | 
| 160a0 |  74 2d 70 75 74 20 27 6a 73 32 2d 61 73 74 2d 72    6f 6f 74 20 27 6a 73 32 2d 70 72 69 6e 74 65 72  | t-put.'js2-ast-root.'js2-printer | 
| 160c0 |  20 27 6a 73 32 2d 70 72 69 6e 74 2d 73 63 72 69    70 74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | .'js2-print-script)..(defun.js2- | 
| 160e0 |  76 69 73 69 74 2d 61 73 74 2d 72 6f 6f 74 20 28    61 73 74 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20  | visit-ast-root.(ast.callback)... | 
| 16100 |  28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73    32 2d 61 73 74 2d 72 6f 6f 74 2d 6b 69 64 73 20  | (dolist.(kid.(js2-ast-root-kids. | 
| 16120 |  61 73 74 29 29 0a 20 20 20 20 28 6a 73 32 2d 76    69 73 69 74 2d 61 73 74 20 6b 69 64 20 63 61 6c  | ast)).....(js2-visit-ast.kid.cal | 
| 16140 |  6c 62 61 63 6b 29 29 0a 20 20 28 64 6f 6c 69 73    74 20 28 63 6f 6d 6d 65 6e 74 20 28 6a 73 32 2d  | lback))...(dolist.(comment.(js2- | 
| 16160 |  61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74    73 20 61 73 74 29 29 0a 20 20 20 20 28 6a 73 32  | ast-root-comments.ast)).....(js2 | 
| 16180 |  2d 76 69 73 69 74 2d 61 73 74 20 63 6f 6d 6d 65    6e 74 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a  | -visit-ast.comment.callback))).. | 
| 161a0 |  28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a    73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 0a  | (cl-defstruct.(js2-comment-node. | 
| 161c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64  | ...............(:include.js2-nod | 
| 161e0 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20  | e)................(:constructor. | 
| 16200 |  6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 6d 65 6e 74    2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70  | make-js2-comment-node.(&key.(typ | 
| 16220 |  65 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.js2-COMMENT).................. | 
| 16240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16260 |  20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | ........(pos.(js2-current-token- | 
| 16280 |  62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | beg))........................... | 
| 162a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c  | ...............................l | 
| 162c0 |  65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en.............................. | 
| 162e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d  | ............................form | 
| 16300 |  61 74 29 29 29 0a 20 20 66 6f 72 6d 61 74 29 20    20 3b 20 27 6c 69 6e 65 2c 20 27 62 6c 6f 63 6b  | at)))...format)..;.'line,.'block | 
| 16320 |  2c 20 27 6a 73 64 6f 63 20 6f 72 20 27 68 74 6d    6c 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | ,.'jsdoc.or.'html..(js2--struct- | 
| 16340 |  70 75 74 20 27 6a 73 32 2d 63 6f 6d 6d 65 6e 74    2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74  | put.'js2-comment-node.'js2-visit | 
| 16360 |  6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f    6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74  | or.'js2-visit-none).(js2--struct | 
| 16380 |  2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 6d 65 6e    74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e  | -put.'js2-comment-node.'js2-prin | 
| 163a0 |  74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63    6f 6d 6d 65 6e 74 29 0a 0a 28 64 65 66 75 6e 20  | ter.'js2-print-comment)..(defun. | 
| 163c0 |  6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 6d 65 6e    74 20 28 6e 20 69 29 0a 20 20 3b 3b 20 57 65 20  | js2-print-comment.(n.i)...;;.We. | 
| 163e0 |  72 65 61 6c 6c 79 20 6f 75 67 68 74 20 74 6f 20    6c 69 6e 6b 20 65 6e 64 2d 6f 66 2d 6c 69 6e 65  | really.ought.to.link.end-of-line | 
| 16400 |  20 63 6f 6d 6d 65 6e 74 73 20 74 6f 20 74 68 65    69 72 20 6e 6f 64 65 73 2e 0a 20 20 3b 3b 20 4f  | .comments.to.their.nodes....;;.O | 
| 16420 |  72 20 6d 61 79 62 65 20 77 65 20 63 6f 75 6c 64    20 61 64 64 20 61 20 6e 65 77 20 63 6f 6d 6d 65  | r.maybe.we.could.add.a.new.comme | 
| 16440 |  6e 74 20 74 79 70 65 2c 20 27 65 6e 64 6c 69 6e    65 2e 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73  | nt.type,.'endline....(insert.(js | 
| 16460 |  32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 0a 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | 2-make-pad.i)...........(js2-nod | 
| 16480 |  65 2d 73 74 72 69 6e 67 20 6e 29 29 29 0a 0a 28    63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73  | e-string.n)))..(cl-defstruct.(js | 
| 164a0 |  32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-expr-stmt-node................ | 
| 164c0 |  28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (:include.js2-node)............. | 
| 164e0 |  20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72    20 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 72 2d 73  | ...(:constructor.make-js2-expr-s | 
| 16500 |  74 6d 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28    74 79 70 65 20 6a 73 32 2d 45 58 50 52 5f 56 4f  | tmt-node.(&key.(type.js2-EXPR_VO | 
| 16520 |  49 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ID)............................. | 
| 16540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 16560 |  70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f    72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos.js2-ts-cursor).............. | 
| 16580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 165a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..............len............... | 
| 165c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 165e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70    72 29 29 29 0a 20 20 22 41 6e 20 65 78 70 72 65  | .............expr)))..."An.expre | 
| 16600 |  73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 2e    22 0a 20 20 65 78 70 72 29 0a 0a 28 64 65 66 73  | ssion.statement."...expr)..(defs | 
| 16620 |  75 62 73 74 20 6a 73 32 2d 65 78 70 72 2d 73 74    6d 74 2d 6e 6f 64 65 2d 73 65 74 2d 68 61 73 2d  | ubst.js2-expr-stmt-node-set-has- | 
| 16640 |  72 65 73 75 6c 74 20 28 6e 6f 64 65 29 0a 20 20    22 43 68 61 6e 67 65 20 4e 4f 44 45 20 74 79 70  | result.(node)..."Change.NODE.typ | 
| 16660 |  65 20 74 6f 20 60 6a 73 32 2d 45 58 50 52 5f 52    45 53 55 4c 54 27 2e 20 20 55 73 65 64 20 66 6f  | e.to.`js2-EXPR_RESULT'...Used.fo | 
| 16680 |  72 20 63 6f 64 65 20 67 65 6e 65 72 61 74 69 6f    6e 2e 22 0a 20 20 28 73 65 74 66 20 28 6a 73 32  | r.code.generation."...(setf.(js2 | 
| 166a0 |  2d 6e 6f 64 65 2d 74 79 70 65 20 6e 6f 64 65 29    20 6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54  | -node-type.node).js2-EXPR_RESULT | 
| 166c0 |  29 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74    2d 70 75 74 20 27 6a 73 32 2d 65 78 70 72 2d 73  | ))..(js2--struct-put.'js2-expr-s | 
| 166e0 |  74 6d 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69    73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74  | tmt-node.'js2-visitor.'js2-visit | 
| 16700 |  2d 65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 29    0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75  | -expr-stmt-node).(js2--struct-pu | 
| 16720 |  74 20 27 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74    2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74  | t.'js2-expr-stmt-node.'js2-print | 
| 16740 |  65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 65 78    70 72 2d 73 74 6d 74 2d 6e 6f 64 65 29 0a 0a 28  | er.'js2-print-expr-stmt-node)..( | 
| 16760 |  64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d    65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 28  | defun.js2-visit-expr-stmt-node.( | 
| 16780 |  6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69    74 2d 61 73 74 20 28 6a 73 32 2d 65 78 70 72 2d  | n.v)...(js2-visit-ast.(js2-expr- | 
| 167a0 |  73 74 6d 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e    29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | stmt-node-expr.n).v))..(defun.js | 
| 167c0 |  32 2d 70 72 69 6e 74 2d 65 78 70 72 2d 73 74 6d    74 2d 6e 6f 64 65 20 28 6e 20 69 6e 64 65 6e 74  | 2-print-expr-stmt-node.(n.indent | 
| 167e0 |  29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61    73 74 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d  | )...(js2-print-ast.(js2-expr-stm | 
| 16800 |  74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 69    6e 64 65 6e 74 29 0a 20 20 28 69 6e 73 65 72 74  | t-node-expr.n).indent)...(insert | 
| 16820 |  20 22 3b 5c 6e 22 29 29 0a 0a 28 63 6c 2d 64 65    66 73 74 72 75 63 74 20 28 6a 73 32 2d 6c 6f 6f  | .";\n"))..(cl-defstruct.(js2-loo | 
| 16840 |  70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20  | p-node................(:include. | 
| 16860 |  6a 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73  | js2-scope)................(:cons | 
| 16880 |  74 72 75 63 74 6f 72 20 6e 69 6c 29 29 0a 20 20    22 41 62 73 74 72 61 63 74 20 73 75 70 65 72 74  | tructor.nil))..."Abstract.supert | 
| 168a0 |  79 70 65 20 6f 66 20 6c 6f 6f 70 20 6e 6f 64 65    73 2e 22 0a 20 20 62 6f 64 79 20 20 20 20 20 20  | ype.of.loop.nodes."...body...... | 
| 168c0 |  3b 20 61 20 60 6a 73 32 2d 62 6c 6f 63 6b 2d 6e    6f 64 65 27 0a 20 20 6c 70 20 20 20 20 20 20 20  | ;.a.`js2-block-node'...lp....... | 
| 168e0 |  20 3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 6c    65 66 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69  | .;.position.of.left-paren,.nil.i | 
| 16900 |  66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70 29 20    20 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e  | f.omitted...rp).......;.position | 
| 16920 |  20 6f 66 20 72 69 67 68 74 2d 70 61 72 65 6e 2c    20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a  | .of.right-paren,.nil.if.omitted. | 
| 16940 |  0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28    6a 73 32 2d 64 6f 2d 6e 6f 64 65 0a 20 20 20 20  | .(cl-defstruct.(js2-do-node..... | 
| 16960 |  20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63    6c 75 64 65 20 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f  | ...........(:include.js2-loop-no | 
| 16980 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72  | de)................(:constructor | 
| 169a0 |  20 6d 61 6b 65 2d 6a 73 32 2d 64 6f 2d 6e 6f 64    65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73  | .make-js2-do-node.(&key.(type.js | 
| 169c0 |  32 2d 44 4f 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-DO)........................... | 
| 169e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28  | ..........................(pos.( | 
| 16a00 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20  | js2-current-token-beg))......... | 
| 16a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16a40 |  20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............len................. | 
| 16a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16a80 |  20 20 20 20 62 6f 64 79 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....body........................ | 
| 16aa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e  | .............................con | 
| 16ac0 |  64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | dition.......................... | 
| 16ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65  | ...........................while | 
| 16b00 |  2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -pos............................ | 
| 16b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6c 70 0a 20 20 20 20  | .........................lp..... | 
| 16b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16b60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    72 70 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64  | ................rp)))..."AST.nod | 
| 16b80 |  65 20 66 6f 72 20 64 6f 2d 6c 6f 6f 70 2e 22 0a    20 20 63 6f 6e 64 69 74 69 6f 6e 20 20 3b 20 77  | e.for.do-loop."...condition..;.w | 
| 16ba0 |  68 69 6c 65 20 28 65 78 70 72 65 73 73 69 6f 6e    29 0a 20 20 77 68 69 6c 65 2d 70 6f 73 29 20 3b  | hile.(expression)...while-pos).; | 
| 16bc0 |  20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e    20 6f 66 20 27 77 68 69 6c 65 27 20 6b 65 79 77  | .buffer.position.of.'while'.keyw | 
| 16be0 |  6f 72 64 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63    74 2d 70 75 74 20 27 6a 73 32 2d 64 6f 2d 6e 6f  | ord..(js2--struct-put.'js2-do-no | 
| 16c00 |  64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20    27 6a 73 32 2d 76 69 73 69 74 2d 64 6f 2d 6e 6f  | de.'js2-visitor.'js2-visit-do-no | 
| 16c20 |  64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74    2d 70 75 74 20 27 6a 73 32 2d 64 6f 2d 6e 6f 64  | de).(js2--struct-put.'js2-do-nod | 
| 16c40 |  65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27    6a 73 32 2d 70 72 69 6e 74 2d 64 6f 2d 6e 6f 64  | e.'js2-printer.'js2-print-do-nod | 
| 16c60 |  65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76    69 73 69 74 2d 64 6f 2d 6e 6f 64 65 20 28 6e 20  | e)..(defun.js2-visit-do-node.(n. | 
| 16c80 |  76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d    61 73 74 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65  | v)...(js2-visit-ast.(js2-do-node | 
| 16ca0 |  2d 62 6f 64 79 20 6e 29 20 76 29 0a 20 20 28 6a    73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73  | -body.n).v)...(js2-visit-ast.(js | 
| 16cc0 |  32 2d 64 6f 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74    69 6f 6e 20 6e 29 20 76 29 29 0a 0a 28 64 65 66  | 2-do-node-condition.n).v))..(def | 
| 16ce0 |  75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 64 6f 2d    6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65  | un.js2-print-do-node.(n.i)...(le | 
| 16d00 |  74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b    65 2d 70 61 64 20 69 29 29 29 0a 20 20 20 20 28  | t.((pad.(js2-make-pad.i))).....( | 
| 16d20 |  69 6e 73 65 72 74 20 70 61 64 20 22 64 6f 20 7b    5c 6e 22 29 0a 20 20 20 20 28 64 6f 6c 69 73 74  | insert.pad."do.{\n").....(dolist | 
| 16d40 |  20 28 6b 69 64 20 28 6a 73 32 2d 62 6c 6f 63 6b    2d 6e 6f 64 65 2d 6b 69 64 73 20 28 6a 73 32 2d  | .(kid.(js2-block-node-kids.(js2- | 
| 16d60 |  64 6f 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 29    29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69  | do-node-body.n))).......(js2-pri | 
| 16d80 |  6e 74 2d 61 73 74 20 6b 69 64 20 28 31 2b 20 69    29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20  | nt-ast.kid.(1+.i))).....(insert. | 
| 16da0 |  70 61 64 20 22 7d 20 77 68 69 6c 65 20 28 22 29    0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | pad."}.while.(").....(js2-print- | 
| 16dc0 |  61 73 74 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65    2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 29 20 30 29  | ast.(js2-do-node-condition.n).0) | 
| 16de0 |  0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29 3b    5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73  | .....(insert.");\n")))..(cl-defs | 
| 16e00 |  74 72 75 63 74 20 28 6a 73 32 2d 65 78 70 6f 72    74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20  | truct.(js2-export-node.......... | 
| 16e20 |  20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20    6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20  | ......(:include.js2-node)....... | 
| 16e40 |  20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74    72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d  | .........(:constructor.make-js2- | 
| 16e60 |  65 78 70 6f 72 74 2d 6e 6f 64 65 20 28 26 6b 65    79 20 28 74 79 70 65 20 6a 73 32 2d 45 58 50 4f  | export-node.(&key.(type.js2-EXPO | 
| 16e80 |  52 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | RT)............................. | 
| 16ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73  | ............................(pos | 
| 16ec0 |  20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f    6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20  | .(js2-current-token-beg))....... | 
| 16ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20  | ..................len........... | 
| 16f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16f40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78    70 6f 72 74 73 2d 6c 69 73 74 0a 20 20 20 20 20  | ..............exports-list...... | 
| 16f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20  | ...................from-clause.. | 
| 16fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 16fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 64 65 63 6c 61 72 61 74 69  | .......................declarati | 
| 16fe0 |  6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | on.............................. | 
| 17000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75  | ...........................defau | 
| 17020 |  6c 74 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64    65 20 66 6f 72 20 61 6e 20 65 78 70 6f 72 74 20  | lt)))..."AST.node.for.an.export. | 
| 17040 |  73 74 61 74 65 6d 65 6e 74 2e 20 54 68 65 72 65    20 61 72 65 20 6d 61 6e 79 20 74 68 69 6e 67 73  | statement..There.are.many.things | 
| 17060 |  20 74 68 61 74 20 63 61 6e 20 62 65 20 65 78 70    6f 72 74 65 64 2c 0a 73 6f 20 6d 61 6e 79 20 6f  | .that.can.be.exported,.so.many.o | 
| 17080 |  66 20 69 74 73 20 70 72 6f 70 65 72 74 69 65 73    20 77 69 6c 6c 20 62 65 20 6e 69 6c 2e 0a 22 0a  | f.its.properties.will.be.nil..". | 
| 170a0 |  20 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 20 3b    20 6c 69 73 70 20 6c 69 73 74 20 6f 66 20 6a 73  | ..exports-list.;.lisp.list.of.js | 
| 170c0 |  32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67    2d 6e 6f 64 65 20 74 6f 20 65 78 70 6f 72 74 0a  | 2-export-binding-node.to.export. | 
| 170e0 |  20 20 66 72 6f 6d 2d 63 6c 61 75 73 65 20 3b 20    6a 73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d  | ..from-clause.;.js2-from-clause- | 
| 17100 |  6e 6f 64 65 20 66 6f 72 20 72 65 2d 65 78 70 6f    72 74 69 6e 67 20 73 79 6d 62 6f 6c 73 20 66 72  | node.for.re-exporting.symbols.fr | 
| 17120 |  6f 6d 20 61 6e 6f 74 68 65 72 20 6d 6f 64 75 6c    65 0a 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 20  | om.another.module...declaration. | 
| 17140 |  3b 20 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e    6f 64 65 20 28 76 61 72 2c 20 6c 65 74 2c 20 63  | ;.js2-var-decl-node.(var,.let,.c | 
| 17160 |  6f 6e 73 74 29 20 6f 72 20 6a 73 32 2d 63 6c 61    73 73 2d 6e 6f 64 65 0a 20 20 64 65 66 61 75 6c  | onst).or.js2-class-node...defaul | 
| 17180 |  74 29 20 3b 20 6a 73 32 2d 66 75 6e 63 74 69 6f    6e 2d 6e 6f 64 65 20 6f 72 20 6a 73 32 2d 61 73  | t).;.js2-function-node.or.js2-as | 
| 171a0 |  73 69 67 6e 2d 6e 6f 64 65 0a 0a 28 6a 73 32 2d    2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32  | sign-node..(js2--struct-put.'js2 | 
| 171c0 |  2d 65 78 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73    32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76  | -export-node.'js2-visitor.'js2-v | 
| 171e0 |  69 73 69 74 2d 65 78 70 6f 72 74 2d 6e 6f 64 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | isit-export-node).(js2--struct-p | 
| 17200 |  75 74 20 27 6a 73 32 2d 65 78 70 6f 72 74 2d 6e    6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72  | ut.'js2-export-node.'js2-printer | 
| 17220 |  20 27 6a 73 32 2d 70 72 69 6e 74 2d 65 78 70 6f    72 74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e  | .'js2-print-export-node)..(defun | 
| 17240 |  20 6a 73 32 2d 76 69 73 69 74 2d 65 78 70 6f 72    74 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28  | .js2-visit-export-node.(n.v)...( | 
| 17260 |  6c 65 74 20 28 28 65 78 70 6f 72 74 73 2d 6c 69    73 74 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e  | let.((exports-list.(js2-export-n | 
| 17280 |  6f 64 65 2d 65 78 70 6f 72 74 73 2d 6c 69 73 74    20 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 72  | ode-exports-list.n)).........(fr | 
| 172a0 |  6f 6d 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e    6f 64 65 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 20  | om.(js2-export-node-from-clause. | 
| 172c0 |  6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 63    6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 2d 65 78  | n)).........(declaration.(js2-ex | 
| 172e0 |  70 6f 72 74 2d 6e 6f 64 65 2d 64 65 63 6c 61 72    61 74 69 6f 6e 20 6e 29 29 0a 20 20 20 20 20 20  | port-node-declaration.n))....... | 
| 17300 |  20 20 28 64 65 66 61 75 6c 74 20 28 6a 73 32 2d    65 78 70 6f 72 74 2d 6e 6f 64 65 2d 64 65 66 61  | ..(default.(js2-export-node-defa | 
| 17320 |  75 6c 74 20 6e 29 29 29 0a 20 20 20 20 28 77 68    65 6e 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 0a  | ult.n))).....(when.exports-list. | 
| 17340 |  20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65    78 70 6f 72 74 20 65 78 70 6f 72 74 73 2d 6c 69  | ......(dolist.(export.exports-li | 
| 17360 |  73 74 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 65 78 70 6f 72  | st).........(js2-visit-ast.expor | 
| 17380 |  74 20 76 29 29 29 0a 20 20 20 20 28 77 68 65 6e    20 66 72 6f 6d 0a 20 20 20 20 20 20 28 6a 73 32  | t.v))).....(when.from.......(js2 | 
| 173a0 |  2d 76 69 73 69 74 2d 61 73 74 20 66 72 6f 6d 20    76 29 29 0a 20 20 20 20 28 77 68 65 6e 20 64 65  | -visit-ast.from.v)).....(when.de | 
| 173c0 |  63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20 20    28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 64  | claration.......(js2-visit-ast.d | 
| 173e0 |  65 63 6c 61 72 61 74 69 6f 6e 20 76 29 29 0a 20    20 20 20 28 77 68 65 6e 20 64 65 66 61 75 6c 74  | eclaration.v)).....(when.default | 
| 17400 |  0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69 73 69    74 2d 61 73 74 20 64 65 66 61 75 6c 74 20 76 29  | .......(js2-visit-ast.default.v) | 
| 17420 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 72 69 6e 74 2d 65 78 70 6f 72 74 2d 6e 6f 64  | )))..(defun.js2-print-export-nod | 
| 17440 |  65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28    28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70  | e.(n.i)...(let.((pad.(js2-make-p | 
| 17460 |  61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28    65 78 70 6f 72 74 73 2d 6c 69 73 74 20 28 6a 73  | ad.i)).........(exports-list.(js | 
| 17480 |  32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 65 78    70 6f 72 74 73 2d 6c 69 73 74 20 6e 29 29 0a 20  | 2-export-node-exports-list.n)).. | 
| 174a0 |  20 20 20 20 20 20 20 28 66 72 6f 6d 20 28 6a 73    32 2d 65 78 70 6f 72 74 2d 6e 6f 64 65 2d 66 72  | .......(from.(js2-export-node-fr | 
| 174c0 |  6f 6d 2d 63 6c 61 75 73 65 20 6e 29 29 0a 20 20    20 20 20 20 20 20 28 64 65 63 6c 61 72 61 74 69  | om-clause.n)).........(declarati | 
| 174e0 |  6f 6e 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 6e    6f 64 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 20  | on.(js2-export-node-declaration. | 
| 17500 |  6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66    61 75 6c 74 20 28 6a 73 32 2d 65 78 70 6f 72 74  | n)).........(default.(js2-export | 
| 17520 |  2d 6e 6f 64 65 2d 64 65 66 61 75 6c 74 20 6e 29    29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70  | -node-default.n))).....(insert.p | 
| 17540 |  61 64 20 22 65 78 70 6f 72 74 20 22 29 0a 20 20    20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 64 65  | ad."export.").....(cond......(de | 
| 17560 |  66 61 75 6c 74 0a 20 20 20 20 20 20 20 28 69 6e    73 65 72 74 20 22 64 65 66 61 75 6c 74 20 22 29  | fault........(insert."default.") | 
| 17580 |  0a 20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69    6e 74 2d 61 73 74 20 64 65 66 61 75 6c 74 20 69  | ........(js2-print-ast.default.i | 
| 175a0 |  29 29 0a 20 20 20 20 20 28 64 65 63 6c 61 72 61    74 69 6f 6e 0a 20 20 20 20 20 20 20 28 6a 73 32  | ))......(declaration........(js2 | 
| 175c0 |  2d 70 72 69 6e 74 2d 61 73 74 20 64 65 63 6c 61    72 61 74 69 6f 6e 20 69 29 29 0a 20 20 20 20 20  | -print-ast.declaration.i))...... | 
| 175e0 |  28 28 61 6e 64 20 65 78 70 6f 72 74 73 2d 6c 69    73 74 20 66 72 6f 6d 29 0a 20 20 20 20 20 20 28  | ((and.exports-list.from).......( | 
| 17600 |  6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 64 2d    69 6d 70 6f 72 74 73 20 65 78 70 6f 72 74 73 2d  | js2-print-named-imports.exports- | 
| 17620 |  6c 69 73 74 29 0a 20 20 20 20 20 20 28 69 6e 73    65 72 74 20 22 20 22 29 0a 20 20 20 20 20 20 28  | list).......(insert.".").......( | 
| 17640 |  6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63    6c 61 75 73 65 20 66 72 6f 6d 29 29 0a 20 20 20  | js2-print-from-clause.from)).... | 
| 17660 |  20 20 28 66 72 6f 6d 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 2a 20 22 29 0a 20 20 20 20  | ..(from.......(insert."*.")..... | 
| 17680 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f    6d 2d 63 6c 61 75 73 65 20 66 72 6f 6d 29 29 0a  | ..(js2-print-from-clause.from)). | 
| 176a0 |  20 20 20 20 20 28 65 78 70 6f 72 74 73 2d 6c 69    73 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72  | .....(exports-list.......(js2-pr | 
| 176c0 |  69 6e 74 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74    73 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 29 29  | int-named-imports.exports-list)) | 
| 176e0 |  29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f    72 20 28 61 6e 64 20 64 65 66 61 75 6c 74 20 28  | ).....(unless.(or.(and.default.( | 
| 17700 |  6e 6f 74 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d    6e 6f 64 65 2d 70 20 64 65 66 61 75 6c 74 29 29  | not.(js2-assign-node-p.default)) | 
| 17720 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 61 6e 64 20 64 65 63 6c 61 72 61 74 69  | ).................(and.declarati | 
| 17740 |  6f 6e 20 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63    74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 64 65 63 6c  | on.(or.(js2-function-node-p.decl | 
| 17760 |  61 72 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | aration)........................ | 
| 17780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 70 20  | ..............(js2-class-node-p. | 
| 177a0 |  64 65 63 6c 61 72 61 74 69 6f 6e 29 29 29 29 0a    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3b  | declaration)))).......(insert."; | 
| 177c0 |  5c 6e 22 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66    73 74 72 75 63 74 20 28 6a 73 32 2d 77 68 69 6c  | \n"))))..(cl-defstruct.(js2-whil | 
| 177e0 |  65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20  | e-node................(:include. | 
| 17800 |  6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | js2-loop-node)................(: | 
| 17820 |  63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65    2d 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 20  | constructor.make-js2-while-node. | 
| 17840 |  28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d    57 48 49 4c 45 29 0a 20 20 20 20 20 20 20 20 20  | (&key.(type.js2-WHILE).......... | 
| 17860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | ..............(pos.(js2-current- | 
| 178a0 |  74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | token-beg))..................... | 
| 178c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 178e0 |  20 20 20 6c 65 6e 20 62 6f 64 79 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...len.body..................... | 
| 17900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17920 |  20 20 20 63 6f 6e 64 69 74 69 6f 6e 20 6c 70 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...condition.lp................. | 
| 17940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17960 |  20 20 20 20 20 20 20 72 70 29 29 29 0a 20 20 22    41 53 54 20 6e 6f 64 65 20 66 6f 72 20 77 68 69  | .......rp)))..."AST.node.for.whi | 
| 17980 |  6c 65 2d 6c 6f 6f 70 2e 22 0a 20 20 63 6f 6e 64    69 74 69 6f 6e 29 20 20 20 20 3b 20 77 68 69 6c  | le-loop."...condition)....;.whil | 
| 179a0 |  65 2d 63 6f 6e 64 69 74 69 6f 6e 0a 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | e-condition..(js2--struct-put.'j | 
| 179c0 |  73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | s2-while-node.'js2-visitor.'js2- | 
| 179e0 |  76 69 73 69 74 2d 77 68 69 6c 65 2d 6e 6f 64 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | visit-while-node).(js2--struct-p | 
| 17a00 |  75 74 20 27 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f    64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20  | ut.'js2-while-node.'js2-printer. | 
| 17a20 |  27 6a 73 32 2d 70 72 69 6e 74 2d 77 68 69 6c 65    2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a  | 'js2-print-while-node)..(defun.j | 
| 17a40 |  73 32 2d 76 69 73 69 74 2d 77 68 69 6c 65 2d 6e    6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32  | s2-visit-while-node.(n.v)...(js2 | 
| 17a60 |  2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d    77 68 69 6c 65 2d 6e 6f 64 65 2d 63 6f 6e 64 69  | -visit-ast.(js2-while-node-condi | 
| 17a80 |  74 69 6f 6e 20 6e 29 20 76 29 0a 20 20 28 6a 73    32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32  | tion.n).v)...(js2-visit-ast.(js2 | 
| 17aa0 |  2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 62 6f 64 79    20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20  | -while-node-body.n).v))..(defun. | 
| 17ac0 |  6a 73 32 2d 70 72 69 6e 74 2d 77 68 69 6c 65 2d    6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65  | js2-print-while-node.(n.i)...(le | 
| 17ae0 |  74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b    65 2d 70 61 64 20 69 29 29 29 0a 20 20 20 20 28  | t.((pad.(js2-make-pad.i))).....( | 
| 17b00 |  69 6e 73 65 72 74 20 70 61 64 20 22 77 68 69 6c    65 20 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70  | insert.pad."while.(").....(js2-p | 
| 17b20 |  72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 77 68    69 6c 65 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69  | rint-ast.(js2-while-node-conditi | 
| 17b40 |  6f 6e 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e    73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 20  | on.n).0).....(insert.").{\n")... | 
| 17b60 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64    79 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64  | ..(js2-print-body.(js2-while-nod | 
| 17b80 |  65 2d 62 6f 64 79 20 6e 29 20 28 31 2b 20 69 29    29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61  | e-body.n).(1+.i)).....(insert.pa | 
| 17ba0 |  64 20 22 7d 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d    64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66  | d."}\n")))..(cl-defstruct.(js2-f | 
| 17bc0 |  6f 72 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65  | or-node................(:include | 
| 17be0 |  20 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .js2-loop-node)................( | 
| 17c00 |  3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b    65 2d 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 28  | :constructor.make-js2-for-node.( | 
| 17c20 |  26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 46    4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | &key.(type.js2-FOR)............. | 
| 17c40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17c60 |  20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73    32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20  | .........(pos.js2-ts-cursor).... | 
| 17c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6c 65 6e 20 62 6f 64 79 20 69 6e 69 74 0a  | ..................len.body.init. | 
| 17cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17ce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 0a 20  | .....................condition.. | 
| 17d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 17d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 75 70 64 61 74 65 20 6c 70 20 72 70  | ....................update.lp.rp | 
| 17d40 |  29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20    66 6f 72 20 61 20 43 2d 73 74 79 6c 65 20 66 6f  | )))..."AST.node.for.a.C-style.fo | 
| 17d60 |  72 2d 6c 6f 6f 70 2e 22 0a 20 20 69 6e 69 74 20    20 20 20 20 20 20 3b 20 69 6e 69 74 69 61 6c 69  | r-loop."...init.......;.initiali | 
| 17d80 |  7a 61 74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f    6e 0a 20 20 63 6f 6e 64 69 74 69 6f 6e 20 20 3b  | zation.expression...condition..; | 
| 17da0 |  20 6c 6f 6f 70 20 63 6f 6e 64 69 74 69 6f 6e 0a    20 20 75 70 64 61 74 65 29 20 20 20 20 3b 20 75  | .loop.condition...update)....;.u | 
| 17dc0 |  70 64 61 74 65 20 63 6c 61 75 73 65 0a 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | pdate.clause..(js2--struct-put.' | 
| 17de0 |  6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 27 6a 73    32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76  | js2-for-node.'js2-visitor.'js2-v | 
| 17e00 |  69 73 69 74 2d 66 6f 72 2d 6e 6f 64 65 29 0a 28    6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20  | isit-for-node).(js2--struct-put. | 
| 17e20 |  27 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 20 27 6a    73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d  | 'js2-for-node.'js2-printer.'js2- | 
| 17e40 |  70 72 69 6e 74 2d 66 6f 72 2d 6e 6f 64 65 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69  | print-for-node)..(defun.js2-visi | 
| 17e60 |  74 2d 66 6f 72 2d 6e 6f 64 65 20 28 6e 20 76 29    0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73  | t-for-node.(n.v)...(js2-visit-as | 
| 17e80 |  74 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d    69 6e 69 74 20 6e 29 20 76 29 0a 20 20 28 6a 73  | t.(js2-for-node-init.n).v)...(js | 
| 17ea0 |  32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32    2d 66 6f 72 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74  | 2-visit-ast.(js2-for-node-condit | 
| 17ec0 |  69 6f 6e 20 6e 29 20 76 29 0a 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d  | ion.n).v)...(js2-visit-ast.(js2- | 
| 17ee0 |  66 6f 72 2d 6e 6f 64 65 2d 75 70 64 61 74 65 20    6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73  | for-node-update.n).v)...(js2-vis | 
| 17f00 |  69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d    6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29  | it-ast.(js2-for-node-body.n).v)) | 
| 17f20 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69    6e 74 2d 66 6f 72 2d 6e 6f 64 65 20 28 6e 20 69  | ..(defun.js2-print-for-node.(n.i | 
| 17f40 |  29 0a 20 20 28 6c 65 74 20 28 28 70 61 64 20 28    6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29  | )...(let.((pad.(js2-make-pad.i)) | 
| 17f60 |  29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61    64 20 22 66 6f 72 20 28 22 29 0a 20 20 20 20 28  | ).....(insert.pad."for.(").....( | 
| 17f80 |  6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a    73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 69 6e 69 74  | js2-print-ast.(js2-for-node-init | 
| 17fa0 |  20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65    72 74 20 22 3b 20 22 29 0a 20 20 20 20 28 6a 73  | .n).0).....(insert.";.").....(js | 
| 17fc0 |  32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32    2d 66 6f 72 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74  | 2-print-ast.(js2-for-node-condit | 
| 17fe0 |  69 6f 6e 20 6e 29 20 30 29 0a 20 20 20 20 28 69    6e 73 65 72 74 20 22 3b 20 22 29 0a 20 20 20 20  | ion.n).0).....(insert.";.")..... | 
| 18000 |  28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28    6a 73 32 2d 66 6f 72 2d 6e 6f 64 65 2d 75 70 64  | (js2-print-ast.(js2-for-node-upd | 
| 18020 |  61 74 65 20 6e 29 20 30 29 0a 20 20 20 20 28 69    6e 73 65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20  | ate.n).0).....(insert.").{\n").. | 
| 18040 |  20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f    64 79 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64 65  | ...(js2-print-body.(js2-for-node | 
| 18060 |  2d 62 6f 64 79 20 6e 29 20 28 31 2b 20 69 29 29    0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64  | -body.n).(1+.i)).....(insert.pad | 
| 18080 |  20 22 7d 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64    65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 6f  | ."}\n")))..(cl-defstruct.(js2-fo | 
| 180a0 |  72 2d 69 6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75  | r-in-node................(:inclu | 
| 180c0 |  64 65 20 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de.js2-loop-node)............... | 
| 180e0 |  20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d    61 6b 65 2d 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e  | .(:constructor.make-js2-for-in-n | 
| 18100 |  6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20    6a 73 32 2d 46 4f 52 29 0a 20 20 20 20 20 20 20  | ode.(&key.(type.js2-FOR)........ | 
| 18120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72  | .................(pos.js2-ts-cur | 
| 18160 |  73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | sor)............................ | 
| 18180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e  | .............................len | 
| 181a0 |  20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .body........................... | 
| 181c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 74  | ..............................it | 
| 181e0 |  65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | erator.......................... | 
| 18200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f  | ...............................o | 
| 18220 |  62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bject........................... | 
| 18240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e  | ..............................in | 
| 18260 |  2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -pos............................ | 
| 18280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 65 61 63  | .............................eac | 
| 182a0 |  68 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | h-pos........................... | 
| 182c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 77  | ..............................aw | 
| 182e0 |  61 69 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ait-pos......................... | 
| 18300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18320 |  66 6f 72 65 61 63 68 2d 70 20 66 6f 72 6f 66 2d    70 20 66 6f 72 61 77 61 69 74 2d 70 0a 20 20 20  | foreach-p.forof-p.forawait-p.... | 
| 18340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6c 70 20 72 70 29 29 29 0a 20 20  | .....................lp.rp)))... | 
| 18380 |  22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20    66 6f 72 2e 2e 69 6e 20 6c 6f 6f 70 2e 22 0a 20  | "AST.node.for.a.for..in.loop.".. | 
| 183a0 |  20 69 74 65 72 61 74 6f 72 20 20 3b 20 5b 76 61    72 5d 20 66 6f 6f 20 69 6e 20 2e 2e 2e 0a 20 20  | .iterator..;.[var].foo.in....... | 
| 183c0 |  6f 62 6a 65 63 74 20 20 20 20 3b 20 6f 62 6a 65    63 74 20 6f 76 65 72 20 77 68 69 63 68 20 77 65  | object....;.object.over.which.we | 
| 183e0 |  27 72 65 20 69 74 65 72 61 74 69 6e 67 0a 20 20    69 6e 2d 70 6f 73 20 20 20 20 3b 20 62 75 66 66  | 're.iterating...in-pos....;.buff | 
| 18400 |  65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27    69 6e 27 20 6b 65 79 77 6f 72 64 0a 20 20 65 61  | er.position.of.'in'.keyword...ea | 
| 18420 |  63 68 2d 70 6f 73 20 20 3b 20 62 75 66 66 65 72    20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 65 61  | ch-pos..;.buffer.position.of.'ea | 
| 18440 |  63 68 27 20 6b 65 79 77 6f 72 64 2c 20 69 66 20    66 6f 72 65 61 63 68 2d 70 0a 20 20 61 77 61 69  | ch'.keyword,.if.foreach-p...awai | 
| 18460 |  74 2d 70 6f 73 20 20 3b 20 62 75 66 66 65 72 20    70 6f 73 69 74 69 6f 6e 20 6f 66 20 27 61 77 61  | t-pos..;.buffer.position.of.'awa | 
| 18480 |  69 74 27 20 6b 65 79 77 6f 72 64 2c 20 69 66 20    66 6f 72 61 77 61 69 74 2d 70 0a 20 20 66 6f 72  | it'.keyword,.if.forawait-p...for | 
| 184a0 |  65 61 63 68 2d 70 20 3b 20 74 20 69 66 20 69 74    27 73 20 61 20 66 6f 72 2d 65 61 63 68 20 6c 6f  | each-p.;.t.if.it's.a.for-each.lo | 
| 184c0 |  6f 70 0a 20 20 66 6f 72 61 77 61 69 74 2d 70 20    3b 20 74 20 69 66 20 69 74 27 73 20 61 20 66 6f  | op...forawait-p.;.t.if.it's.a.fo | 
| 184e0 |  72 2d 61 77 61 69 74 20 6c 6f 6f 70 0a 20 20 66    6f 72 6f 66 2d 70 29 20 20 3b 20 74 20 69 66 20  | r-await.loop...forof-p)..;.t.if. | 
| 18500 |  69 74 27 73 20 61 20 66 6f 72 2d 6f 66 20 6c 6f    6f 70 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74  | it's.a.for-of.loop..(js2--struct | 
| 18520 |  2d 70 75 74 20 27 6a 73 32 2d 66 6f 72 2d 69 6e    2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74  | -put.'js2-for-in-node.'js2-visit | 
| 18540 |  6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 66 6f    72 2d 69 6e 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d  | or.'js2-visit-for-in-node).(js2- | 
| 18560 |  2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32    2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 20 27 6a 73  | -struct-put.'js2-for-in-node.'js | 
| 18580 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65  | 2-printer.'js2-print-for-in-node | 
| 185a0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69    73 69 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 20  | )..(defun.js2-visit-for-in-node. | 
| 185c0 |  28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73    69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d  | (n.v)...(js2-visit-ast.(js2-for- | 
| 185e0 |  69 6e 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72    20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69  | in-node-iterator.n).v)...(js2-vi | 
| 18600 |  73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72    2d 69 6e 2d 6e 6f 64 65 2d 6f 62 6a 65 63 74 20  | sit-ast.(js2-for-in-node-object. | 
| 18620 |  6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73    69 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72 2d  | n).v)...(js2-visit-ast.(js2-for- | 
| 18640 |  69 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20    76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | in-node-body.n).v))..(defun.js2- | 
| 18660 |  70 72 69 6e 74 2d 66 6f 72 2d 69 6e 2d 6e 6f 64    65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28  | print-for-in-node.(n.i)...(let.( | 
| 18680 |  28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70    61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28  | (pad.(js2-make-pad.i)).........( | 
| 186a0 |  66 6f 72 65 61 63 68 20 28 6a 73 32 2d 66 6f 72    2d 69 6e 2d 6e 6f 64 65 2d 66 6f 72 65 61 63 68  | foreach.(js2-for-in-node-foreach | 
| 186c0 |  2d 70 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28    66 6f 72 61 77 61 69 74 20 28 6a 73 32 2d 66 6f  | -p.n)).........(forawait.(js2-fo | 
| 186e0 |  72 2d 69 6e 2d 6e 6f 64 65 2d 66 6f 72 61 77 61    69 74 2d 70 20 6e 29 29 0a 20 20 20 20 20 20 20  | r-in-node-forawait-p.n))........ | 
| 18700 |  20 28 66 6f 72 6f 66 20 28 6a 73 32 2d 66 6f 72    2d 69 6e 2d 6e 6f 64 65 2d 66 6f 72 6f 66 2d 70  | .(forof.(js2-for-in-node-forof-p | 
| 18720 |  20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72    74 20 70 61 64 20 22 66 6f 72 20 22 29 0a 20 20  | .n))).....(insert.pad."for.")... | 
| 18740 |  20 20 28 69 66 20 66 6f 72 65 61 63 68 0a 20 20    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 65  | ..(if.foreach.........(insert."e | 
| 18760 |  61 63 68 20 22 29 29 0a 20 20 20 20 28 69 66 20    66 6f 72 61 77 61 69 74 0a 20 20 20 20 20 20 20  | ach.")).....(if.forawait........ | 
| 18780 |  20 28 69 6e 73 65 72 74 20 22 61 77 61 69 74 20    22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20  | .(insert."await.")).....(insert. | 
| 187a0 |  22 28 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72    69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 66 6f 72  | "(").....(js2-print-ast.(js2-for | 
| 187c0 |  2d 69 6e 2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f    72 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73  | -in-node-iterator.n).0).....(ins | 
| 187e0 |  65 72 74 20 28 69 66 20 66 6f 72 6f 66 20 22 20    6f 66 20 22 20 22 20 69 6e 20 22 29 29 0a 20 20  | ert.(if.forof.".of.".".in."))... | 
| 18800 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74    20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64  | ..(js2-print-ast.(js2-for-in-nod | 
| 18820 |  65 2d 6f 62 6a 65 63 74 20 6e 29 20 30 29 0a 20    20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b 5c  | e-object.n).0).....(insert.").{\ | 
| 18840 |  6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69    6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 66 6f 72  | n").....(js2-print-body.(js2-for | 
| 18860 |  2d 69 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29    20 28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e  | -in-node-body.n).(1+.i)).....(in | 
| 18880 |  73 65 72 74 20 70 61 64 20 22 7d 5c 6e 22 29 29    29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74  | sert.pad."}\n")))..(cl-defstruct | 
| 188a0 |  20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(js2-return-node............... | 
| 188c0 |  20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .(:include.js2-node)............ | 
| 188e0 |  20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f    72 20 6d 61 6b 65 2d 6a 73 32 2d 72 65 74 75 72  | ....(:constructor.make-js2-retur | 
| 18900 |  6e 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79    70 65 20 6a 73 32 2d 52 45 54 55 52 4e 29 0a 20  | n-node.(&key.(type.js2-RETURN).. | 
| 18920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d  | .......................(pos.js2- | 
| 18960 |  74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ts-cursor)...................... | 
| 18980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 189a0 |  20 20 20 6c 65 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...len.......................... | 
| 189c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72  | ...............................r | 
| 189e0 |  65 74 76 61 6c 29 29 29 0a 20 20 22 41 53 54 20    6e 6f 64 65 20 66 6f 72 20 61 20 72 65 74 75 72  | etval)))..."AST.node.for.a.retur | 
| 18a00 |  6e 20 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20    72 65 74 76 61 6c 29 20 20 3b 20 65 78 70 72 65  | n.statement."...retval)..;.expre | 
| 18a20 |  73 73 69 6f 6e 20 74 6f 20 72 65 74 75 72 6e 2c    20 6f 72 20 27 75 6e 64 65 66 69 6e 65 64 0a 0a  | ssion.to.return,.or.'undefined.. | 
| 18a40 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64  | (js2--struct-put.'js2-return-nod | 
| 18a60 |  65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27    6a 73 32 2d 76 69 73 69 74 2d 72 65 74 75 72 6e  | e.'js2-visitor.'js2-visit-return | 
| 18a80 |  2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 72 65 74  | -node).(js2--struct-put.'js2-ret | 
| 18aa0 |  75 72 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72    69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74  | urn-node.'js2-printer.'js2-print | 
| 18ac0 |  2d 72 65 74 75 72 6e 2d 6e 6f 64 65 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d  | -return-node)..(defun.js2-visit- | 
| 18ae0 |  72 65 74 75 72 6e 2d 6e 6f 64 65 20 28 6e 20 76    29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61  | return-node.(n.v)...(js2-visit-a | 
| 18b00 |  73 74 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e    6f 64 65 2d 72 65 74 76 61 6c 20 6e 29 20 76 29  | st.(js2-return-node-retval.n).v) | 
| 18b20 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72    69 6e 74 2d 72 65 74 75 72 6e 2d 6e 6f 64 65 20  | )..(defun.js2-print-return-node. | 
| 18b40 |  28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20    28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29  | (n.i)...(insert.(js2-make-pad.i) | 
| 18b60 |  20 22 72 65 74 75 72 6e 22 29 0a 20 20 28 77 68    65 6e 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e  | ."return")...(when.(js2-return-n | 
| 18b80 |  6f 64 65 2d 72 65 74 76 61 6c 20 6e 29 0a 20 20    20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20  | ode-retval.n).....(insert.".").. | 
| 18ba0 |  20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73    74 20 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f  | ...(js2-print-ast.(js2-return-no | 
| 18bc0 |  64 65 2d 72 65 74 76 61 6c 20 6e 29 20 30 29 29    0a 20 20 28 69 6e 73 65 72 74 20 22 3b 5c 6e 22  | de-retval.n).0))...(insert.";\n" | 
| 18be0 |  29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63    74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 0a 20  | ))..(cl-defstruct.(js2-if-node.. | 
| 18c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a    69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65  | ..............(:include.js2-node | 
| 18c20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d  | )................(:constructor.m | 
| 18c40 |  61 6b 65 2d 6a 73 32 2d 69 66 2d 6e 6f 64 65 20    28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d  | ake-js2-if-node.(&key.(type.js2- | 
| 18c60 |  49 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | IF)............................. | 
| 18c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32  | ........................(pos.js2 | 
| 18ca0 |  2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -ts-cursor)..................... | 
| 18cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18ce0 |  6c 65 6e 20 63 6f 6e 64 69 74 69 6f 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | len.condition................... | 
| 18d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18d20 |  20 20 74 68 65 6e 2d 70 61 72 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..then-part..................... | 
| 18d40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 18d60 |  65 6c 73 65 2d 70 6f 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | else-pos........................ | 
| 18d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73  | .............................els | 
| 18da0 |  65 2d 70 61 72 74 20 6c 70 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-part.lp....................... | 
| 18dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 70  | ..............................rp | 
| 18de0 |  29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20    66 6f 72 20 61 6e 20 69 66 2d 73 74 61 74 65 6d  | )))..."AST.node.for.an.if-statem | 
| 18e00 |  65 6e 74 2e 22 0a 20 20 63 6f 6e 64 69 74 69 6f    6e 20 20 20 3b 20 65 78 70 72 65 73 73 69 6f 6e  | ent."...condition...;.expression | 
| 18e20 |  0a 20 20 74 68 65 6e 2d 70 61 72 74 20 20 20 3b    20 73 74 61 74 65 6d 65 6e 74 20 6f 72 20 62 6c  | ...then-part...;.statement.or.bl | 
| 18e40 |  6f 63 6b 0a 20 20 65 6c 73 65 2d 70 6f 73 20 20    20 20 3b 20 6f 70 74 69 6f 6e 61 6c 20 62 75 66  | ock...else-pos....;.optional.buf | 
| 18e60 |  66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20    27 65 6c 73 65 27 20 6b 65 79 77 6f 72 64 0a 20  | fer.position.of.'else'.keyword.. | 
| 18e80 |  20 65 6c 73 65 2d 70 61 72 74 20 20 20 3b 20 6f    70 74 69 6f 6e 61 6c 20 73 74 61 74 65 6d 65 6e  | .else-part...;.optional.statemen | 
| 18ea0 |  74 20 6f 72 20 62 6c 6f 63 6b 0a 20 20 6c 70 20    20 20 20 20 20 20 20 20 20 3b 20 70 6f 73 69 74  | t.or.block...lp..........;.posit | 
| 18ec0 |  69 6f 6e 20 6f 66 20 6c 65 66 74 2d 70 61 72 65    6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65  | ion.of.left-paren,.nil.if.omitte | 
| 18ee0 |  64 0a 20 20 72 70 29 20 20 20 20 20 20 20 20 20    3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 72 69  | d...rp).........;.position.of.ri | 
| 18f00 |  67 68 74 2d 70 61 72 65 6e 2c 20 6e 69 6c 20 69    66 20 6f 6d 69 74 74 65 64 0a 0a 28 6a 73 32 2d  | ght-paren,.nil.if.omitted..(js2- | 
| 18f20 |  2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32    2d 69 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69  | -struct-put.'js2-if-node.'js2-vi | 
| 18f40 |  73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74    2d 69 66 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d  | sitor.'js2-visit-if-node).(js2-- | 
| 18f60 |  73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d    69 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69  | struct-put.'js2-if-node.'js2-pri | 
| 18f80 |  6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d    69 66 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e  | nter.'js2-print-if-node)..(defun | 
| 18fa0 |  20 6a 73 32 2d 76 69 73 69 74 2d 69 66 2d 6e 6f    64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d  | .js2-visit-if-node.(n.v)...(js2- | 
| 18fc0 |  76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 69    66 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 6f 6e  | visit-ast.(js2-if-node-condition | 
| 18fe0 |  20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69    73 69 74 2d 61 73 74 20 28 6a 73 32 2d 69 66 2d  | .n).v)...(js2-visit-ast.(js2-if- | 
| 19000 |  6e 6f 64 65 2d 74 68 65 6e 2d 70 61 72 74 20 6e    29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | node-then-part.n).v)...(js2-visi | 
| 19020 |  74 2d 61 73 74 20 28 6a 73 32 2d 69 66 2d 6e 6f    64 65 2d 65 6c 73 65 2d 70 61 72 74 20 6e 29 20  | t-ast.(js2-if-node-else-part.n). | 
| 19040 |  76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 72 69 6e 74 2d 69 66 2d 6e 6f 64 65 20 28 6e  | v))..(defun.js2-print-if-node.(n | 
| 19060 |  20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61 64    20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69  | .i)...(let.((pad.(js2-make-pad.i | 
| 19080 |  29 29 0a 20 20 20 20 20 20 20 20 28 74 68 65 6e    2d 70 61 72 74 20 28 6a 73 32 2d 69 66 2d 6e 6f  | )).........(then-part.(js2-if-no | 
| 190a0 |  64 65 2d 74 68 65 6e 2d 70 61 72 74 20 6e 29 29    0a 20 20 20 20 20 20 20 20 28 65 6c 73 65 2d 70  | de-then-part.n)).........(else-p | 
| 190c0 |  61 72 74 20 28 6a 73 32 2d 69 66 2d 6e 6f 64 65    2d 65 6c 73 65 2d 70 61 72 74 20 6e 29 29 29 0a  | art.(js2-if-node-else-part.n))). | 
| 190e0 |  20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20    22 69 66 20 28 22 29 0a 20 20 20 20 28 6a 73 32  | ....(insert.pad."if.(").....(js2 | 
| 19100 |  2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d    69 66 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74 69 6f  | -print-ast.(js2-if-node-conditio | 
| 19120 |  6e 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73    65 72 74 20 22 29 20 7b 5c 6e 22 29 0a 20 20 20  | n.n).0).....(insert.").{\n").... | 
| 19140 |  20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64 79    20 74 68 65 6e 2d 70 61 72 74 20 28 31 2b 20 69  | .(js2-print-body.then-part.(1+.i | 
| 19160 |  29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70    61 64 20 22 7d 22 29 0a 20 20 20 20 28 63 6f 6e  | )).....(insert.pad."}").....(con | 
| 19180 |  64 0a 20 20 20 20 20 28 28 6e 6f 74 20 65 6c 73    65 2d 70 61 72 74 29 0a 20 20 20 20 20 20 28 69  | d......((not.else-part).......(i | 
| 191a0 |  6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20    20 20 28 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d  | nsert."\n"))......((js2-if-node- | 
| 191c0 |  70 20 65 6c 73 65 2d 70 61 72 74 29 0a 20 20 20    20 20 20 28 69 6e 73 65 72 74 20 22 20 65 6c 73  | p.else-part).......(insert.".els | 
| 191e0 |  65 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d    70 72 69 6e 74 2d 62 6f 64 79 20 65 6c 73 65 2d  | e.").......(js2-print-body.else- | 
| 19200 |  70 61 72 74 20 69 29 29 0a 20 20 20 20 20 28 74    0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22  | part.i))......(t.......(insert." | 
| 19220 |  20 65 6c 73 65 20 7b 5c 6e 22 29 0a 20 20 20 20    20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64  | .else.{\n").......(js2-print-bod | 
| 19240 |  79 20 65 6c 73 65 2d 70 61 72 74 20 28 31 2b 20    69 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72  | y.else-part.(1+.i)).......(inser | 
| 19260 |  74 20 70 61 64 20 22 7d 5c 6e 22 29 29 29 29 29    0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20  | t.pad."}\n")))))..(cl-defstruct. | 
| 19280 |  28 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64    69 6e 67 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20  | (js2-export-binding-node........ | 
| 192a0 |  20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64    65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20  | ........(:include.js2-node)..... | 
| 192c0 |  20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e    73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73  | ...........(:constructor.make-js | 
| 192e0 |  32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67    2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70  | 2-export-binding-node.(&key.(typ | 
| 19300 |  65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.-1)........................... | 
| 19320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19340 |  20 20 20 20 20 20 70 6f 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......pos....................... | 
| 19360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19380 |  20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..........len................... | 
| 193a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 193c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f    63 61 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20  | ..............local-name........ | 
| 193e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 65 78 74 65 72 6e 2d  | .........................extern- | 
| 19420 |  6e 61 6d 65 29 29 29 0a 20 20 22 41 53 54 20 6e    6f 64 65 20 66 6f 72 20 61 6e 20 65 78 74 65 72  | name)))..."AST.node.for.an.exter | 
| 19440 |  6e 61 6c 20 73 79 6d 62 6f 6c 20 62 69 6e 64 69    6e 67 2e 0a 49 74 20 63 6f 6e 74 61 69 6e 73 20  | nal.symbol.binding..It.contains. | 
| 19460 |  61 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20 6e 6f 64    65 20 77 68 69 63 68 20 69 73 20 74 68 65 20 6e  | a.local-name.node.which.is.the.n | 
| 19480 |  61 6d 65 20 6f 66 20 74 68 65 20 76 61 6c 75 65    20 69 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 20  | ame.of.the.value.in.the.current. | 
| 194a0 |  73 63 6f 70 65 2c 20 61 6e 64 20 65 78 74 65 72    6e 2d 6e 61 6d 65 20 77 68 69 63 68 20 69 73 20  | scope,.and.extern-name.which.is. | 
| 194c0 |  74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20    76 61 6c 75 65 20 69 6e 20 74 68 65 0a 69 6d 70  | the.name.of.the.value.in.the.imp | 
| 194e0 |  6f 72 74 65 64 20 6f 72 20 65 78 70 6f 72 74 65    64 20 73 63 6f 70 65 2e 20 42 79 20 64 65 66 61  | orted.or.exported.scope..By.defa | 
| 19500 |  75 6c 74 20 74 68 65 73 65 20 61 72 65 20 74 68    65 20 73 61 6d 65 2c 20 62 75 74 20 69 66 20 74  | ult.these.are.the.same,.but.if.t | 
| 19520 |  68 65 0a 6e 61 6d 65 20 69 73 20 61 6c 69 61 73    65 64 20 61 73 20 69 6e 20 7b 66 6f 6f 20 61 73  | he.name.is.aliased.as.in.{foo.as | 
| 19540 |  20 62 61 72 7d 2c 20 69 74 20 77 6f 75 6c 64 20    68 61 76 65 20 61 6e 20 65 78 74 65 72 6e 2d 6e  | .bar},.it.would.have.an.extern-n | 
| 19560 |  61 6d 65 20 6e 6f 64 65 0a 63 6f 6e 74 61 69 6e    69 6e 67 20 60 66 6f 6f 27 20 61 6e 64 20 61 20  | ame.node.containing.`foo'.and.a. | 
| 19580 |  6c 6f 63 61 6c 2d 6e 61 6d 65 20 6e 6f 64 65 20    63 6f 6e 74 61 69 6e 69 6e 67 20 60 62 61 72 27  | local-name.node.containing.`bar' | 
| 195a0 |  2e 22 0a 20 20 6c 6f 63 61 6c 2d 6e 61 6d 65 20    3b 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20  | ."...local-name.;.js2-name-node. | 
| 195c0 |  77 69 74 68 20 74 68 65 20 76 61 72 69 61 62 6c    65 20 6e 61 6d 65 20 69 6e 20 74 68 69 73 20 73  | with.the.variable.name.in.this.s | 
| 195e0 |  63 6f 70 65 0a 20 20 65 78 74 65 72 6e 2d 6e 61    6d 65 29 20 20 20 3b 20 6a 73 32 2d 6e 61 6d 65  | cope...extern-name)...;.js2-name | 
| 19600 |  2d 6e 6f 64 65 20 77 69 74 68 20 74 68 65 20 76    61 6c 75 65 20 6e 61 6d 65 20 69 6e 20 74 68 65  | -node.with.the.value.name.in.the | 
| 19620 |  20 65 78 70 6f 72 74 69 6e 67 20 6d 6f 64 75 6c    65 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | .exporting.module..(js2--struct- | 
| 19640 |  70 75 74 20 27 6a 73 32 2d 65 78 70 6f 72 74 2d    62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 27 6a 73  | put.'js2-export-binding-node.'js | 
| 19660 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 65 78 74 65 72 6e 2d 62 69 6e 64  | 2-printer.'js2-print-extern-bind | 
| 19680 |  69 6e 67 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63    74 2d 70 75 74 20 27 6a 73 32 2d 65 78 70 6f 72  | ing).(js2--struct-put.'js2-expor | 
| 196a0 |  74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 27    6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32  | t-binding-node.'js2-visitor.'js2 | 
| 196c0 |  2d 76 69 73 69 74 2d 65 78 74 65 72 6e 2d 62 69    6e 64 69 6e 67 29 0a 0a 28 64 65 66 75 6e 20 6a  | -visit-extern-binding)..(defun.j | 
| 196e0 |  73 32 2d 76 69 73 69 74 2d 65 78 74 65 72 6e 2d    62 69 6e 64 69 6e 67 20 28 6e 20 76 29 0a 20 20  | s2-visit-extern-binding.(n.v)... | 
| 19700 |  22 56 69 73 69 74 20 61 6e 20 65 78 74 65 72 6e    20 62 69 6e 64 69 6e 67 20 6e 6f 64 65 2e 20 46  | "Visit.an.extern.binding.node..F | 
| 19720 |  69 72 73 74 20 76 69 73 69 74 20 74 68 65 20 6c    6f 63 61 6c 2d 6e 61 6d 65 2c 20 61 6e 64 2c 20  | irst.visit.the.local-name,.and,. | 
| 19740 |  69 66 0a 64 69 66 66 65 72 65 6e 74 2c 20 76 69    73 69 74 20 74 68 65 20 65 78 74 65 72 6e 2d 6e  | if.different,.visit.the.extern-n | 
| 19760 |  61 6d 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c    6f 63 61 6c 2d 6e 61 6d 65 20 28 6a 73 32 2d 65  | ame."...(let.((local-name.(js2-e | 
| 19780 |  78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f    64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65 20 6e 29  | xport-binding-node-local-name.n) | 
| 197a0 |  29 0a 20 20 20 20 20 20 20 20 28 65 78 74 65 72    6e 2d 6e 61 6d 65 20 28 6a 73 32 2d 65 78 70 6f  | ).........(extern-name.(js2-expo | 
| 197c0 |  72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d    65 78 74 65 72 6e 2d 6e 61 6d 65 20 6e 29 29 29  | rt-binding-node-extern-name.n))) | 
| 197e0 |  0a 20 20 20 20 28 77 68 65 6e 20 6c 6f 63 61 6c    2d 6e 61 6d 65 0a 20 20 20 20 20 20 28 6a 73 32  | .....(when.local-name.......(js2 | 
| 19800 |  2d 76 69 73 69 74 2d 61 73 74 20 6c 6f 63 61 6c    2d 6e 61 6d 65 20 76 29 29 0a 20 20 20 20 28 77  | -visit-ast.local-name.v)).....(w | 
| 19820 |  68 65 6e 20 28 6e 6f 74 20 28 65 71 75 61 6c 20    6c 6f 63 61 6c 2d 6e 61 6d 65 20 65 78 74 65 72  | hen.(not.(equal.local-name.exter | 
| 19840 |  6e 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28    6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 65 78  | n-name)).......(js2-visit-ast.ex | 
| 19860 |  74 65 72 6e 2d 6e 61 6d 65 20 76 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e  | tern-name.v))))..(defun.js2-prin | 
| 19880 |  74 2d 65 78 74 65 72 6e 2d 62 69 6e 64 69 6e 67    20 28 6e 20 5f 69 29 0a 20 20 22 50 72 69 6e 74  | t-extern-binding.(n._i)..."Print | 
| 198a0 |  20 61 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f    6e 20 6f 66 20 61 20 73 69 6e 67 6c 65 20 65 78  | .a.representation.of.a.single.ex | 
| 198c0 |  74 65 72 6e 20 62 69 6e 64 69 6e 67 2e 20 45 2e    67 2e 20 60 66 6f 6f 27 20 6f 72 0a 60 66 6f 6f  | tern.binding..E.g..`foo'.or.`foo | 
| 198e0 |  20 61 73 20 62 61 72 27 2e 22 0a 20 20 28 6c 65    74 20 28 28 6c 6f 63 61 6c 2d 6e 61 6d 65 20 28  | .as.bar'."...(let.((local-name.( | 
| 19900 |  6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69    6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61  | js2-export-binding-node-local-na | 
| 19920 |  6d 65 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28    65 78 74 65 72 6e 2d 6e 61 6d 65 20 28 6a 73 32  | me.n)).........(extern-name.(js2 | 
| 19940 |  2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d    6e 6f 64 65 2d 65 78 74 65 72 6e 2d 6e 61 6d 65  | -export-binding-node-extern-name | 
| 19960 |  20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72    74 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65  | .n))).....(insert.(js2-name-node | 
| 19980 |  2d 6e 61 6d 65 20 65 78 74 65 72 6e 2d 6e 61 6d    65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e  | -name.extern-name)).....(when.(n | 
| 199a0 |  6f 74 20 28 65 71 75 61 6c 20 6c 6f 63 61 6c 2d    6e 61 6d 65 20 65 78 74 65 72 6e 2d 6e 61 6d 65  | ot.(equal.local-name.extern-name | 
| 199c0 |  29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74    20 22 20 61 73 20 22 29 0a 20 20 20 20 20 20 28  | )).......(insert.".as.").......( | 
| 199e0 |  69 6e 73 65 72 74 20 28 6a 73 32 2d 6e 61 6d 65    2d 6e 6f 64 65 2d 6e 61 6d 65 20 6c 6f 63 61 6c  | insert.(js2-name-node-name.local | 
| 19a00 |  2d 6e 61 6d 65 29 29 29 29 29 0a 0a 0a 28 63 6c    2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d  | -name)))))...(cl-defstruct.(js2- | 
| 19a20 |  69 6d 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63  | import-node................(:inc | 
| 19a40 |  6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | lude.js2-node)................(: | 
| 19a60 |  63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65    2d 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65  | constructor.make-js2-import-node | 
| 19a80 |  20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32    2d 49 4d 50 4f 52 54 29 0a 20 20 20 20 20 20 20  | .(&key.(type.js2-IMPORT)........ | 
| 19aa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65  | .................(pos.(js2-curre | 
| 19ae0 |  6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt-token-beg)).................. | 
| 19b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19b20 |  20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......len...................... | 
| 19b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19b60 |  20 20 20 69 6d 70 6f 72 74 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...import....................... | 
| 19b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 19ba0 |  20 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..from.......................... | 
| 19bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d  | ...............................m | 
| 19be0 |  6f 64 75 6c 65 2d 69 64 29 29 29 0a 20 20 22 41    53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 69  | odule-id)))..."AST.node.for.an.i | 
| 19c00 |  6d 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74 2e    20 49 74 20 66 6f 6c 6c 6f 77 73 20 74 68 65 20  | mport.statement..It.follows.the. | 
| 19c20 |  66 6f 72 6d 0a 0a 69 6d 70 6f 72 74 20 4d 6f 64    75 6c 65 53 70 65 63 69 66 69 65 72 3b 0a 69 6d  | form..import.ModuleSpecifier;.im | 
| 19c40 |  70 6f 72 74 20 49 6d 70 6f 72 74 43 6c 61 75 73    65 20 46 72 6f 6d 43 6c 61 75 73 65 3b 22 0a 20  | port.ImportClause.FromClause;".. | 
| 19c60 |  20 69 6d 70 6f 72 74 20 20 20 20 20 3b 20 6a 73    32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d  | .import.....;.js2-import-clause- | 
| 19c80 |  6e 6f 64 65 20 73 70 65 63 69 66 79 69 6e 67 20    77 68 69 63 68 20 6e 61 6d 65 73 20 61 72 65 20  | node.specifying.which.names.are. | 
| 19ca0 |  74 6f 20 69 6d 70 6f 72 74 65 64 2e 0a 20 20 66    72 6f 6d 20 20 20 20 20 20 20 3b 20 6a 73 32 2d  | to.imported....from.......;.js2- | 
| 19cc0 |  66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65    20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 65 20  | from-clause-node.indicating.the. | 
| 19ce0 |  6d 6f 64 75 6c 65 20 66 72 6f 6d 20 77 68 69 63    68 20 74 6f 20 69 6d 70 6f 72 74 2e 0a 20 20 6d  | module.from.which.to.import....m | 
| 19d00 |  6f 64 75 6c 65 2d 69 64 29 20 3b 20 6d 6f 64 75    6c 65 2d 69 64 20 6f 66 20 74 68 65 20 69 6d 70  | odule-id).;.module-id.of.the.imp | 
| 19d20 |  6f 72 74 2e 20 45 2e 67 2e 20 27 73 72 63 2f 6d    79 6c 69 62 27 2e 0a 0a 28 6a 73 32 2d 2d 73 74  | ort..E.g..'src/mylib'...(js2--st | 
| 19d40 |  72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69 6d    70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70  | ruct-put.'js2-import-node.'js2-p | 
| 19d60 |  72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e    74 2d 69 6d 70 6f 72 74 29 0a 28 6a 73 32 2d 2d  | rinter.'js2-print-import).(js2-- | 
| 19d80 |  73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d    69 6d 70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32  | struct-put.'js2-import-node.'js2 | 
| 19da0 |  2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69    73 69 74 2d 69 6d 70 6f 72 74 29 0a 0a 28 64 65  | -visitor.'js2-visit-import)..(de | 
| 19dc0 |  66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 69 6d    70 6f 72 74 20 28 6e 20 76 29 0a 20 20 28 6c 65  | fun.js2-visit-import.(n.v)...(le | 
| 19de0 |  74 20 28 28 69 6d 70 6f 72 74 2d 63 6c 61 75 73    65 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f  | t.((import-clause.(js2-import-no | 
| 19e00 |  64 65 2d 69 6d 70 6f 72 74 20 6e 29 29 0a 20 20    20 20 20 20 20 20 28 66 72 6f 6d 2d 63 6c 61 75  | de-import.n)).........(from-clau | 
| 19e20 |  73 65 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e    6f 64 65 2d 66 72 6f 6d 20 6e 29 29 29 0a 20 20  | se.(js2-import-node-from.n)))... | 
| 19e40 |  20 20 28 77 68 65 6e 20 69 6d 70 6f 72 74 2d 63    6c 61 75 73 65 0a 20 20 20 20 20 20 28 6a 73 32  | ..(when.import-clause.......(js2 | 
| 19e60 |  2d 76 69 73 69 74 2d 61 73 74 20 69 6d 70 6f 72    74 2d 63 6c 61 75 73 65 20 76 29 29 0a 20 20 20  | -visit-ast.import-clause.v)).... | 
| 19e80 |  20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75    73 65 0a 20 20 20 20 20 20 28 6a 73 32 2d 76 69  | .(when.from-clause.......(js2-vi | 
| 19ea0 |  73 69 74 2d 61 73 74 20 66 72 6f 6d 2d 63 6c 61    75 73 65 20 76 29 29 29 29 0a 0a 28 64 65 66 75  | sit-ast.from-clause.v))))..(defu | 
| 19ec0 |  6e 20 6a 73 32 2d 70 72 69 6e 74 2d 69 6d 70 6f    72 74 20 28 6e 20 69 29 0a 20 20 22 50 72 69 6e  | n.js2-print-import.(n.i)..."Prin | 
| 19ee0 |  74 73 20 61 20 72 65 70 72 65 73 65 6e 74 61 74    69 6f 6e 20 6f 66 20 74 68 65 20 69 6d 70 6f 72  | ts.a.representation.of.the.impor | 
| 19f00 |  74 20 6e 6f 64 65 22 0a 20 20 28 6c 65 74 20 28    28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70  | t.node"...(let.((pad.(js2-make-p | 
| 19f20 |  61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28    69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6a  | ad.i)).........(import-clause.(j | 
| 19f40 |  73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 69    6d 70 6f 72 74 20 6e 29 29 0a 20 20 20 20 20 20  | s2-import-node-import.n))....... | 
| 19f60 |  20 20 28 66 72 6f 6d 2d 63 6c 61 75 73 65 20 28    6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d  | ..(from-clause.(js2-import-node- | 
| 19f80 |  66 72 6f 6d 20 6e 29 29 0a 20 20 20 20 20 20 20    20 28 6d 6f 64 75 6c 65 2d 69 64 20 28 6a 73 32  | from.n)).........(module-id.(js2 | 
| 19fa0 |  2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6d 6f 64    75 6c 65 2d 69 64 20 6e 29 29 29 0a 20 20 20 20  | -import-node-module-id.n)))..... | 
| 19fc0 |  28 69 6e 73 65 72 74 20 70 61 64 20 22 69 6d 70    6f 72 74 20 22 29 0a 20 20 20 20 28 69 66 20 69  | (insert.pad."import.").....(if.i | 
| 19fe0 |  6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a 20 20 20    20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20  | mport-clause.........(progn..... | 
| 1a000 |  20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74    2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 69  | ......(js2-print-import-clause.i | 
| 1a020 |  6d 70 6f 72 74 2d 63 6c 61 75 73 65 29 0a 20 20    20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20  | mport-clause)...........(insert. | 
| 1a040 |  22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 70 72 69 6e 74 2d 66 72 6f 6d 2d 63  | ".")...........(js2-print-from-c | 
| 1a060 |  6c 61 75 73 65 20 66 72 6f 6d 2d 63 6c 61 75 73    65 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72  | lause.from-clause)).......(inser | 
| 1a080 |  74 20 22 27 22 29 0a 20 20 20 20 20 20 28 69 6e    73 65 72 74 20 6d 6f 64 75 6c 65 2d 69 64 29 0a  | t."'").......(insert.module-id). | 
| 1a0a0 |  20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 27    22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20  | ......(insert."'")).....(insert. | 
| 1a0c0 |  22 3b 5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65    66 73 74 72 75 63 74 20 28 6a 73 32 2d 69 6d 70  | ";\n")))..(cl-defstruct.(js2-imp | 
| 1a0e0 |  6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ort-clause-node................( | 
| 1a100 |  3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | :include.js2-node).............. | 
| 1a120 |  20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20    6d 61 6b 65 2d 6a 73 32 2d 69 6d 70 6f 72 74 2d  | ..(:constructor.make-js2-import- | 
| 1a140 |  63 6c 61 75 73 65 2d 6e 6f 64 65 20 28 26 6b 65    79 20 28 74 79 70 65 20 2d 31 29 0a 20 20 20 20  | clause-node.(&key.(type.-1)..... | 
| 1a160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1a180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 70 6f 73 0a 20  | ...........................pos.. | 
| 1a1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1a1c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65  | ..............................le | 
| 1a1e0 |  6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n............................... | 
| 1a200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1a220 |  20 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .namespace-import............... | 
| 1a240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1a260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 0a 20  | .................named-imports.. | 
| 1a280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1a2a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65  | ..............................de | 
| 1a2c0 |  66 61 75 6c 74 2d 62 69 6e 64 69 6e 67 29 29 29    0a 20 20 22 41 53 54 20 6e 6f 64 65 20 63 6f 72  | fault-binding)))..."AST.node.cor | 
| 1a2e0 |  72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68    65 20 69 6d 70 6f 72 74 20 63 6c 61 75 73 65 20  | responding.to.the.import.clause. | 
| 1a300 |  6f 66 20 61 6e 20 69 6d 70 6f 72 74 20 73 74 61    74 65 6d 65 6e 74 2e 20 54 68 69 73 20 69 73 0a  | of.an.import.statement..This.is. | 
| 1a320 |  74 68 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74    68 65 20 69 6d 70 6f 72 74 20 74 68 61 74 20 62  | the.portion.of.the.import.that.b | 
| 1a340 |  69 6e 64 69 6e 67 73 20 6e 61 6d 65 73 20 66 72    6f 6d 20 74 68 65 20 65 78 74 65 72 6e 61 6c 20  | indings.names.from.the.external. | 
| 1a360 |  63 6f 6e 74 65 78 74 20 74 6f 20 74 68 65 0a 6c    6f 63 61 6c 20 63 6f 6e 74 65 78 74 2e 22 0a 20  | context.to.the.local.context.".. | 
| 1a380 |  20 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72    74 20 3b 20 6a 73 32 2d 6e 61 6d 65 73 70 61 63  | .namespace-import.;.js2-namespac | 
| 1a3a0 |  65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2e 20 45    2e 67 2e 20 27 2a 20 61 73 20 6c 69 62 27 0a 20  | e-import-node..E.g..'*.as.lib'.. | 
| 1a3c0 |  20 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 20    20 20 3b 20 6c 69 73 70 20 6c 69 73 74 20 6f 66  | .named-imports....;.lisp.list.of | 
| 1a3e0 |  20 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64    69 6e 67 2d 6e 6f 64 65 20 66 6f 72 20 61 6c 6c  | .js2-export-binding-node.for.all | 
| 1a400 |  20 6e 61 6d 65 64 20 69 6d 70 6f 72 74 73 2e 0a    20 20 64 65 66 61 75 6c 74 2d 62 69 6e 64 69 6e  | .named.imports....default-bindin | 
| 1a420 |  67 29 20 3b 20 6a 73 32 2d 65 78 70 6f 72 74 2d    62 69 6e 64 69 6e 67 2d 6e 6f 64 65 20 66 6f 72  | g).;.js2-export-binding-node.for | 
| 1a440 |  20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6d 70    6f 72 74 20 62 69 6e 64 69 6e 67 0a 0a 28 6a 73  | .the.default.import.binding..(js | 
| 1a460 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65  | 2--struct-put.'js2-import-clause | 
| 1a480 |  2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74    6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69 6d  | -node.'js2-visitor.'js2-visit-im | 
| 1a4a0 |  70 6f 72 74 2d 63 6c 61 75 73 65 29 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | port-clause).(js2--struct-put.'j | 
| 1a4c0 |  73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65    2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74  | s2-import-clause-node.'js2-print | 
| 1a4e0 |  65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 69 6d    70 6f 72 74 2d 63 6c 61 75 73 65 29 0a 0a 28 64  | er.'js2-print-import-clause)..(d | 
| 1a500 |  65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 69    6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6e 20  | efun.js2-visit-import-clause.(n. | 
| 1a520 |  76 29 0a 20 20 28 6c 65 74 20 28 28 6e 73 2d 69    6d 70 6f 72 74 20 28 6a 73 32 2d 69 6d 70 6f 72  | v)...(let.((ns-import.(js2-impor | 
| 1a540 |  74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61    6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e  | t-clause-node-namespace-import.n | 
| 1a560 |  29 29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65    64 2d 69 6d 70 6f 72 74 73 20 28 6a 73 32 2d 69  | )).........(named-imports.(js2-i | 
| 1a580 |  6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64    65 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20  | mport-clause-node-named-imports. | 
| 1a5a0 |  6e 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66    61 75 6c 74 20 28 6a 73 32 2d 69 6d 70 6f 72 74  | n)).........(default.(js2-import | 
| 1a5c0 |  2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 64 65 66    61 75 6c 74 2d 62 69 6e 64 69 6e 67 20 6e 29 29  | -clause-node-default-binding.n)) | 
| 1a5e0 |  29 0a 20 20 20 20 28 77 68 65 6e 20 64 65 66 61    75 6c 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 76  | ).....(when.default.......(js2-v | 
| 1a600 |  69 73 69 74 2d 61 73 74 20 64 65 66 61 75 6c 74    20 76 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e  | isit-ast.default.v)).....(when.n | 
| 1a620 |  73 2d 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 28    6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 6e 73  | s-import.......(js2-visit-ast.ns | 
| 1a640 |  2d 69 6d 70 6f 72 74 20 76 29 29 0a 20 20 20 20    28 77 68 65 6e 20 6e 61 6d 65 64 2d 69 6d 70 6f  | -import.v)).....(when.named-impo | 
| 1a660 |  72 74 73 0a 20 20 20 20 20 20 28 64 6f 6c 69 73    74 20 28 69 6d 70 6f 72 74 20 6e 61 6d 65 64 2d  | rts.......(dolist.(import.named- | 
| 1a680 |  69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20 20 20    20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20  | imports).........(js2-visit-ast. | 
| 1a6a0 |  69 6d 70 6f 72 74 20 76 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d  | import.v)))))..(defun.js2-print- | 
| 1a6c0 |  69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6e    29 0a 20 20 28 6c 65 74 20 28 28 6e 73 2d 69 6d  | import-clause.(n)...(let.((ns-im | 
| 1a6e0 |  70 6f 72 74 20 28 6a 73 32 2d 69 6d 70 6f 72 74    2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d  | port.(js2-import-clause-node-nam | 
| 1a700 |  65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e 29    29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 64  | espace-import.n)).........(named | 
| 1a720 |  2d 69 6d 70 6f 72 74 73 20 28 6a 73 32 2d 69 6d    70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64 65  | -imports.(js2-import-clause-node | 
| 1a740 |  2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73 20 6e    29 29 0a 20 20 20 20 20 20 20 20 28 64 65 66 61  | -named-imports.n)).........(defa | 
| 1a760 |  75 6c 74 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d    63 6c 61 75 73 65 2d 6e 6f 64 65 2d 64 65 66 61  | ult.(js2-import-clause-node-defa | 
| 1a780 |  75 6c 74 2d 62 69 6e 64 69 6e 67 20 6e 29 29 29    0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20  | ult-binding.n))).....(cond...... | 
| 1a7a0 |  28 28 61 6e 64 20 64 65 66 61 75 6c 74 20 6e 73    2d 69 6d 70 6f 72 74 29 0a 20 20 20 20 20 20 28  | ((and.default.ns-import).......( | 
| 1a7c0 |  6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 64 65    66 61 75 6c 74 29 0a 20 20 20 20 20 20 28 69 6e  | js2-print-ast.default).......(in | 
| 1a7e0 |  73 65 72 74 20 22 2c 20 22 29 0a 20 20 20 20 20    20 28 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65  | sert.",.").......(js2-print-name | 
| 1a800 |  73 70 61 63 65 2d 69 6d 70 6f 72 74 20 6e 73 2d    69 6d 70 6f 72 74 29 29 0a 20 20 20 20 20 28 28  | space-import.ns-import))......(( | 
| 1a820 |  61 6e 64 20 64 65 66 61 75 6c 74 20 6e 61 6d 65    64 2d 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20  | and.default.named-imports)...... | 
| 1a840 |  20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20    64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 28  | .(js2-print-ast.default).......( | 
| 1a860 |  69 6e 73 65 72 74 20 22 2c 20 22 29 0a 20 20 20    20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 6e 61  | insert.",.").......(js2-print-na | 
| 1a880 |  6d 65 64 2d 69 6d 70 6f 72 74 73 20 6e 61 6d 65    64 2d 69 6d 70 6f 72 74 73 29 29 0a 20 20 20 20  | med-imports.named-imports))..... | 
| 1a8a0 |  20 28 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20    28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 64  | .(default.......(js2-print-ast.d | 
| 1a8c0 |  65 66 61 75 6c 74 29 29 0a 20 20 20 20 20 28 6e    73 2d 69 6d 70 6f 72 74 0a 20 20 20 20 20 20 28  | efault))......(ns-import.......( | 
| 1a8e0 |  6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65 73 70    61 63 65 2d 69 6d 70 6f 72 74 20 6e 73 2d 69 6d  | js2-print-namespace-import.ns-im | 
| 1a900 |  70 6f 72 74 29 29 0a 20 20 20 20 20 28 6e 61 6d    65 64 2d 69 6d 70 6f 72 74 73 0a 20 20 20 20 20  | port))......(named-imports...... | 
| 1a920 |  20 28 6a 73 32 2d 70 72 69 6e 74 2d 6e 61 6d 65    64 2d 69 6d 70 6f 72 74 73 20 6e 61 6d 65 64 2d  | .(js2-print-named-imports.named- | 
| 1a940 |  69 6d 70 6f 72 74 73 29 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e  | imports)))))..(defun.js2-print-n | 
| 1a960 |  61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20    28 6e 6f 64 65 29 0a 20 20 28 69 6e 73 65 72 74  | amespace-import.(node)...(insert | 
| 1a980 |  20 22 2a 20 61 73 20 22 29 0a 20 20 28 69 6e 73    65 72 74 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f  | ."*.as.")...(insert.(js2-name-no | 
| 1a9a0 |  64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d    65 73 70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f  | de-name.(js2-namespace-import-no | 
| 1a9c0 |  64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69  | de-name.node))))..(defun.js2-pri | 
| 1a9e0 |  6e 74 2d 6e 61 6d 65 64 2d 69 6d 70 6f 72 74 73    20 28 69 6d 70 6f 72 74 73 29 0a 20 20 28 69 6e  | nt-named-imports.(imports)...(in | 
| 1aa00 |  73 65 72 74 20 22 7b 22 29 0a 20 20 28 6c 65 74    20 28 28 6c 65 6e 20 28 6c 65 6e 67 74 68 20 69  | sert."{")...(let.((len.(length.i | 
| 1aa20 |  6d 70 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20    20 28 6e 20 30 29 29 0a 20 20 20 20 28 77 68 69  | mports)).........(n.0)).....(whi | 
| 1aa40 |  6c 65 20 28 3c 20 6e 20 6c 65 6e 29 0a 20 20 20    20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 65 78  | le.(<.n.len).......(js2-print-ex | 
| 1aa60 |  74 65 72 6e 2d 62 69 6e 64 69 6e 67 20 28 6e 74    68 20 6e 20 69 6d 70 6f 72 74 73 29 20 30 29 0a  | tern-binding.(nth.n.imports).0). | 
| 1aa80 |  20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d    20 6e 20 28 2d 20 6c 65 6e 20 31 29 29 0a 20 20  | ......(unless.(=.n.(-.len.1))... | 
| 1aaa0 |  20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c    20 22 29 29 0a 20 20 20 20 20 20 28 73 65 74 71  | ......(insert.",.")).......(setq | 
| 1aac0 |  20 6e 20 28 2b 20 6e 20 31 29 29 29 29 0a 20 20    28 69 6e 73 65 72 74 20 22 7d 22 29 29 0a 0a 28  | .n.(+.n.1))))...(insert."}"))..( | 
| 1aae0 |  63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73    32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f  | cl-defstruct.(js2-namespace-impo | 
| 1ab00 |  72 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65  | rt-node................(:include | 
| 1ab20 |  20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73  | .js2-node)................(:cons | 
| 1ab40 |  74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32    2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72  | tructor.make-js2-namespace-impor | 
| 1ab60 |  74 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79    70 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20  | t-node.(&key.(type.-1).......... | 
| 1ab80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1aba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 70 6f 73 0a 20 20 20  | .........................pos.... | 
| 1abc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1abe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c  | ...............................l | 
| 1ac00 |  65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en.............................. | 
| 1ac20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1ac40 |  20 20 20 20 20 6e 61 6d 65 29 29 29 0a 20 20 22    41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 63  | .....name)))..."AST.node.for.a.c | 
| 1ac60 |  6f 6d 70 6c 65 74 65 20 6e 61 6d 65 73 70 61 63    65 20 69 6d 70 6f 72 74 2e 0a 45 2e 67 2e 20 74  | omplete.namespace.import..E.g..t | 
| 1ac80 |  68 65 20 60 2a 20 61 73 20 6c 69 62 27 20 65 78    70 72 65 73 73 69 6f 6e 20 69 6e 3a 0a 0a 69 6d  | he.`*.as.lib'.expression.in:..im | 
| 1aca0 |  70 6f 72 74 20 2a 20 61 73 20 6c 69 62 20 66 72    6f 6d 20 5c 5c 3d 27 73 72 63 2f 6c 69 62 5c 5c  | port.*.as.lib.from.\\='src/lib\\ | 
| 1acc0 |  3d 27 0a 0a 49 74 20 63 6f 6e 74 61 69 6e 73 20    61 20 73 69 6e 67 6c 65 20 6e 61 6d 65 20 6e 6f  | ='..It.contains.a.single.name.no | 
| 1ace0 |  64 65 20 72 65 66 65 72 72 69 6e 67 20 74 6f 20    74 68 65 20 62 6f 75 6e 64 20 6e 61 6d 65 2e 22  | de.referring.to.the.bound.name." | 
| 1ad00 |  0a 20 20 6e 61 6d 65 29 20 3b 20 6a 73 32 2d 6e    61 6d 65 2d 6e 6f 64 65 20 6f 66 20 74 68 65 20  | ...name).;.js2-name-node.of.the. | 
| 1ad20 |  62 6f 75 6e 64 20 6e 61 6d 65 2e 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6e 61  | bound.name...(defun.js2-visit-na | 
| 1ad40 |  6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74 20 28    6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | mespace-import.(n.v)...(js2-visi | 
| 1ad60 |  74 2d 61 73 74 20 28 6a 73 32 2d 6e 61 6d 65 73    70 61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65  | t-ast.(js2-namespace-import-node | 
| 1ad80 |  2d 6e 61 6d 65 20 6e 29 20 76 29 29 0a 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | -name.n).v))..(js2--struct-put.' | 
| 1ada0 |  6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d    70 6f 72 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76  | js2-namespace-import-node.'js2-v | 
| 1adc0 |  69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69    74 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f  | isitor.'js2-visit-namespace-impo | 
| 1ade0 |  72 74 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74    2d 70 75 74 20 27 6a 73 32 2d 6e 61 6d 65 73 70  | rt).(js2--struct-put.'js2-namesp | 
| 1ae00 |  61 63 65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 20    27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73  | ace-import-node.'js2-printer.'js | 
| 1ae20 |  32 2d 70 72 69 6e 74 2d 6e 61 6d 65 73 70 61 63    65 2d 69 6d 70 6f 72 74 29 0a 0a 28 63 6c 2d 64  | 2-print-namespace-import)..(cl-d | 
| 1ae40 |  65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 66 72    6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20  | efstruct.(js2-from-clause-node.. | 
| 1ae60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a    69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65  | ..............(:include.js2-node | 
| 1ae80 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d  | )................(:constructor.m | 
| 1aea0 |  61 6b 65 2d 6a 73 32 2d 66 72 6f 6d 2d 63 6c 61    75 73 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28  | ake-js2-from-clause-node.(&key.( | 
| 1aec0 |  74 79 70 65 20 6a 73 32 2d 4e 41 4d 45 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | type.js2-NAME).................. | 
| 1aee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1af00 |  20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............pos................. | 
| 1af20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1af40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .............len................ | 
| 1af60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1af80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f    64 75 6c 65 2d 69 64 0a 20 20 20 20 20 20 20 20  | ..............module-id......... | 
| 1afa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1afc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6d 65 74 61 64 61 74 61 2d 70 29  | .....................metadata-p) | 
| 1afe0 |  29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66    6f 72 20 74 68 65 20 66 72 6f 6d 20 63 6c 61 75  | ))..."AST.node.for.the.from.clau | 
| 1b000 |  73 65 20 69 6e 20 61 6e 20 69 6d 70 6f 72 74 20    6f 72 20 65 78 70 6f 72 74 20 73 74 61 74 65 6d  | se.in.an.import.or.export.statem | 
| 1b020 |  65 6e 74 2e 0a 45 2e 67 2e 20 66 72 6f 6d 20 5c    5c 3d 27 6d 79 2f 6d 6f 64 75 6c 65 5c 5c 3d 27  | ent..E.g..from.\\='my/module\\=' | 
| 1b040 |  2e 20 49 74 20 63 61 6e 20 72 65 66 65 72 65 20    74 6f 20 65 69 74 68 65 72 20 61 6e 20 65 78 74  | ..It.can.refere.to.either.an.ext | 
| 1b060 |  65 72 6e 61 6c 20 6d 6f 64 75 6c 65 2c 20 6f 72    20 74 6f 20 74 68 65 0a 6d 6f 64 75 6c 65 73 20  | ernal.module,.or.to.the.modules. | 
| 1b080 |  6d 65 74 61 64 61 74 61 20 69 74 73 65 6c 66 2e    22 0a 20 20 6d 6f 64 75 6c 65 2d 69 64 20 3b 20  | metadata.itself."...module-id.;. | 
| 1b0a0 |  73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e    67 20 74 68 65 20 6d 6f 64 75 6c 65 20 73 70 65  | string.containing.the.module.spe | 
| 1b0c0 |  63 69 66 69 65 72 2e 0a 20 20 6d 65 74 61 64 61    74 61 2d 70 29 20 3b 20 74 72 75 65 20 69 66 20  | cifier....metadata-p).;.true.if. | 
| 1b0e0 |  74 68 69 73 20 63 6c 61 75 73 65 20 72 65 66 65    72 73 20 74 6f 20 74 68 65 20 6d 6f 64 75 6c 65  | this.clause.refers.to.the.module | 
| 1b100 |  27 73 20 6d 65 74 61 64 61 74 61 0a 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | 's.metadata..(js2--struct-put.'j | 
| 1b120 |  73 32 2d 66 72 6f 6d 2d 63 6c 61 75 73 65 2d 6e    6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72  | s2-from-clause-node.'js2-visitor | 
| 1b140 |  20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | .'js2-visit-none).(js2--struct-p | 
| 1b160 |  75 74 20 27 6a 73 32 2d 66 72 6f 6d 2d 63 6c 61    75 73 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72  | ut.'js2-from-clause-node.'js2-pr | 
| 1b180 |  69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74    2d 66 72 6f 6d 2d 63 6c 61 75 73 65 29 0a 0a 28  | inter.'js2-print-from-clause)..( | 
| 1b1a0 |  64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d    66 72 6f 6d 2d 63 6c 61 75 73 65 20 28 6e 29 0a  | defun.js2-print-from-clause.(n). | 
| 1b1c0 |  20 20 28 69 6e 73 65 72 74 20 22 66 72 6f 6d 20    22 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 66 72  | ..(insert."from.")...(if.(js2-fr | 
| 1b1e0 |  6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6d    65 74 61 64 61 74 61 2d 70 20 6e 29 0a 20 20 20  | om-clause-node-metadata-p.n).... | 
| 1b200 |  20 20 20 28 69 6e 73 65 72 74 20 22 74 68 69 73    20 6d 6f 64 75 6c 65 22 29 0a 20 20 20 20 28 69  | ...(insert."this.module").....(i | 
| 1b220 |  6e 73 65 72 74 20 22 27 22 29 0a 20 20 20 20 28    69 6e 73 65 72 74 20 28 6a 73 32 2d 66 72 6f 6d  | nsert."'").....(insert.(js2-from | 
| 1b240 |  2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6d 6f 64    75 6c 65 2d 69 64 20 6e 29 29 0a 20 20 20 20 28  | -clause-node-module-id.n)).....( | 
| 1b260 |  69 6e 73 65 72 74 20 22 27 22 29 29 29 0a 0a 28    63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73  | insert."'")))..(cl-defstruct.(js | 
| 1b280 |  32 2d 74 72 79 2d 6e 6f 64 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c  | 2-try-node................(:incl | 
| 1b2a0 |  75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63  | ude.js2-node)................(:c | 
| 1b2c0 |  6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d    6a 73 32 2d 74 72 79 2d 6e 6f 64 65 20 28 26 6b  | onstructor.make-js2-try-node.(&k | 
| 1b2e0 |  65 79 20 28 74 79 70 65 20 6a 73 32 2d 54 52 59    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ey.(type.js2-TRY)............... | 
| 1b300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b320 |  20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d    74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20  | .......(pos.js2-ts-cursor)...... | 
| 1b340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ................len............. | 
| 1b380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b3a0 |  20 20 20 20 20 20 20 20 20 74 72 79 2d 62 6c 6f    63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........try-block.............. | 
| 1b3c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b3e0 |  20 20 20 20 20 20 20 20 63 61 74 63 68 2d 63 6c    61 75 73 65 73 0a 20 20 20 20 20 20 20 20 20 20  | ........catch-clauses........... | 
| 1b400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b420 |  20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c    6c 79 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 22 41  | ...........finally-block)))..."A | 
| 1b440 |  53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 74 72    79 2d 73 74 61 74 65 6d 65 6e 74 2e 22 0a 20 20  | ST.node.for.a.try-statement."... | 
| 1b460 |  74 72 79 2d 62 6c 6f 63 6b 0a 20 20 63 61 74 63    68 2d 63 6c 61 75 73 65 73 20 20 3b 20 61 20 4c  | try-block...catch-clauses..;.a.L | 
| 1b480 |  69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32    2d 63 61 74 63 68 2d 6e 6f 64 65 27 0a 20 20 66  | isp.list.of.`js2-catch-node'...f | 
| 1b4a0 |  69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 29 20 3b 20    61 20 60 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e  | inally-block).;.a.`js2-finally-n | 
| 1b4c0 |  6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 74 72 79 2d  | ode'..(js2--struct-put.'js2-try- | 
| 1b4e0 |  6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f    72 20 27 6a 73 32 2d 76 69 73 69 74 2d 74 72 79  | node.'js2-visitor.'js2-visit-try | 
| 1b500 |  2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 74 72 79  | -node).(js2--struct-put.'js2-try | 
| 1b520 |  2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74    65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 74 72  | -node.'js2-printer.'js2-print-tr | 
| 1b540 |  79 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 76 69 73 69 74 2d 74 72 79 2d 6e 6f  | y-node)..(defun.js2-visit-try-no | 
| 1b560 |  64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d    76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 74  | de.(n.v)...(js2-visit-ast.(js2-t | 
| 1b580 |  72 79 2d 6e 6f 64 65 2d 74 72 79 2d 62 6c 6f 63    6b 20 6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73  | ry-node-try-block.n).v)...(dolis | 
| 1b5a0 |  74 20 28 63 6c 61 75 73 65 20 28 6a 73 32 2d 74    72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c  | t.(clause.(js2-try-node-catch-cl | 
| 1b5c0 |  61 75 73 65 73 20 6e 29 29 0a 20 20 20 20 28 6a    73 32 2d 76 69 73 69 74 2d 61 73 74 20 63 6c 61  | auses.n)).....(js2-visit-ast.cla | 
| 1b5e0 |  75 73 65 20 76 29 29 0a 20 20 28 6a 73 32 2d 76    69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 74 72  | use.v))...(js2-visit-ast.(js2-tr | 
| 1b600 |  79 2d 6e 6f 64 65 2d 66 69 6e 61 6c 6c 79 2d 62    6c 6f 63 6b 20 6e 29 20 76 29 29 0a 0a 28 64 65  | y-node-finally-block.n).v))..(de | 
| 1b620 |  66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 74 72    79 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28  | fun.js2-print-try-node.(n.i)...( | 
| 1b640 |  6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d    61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20  | let.((pad.(js2-make-pad.i))..... | 
| 1b660 |  20 20 20 20 28 63 61 74 63 68 65 73 20 28 6a 73    32 2d 74 72 79 2d 6e 6f 64 65 2d 63 61 74 63 68  | ....(catches.(js2-try-node-catch | 
| 1b680 |  2d 63 6c 61 75 73 65 73 20 6e 29 29 0a 20 20 20    20 20 20 20 20 28 66 69 6e 61 6c 6c 79 20 28 6a  | -clauses.n)).........(finally.(j | 
| 1b6a0 |  73 32 2d 74 72 79 2d 6e 6f 64 65 2d 66 69 6e 61    6c 6c 79 2d 62 6c 6f 63 6b 20 6e 29 29 29 0a 20  | s2-try-node-finally-block.n))).. | 
| 1b6c0 |  20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22    74 72 79 20 7b 5c 6e 22 29 0a 20 20 20 20 28 6a  | ...(insert.pad."try.{\n").....(j | 
| 1b6e0 |  73 32 2d 70 72 69 6e 74 2d 62 6f 64 79 20 28 6a    73 32 2d 74 72 79 2d 6e 6f 64 65 2d 74 72 79 2d  | s2-print-body.(js2-try-node-try- | 
| 1b700 |  62 6c 6f 63 6b 20 6e 29 20 28 31 2b 20 69 29 29    0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64  | block.n).(1+.i)).....(insert.pad | 
| 1b720 |  20 22 7d 22 29 0a 20 20 20 20 28 77 68 65 6e 20    63 61 74 63 68 65 73 0a 20 20 20 20 20 20 28 64  | ."}").....(when.catches.......(d | 
| 1b740 |  6f 6c 69 73 74 20 28 63 61 74 63 68 20 63 61 74    63 68 65 73 29 0a 20 20 20 20 20 20 20 20 28 6a  | olist.(catch.catches).........(j | 
| 1b760 |  73 32 2d 70 72 69 6e 74 2d 61 73 74 20 63 61 74    63 68 20 69 29 29 29 0a 20 20 20 20 28 69 66 20  | s2-print-ast.catch.i))).....(if. | 
| 1b780 |  66 69 6e 61 6c 6c 79 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 66  | finally.........(js2-print-ast.f | 
| 1b7a0 |  69 6e 61 6c 6c 79 20 69 29 0a 20 20 20 20 20 20    28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29  | inally.i).......(insert."\n")))) | 
| 1b7c0 |  0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20    28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 0a  | ..(cl-defstruct.(js2-catch-node. | 
| 1b7e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 73 63 6f  | ...............(:include.js2-sco | 
| 1b800 |  70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72  | pe)................(:constructor | 
| 1b820 |  20 6d 61 6b 65 2d 6a 73 32 2d 63 61 74 63 68 2d    6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65  | .make-js2-catch-node.(&key.(type | 
| 1b840 |  20 6a 73 32 2d 43 41 54 43 48 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-CATCH)..................... | 
| 1b860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b880 |  20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63    75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20  | ...(pos.js2-ts-cursor).......... | 
| 1b8a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b8c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..............len............... | 
| 1b8e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b900 |  20 20 20 20 20 20 20 20 20 70 61 72 61 6d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........param.................. | 
| 1b920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b940 |  20 20 20 20 20 20 67 75 61 72 64 2d 6b 77 64 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......guard-kwd................. | 
| 1b960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b980 |  20 20 20 20 20 20 20 67 75 61 72 64 2d 65 78 70    72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......guard-expr............... | 
| 1b9a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1b9c0 |  20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29    29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f  | .........lp.rp)))..."AST.node.fo | 
| 1b9e0 |  72 20 61 20 63 61 74 63 68 20 63 6c 61 75 73 65    2e 22 0a 20 20 70 61 72 61 6d 20 20 20 20 20 20  | r.a.catch.clause."...param...... | 
| 1ba00 |  20 3b 20 64 65 73 74 72 75 63 74 75 72 69 6e 67    20 66 6f 72 6d 20 6f 72 20 73 69 6d 70 6c 65 20  | .;.destructuring.form.or.simple. | 
| 1ba20 |  6e 61 6d 65 20 6e 6f 64 65 0a 20 20 67 75 61 72    64 2d 6b 77 64 20 20 20 3b 20 72 65 6c 61 74 69  | name.node...guard-kwd...;.relati | 
| 1ba40 |  76 65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69    6f 6e 20 6f 66 20 22 69 66 22 20 69 6e 20 22 63  | ve.buffer.position.of."if".in."c | 
| 1ba60 |  61 74 63 68 20 28 78 20 69 66 20 2e 2e 2e 29 22    0a 20 20 67 75 61 72 64 2d 65 78 70 72 20 20 3b  | atch.(x.if....)"...guard-expr..; | 
| 1ba80 |  20 63 61 74 63 68 20 63 6f 6e 64 69 74 69 6f 6e    2c 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27 0a 20  | .catch.condition,.a.`js2-node'.. | 
| 1baa0 |  20 6c 70 20 20 20 20 20 20 20 20 20 20 3b 20 62    75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f  | .lp..........;.buffer.position.o | 
| 1bac0 |  66 20 6c 65 66 74 2d 70 61 72 65 6e 2c 20 6e 69    6c 20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72  | f.left-paren,.nil.if.omitted...r | 
| 1bae0 |  70 29 20 20 20 20 20 20 20 20 20 3b 20 62 75 66    66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20  | p).........;.buffer.position.of. | 
| 1bb00 |  72 69 67 68 74 2d 70 61 72 65 6e 2c 20 6e 69 6c    20 69 66 20 6f 6d 69 74 74 65 64 0a 0a 28 6a 73  | right-paren,.nil.if.omitted..(js | 
| 1bb20 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 20 27 6a  | 2--struct-put.'js2-catch-node.'j | 
| 1bb40 |  73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d    76 69 73 69 74 2d 63 61 74 63 68 2d 6e 6f 64 65  | s2-visitor.'js2-visit-catch-node | 
| 1bb60 |  29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70    75 74 20 27 6a 73 32 2d 63 61 74 63 68 2d 6e 6f  | ).(js2--struct-put.'js2-catch-no | 
| 1bb80 |  64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20    27 6a 73 32 2d 70 72 69 6e 74 2d 63 61 74 63 68  | de.'js2-printer.'js2-print-catch | 
| 1bba0 |  2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 76 69 73 69 74 2d 63 61 74 63 68 2d 6e  | -node)..(defun.js2-visit-catch-n | 
| 1bbc0 |  6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d  | ode.(n.v)...(js2-visit-ast.(js2- | 
| 1bbe0 |  63 61 74 63 68 2d 6e 6f 64 65 2d 70 61 72 61 6d    20 6e 29 20 76 29 0a 20 20 28 77 68 65 6e 20 28  | catch-node-param.n).v)...(when.( | 
| 1bc00 |  6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 67    75 61 72 64 2d 6b 77 64 20 6e 29 0a 20 20 20 20  | js2-catch-node-guard-kwd.n)..... | 
| 1bc20 |  28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28    6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 67  | (js2-visit-ast.(js2-catch-node-g | 
| 1bc40 |  75 61 72 64 2d 65 78 70 72 20 6e 29 20 76 29 29    0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 62 6c  | uard-expr.n).v))...(js2-visit-bl | 
| 1bc60 |  6f 63 6b 20 6e 20 76 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 61 74 63  | ock.n.v))..(defun.js2-print-catc | 
| 1bc80 |  68 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28    6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d  | h-node.(n.i)...(let.((pad.(js2-m | 
| 1bca0 |  61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20    20 20 20 20 28 67 75 61 72 64 2d 6b 77 64 20 28  | ake-pad.i)).........(guard-kwd.( | 
| 1bcc0 |  6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d 67    75 61 72 64 2d 6b 77 64 20 6e 29 29 0a 20 20 20  | js2-catch-node-guard-kwd.n)).... | 
| 1bce0 |  20 20 20 20 20 28 67 75 61 72 64 2d 65 78 70 72    20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65  | .....(guard-expr.(js2-catch-node | 
| 1bd00 |  2d 67 75 61 72 64 2d 65 78 70 72 20 6e 29 29 29    0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 63  | -guard-expr.n))).....(insert.".c | 
| 1bd20 |  61 74 63 68 20 22 29 0a 20 20 20 20 28 77 68 65    6e 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64  | atch.").....(when.(js2-catch-nod | 
| 1bd40 |  65 2d 6c 70 20 6e 29 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 28 22 29 0a 20 20 20 20 20  | e-lp.n).......(insert."(")...... | 
| 1bd60 |  20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20    28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d  | .(js2-print-ast.(js2-catch-node- | 
| 1bd80 |  70 61 72 61 6d 20 6e 29 20 30 29 0a 20 20 20 20    20 20 28 77 68 65 6e 20 67 75 61 72 64 2d 6b 77  | param.n).0).......(when.guard-kw | 
| 1bda0 |  64 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 22 20 69 66 20 22 29 0a 20 20 20 20 20 20  | d.........(insert.".if.")....... | 
| 1bdc0 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74    20 67 75 61 72 64 2d 65 78 70 72 20 30 29 29 0a  | ..(js2-print-ast.guard-expr.0)). | 
| 1bde0 |  20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 29    20 22 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74  | ......(insert.").")).....(insert | 
| 1be00 |  20 22 7b 5c 6e 22 29 0a 20 20 20 20 28 6a 73 32    2d 70 72 69 6e 74 2d 62 6f 64 79 20 6e 20 28 31  | ."{\n").....(js2-print-body.n.(1 | 
| 1be20 |  2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73 65 72    74 20 70 61 64 20 22 7d 22 29 29 29 0a 0a 28 63  | +.i)).....(insert.pad."}")))..(c | 
| 1be40 |  6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32    2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 0a 20 20  | l-defstruct.(js2-finally-node... | 
| 1be60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69    6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29  | .............(:include.js2-node) | 
| 1be80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61  | ................(:constructor.ma | 
| 1bea0 |  6b 65 2d 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e    6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20  | ke-js2-finally-node.(&key.(type. | 
| 1bec0 |  6a 73 32 2d 46 49 4e 41 4c 4c 59 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-FINALLY).................... | 
| 1bee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1bf00 |  20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74    73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20  | ......(pos.js2-ts-cursor)....... | 
| 1bf20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1bf40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6c 65 6e 20 62 6f 64 79 29 29 29 0a 20  | ...................len.body))).. | 
| 1bf60 |  20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61    20 66 69 6e 61 6c 6c 79 20 63 6c 61 75 73 65 2e  | ."AST.node.for.a.finally.clause. | 
| 1bf80 |  22 0a 20 20 62 6f 64 79 29 20 20 3b 20 61 20 60    6a 73 32 2d 6e 6f 64 65 27 2c 20 6f 66 74 65 6e  | "...body)..;.a.`js2-node',.often | 
| 1bfa0 |  20 62 75 74 20 6e 6f 74 20 61 6c 77 61 79 73 20    61 20 62 6c 6f 63 6b 20 6e 6f 64 65 0a 0a 28 6a  | .but.not.always.a.block.node..(j | 
| 1bfc0 |  73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27    6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65  | s2--struct-put.'js2-finally-node | 
| 1bfe0 |  20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a    73 32 2d 76 69 73 69 74 2d 66 69 6e 61 6c 6c 79  | .'js2-visitor.'js2-visit-finally | 
| 1c000 |  2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 66 69 6e  | -node).(js2--struct-put.'js2-fin | 
| 1c020 |  61 6c 6c 79 2d 6e 6f 64 65 20 27 6a 73 32 2d 70    72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e  | ally-node.'js2-printer.'js2-prin | 
| 1c040 |  74 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69  | t-finally-node)..(defun.js2-visi | 
| 1c060 |  74 2d 66 69 6e 61 6c 6c 79 2d 6e 6f 64 65 20 28    6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | t-finally-node.(n.v)...(js2-visi | 
| 1c080 |  74 2d 61 73 74 20 28 6a 73 32 2d 66 69 6e 61 6c    6c 79 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20  | t-ast.(js2-finally-node-body.n). | 
| 1c0a0 |  76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 72 69 6e 74 2d 66 69 6e 61 6c 6c 79 2d 6e 6f  | v))..(defun.js2-print-finally-no | 
| 1c0c0 |  64 65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20    28 28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d  | de.(n.i)...(let.((pad.(js2-make- | 
| 1c0e0 |  70 61 64 20 69 29 29 29 0a 20 20 20 20 28 69 6e    73 65 72 74 20 22 20 66 69 6e 61 6c 6c 79 20 7b  | pad.i))).....(insert.".finally.{ | 
| 1c100 |  5c 6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72    69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 66 69  | \n").....(js2-print-body.(js2-fi | 
| 1c120 |  6e 61 6c 6c 79 2d 6e 6f 64 65 2d 62 6f 64 79 20    6e 29 20 28 31 2b 20 69 29 29 0a 20 20 20 20 28  | nally-node-body.n).(1+.i)).....( | 
| 1c140 |  69 6e 73 65 72 74 20 70 61 64 20 22 7d 5c 6e 22    29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75  | insert.pad."}\n")))..(cl-defstru | 
| 1c160 |  63 74 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e    6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ct.(js2-switch-node............. | 
| 1c180 |  20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32    2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20  | ...(:include.js2-scope)......... | 
| 1c1a0 |  20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75    63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 73 77  | .......(:constructor.make-js2-sw | 
| 1c1c0 |  69 74 63 68 2d 6e 6f 64 65 20 28 26 6b 65 79 20    28 74 79 70 65 20 6a 73 32 2d 53 57 49 54 43 48  | itch-node.(&key.(type.js2-SWITCH | 
| 1c1e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 1c200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a  | ..........................(pos.j | 
| 1c220 |  73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ts-cursor)................... | 
| 1c240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1c260 |  20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......len....................... | 
| 1c280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1c2a0 |  20 20 64 69 73 63 72 69 6d 69 6e 61 6e 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..discriminant.................. | 
| 1c2c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1c2e0 |  20 20 20 20 20 20 20 63 61 73 65 73 20 6c 70 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......cases.lp................. | 
| 1c300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1c320 |  20 20 20 20 20 20 20 20 72 70 29 29 29 0a 20 20    22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20  | ........rp)))..."AST.node.for.a. | 
| 1c340 |  73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74    2e 22 0a 20 20 64 69 73 63 72 69 6d 69 6e 61 6e  | switch.statement."...discriminan | 
| 1c360 |  74 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65    27 20 28 73 77 69 74 63 68 20 65 78 70 72 65 73  | t..;.a.`js2-node'.(switch.expres | 
| 1c380 |  73 69 6f 6e 29 0a 20 20 63 61 73 65 73 20 20 3b    20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20  | sion)...cases..;.a.Lisp.list.of. | 
| 1c3a0 |  60 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 27 0a    20 20 6c 70 20 20 20 20 20 3b 20 70 6f 73 69 74  | `js2-case-node'...lp.....;.posit | 
| 1c3c0 |  69 6f 6e 20 6f 66 20 6f 70 65 6e 2d 70 61 72 65    6e 20 66 6f 72 20 64 69 73 63 72 69 6d 69 6e 61  | ion.of.open-paren.for.discrimina | 
| 1c3e0 |  6e 74 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74    65 64 0a 20 20 72 70 29 20 20 20 20 3b 20 70 6f  | nt,.nil.if.omitted...rp)....;.po | 
| 1c400 |  73 69 74 69 6f 6e 20 6f 66 20 63 6c 6f 73 65 2d    70 61 72 65 6e 20 66 6f 72 20 64 69 73 63 72 69  | sition.of.close-paren.for.discri | 
| 1c420 |  6d 69 6e 61 6e 74 2c 20 6e 69 6c 20 69 66 20 6f    6d 69 74 74 65 64 0a 0a 28 6a 73 32 2d 2d 73 74  | minant,.nil.if.omitted..(js2--st | 
| 1c440 |  72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 73 77    69 74 63 68 2d 6e 6f 64 65 20 27 6a 73 32 2d 76  | ruct-put.'js2-switch-node.'js2-v | 
| 1c460 |  69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69    74 2d 73 77 69 74 63 68 2d 6e 6f 64 65 29 0a 28  | isitor.'js2-visit-switch-node).( | 
| 1c480 |  6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20    27 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65  | js2--struct-put.'js2-switch-node | 
| 1c4a0 |  20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a    73 32 2d 70 72 69 6e 74 2d 73 77 69 74 63 68 2d  | .'js2-printer.'js2-print-switch- | 
| 1c4c0 |  6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 76 69 73 69 74 2d 73 77 69 74 63 68 2d 6e  | node)..(defun.js2-visit-switch-n | 
| 1c4e0 |  6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d  | ode.(n.v)...(js2-visit-ast.(js2- | 
| 1c500 |  73 77 69 74 63 68 2d 6e 6f 64 65 2d 64 69 73 63    72 69 6d 69 6e 61 6e 74 20 6e 29 20 76 29 0a 20  | switch-node-discriminant.n).v).. | 
| 1c520 |  20 28 64 6f 6c 69 73 74 20 28 63 20 28 6a 73 32    2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 63 61 73  | .(dolist.(c.(js2-switch-node-cas | 
| 1c540 |  65 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32 2d    76 69 73 69 74 2d 61 73 74 20 63 20 76 29 29 29  | es.n)).....(js2-visit-ast.c.v))) | 
| 1c560 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69    6e 74 2d 73 77 69 74 63 68 2d 6e 6f 64 65 20 28  | ..(defun.js2-print-switch-node.( | 
| 1c580 |  6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70 61    64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20  | n.i)...(let.((pad.(js2-make-pad. | 
| 1c5a0 |  69 29 29 0a 20 20 20 20 20 20 20 20 28 63 61 73    65 73 20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e  | i)).........(cases.(js2-switch-n | 
| 1c5c0 |  6f 64 65 2d 63 61 73 65 73 20 6e 29 29 29 0a 20    20 20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22  | ode-cases.n))).....(insert.pad." | 
| 1c5e0 |  73 77 69 74 63 68 20 28 22 29 0a 20 20 20 20 28    6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a  | switch.(").....(js2-print-ast.(j | 
| 1c600 |  73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 64    69 73 63 72 69 6d 69 6e 61 6e 74 20 6e 29 20 30  | s2-switch-node-discriminant.n).0 | 
| 1c620 |  29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 29    20 7b 5c 6e 22 29 0a 20 20 20 20 28 64 6f 6c 69  | ).....(insert.").{\n").....(doli | 
| 1c640 |  73 74 20 28 63 61 73 65 20 63 61 73 65 73 29 0a    20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74  | st.(case.cases).......(js2-print | 
| 1c660 |  2d 61 73 74 20 63 61 73 65 20 69 29 29 0a 20 20    20 20 28 69 6e 73 65 72 74 20 70 61 64 20 22 7d  | -ast.case.i)).....(insert.pad."} | 
| 1c680 |  5c 6e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73    74 72 75 63 74 20 28 6a 73 32 2d 63 61 73 65 2d  | \n")))..(cl-defstruct.(js2-case- | 
| 1c6a0 |  6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73  | node................(:include.js | 
| 1c6c0 |  32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63  | 2-block-node)................(:c | 
| 1c6e0 |  6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d    6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 28 26  | onstructor.make-js2-case-node.(& | 
| 1c700 |  6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 43 41    53 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | key.(type.js2-CASE)............. | 
| 1c720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1c740 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20  | ..........(pos.js2-ts-cursor)... | 
| 1c760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1c780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6c 65 6e 20 6b 69 64 73 20 65 78 70  | ....................len.kids.exp | 
| 1c7a0 |  72 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65    20 66 6f 72 20 61 20 63 61 73 65 20 63 6c 61 75  | r)))..."AST.node.for.a.case.clau | 
| 1c7c0 |  73 65 20 6f 66 20 61 20 73 77 69 74 63 68 20 73    74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 65 78 70  | se.of.a.switch.statement."...exp | 
| 1c7e0 |  72 29 20 20 20 3b 20 74 68 65 20 63 61 73 65 20    65 78 70 72 65 73 73 69 6f 6e 20 28 6e 69 6c 20  | r)...;.the.case.expression.(nil. | 
| 1c800 |  66 6f 72 20 64 65 66 61 75 6c 74 29 0a 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | for.default)..(js2--struct-put.' | 
| 1c820 |  6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | js2-case-node.'js2-visitor.'js2- | 
| 1c840 |  76 69 73 69 74 2d 63 61 73 65 2d 6e 6f 64 65 29    0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75  | visit-case-node).(js2--struct-pu | 
| 1c860 |  74 20 27 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65    20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a  | t.'js2-case-node.'js2-printer.'j | 
| 1c880 |  73 32 2d 70 72 69 6e 74 2d 63 61 73 65 2d 6e 6f    64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | s2-print-case-node)..(defun.js2- | 
| 1c8a0 |  76 69 73 69 74 2d 63 61 73 65 2d 6e 6f 64 65 20    28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73  | visit-case-node.(n.v)...(js2-vis | 
| 1c8c0 |  69 74 2d 61 73 74 20 28 6a 73 32 2d 63 61 73 65    2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 76 29  | it-ast.(js2-case-node-expr.n).v) | 
| 1c8e0 |  0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 62 6c    6f 63 6b 20 6e 20 76 29 29 0a 0a 28 64 65 66 75  | ...(js2-visit-block.n.v))..(defu | 
| 1c900 |  6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 61 73 65    2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 6c  | n.js2-print-case-node.(n.i)...(l | 
| 1c920 |  65 74 20 28 28 70 61 64 20 28 6a 73 32 2d 6d 61    6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20 20  | et.((pad.(js2-make-pad.i))...... | 
| 1c940 |  20 20 20 28 65 78 70 72 20 28 6a 73 32 2d 63 61    73 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 29  | ...(expr.(js2-case-node-expr.n)) | 
| 1c960 |  29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61    64 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c  | ).....(insert.pad).....(if.(null | 
| 1c980 |  20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 28    69 6e 73 65 72 74 20 22 64 65 66 61 75 6c 74 3a  | .expr).........(insert."default: | 
| 1c9a0 |  5c 6e 22 29 0a 20 20 20 20 20 20 28 69 6e 73 65    72 74 20 22 63 61 73 65 20 22 29 0a 20 20 20 20  | \n").......(insert."case.")..... | 
| 1c9c0 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74    20 65 78 70 72 20 30 29 0a 20 20 20 20 20 20 28  | ..(js2-print-ast.expr.0).......( | 
| 1c9e0 |  69 6e 73 65 72 74 20 22 3a 5c 6e 22 29 29 0a 20    20 20 20 28 64 6f 6c 69 73 74 20 28 6b 69 64 20  | insert.":\n")).....(dolist.(kid. | 
| 1ca00 |  28 6a 73 32 2d 63 61 73 65 2d 6e 6f 64 65 2d 6b    69 64 73 20 6e 29 29 0a 20 20 20 20 20 20 28 6a  | (js2-case-node-kids.n)).......(j | 
| 1ca20 |  73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64    20 28 31 2b 20 69 29 29 29 29 29 0a 0a 28 63 6c  | s2-print-ast.kid.(1+.i)))))..(cl | 
| 1ca40 |  2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d    74 68 72 6f 77 2d 6e 6f 64 65 0a 20 20 20 20 20  | -defstruct.(js2-throw-node...... | 
| 1ca60 |  20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c    75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20  | ..........(:include.js2-node)... | 
| 1ca80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63    6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d  | .............(:constructor.make- | 
| 1caa0 |  6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 20 28    26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54  | js2-throw-node.(&key.(type.js2-T | 
| 1cac0 |  48 52 4f 57 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | HROW)........................... | 
| 1cae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f  | .............................(po | 
| 1cb00 |  73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.js2-ts-cursor)................ | 
| 1cb20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1cb40 |  20 20 20 20 20 20 20 20 6c 65 6e 20 65 78 70 72    29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20  | ........len.expr)))..."AST.node. | 
| 1cb60 |  66 6f 72 20 61 20 74 68 72 6f 77 20 73 74 61 74    65 6d 65 6e 74 2e 22 0a 20 20 65 78 70 72 29 20  | for.a.throw.statement."...expr). | 
| 1cb80 |  20 20 3b 20 74 68 65 20 65 78 70 72 65 73 73 69    6f 6e 20 74 6f 20 74 68 72 6f 77 0a 0a 28 6a 73  | ..;.the.expression.to.throw..(js | 
| 1cba0 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 20 27 6a  | 2--struct-put.'js2-throw-node.'j | 
| 1cbc0 |  73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d    76 69 73 69 74 2d 74 68 72 6f 77 2d 6e 6f 64 65  | s2-visitor.'js2-visit-throw-node | 
| 1cbe0 |  29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70    75 74 20 27 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f  | ).(js2--struct-put.'js2-throw-no | 
| 1cc00 |  64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20    27 6a 73 32 2d 70 72 69 6e 74 2d 74 68 72 6f 77  | de.'js2-printer.'js2-print-throw | 
| 1cc20 |  2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 76 69 73 69 74 2d 74 68 72 6f 77 2d 6e  | -node)..(defun.js2-visit-throw-n | 
| 1cc40 |  6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d  | ode.(n.v)...(js2-visit-ast.(js2- | 
| 1cc60 |  74 68 72 6f 77 2d 6e 6f 64 65 2d 65 78 70 72 20    6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | throw-node-expr.n).v))..(defun.j | 
| 1cc80 |  73 32 2d 70 72 69 6e 74 2d 74 68 72 6f 77 2d 6e    6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73  | s2-print-throw-node.(n.i)...(ins | 
| 1cca0 |  65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61    64 20 69 29 20 22 74 68 72 6f 77 20 22 29 0a 20  | ert.(js2-make-pad.i)."throw.").. | 
| 1ccc0 |  20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20    28 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65 2d  | .(js2-print-ast.(js2-throw-node- | 
| 1cce0 |  65 78 70 72 20 6e 29 20 30 29 0a 20 20 28 69 6e    73 65 72 74 20 22 3b 5c 6e 22 29 29 0a 0a 28 63  | expr.n).0)...(insert.";\n"))..(c | 
| 1cd00 |  6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32    2d 77 69 74 68 2d 6e 6f 64 65 0a 20 20 20 20 20  | l-defstruct.(js2-with-node...... | 
| 1cd20 |  20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c    75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20  | ..........(:include.js2-node)... | 
| 1cd40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63    6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d  | .............(:constructor.make- | 
| 1cd60 |  6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 20 28 26    6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 57 49  | js2-with-node.(&key.(type.js2-WI | 
| 1cd80 |  54 48 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | TH)............................. | 
| 1cda0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a  | ..........................(pos.j | 
| 1cdc0 |  73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ts-cursor)................... | 
| 1cde0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1ce00 |  20 20 20 20 6c 65 6e 20 6f 62 6a 65 63 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....len.object.................. | 
| 1ce20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1ce40 |  20 20 20 20 20 62 6f 64 79 20 6c 70 20 72 70 29    29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66  | .....body.lp.rp)))..."AST.node.f | 
| 1ce60 |  6f 72 20 61 20 77 69 74 68 2d 73 74 61 74 65 6d    65 6e 74 2e 22 0a 20 20 6f 62 6a 65 63 74 0a 20  | or.a.with-statement."...object.. | 
| 1ce80 |  20 62 6f 64 79 0a 20 20 6c 70 20 20 20 20 3b 20    62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20  | .body...lp....;.buffer.position. | 
| 1cea0 |  6f 66 20 6c 65 66 74 2d 70 61 72 65 6e 20 61 72    6f 75 6e 64 20 6f 62 6a 65 63 74 2c 20 6e 69 6c  | of.left-paren.around.object,.nil | 
| 1cec0 |  20 69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 70    29 20 20 20 3b 20 62 75 66 66 65 72 20 70 6f 73  | .if.omitted...rp)...;.buffer.pos | 
| 1cee0 |  69 74 69 6f 6e 20 6f 66 20 72 69 67 68 74 2d 70    61 72 65 6e 20 61 72 6f 75 6e 64 20 6f 62 6a 65  | ition.of.right-paren.around.obje | 
| 1cf00 |  63 74 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74    65 64 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74  | ct,.nil.if.omitted..(js2--struct | 
| 1cf20 |  2d 70 75 74 20 27 6a 73 32 2d 77 69 74 68 2d 6e    6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72  | -put.'js2-with-node.'js2-visitor | 
| 1cf40 |  20 27 6a 73 32 2d 76 69 73 69 74 2d 77 69 74 68    2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72  | .'js2-visit-with-node).(js2--str | 
| 1cf60 |  75 63 74 2d 70 75 74 20 27 6a 73 32 2d 77 69 74    68 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e  | uct-put.'js2-with-node.'js2-prin | 
| 1cf80 |  74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 77    69 74 68 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75  | ter.'js2-print-with-node)..(defu | 
| 1cfa0 |  6e 20 6a 73 32 2d 76 69 73 69 74 2d 77 69 74 68    2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a  | n.js2-visit-with-node.(n.v)...(j | 
| 1cfc0 |  73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73    32 2d 77 69 74 68 2d 6e 6f 64 65 2d 6f 62 6a 65  | s2-visit-ast.(js2-with-node-obje | 
| 1cfe0 |  63 74 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d    76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 77  | ct.n).v)...(js2-visit-ast.(js2-w | 
| 1d000 |  69 74 68 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29    20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | ith-node-body.n).v))..(defun.js2 | 
| 1d020 |  2d 70 72 69 6e 74 2d 77 69 74 68 2d 6e 6f 64 65    20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28  | -print-with-node.(n.i)...(let.(( | 
| 1d040 |  70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61    64 20 69 29 29 29 0a 20 20 20 20 28 69 6e 73 65  | pad.(js2-make-pad.i))).....(inse | 
| 1d060 |  72 74 20 70 61 64 20 22 77 69 74 68 20 28 22 29    0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | rt.pad."with.(").....(js2-print- | 
| 1d080 |  61 73 74 20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f    64 65 2d 6f 62 6a 65 63 74 20 6e 29 20 30 29 0a  | ast.(js2-with-node-object.n).0). | 
| 1d0a0 |  20 20 20 20 28 69 6e 73 65 72 74 20 22 29 20 7b    5c 6e 22 29 0a 20 20 20 20 28 6a 73 32 2d 70 72  | ....(insert.").{\n").....(js2-pr | 
| 1d0c0 |  69 6e 74 2d 62 6f 64 79 20 28 6a 73 32 2d 77 69    74 68 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29 20  | int-body.(js2-with-node-body.n). | 
| 1d0e0 |  28 31 2b 20 69 29 29 0a 20 20 20 20 28 69 6e 73    65 72 74 20 70 61 64 20 22 7d 5c 6e 22 29 29 29  | (1+.i)).....(insert.pad."}\n"))) | 
| 1d100 |  0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20    28 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 0a  | ..(cl-defstruct.(js2-label-node. | 
| 1d120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64  | ...............(:include.js2-nod | 
| 1d140 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20  | e)................(:constructor. | 
| 1d160 |  6d 61 6b 65 2d 6a 73 32 2d 6c 61 62 65 6c 2d 6e    6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20  | make-js2-label-node.(&key.(type. | 
| 1d180 |  6a 73 32 2d 4c 41 42 45 4c 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-LABEL)...................... | 
| 1d1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1d1c0 |  20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75    72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20  | ..(pos.js2-ts-cursor)........... | 
| 1d1e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1d200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e    20 6e 61 6d 65 29 29 29 0a 20 20 22 41 53 54 20  | .............len.name)))..."AST. | 
| 1d220 |  6e 6f 64 65 20 66 6f 72 20 61 20 73 74 61 74 65    6d 65 6e 74 20 6c 61 62 65 6c 20 6f 72 20 63 61  | node.for.a.statement.label.or.ca | 
| 1d240 |  73 65 20 6c 61 62 65 6c 2e 22 0a 20 20 6e 61 6d    65 20 20 20 3b 20 61 20 73 74 72 69 6e 67 0a 20  | se.label."...name...;.a.string.. | 
| 1d260 |  20 6c 6f 6f 70 29 20 20 3b 20 66 6f 72 20 76 61    6c 69 64 61 74 69 6e 67 20 61 6e 64 20 63 6f 64  | .loop)..;.for.validating.and.cod | 
| 1d280 |  65 2d 67 65 6e 65 72 61 74 69 6e 67 20 63 6f 6e    74 69 6e 75 65 2d 74 6f 2d 6c 61 62 65 6c 0a 0a  | e-generating.continue-to-label.. | 
| 1d2a0 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65  | (js2--struct-put.'js2-label-node | 
| 1d2c0 |  20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a    73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28  | .'js2-visitor.'js2-visit-none).( | 
| 1d2e0 |  6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20    27 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 20  | js2--struct-put.'js2-label-node. | 
| 1d300 |  27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73    32 2d 70 72 69 6e 74 2d 6c 61 62 65 6c 29 0a 0a  | 'js2-printer.'js2-print-label).. | 
| 1d320 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74    2d 6c 61 62 65 6c 20 28 6e 20 69 29 0a 20 20 28  | (defun.js2-print-label.(n.i)...( | 
| 1d340 |  69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65    2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 20  | insert.(js2-make-pad.i)......... | 
| 1d360 |  20 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64    65 2d 6e 61 6d 65 20 6e 29 0a 20 20 20 20 20 20  | ..(js2-label-node-name.n)....... | 
| 1d380 |  20 20 20 20 22 3a 5c 6e 22 29 29 0a 0a 28 63 6c    2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d  | ....":\n"))..(cl-defstruct.(js2- | 
| 1d3a0 |  6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | labeled-stmt-node............... | 
| 1d3c0 |  20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .(:include.js2-node)............ | 
| 1d3e0 |  20 20 20 20 3b 3b 20 74 79 70 65 20 6e 65 65 64    73 20 74 6f 20 62 65 20 69 6e 20 60 6a 73 32 2d  | ....;;.type.needs.to.be.in.`js2- | 
| 1d400 |  73 69 64 65 2d 65 66 66 65 63 74 69 6e 67 2d 74    6f 6b 65 6e 73 27 20 74 6f 20 61 76 6f 69 64 20  | side-effecting-tokens'.to.avoid. | 
| 1d420 |  73 70 75 72 69 6f 75 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 2d 73 69  | spurious................;;.no-si | 
| 1d440 |  64 65 2d 65 66 66 65 63 74 73 20 77 61 72 6e 69    6e 67 73 2c 20 68 65 6e 63 65 20 6a 73 32 2d 45  | de-effects.warnings,.hence.js2-E | 
| 1d460 |  58 50 52 5f 52 45 53 55 4c 54 2e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e  | XPR_RESULT.................(:con | 
| 1d480 |  73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73    32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e  | structor.make-js2-labeled-stmt-n | 
| 1d4a0 |  6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20    6a 73 32 2d 45 58 50 52 5f 52 45 53 55 4c 54 29  | ode.(&key.(type.js2-EXPR_RESULT) | 
| 1d4c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1d4e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 1d500 |  70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f    72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos.js2-ts-cursor).............. | 
| 1d520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1d540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6c 65 6e 20 6c 61 62 65 6c 73 20 73 74 6d 74  | .................len.labels.stmt | 
| 1d560 |  29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20    66 6f 72 20 61 20 73 74 61 74 65 6d 65 6e 74 20  | )))..."AST.node.for.a.statement. | 
| 1d580 |  77 69 74 68 20 6f 6e 65 20 6f 72 20 6d 6f 72 65    20 6c 61 62 65 6c 73 2e 0a 4d 75 6c 74 69 70 6c  | with.one.or.more.labels..Multipl | 
| 1d5a0 |  65 20 6c 61 62 65 6c 73 20 66 6f 72 20 61 20 73    74 61 74 65 6d 65 6e 74 20 61 72 65 20 63 6f 6c  | e.labels.for.a.statement.are.col | 
| 1d5c0 |  6c 61 70 73 65 64 20 69 6e 74 6f 20 74 68 65 20    6c 61 62 65 6c 73 20 66 69 65 6c 64 2e 22 0a 20  | lapsed.into.the.labels.field.".. | 
| 1d5e0 |  20 6c 61 62 65 6c 73 20 20 3b 20 4c 69 73 70 20    6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 6c 61 62  | .labels..;.Lisp.list.of.`js2-lab | 
| 1d600 |  65 6c 2d 6e 6f 64 65 27 0a 20 20 73 74 6d 74 29    20 20 20 3b 20 74 68 65 20 73 74 61 74 65 6d 65  | el-node'...stmt)...;.the.stateme | 
| 1d620 |  6e 74 20 74 68 65 73 65 20 6c 61 62 65 6c 73 20    61 72 65 20 66 6f 72 0a 0a 28 6a 73 32 2d 2d 73  | nt.these.labels.are.for..(js2--s | 
| 1d640 |  74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c    61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65  | truct-put.'js2-labeled-stmt-node | 
| 1d660 |  20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a    73 32 2d 76 69 73 69 74 2d 6c 61 62 65 6c 65 64  | .'js2-visitor.'js2-visit-labeled | 
| 1d680 |  2d 73 74 6d 74 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 61 62  | -stmt).(js2--struct-put.'js2-lab | 
| 1d6a0 |  65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 20 27    6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32  | eled-stmt-node.'js2-printer.'js2 | 
| 1d6c0 |  2d 70 72 69 6e 74 2d 6c 61 62 65 6c 65 64 2d 73    74 6d 74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | -print-labeled-stmt)..(defun.js2 | 
| 1d6e0 |  2d 67 65 74 2d 6c 61 62 65 6c 2d 62 79 2d 6e 61    6d 65 20 28 6c 62 6c 2d 73 74 6d 74 20 6e 61 6d  | -get-label-by-name.(lbl-stmt.nam | 
| 1d700 |  65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 60    6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 27 20  | e)..."Return.a.`js2-label-node'. | 
| 1d720 |  62 79 20 4e 41 4d 45 20 66 72 6f 6d 20 4c 42 4c    2d 53 54 4d 54 27 73 20 6c 61 62 65 6c 73 20 6c  | by.NAME.from.LBL-STMT's.labels.l | 
| 1d740 |  69 73 74 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c    20 69 66 20 6e 6f 20 73 75 63 68 20 6c 61 62 65  | ist..Returns.nil.if.no.such.labe | 
| 1d760 |  6c 20 69 73 20 69 6e 20 74 68 65 20 6c 69 73 74    2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 61 62 65  | l.is.in.the.list."...(let.((labe | 
| 1d780 |  6c 2d 6c 69 73 74 20 28 6a 73 32 2d 6c 61 62 65    6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61  | l-list.(js2-labeled-stmt-node-la | 
| 1d7a0 |  62 65 6c 73 20 6c 62 6c 2d 73 74 6d 74 29 29 0a    20 20 20 20 20 20 20 20 72 65 73 75 6c 74 29 0a  | bels.lbl-stmt)).........result). | 
| 1d7c0 |  20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20    6c 61 62 65 6c 2d 6c 69 73 74 20 28 6e 6f 74 20  | ....(while.(and.label-list.(not. | 
| 1d7e0 |  72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 28    69 66 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32  | result)).......(if.(string=.(js2 | 
| 1d800 |  2d 6c 61 62 65 6c 2d 6e 6f 64 65 2d 6e 61 6d 65    20 28 63 61 72 20 6c 61 62 65 6c 2d 6c 69 73 74  | -label-node-name.(car.label-list | 
| 1d820 |  29 29 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20  | )).name)...........(setq.result. | 
| 1d840 |  28 63 61 72 20 6c 61 62 65 6c 2d 6c 69 73 74 29    29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | (car.label-list)).........(setq. | 
| 1d860 |  6c 61 62 65 6c 2d 6c 69 73 74 20 28 63 64 72 20    6c 61 62 65 6c 2d 6c 69 73 74 29 29 29 29 0a 20  | label-list.(cdr.label-list)))).. | 
| 1d880 |  20 20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 6c 61  | ...result))..(defun.js2-visit-la | 
| 1d8a0 |  62 65 6c 65 64 2d 73 74 6d 74 20 28 6e 20 76 29    0a 20 20 28 64 6f 6c 69 73 74 20 28 6c 61 62 65  | beled-stmt.(n.v)...(dolist.(labe | 
| 1d8c0 |  6c 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73    74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 20  | l.(js2-labeled-stmt-node-labels. | 
| 1d8e0 |  6e 29 29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73    69 74 2d 61 73 74 20 6c 61 62 65 6c 20 76 29 29  | n)).....(js2-visit-ast.label.v)) | 
| 1d900 |  0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73    74 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73  | ...(js2-visit-ast.(js2-labeled-s | 
| 1d920 |  74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6e 29    20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | tmt-node-stmt.n).v))..(defun.js2 | 
| 1d940 |  2d 70 72 69 6e 74 2d 6c 61 62 65 6c 65 64 2d 73    74 6d 74 20 28 6e 20 69 29 0a 20 20 28 64 6f 6c  | -print-labeled-stmt.(n.i)...(dol | 
| 1d960 |  69 73 74 20 28 6c 61 62 65 6c 20 28 6a 73 32 2d    6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64  | ist.(label.(js2-labeled-stmt-nod | 
| 1d980 |  65 2d 6c 61 62 65 6c 73 20 6e 29 29 0a 20 20 20    20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20  | e-labels.n)).....(js2-print-ast. | 
| 1d9a0 |  6c 61 62 65 6c 20 69 29 29 0a 20 20 28 6a 73 32    2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d  | label.i))...(js2-print-ast.(js2- | 
| 1d9c0 |  6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64    65 2d 73 74 6d 74 20 6e 29 20 69 29 29 0a 0a 28  | labeled-stmt-node-stmt.n).i))..( | 
| 1d9e0 |  64 65 66 75 6e 20 6a 73 32 2d 6c 61 62 65 6c 65    64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 63 6f 6e 74  | defun.js2-labeled-stmt-node-cont | 
| 1da00 |  61 69 6e 73 20 28 6e 6f 64 65 20 6c 61 62 65 6c    29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66  | ains.(node.label)..."Return.t.if | 
| 1da20 |  20 4e 4f 44 45 20 63 6f 6e 74 61 69 6e 73 20 4c    41 42 45 4c 20 69 6e 20 69 74 73 20 6c 61 62 65  | .NODE.contains.LABEL.in.its.labe | 
| 1da40 |  6c 20 73 65 74 2e 0a 4e 4f 44 45 20 69 73 20 61    20 60 6a 73 32 2d 6c 61 62 65 6c 73 2d 6e 6f 64  | l.set..NODE.is.a.`js2-labels-nod | 
| 1da60 |  65 27 2e 20 20 4c 41 42 45 4c 20 69 73 20 61 6e    20 69 64 65 6e 74 69 66 69 65 72 2e 22 0a 20 20  | e'...LABEL.is.an.identifier."... | 
| 1da80 |  28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6e 6c 20    69 6e 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d  | (cl-loop.for.nl.in.(js2-labeled- | 
| 1daa0 |  73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73    20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20  | stmt-node-labels.node).......... | 
| 1dac0 |  20 20 69 66 20 28 73 74 72 69 6e 67 3d 20 6c 61    62 65 6c 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e  | ..if.(string=.label.(js2-label-n | 
| 1dae0 |  6f 64 65 2d 6e 61 6d 65 20 6e 6c 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  | ode-name.nl))............return. | 
| 1db00 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e    61 6c 6c 79 20 72 65 74 75 72 6e 20 6e 69 6c 29  | t............finally.return.nil) | 
| 1db20 |  29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32    2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f  | )..(defsubst.js2-labeled-stmt-no | 
| 1db40 |  64 65 2d 61 64 64 2d 6c 61 62 65 6c 20 28 6e 6f    64 65 20 6c 61 62 65 6c 29 0a 20 20 22 41 64 64  | de-add-label.(node.label)..."Add | 
| 1db60 |  20 61 20 60 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f    64 65 27 20 74 6f 20 74 68 65 20 6c 61 62 65 6c  | .a.`js2-label-node'.to.the.label | 
| 1db80 |  20 73 65 74 20 66 6f 72 20 74 68 69 73 20 73 74    61 74 65 6d 65 6e 74 2e 22 0a 20 20 28 73 65 74  | .set.for.this.statement."...(set | 
| 1dba0 |  66 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73    74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c 73 20  | f.(js2-labeled-stmt-node-labels. | 
| 1dbc0 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6e    63 6f 6e 63 20 28 6a 73 32 2d 6c 61 62 65 6c 65  | node).........(nconc.(js2-labele | 
| 1dbe0 |  64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65    6c 73 20 6e 6f 64 65 29 20 28 6c 69 73 74 20 6c  | d-stmt-node-labels.node).(list.l | 
| 1dc00 |  61 62 65 6c 29 29 29 29 0a 0a 28 63 6c 2d 64 65    66 73 74 72 75 63 74 20 28 6a 73 32 2d 6a 75 6d  | abel))))..(cl-defstruct.(js2-jum | 
| 1dc20 |  70 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20  | p-node................(:include. | 
| 1dc40 |  6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74  | js2-node)................(:const | 
| 1dc60 |  72 75 63 74 6f 72 20 6e 69 6c 29 29 0a 20 20 22    41 62 73 74 72 61 63 74 20 73 75 70 65 72 74 79  | ructor.nil))..."Abstract.superty | 
| 1dc80 |  70 65 20 6f 66 20 62 72 65 61 6b 20 61 6e 64 20    63 6f 6e 74 69 6e 75 65 20 6e 6f 64 65 73 2e 22  | pe.of.break.and.continue.nodes." | 
| 1dca0 |  0a 20 20 6c 61 62 65 6c 20 20 20 3b 20 60 6a 73    32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 66 6f 72  | ...label...;.`js2-name-node'.for | 
| 1dcc0 |  20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 6c 61 62    65 6c 20 69 64 65 6e 74 69 66 69 65 72 2c 20 69  | .location.of.label.identifier,.i | 
| 1dce0 |  66 20 70 72 65 73 65 6e 74 0a 20 20 74 61 72 67    65 74 29 20 3b 20 74 61 72 67 65 74 20 6a 73 32  | f.present...target).;.target.js2 | 
| 1dd00 |  2d 6c 61 62 65 6c 73 2d 6e 6f 64 65 20 6f 72 20    6c 6f 6f 70 2f 73 77 69 74 63 68 20 73 74 61 74  | -labels-node.or.loop/switch.stat | 
| 1dd20 |  65 6d 65 6e 74 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 76 69 73 69 74 2d 6a 75 6d 70 2d 6e 6f 64  | ement..(defun.js2-visit-jump-nod | 
| 1dd40 |  65 20 28 6e 20 76 29 0a 20 20 3b 3b 20 57 65 20    64 6f 6e 27 74 20 76 69 73 69 74 20 74 68 65 20  | e.(n.v)...;;.We.don't.visit.the. | 
| 1dd60 |  74 61 72 67 65 74 2c 20 73 69 6e 63 65 20 69 74    27 73 20 61 20 62 61 63 6b 2d 6c 69 6e 6b 2e 0a  | target,.since.it's.a.back-link.. | 
| 1dd80 |  20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74    20 28 6a 73 32 2d 6a 75 6d 70 2d 6e 6f 64 65 2d  | ..(js2-visit-ast.(js2-jump-node- | 
| 1dda0 |  6c 61 62 65 6c 20 6e 29 20 76 29 29 0a 0a 28 63    6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32  | label.n).v))..(cl-defstruct.(js2 | 
| 1ddc0 |  2d 62 72 65 61 6b 2d 6e 6f 64 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63  | -break-node................(:inc | 
| 1dde0 |  6c 75 64 65 20 6a 73 32 2d 6a 75 6d 70 2d 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | lude.js2-jump-node)............. | 
| 1de00 |  20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72    20 6d 61 6b 65 2d 6a 73 32 2d 62 72 65 61 6b 2d  | ...(:constructor.make-js2-break- | 
| 1de20 |  6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65    20 6a 73 32 2d 42 52 45 41 4b 29 0a 20 20 20 20  | node.(&key.(type.js2-BREAK)..... | 
| 1de40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1de60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63  | ...................(pos.js2-ts-c | 
| 1de80 |  75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ursor).......................... | 
| 1dea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65  | ..............................le | 
| 1dec0 |  6e 20 6c 61 62 65 6c 20 74 61 72 67 65 74 29 29    29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f  | n.label.target)))..."AST.node.fo | 
| 1dee0 |  72 20 61 20 62 72 65 61 6b 20 73 74 61 74 65 6d    65 6e 74 2e 0a 54 68 65 20 6c 61 62 65 6c 20 66  | r.a.break.statement..The.label.f | 
| 1df00 |  69 65 6c 64 20 69 73 20 61 20 60 6a 73 32 2d 6e    61 6d 65 2d 6e 6f 64 65 27 2c 20 70 6f 73 73 69  | ield.is.a.`js2-name-node',.possi | 
| 1df20 |  62 6c 79 20 6e 69 6c 2c 20 66 6f 72 20 74 68 65    20 6e 61 6d 65 64 20 6c 61 62 65 6c 0a 69 66 20  | bly.nil,.for.the.named.label.if. | 
| 1df40 |  70 72 6f 76 69 64 65 64 2e 20 20 45 2e 67 2e 20    69 6e 20 60 62 72 65 61 6b 20 66 6f 6f 27 2c 20  | provided...E.g..in.`break.foo',. | 
| 1df60 |  69 74 20 72 65 70 72 65 73 65 6e 74 73 20 60 66    6f 6f 27 2e 20 20 54 68 65 20 74 61 72 67 65 74  | it.represents.`foo'...The.target | 
| 1df80 |  20 66 69 65 6c 64 0a 69 73 20 74 68 65 20 74 61    72 67 65 74 20 6f 66 20 74 68 65 20 62 72 65 61  | .field.is.the.target.of.the.brea | 
| 1dfa0 |  6b 20 2d 20 61 20 6c 61 62 65 6c 20 6e 6f 64 65    20 6f 72 20 65 6e 63 6c 6f 73 69 6e 67 20 6c 6f  | k.-.a.label.node.or.enclosing.lo | 
| 1dfc0 |  6f 70 2f 73 77 69 74 63 68 20 73 74 61 74 65 6d    65 6e 74 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74  | op/switch.statement.")..(js2--st | 
| 1dfe0 |  72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 62 72    65 61 6b 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69  | ruct-put.'js2-break-node.'js2-vi | 
| 1e000 |  73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74    2d 6a 75 6d 70 2d 6e 6f 64 65 29 0a 28 6a 73 32  | sitor.'js2-visit-jump-node).(js2 | 
| 1e020 |  2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73    32 2d 62 72 65 61 6b 2d 6e 6f 64 65 20 27 6a 73  | --struct-put.'js2-break-node.'js | 
| 1e040 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 62 72 65 61 6b 2d 6e 6f 64 65 29  | 2-printer.'js2-print-break-node) | 
| 1e060 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69    6e 74 2d 62 72 65 61 6b 2d 6e 6f 64 65 20 28 6e  | ..(defun.js2-print-break-node.(n | 
| 1e080 |  20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a    73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22  | .i)...(insert.(js2-make-pad.i)." | 
| 1e0a0 |  62 72 65 61 6b 22 29 0a 20 20 28 77 68 65 6e 20    28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64 65 2d  | break")...(when.(js2-break-node- | 
| 1e0c0 |  6c 61 62 65 6c 20 6e 29 0a 20 20 20 20 28 69 6e    73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a  | label.n).....(insert.".").....(j | 
| 1e0e0 |  73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73    32 2d 62 72 65 61 6b 2d 6e 6f 64 65 2d 6c 61 62  | s2-print-ast.(js2-break-node-lab | 
| 1e100 |  65 6c 20 6e 29 20 30 29 29 0a 20 20 28 69 6e 73    65 72 74 20 22 3b 5c 6e 22 29 29 0a 0a 28 63 6c  | el.n).0))...(insert.";\n"))..(cl | 
| 1e120 |  2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d    63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 0a 20 20  | -defstruct.(js2-continue-node... | 
| 1e140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69    6e 63 6c 75 64 65 20 6a 73 32 2d 6a 75 6d 70 2d  | .............(:include.js2-jump- | 
| 1e160 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74  | node)................(:construct | 
| 1e180 |  6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6e 74    69 6e 75 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20  | or.make-js2-continue-node.(&key. | 
| 1e1a0 |  28 74 79 70 65 20 6a 73 32 2d 43 4f 4e 54 49 4e    55 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (type.js2-CONTINUE)............. | 
| 1e1c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e1e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72  | ..............(pos.js2-ts-cursor | 
| 1e200 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 1e220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20  | ............................len. | 
| 1e240 |  6c 61 62 65 6c 20 74 61 72 67 65 74 29 29 29 0a    20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20  | label.target)))..."AST.node.for. | 
| 1e260 |  61 20 63 6f 6e 74 69 6e 75 65 20 73 74 61 74 65    6d 65 6e 74 2e 0a 54 68 65 20 6c 61 62 65 6c 20  | a.continue.statement..The.label. | 
| 1e280 |  66 69 65 6c 64 20 69 73 20 74 68 65 20 75 73 65    72 2d 73 75 70 70 6c 69 65 64 20 65 6e 63 6c 6f  | field.is.the.user-supplied.enclo | 
| 1e2a0 |  73 69 6e 67 20 6c 61 62 65 6c 20 6e 61 6d 65 2c    20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64  | sing.label.name,.a.`js2-name-nod | 
| 1e2c0 |  65 27 2e 0a 49 74 20 69 73 20 6e 69 6c 20 69 66    20 63 6f 6e 74 69 6e 75 65 20 73 70 65 63 69 66  | e'..It.is.nil.if.continue.specif | 
| 1e2e0 |  69 65 73 20 6e 6f 20 6c 61 62 65 6c 2e 20 20 54    68 65 20 74 61 72 67 65 74 20 66 69 65 6c 64 20  | ies.no.label...The.target.field. | 
| 1e300 |  69 73 20 74 68 65 20 6a 75 6d 70 20 74 61 72 67    65 74 3a 0a 61 20 60 6a 73 32 2d 6c 61 62 65 6c  | is.the.jump.target:.a.`js2-label | 
| 1e320 |  2d 6e 6f 64 65 27 20 6f 72 20 74 68 65 20 69 6e    6e 65 72 6d 6f 73 74 20 65 6e 63 6c 6f 73 69 6e  | -node'.or.the.innermost.enclosin | 
| 1e340 |  67 20 6c 6f 6f 70 2e 22 29 0a 0a 28 6a 73 32 2d    2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32  | g.loop.")..(js2--struct-put.'js2 | 
| 1e360 |  2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 27    6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32  | -continue-node.'js2-visitor.'js2 | 
| 1e380 |  2d 76 69 73 69 74 2d 6a 75 6d 70 2d 6e 6f 64 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | -visit-jump-node).(js2--struct-p | 
| 1e3a0 |  75 74 20 27 6a 73 32 2d 63 6f 6e 74 69 6e 75 65    2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74  | ut.'js2-continue-node.'js2-print | 
| 1e3c0 |  65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63 6f    6e 74 69 6e 75 65 2d 6e 6f 64 65 29 0a 0a 28 64  | er.'js2-print-continue-node)..(d | 
| 1e3e0 |  65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63    6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20 28 6e 20  | efun.js2-print-continue-node.(n. | 
| 1e400 |  69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73    32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 63  | i)...(insert.(js2-make-pad.i)."c | 
| 1e420 |  6f 6e 74 69 6e 75 65 22 29 0a 20 20 28 77 68 65    6e 20 28 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d  | ontinue")...(when.(js2-continue- | 
| 1e440 |  6e 6f 64 65 2d 6c 61 62 65 6c 20 6e 29 0a 20 20    20 20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20  | node-label.n).....(insert.".").. | 
| 1e460 |  20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73    74 20 28 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 2d  | ...(js2-print-ast.(js2-continue- | 
| 1e480 |  6e 6f 64 65 2d 6c 61 62 65 6c 20 6e 29 20 30 29    29 0a 20 20 28 69 6e 73 65 72 74 20 22 3b 5c 6e  | node-label.n).0))...(insert.";\n | 
| 1e4a0 |  22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75    63 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e  | "))..(cl-defstruct.(js2-function | 
| 1e4c0 |  2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a  | -node................(:include.j | 
| 1e4e0 |  73 32 2d 73 63 72 69 70 74 2d 6e 6f 64 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | s2-script-node)................( | 
| 1e500 |  3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b    65 2d 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e  | :constructor.make-js2-function-n | 
| 1e520 |  6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20    6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 0a 20 20  | ode.(&key.(type.js2-FUNCTION)... | 
| 1e540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32  | ........................(pos.js2 | 
| 1e580 |  2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -ts-cursor)..................... | 
| 1e5a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e5c0 |  20 20 20 20 20 20 6c 65 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......len....................... | 
| 1e5e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e600 |  20 20 20 20 28 66 74 79 70 65 20 27 46 55 4e 43    54 49 4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20  | ....(ftype.'FUNCTION)........... | 
| 1e620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 66 6f 72 6d 20 27 46 55 4e 43 54 49 4f 4e 5f  | ................(form.'FUNCTION_ | 
| 1e660 |  53 54 41 54 45 4d 45 4e 54 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | STATEMENT)...................... | 
| 1e680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e6a0 |  20 20 20 20 20 28 6e 61 6d 65 20 22 22 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....(name."").................. | 
| 1e6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e6e0 |  20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 20    72 65 73 74 2d 70 0a 20 20 20 20 20 20 20 20 20  | .........params.rest-p.......... | 
| 1e700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20  | .................body........... | 
| 1e740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 0a 20  | ................generator-type.. | 
| 1e780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e7a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 61 73 79 6e 63 0a 20  | .........................async.. | 
| 1e7c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1e7e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29 29  | .........................lp.rp)) | 
| 1e800 |  29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f    72 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65 63  | )..."AST.node.for.a.function.dec | 
| 1e820 |  6c 61 72 61 74 69 6f 6e 2e 0a 54 68 65 20 60 70    61 72 61 6d 73 27 20 66 69 65 6c 64 20 69 73 20  | laration..The.`params'.field.is. | 
| 1e840 |  61 20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 6e    6f 64 65 73 2e 20 20 45 61 63 68 20 6e 6f 64 65  | a.Lisp.list.of.nodes...Each.node | 
| 1e860 |  20 69 73 20 65 69 74 68 65 72 20 61 20 73 69 6d    70 6c 65 0a 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f  | .is.either.a.simple.`js2-name-no | 
| 1e880 |  64 65 27 2c 20 6f 72 20 69 66 20 69 74 27 73 20    61 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 2d  | de',.or.if.it's.a.destructuring- | 
| 1e8a0 |  61 73 73 69 67 6e 6d 65 6e 74 20 70 61 72 61 6d    65 74 65 72 2c 20 61 0a 60 6a 73 32 2d 61 72 72  | assignment.parameter,.a.`js2-arr | 
| 1e8c0 |  61 79 2d 6e 6f 64 65 27 20 6f 72 20 60 6a 73 32    2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27 2e 22 0a  | ay-node'.or.`js2-object-node'.". | 
| 1e8e0 |  20 20 66 74 79 70 65 20 20 20 20 20 20 20 20 20    20 20 20 3b 20 46 55 4e 43 54 49 4f 4e 2c 20 47  | ..ftype............;.FUNCTION,.G | 
| 1e900 |  45 54 54 45 52 20 6f 72 20 53 45 54 54 45 52 0a    20 20 66 6f 72 6d 20 20 20 20 20 20 20 20 20 20  | ETTER.or.SETTER...form.......... | 
| 1e920 |  20 20 20 3b 20 46 55 4e 43 54 49 4f 4e 5f 7b 53    54 41 54 45 4d 45 4e 54 7c 45 58 50 52 45 53 53  | ...;.FUNCTION_{STATEMENT|EXPRESS | 
| 1e940 |  49 4f 4e 7c 41 52 52 4f 57 7d 0a 20 20 6e 61 6d    65 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20  | ION|ARROW}...name.............;. | 
| 1e960 |  66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 28 61    20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27  | function.name.(a.`js2-name-node' | 
| 1e980 |  2c 20 6f 72 20 6e 69 6c 20 69 66 20 61 6e 6f 6e    79 6d 6f 75 73 29 0a 20 20 70 61 72 61 6d 73 20  | ,.or.nil.if.anonymous)...params. | 
| 1e9a0 |  20 20 20 20 20 20 20 20 20 20 3b 20 61 20 4c 69    73 70 20 6c 69 73 74 20 6f 66 20 64 65 73 74 72  | ..........;.a.Lisp.list.of.destr | 
| 1e9c0 |  75 63 74 75 72 69 6e 67 20 66 6f 72 6d 73 20 6f    72 20 73 69 6d 70 6c 65 20 6e 61 6d 65 20 6e 6f  | ucturing.forms.or.simple.name.no | 
| 1e9e0 |  64 65 73 0a 20 20 72 65 73 74 2d 70 20 20 20 20    20 20 20 20 20 20 20 3b 20 69 66 20 74 2c 20 74  | des...rest-p...........;.if.t,.t | 
| 1ea00 |  68 65 20 6c 61 73 74 20 70 61 72 61 6d 65 74 65    72 20 69 73 20 72 65 73 74 20 70 61 72 61 6d 65  | he.last.parameter.is.rest.parame | 
| 1ea20 |  74 65 72 0a 20 20 62 6f 64 79 20 20 20 20 20 20    20 20 20 20 20 20 20 3b 20 61 20 60 6a 73 32 2d  | ter...body.............;.a.`js2- | 
| 1ea40 |  62 6c 6f 63 6b 2d 6e 6f 64 65 27 20 6f 72 20 65    78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 20 28  | block-node'.or.expression.node.( | 
| 1ea60 |  31 2e 38 20 6f 6e 6c 79 29 0a 20 20 6c 70 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 70  | 1.8.only)...lp...............;.p | 
| 1ea80 |  6f 73 69 74 69 6f 6e 20 6f 66 20 61 72 67 2d 6c    69 73 74 20 6f 70 65 6e 2d 70 61 72 65 6e 2c 20  | osition.of.arg-list.open-paren,. | 
| 1eaa0 |  6f 72 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65    64 0a 20 20 72 70 20 20 20 20 20 20 20 20 20 20  | or.nil.if.omitted...rp.......... | 
| 1eac0 |  20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20    6f 66 20 61 72 67 2d 6c 69 73 74 20 63 6c 6f 73  | .....;.position.of.arg-list.clos | 
| 1eae0 |  65 2d 70 61 72 65 6e 2c 20 6f 72 20 6e 69 6c 20    69 66 20 6f 6d 69 74 74 65 64 0a 20 20 69 67 6e  | e-paren,.or.nil.if.omitted...ign | 
| 1eb00 |  6f 72 65 2d 64 79 6e 61 6d 69 63 20 20 20 3b 20    69 67 6e 6f 72 65 20 76 61 6c 75 65 20 6f 66 20  | ore-dynamic...;.ignore.value.of. | 
| 1eb20 |  74 68 65 20 64 79 6e 61 6d 69 63 2d 73 63 6f 70    65 20 66 6c 61 67 20 28 69 6e 74 65 72 70 72 65  | the.dynamic-scope.flag.(interpre | 
| 1eb40 |  74 65 72 20 6f 6e 6c 79 29 0a 20 20 6e 65 65 64    73 2d 61 63 74 69 76 61 74 69 6f 6e 20 3b 20 74  | ter.only)...needs-activation.;.t | 
| 1eb60 |  20 69 66 20 77 65 20 6e 65 65 64 20 61 6e 20 61    63 74 69 76 61 74 69 6f 6e 20 6f 62 6a 65 63 74  | .if.we.need.an.activation.object | 
| 1eb80 |  20 66 6f 72 20 74 68 69 73 20 66 72 61 6d 65 0a    20 20 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65  | .for.this.frame...generator-type | 
| 1eba0 |  20 20 20 3b 20 53 54 41 52 2c 20 4c 45 47 41 43    59 2c 20 43 4f 4d 50 52 45 48 45 4e 53 49 4f 4e  | ...;.STAR,.LEGACY,.COMPREHENSION | 
| 1ebc0 |  20 6f 72 20 6e 69 6c 0a 20 20 61 73 79 6e 63 20    20 20 20 20 20 20 20 20 20 20 20 3b 20 74 20 69  | .or.nil...async............;.t.i | 
| 1ebe0 |  66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69    73 20 64 65 66 69 6e 65 64 20 61 73 20 60 61 73  | f.the.function.is.defined.as.`as | 
| 1ec00 |  79 6e 63 20 66 75 6e 63 74 69 6f 6e 60 0a 20 20    6d 65 6d 62 65 72 2d 65 78 70 72 29 20 20 20 20  | ync.function`...member-expr).... | 
| 1ec20 |  20 3b 20 6e 6f 6e 73 74 61 6e 64 61 72 64 20 45    63 6d 61 20 65 78 74 65 6e 73 69 6f 6e 20 66 72  | .;.nonstandard.Ecma.extension.fr | 
| 1ec40 |  6f 6d 20 52 68 69 6e 6f 0a 0a 28 6a 73 32 2d 2d    73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d  | om.Rhino..(js2--struct-put.'js2- | 
| 1ec60 |  66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | function-node.'js2-visitor.'js2- | 
| 1ec80 |  76 69 73 69 74 2d 66 75 6e 63 74 69 6f 6e 2d 6e    6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | visit-function-node).(js2--struc | 
| 1eca0 |  74 2d 70 75 74 20 27 6a 73 32 2d 66 75 6e 63 74    69 6f 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72  | t-put.'js2-function-node.'js2-pr | 
| 1ecc0 |  69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74    2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 29 0a  | inter.'js2-print-function-node). | 
| 1ece0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69    74 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20  | .(defun.js2-visit-function-node. | 
| 1ed00 |  28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73    69 74 2d 61 73 74 20 28 6a 73 32 2d 66 75 6e 63  | (n.v)...(js2-visit-ast.(js2-func | 
| 1ed20 |  74 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e    29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20 28  | tion-node-name.n).v)...(dolist.( | 
| 1ed40 |  70 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d    6e 6f 64 65 2d 70 61 72 61 6d 73 20 6e 29 29 0a  | p.(js2-function-node-params.n)). | 
| 1ed60 |  20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61    73 74 20 70 20 76 29 29 0a 20 20 28 6a 73 32 2d  | ....(js2-visit-ast.p.v))...(js2- | 
| 1ed80 |  76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 66    75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64  | visit-ast.(js2-function-node-bod | 
| 1eda0 |  79 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 72 69 6e 74 2d 66 75 6e 63 74  | y.n).v))..(defun.js2-print-funct | 
| 1edc0 |  69 6f 6e 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20    20 28 6c 65 74 2a 20 28 28 70 61 64 20 28 6a 73  | ion-node.(n.i)...(let*.((pad.(js | 
| 1ede0 |  32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20    20 20 20 20 20 20 20 20 28 6d 65 74 68 6f 64 20  | 2-make-pad.i))..........(method. | 
| 1ee00 |  28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72    6f 70 20 6e 20 27 4d 45 54 48 4f 44 5f 54 59 50  | (js2-node-get-prop.n.'METHOD_TYP | 
| 1ee20 |  45 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 61    6d 65 20 28 6f 72 20 28 6a 73 32 2d 66 75 6e 63  | E))..........(name.(or.(js2-func | 
| 1ee40 |  74 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tion-node-name.n)............... | 
| 1ee60 |  20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69    6f 6e 2d 6e 6f 64 65 2d 6d 65 6d 62 65 72 2d 65  | .....(js2-function-node-member-e | 
| 1ee80 |  78 70 72 20 6e 29 29 29 0a 20 20 20 20 20 20 20    20 20 28 70 61 72 61 6d 73 20 28 6a 73 32 2d 66  | xpr.n)))..........(params.(js2-f | 
| 1eea0 |  75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61 72    61 6d 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20  | unction-node-params.n))......... | 
| 1eec0 |  20 28 61 72 72 6f 77 20 28 65 71 20 28 6a 73 32    2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66  | .(arrow.(eq.(js2-function-node-f | 
| 1eee0 |  6f 72 6d 20 6e 29 20 27 46 55 4e 43 54 49 4f 4e    5f 41 52 52 4f 57 29 29 0a 20 20 20 20 20 20 20  | orm.n).'FUNCTION_ARROW))........ | 
| 1ef00 |  20 20 28 72 65 73 74 2d 70 20 28 6a 73 32 2d 66    75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 65 73  | ..(rest-p.(js2-function-node-res | 
| 1ef20 |  74 2d 70 20 6e 29 29 0a 20 20 20 20 20 20 20 20    20 28 62 6f 64 79 20 28 6a 73 32 2d 66 75 6e 63  | t-p.n))..........(body.(js2-func | 
| 1ef40 |  74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e    29 29 0a 20 20 20 20 20 20 20 20 20 28 65 78 70  | tion-node-body.n))..........(exp | 
| 1ef60 |  72 20 28 6e 6f 74 20 28 65 71 20 28 6a 73 32 2d    66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66 6f  | r.(not.(eq.(js2-function-node-fo | 
| 1ef80 |  72 6d 20 6e 29 20 27 46 55 4e 43 54 49 4f 4e 5f    53 54 41 54 45 4d 45 4e 54 29 29 29 29 0a 20 20  | rm.n).'FUNCTION_STATEMENT))))... | 
| 1efa0 |  20 20 28 75 6e 6c 65 73 73 20 6d 65 74 68 6f 64    0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 70  | ..(unless.method.......(insert.p | 
| 1efc0 |  61 64 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20    28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f  | ad).......(when.(js2-function-no | 
| 1efe0 |  64 65 2d 61 73 79 6e 63 20 6e 29 20 28 69 6e 73    65 72 74 20 22 61 73 79 6e 63 20 22 29 29 0a 20  | de-async.n).(insert."async.")).. | 
| 1f000 |  20 20 20 20 20 28 75 6e 6c 65 73 73 20 61 72 72    6f 77 20 28 69 6e 73 65 72 74 20 22 66 75 6e 63  | .....(unless.arrow.(insert."func | 
| 1f020 |  74 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 28 77    68 65 6e 20 28 65 71 20 28 6a 73 32 2d 66 75 6e  | tion")).......(when.(eq.(js2-fun | 
| 1f040 |  63 74 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72    61 74 6f 72 2d 74 79 70 65 20 6e 29 20 27 53 54  | ction-node-generator-type.n).'ST | 
| 1f060 |  41 52 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73    65 72 74 20 22 2a 22 29 29 29 0a 20 20 20 20 28  | AR).........(insert."*"))).....( | 
| 1f080 |  77 68 65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20    28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20 20  | when.name.......(insert.".").... | 
| 1f0a0 |  20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73    74 20 6e 61 6d 65 20 30 29 29 0a 20 20 20 20 28  | ...(js2-print-ast.name.0)).....( | 
| 1f0c0 |  69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 20 20    28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6c 65  | insert."(").....(cl-loop.with.le | 
| 1f0e0 |  6e 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 61    6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | n.=.(length.params)............. | 
| 1f100 |  20 66 6f 72 20 70 61 72 61 6d 20 69 6e 20 70 61    72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20  | .for.param.in.params............ | 
| 1f120 |  20 20 66 6f 72 20 63 6f 75 6e 74 20 66 72 6f 6d    20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..for.count.from.1.............. | 
| 1f140 |  64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 28 61 6e 64 20 72 65 73 74 2d  | do..............(when.(and.rest- | 
| 1f160 |  70 20 28 3d 20 63 6f 75 6e 74 20 6c 65 6e 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p.(=.count.len))................ | 
| 1f180 |  28 69 6e 73 65 72 74 20 22 2e 2e 2e 22 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | (insert."..."))..............(js | 
| 1f1a0 |  32 2d 70 72 69 6e 74 2d 61 73 74 20 70 61 72 61    6d 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20  | 2-print-ast.param.0)............ | 
| 1f1c0 |  20 20 28 77 68 65 6e 20 28 3c 20 63 6f 75 6e 74    20 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20  | ..(when.(<.count.len)........... | 
| 1f1e0 |  20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c 20    22 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74  | .....(insert.",."))).....(insert | 
| 1f200 |  20 22 29 20 22 29 0a 20 20 20 20 28 77 68 65 6e    20 61 72 72 6f 77 0a 20 20 20 20 20 20 28 69 6e  | .").").....(when.arrow.......(in | 
| 1f220 |  73 65 72 74 20 22 3d 3e 20 22 29 29 0a 20 20 20    20 28 69 6e 73 65 72 74 20 22 7b 22 29 0a 20 20  | sert."=>.")).....(insert."{")... | 
| 1f240 |  20 20 3b 3b 20 54 4f 44 4f 3a 20 20 66 69 78 20    74 68 69 73 20 74 6f 20 62 65 20 73 6d 61 72 74  | ..;;.TODO:..fix.this.to.be.smart | 
| 1f260 |  65 72 20 61 62 6f 75 74 20 69 6e 64 65 6e 74 69    6e 67 2c 20 65 74 63 2e 0a 20 20 20 20 28 75 6e  | er.about.indenting,.etc......(un | 
| 1f280 |  6c 65 73 73 20 65 78 70 72 0a 20 20 20 20 20 20    28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20  | less.expr.......(insert."\n")).. | 
| 1f2a0 |  20 20 20 28 69 66 20 28 6a 73 32 2d 62 6c 6f 63    6b 2d 6e 6f 64 65 2d 70 20 62 6f 64 79 29 0a 20  | ...(if.(js2-block-node-p.body).. | 
| 1f2c0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e    74 2d 62 6f 64 79 20 62 6f 64 79 20 28 31 2b 20  | .......(js2-print-body.body.(1+. | 
| 1f2e0 |  69 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70    72 69 6e 74 2d 61 73 74 20 62 6f 64 79 20 30 29  | i)).......(js2-print-ast.body.0) | 
| 1f300 |  29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70 61    64 20 22 7d 22 29 0a 20 20 20 20 28 75 6e 6c 65  | ).....(insert.pad."}").....(unle | 
| 1f320 |  73 73 20 65 78 70 72 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 0a  | ss.expr.......(insert."\n")))).. | 
| 1f340 |  28 64 65 66 75 6e 20 6a 73 32 2d 66 75 6e 63 74    69 6f 6e 2d 6e 61 6d 65 20 28 6e 6f 64 65 29 0a  | (defun.js2-function-name.(node). | 
| 1f360 |  20 20 22 52 65 74 75 72 6e 20 66 75 6e 63 74 69    6f 6e 20 6e 61 6d 65 20 66 6f 72 20 4e 4f 44 45  | .."Return.function.name.for.NODE | 
| 1f380 |  2c 20 61 20 60 6a 73 32 2d 66 75 6e 63 74 69 6f    6e 2d 6e 6f 64 65 27 2c 20 6f 72 20 6e 69 6c 20  | ,.a.`js2-function-node',.or.nil. | 
| 1f3a0 |  69 66 20 61 6e 6f 6e 79 6d 6f 75 73 2e 22 0a 20    20 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74  | if.anonymous."...(and.(js2-funct | 
| 1f3c0 |  69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d  | ion-node-name.node)........(js2- | 
| 1f3e0 |  6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 28    6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64  | name-node-name.(js2-function-nod | 
| 1f400 |  65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 0a    0a 3b 3b 20 48 61 76 69 6e 67 20 74 68 69 73 20  | e-name.node))))..;;.Having.this. | 
| 1f420 |  62 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e    20 6e 6f 64 65 20 6d 61 6b 65 73 20 69 74 20 6d  | be.an.expression.node.makes.it.m | 
| 1f440 |  6f 72 65 20 66 6c 65 78 69 62 6c 65 2e 0a 3b 3b    20 54 68 65 72 65 20 61 72 65 20 49 44 45 20 63  | ore.flexible..;;.There.are.IDE.c | 
| 1f460 |  6f 6e 74 65 78 74 73 2c 20 73 75 63 68 20 61 73    20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 69 6e 20  | ontexts,.such.as.indentation.in. | 
| 1f480 |  61 20 66 6f 72 2d 6c 6f 6f 70 20 69 6e 69 74 69    61 6c 69 7a 65 72 2c 0a 3b 3b 20 74 68 61 74 20  | a.for-loop.initializer,.;;.that. | 
| 1f4a0 |  77 6f 72 6b 20 62 65 74 74 65 72 20 69 66 20 79    6f 75 20 61 73 73 75 6d 65 20 69 74 27 73 20 61  | work.better.if.you.assume.it's.a | 
| 1f4c0 |  6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 20 57    68 65 6e 65 76 65 72 20 77 65 20 68 61 76 65 0a  | n.expression...Whenever.we.have. | 
| 1f4e0 |  3b 3b 20 61 20 73 74 61 6e 64 61 6c 6f 6e 65 20    76 61 72 2f 63 6f 6e 73 74 20 64 65 63 6c 61 72  | ;;.a.standalone.var/const.declar | 
| 1f500 |  61 74 69 6f 6e 2c 20 77 65 20 6a 75 73 74 20 77    72 61 70 20 77 69 74 68 20 61 6e 20 65 78 70 72  | ation,.we.just.wrap.with.an.expr | 
| 1f520 |  20 73 74 6d 74 2e 0a 3b 3b 20 45 63 6c 69 70 73    65 20 61 70 70 61 72 65 6e 74 6c 79 20 73 63 72  | .stmt..;;.Eclipse.apparently.scr | 
| 1f540 |  65 77 65 64 20 74 68 69 73 20 75 70 20 61 6e 64    20 6e 6f 77 20 68 61 73 20 74 77 6f 20 76 65 72  | ewed.this.up.and.now.has.two.ver | 
| 1f560 |  73 69 6f 6e 73 2c 20 65 78 70 72 20 61 6e 64 20    73 74 6d 74 2e 0a 28 63 6c 2d 64 65 66 73 74 72  | sions,.expr.and.stmt..(cl-defstr | 
| 1f580 |  75 63 74 20 28 6a 73 32 2d 76 61 72 2d 64 65 63    6c 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20  | uct.(js2-var-decl-node.......... | 
| 1f5a0 |  20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20    6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20  | ......(:include.js2-node)....... | 
| 1f5c0 |  20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74    72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d  | .........(:constructor.make-js2- | 
| 1f5e0 |  76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 20 28 26    6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 56 41  | var-decl-node.(&key.(type.js2-VA | 
| 1f600 |  52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | R).............................. | 
| 1f620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f  | .............................(po | 
| 1f640 |  73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20  | s.(js2-current-token-beg))...... | 
| 1f660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1f680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6c 65 6e 20 6b 69 64 73 0a 20 20  | .....................len.kids... | 
| 1f6a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1f6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 64 65 63 6c 2d 74 79 70  | ........................decl-typ | 
| 1f6e0 |  65 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65    20 66 6f 72 20 61 20 76 61 72 69 61 62 6c 65 20  | e)))..."AST.node.for.a.variable. | 
| 1f700 |  64 65 63 6c 61 72 61 74 69 6f 6e 20 6c 69 73 74    20 28 56 41 52 2c 20 43 4f 4e 53 54 20 6f 72 20  | declaration.list.(VAR,.CONST.or. | 
| 1f720 |  4c 45 54 29 2e 0a 54 68 65 20 6e 6f 64 65 20 62    6f 75 6e 64 73 20 64 69 66 66 65 72 20 64 65 70  | LET)..The.node.bounds.differ.dep | 
| 1f740 |  65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 64 65    63 6c 61 72 61 74 69 6f 6e 20 74 79 70 65 2e 20  | ending.on.the.declaration.type.. | 
| 1f760 |  20 46 6f 72 20 56 41 52 20 6f 72 0a 43 4f 4e 53    54 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20  | .For.VAR.or.CONST.declarations,. | 
| 1f780 |  74 68 65 20 62 6f 75 6e 64 73 20 69 6e 63 6c 75    64 65 20 74 68 65 20 76 61 72 2f 63 6f 6e 73 74  | the.bounds.include.the.var/const | 
| 1f7a0 |  20 6b 65 79 77 6f 72 64 2e 20 20 46 6f 72 20 4c    45 54 0a 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c  | .keyword...For.LET.declarations, | 
| 1f7c0 |  20 74 68 65 20 6e 6f 64 65 20 62 65 67 69 6e 73    20 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e  | .the.node.begins.at.the.position | 
| 1f7e0 |  20 6f 66 20 74 68 65 20 66 69 72 73 74 20 63 68    69 6c 64 2e 22 0a 20 20 6b 69 64 73 20 20 20 20  | .of.the.first.child."...kids.... | 
| 1f800 |  20 20 20 20 3b 20 61 20 4c 69 73 70 20 6c 69 73    74 20 6f 66 20 60 6a 73 32 2d 76 61 72 2d 69 6e  | ....;.a.Lisp.list.of.`js2-var-in | 
| 1f820 |  69 74 2d 6e 6f 64 65 27 20 73 74 72 75 63 74 73    2e 0a 20 20 64 65 63 6c 2d 74 79 70 65 29 20 20  | it-node'.structs....decl-type).. | 
| 1f840 |  3b 20 6a 73 32 2d 56 41 52 2c 20 6a 73 32 2d 43    4f 4e 53 54 20 6f 72 20 6a 73 32 2d 4c 45 54 0a  | ;.js2-VAR,.js2-CONST.or.js2-LET. | 
| 1f860 |  0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75    74 20 27 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d  | .(js2--struct-put.'js2-var-decl- | 
| 1f880 |  6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f    72 20 27 6a 73 32 2d 76 69 73 69 74 2d 76 61 72  | node.'js2-visitor.'js2-visit-var | 
| 1f8a0 |  2d 64 65 63 6c 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 76 61 72  | -decl).(js2--struct-put.'js2-var | 
| 1f8c0 |  2d 64 65 63 6c 2d 6e 6f 64 65 20 27 6a 73 32 2d    70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69  | -decl-node.'js2-printer.'js2-pri | 
| 1f8e0 |  6e 74 2d 76 61 72 2d 64 65 63 6c 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 76  | nt-var-decl)..(defun.js2-visit-v | 
| 1f900 |  61 72 2d 64 65 63 6c 20 28 6e 20 76 29 0a 20 20    28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73  | ar-decl.(n.v)...(dolist.(kid.(js | 
| 1f920 |  32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d    6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 6a 73  | 2-var-decl-node-kids.n)).....(js | 
| 1f940 |  32 2d 76 69 73 69 74 2d 61 73 74 20 6b 69 64 20    76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | 2-visit-ast.kid.v)))..(defun.js2 | 
| 1f960 |  2d 70 72 69 6e 74 2d 76 61 72 2d 64 65 63 6c 20    28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28 70  | -print-var-decl.(n.i)...(let.((p | 
| 1f980 |  61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64    20 69 29 29 0a 20 20 20 20 20 20 20 20 28 74 74  | ad.(js2-make-pad.i)).........(tt | 
| 1f9a0 |  20 28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e    6f 64 65 2d 64 65 63 6c 2d 74 79 70 65 20 6e 29  | .(js2-var-decl-node-decl-type.n) | 
| 1f9c0 |  29 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 70    61 64 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20  | )).....(insert.pad).....(insert. | 
| 1f9e0 |  28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 56 41  | (cond..............((=.tt.js2-VA | 
| 1fa00 |  52 29 20 22 76 61 72 20 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a  | R)."var.")..............((=.tt.j | 
| 1fa20 |  73 32 2d 4c 45 54 29 20 22 6c 65 74 20 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d  | s2-LET)."let.")..............((= | 
| 1fa40 |  20 74 74 20 6a 73 32 2d 43 4f 4e 53 54 29 20 22    63 6f 6e 73 74 20 22 29 0a 20 20 20 20 20 20 20  | .tt.js2-CONST)."const.")........ | 
| 1fa60 |  20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 6d  | ......(t...............(error."m | 
| 1fa80 |  61 6c 66 6f 72 6d 65 64 20 76 61 72 2d 64 65 63    6c 20 6e 6f 64 65 22 29 29 29 29 0a 20 20 20 20  | alformed.var-decl.node"))))..... | 
| 1faa0 |  28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6b 69    64 73 20 3d 20 28 6a 73 32 2d 76 61 72 2d 64 65  | (cl-loop.with.kids.=.(js2-var-de | 
| 1fac0 |  63 6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74  | cl-node-kids.n)..............wit | 
| 1fae0 |  68 20 6c 65 6e 20 3d 20 28 6c 65 6e 67 74 68 20    6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 20 20  | h.len.=.(length.kids)........... | 
| 1fb00 |  20 20 20 66 6f 72 20 6b 69 64 20 69 6e 20 6b 69    64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...for.kid.in.kids.............. | 
| 1fb20 |  66 6f 72 20 63 6f 75 6e 74 20 66 72 6f 6d 20 31    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f  | for.count.from.1..............do | 
| 1fb40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64  | ..............(js2-print-ast.kid | 
| 1fb60 |  20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 28 3c 20 63 6f 75 6e 74 20 6c 65  | .0)..............(if.(<.count.le | 
| 1fb80 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 69 6e 73 65 72 74 20 22 2c 20 22  | n)..................(insert.",." | 
| 1fba0 |  29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74    72 75 63 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e  | )))))..(cl-defstruct.(js2-var-in | 
| 1fbc0 |  69 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65  | it-node................(:include | 
| 1fbe0 |  20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73  | .js2-node)................(:cons | 
| 1fc00 |  74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32    2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 28  | tructor.make-js2-var-init-node.( | 
| 1fc20 |  26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 56    41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | &key.(type.js2-VAR)............. | 
| 1fc40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1fc60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72  | ..............(pos.js2-ts-cursor | 
| 1fc80 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 1fca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20  | ............................len. | 
| 1fcc0 |  74 61 72 67 65 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | target.......................... | 
| 1fce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 1fd00 |  20 69 6e 69 74 69 61 6c 69 7a 65 72 29 29 29 0a    20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20  | .initializer)))..."AST.node.for. | 
| 1fd20 |  61 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61    72 61 74 69 6f 6e 2e 0a 54 68 65 20 74 79 70 65  | a.variable.declaration..The.type | 
| 1fd40 |  20 66 69 65 6c 64 20 77 69 6c 6c 20 62 65 20 6a    73 32 2d 43 4f 4e 53 54 20 66 6f 72 20 61 20 63  | .field.will.be.js2-CONST.for.a.c | 
| 1fd60 |  6f 6e 73 74 20 64 65 63 6c 2e 22 0a 20 20 74 61    72 67 65 74 20 20 20 20 20 20 20 20 3b 20 60 6a  | onst.decl."...target........;.`j | 
| 1fd80 |  73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2c 20 60    6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27  | s2-name-node',.`js2-object-node' | 
| 1fda0 |  2c 20 6f 72 20 60 6a 73 32 2d 61 72 72 61 79 2d    6e 6f 64 65 27 0a 20 20 69 6e 69 74 69 61 6c 69  | ,.or.`js2-array-node'...initiali | 
| 1fdc0 |  7a 65 72 29 20 20 3b 20 69 6e 69 74 69 61 6c 69    7a 65 72 20 65 78 70 72 65 73 73 69 6f 6e 2c 20  | zer)..;.initializer.expression,. | 
| 1fde0 |  61 20 60 6a 73 32 2d 6e 6f 64 65 27 0a 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | a.`js2-node'..(js2--struct-put.' | 
| 1fe00 |  6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64    65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27  | js2-var-init-node.'js2-visitor.' | 
| 1fe20 |  6a 73 32 2d 76 69 73 69 74 2d 76 61 72 2d 69 6e    69 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73  | js2-visit-var-init-node).(js2--s | 
| 1fe40 |  74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 76    61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 27 6a 73  | truct-put.'js2-var-init-node.'js | 
| 1fe60 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f  | 2-printer.'js2-print-var-init-no | 
| 1fe80 |  64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    76 69 73 69 74 2d 76 61 72 2d 69 6e 69 74 2d 6e  | de)..(defun.js2-visit-var-init-n | 
| 1fea0 |  6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d  | ode.(n.v)...(js2-visit-ast.(js2- | 
| 1fec0 |  76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61    72 67 65 74 20 6e 29 20 76 29 0a 20 20 28 6a 73  | var-init-node-target.n).v)...(js | 
| 1fee0 |  32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32    2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69  | 2-visit-ast.(js2-var-init-node-i | 
| 1ff00 |  6e 69 74 69 61 6c 69 7a 65 72 20 6e 29 20 76 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72  | nitializer.n).v))..(defun.js2-pr | 
| 1ff20 |  69 6e 74 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64    65 20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28  | int-var-init-node.(n.i)...(let.( | 
| 1ff40 |  28 70 61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70    61 64 20 69 29 29 0a 20 20 20 20 20 20 20 20 28  | (pad.(js2-make-pad.i)).........( | 
| 1ff60 |  6e 61 6d 65 20 28 6a 73 32 2d 76 61 72 2d 69 6e    69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e  | name.(js2-var-init-node-target.n | 
| 1ff80 |  29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 69 74    20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e  | )).........(init.(js2-var-init-n | 
| 1ffa0 |  6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20    6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74  | ode-initializer.n))).....(insert | 
| 1ffc0 |  20 70 61 64 29 0a 20 20 20 20 28 6a 73 32 2d 70    72 69 6e 74 2d 61 73 74 20 6e 61 6d 65 20 30 29  | .pad).....(js2-print-ast.name.0) | 
| 1ffe0 |  0a 20 20 20 20 28 77 68 65 6e 20 69 6e 69 74 0a    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20  | .....(when.init.......(insert.". | 
| 20000 |  3d 20 22 29 0a 20 20 20 20 20 20 28 6a 73 32 2d    70 72 69 6e 74 2d 61 73 74 20 69 6e 69 74 20 30  | =.").......(js2-print-ast.init.0 | 
| 20020 |  29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72    75 63 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f  | ))))..(cl-defstruct.(js2-cond-no | 
| 20040 |  64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d  | de................(:include.js2- | 
| 20060 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74  | node)................(:construct | 
| 20080 |  6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6e 64    2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70  | or.make-js2-cond-node.(&key.(typ | 
| 200a0 |  65 20 6a 73 32 2d 48 4f 4f 4b 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.js2-HOOK)..................... | 
| 200c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 200e0 |  20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75    72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20  | ..(pos.js2-ts-cursor)........... | 
| 20100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 20120 |  20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............len................. | 
| 20140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 20160 |  20 20 20 20 20 20 74 65 73 74 2d 65 78 70 72 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......test-expr................. | 
| 20180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 201a0 |  20 20 20 20 20 20 74 72 75 65 2d 65 78 70 72 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......true-expr................. | 
| 201c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 201e0 |  20 20 20 20 20 20 66 61 6c 73 65 2d 65 78 70 72    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......false-expr................ | 
| 20200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 20220 |  20 20 20 20 20 20 20 71 2d 70 6f 73 20 63 2d 70    6f 73 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64  | .......q-pos.c-pos)))..."AST.nod | 
| 20240 |  65 20 66 6f 72 20 74 68 65 20 74 65 72 6e 61 72    79 20 6f 70 65 72 61 74 6f 72 22 0a 20 20 74 65  | e.for.the.ternary.operator"...te | 
| 20260 |  73 74 2d 65 78 70 72 0a 20 20 74 72 75 65 2d 65    78 70 72 0a 20 20 66 61 6c 73 65 2d 65 78 70 72  | st-expr...true-expr...false-expr | 
| 20280 |  0a 20 20 71 2d 70 6f 73 20 20 20 3b 20 62 75 66    66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20  | ...q-pos...;.buffer.position.of. | 
| 202a0 |  3f 0a 20 20 63 2d 70 6f 73 29 20 20 3b 20 62 75    66 66 65 72 20 70 6f 73 69 74 69 6f 6e 20 6f 66  | ?...c-pos)..;.buffer.position.of | 
| 202c0 |  20 3a 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74    2d 70 75 74 20 27 6a 73 32 2d 63 6f 6e 64 2d 6e  | .:..(js2--struct-put.'js2-cond-n | 
| 202e0 |  6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72    20 27 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6e 64  | ode.'js2-visitor.'js2-visit-cond | 
| 20300 |  2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6e  | -node).(js2--struct-put.'js2-con | 
| 20320 |  64 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e    74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 63  | d-node.'js2-printer.'js2-print-c | 
| 20340 |  6f 6e 64 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6e 64  | ond-node)..(defun.js2-visit-cond | 
| 20360 |  2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a    73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73  | -node.(n.v)...(js2-visit-ast.(js | 
| 20380 |  32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 65 73 74    2d 65 78 70 72 20 6e 29 20 76 29 0a 20 20 28 6a  | 2-cond-node-test-expr.n).v)...(j | 
| 203a0 |  73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73    32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 74 72 75 65  | s2-visit-ast.(js2-cond-node-true | 
| 203c0 |  2d 65 78 70 72 20 6e 29 20 76 29 0a 20 20 28 6a    73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73  | -expr.n).v)...(js2-visit-ast.(js | 
| 203e0 |  32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 66 61 6c 73    65 2d 65 78 70 72 20 6e 29 20 76 29 29 0a 0a 28  | 2-cond-node-false-expr.n).v))..( | 
| 20400 |  64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d    63 6f 6e 64 2d 6e 6f 64 65 20 28 6e 20 69 29 0a  | defun.js2-print-cond-node.(n.i). | 
| 20420 |  20 20 28 6c 65 74 20 28 28 70 61 64 20 28 6a 73    32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 29 0a  | ..(let.((pad.(js2-make-pad.i))). | 
| 20440 |  20 20 20 20 28 69 6e 73 65 72 74 20 70 61 64 29    0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | ....(insert.pad).....(js2-print- | 
| 20460 |  61 73 74 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e 6f    64 65 2d 74 65 73 74 2d 65 78 70 72 20 6e 29 20  | ast.(js2-cond-node-test-expr.n). | 
| 20480 |  30 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22    20 3f 20 22 29 0a 20 20 20 20 28 6a 73 32 2d 70  | 0).....(insert.".?.").....(js2-p | 
| 204a0 |  72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f    6e 64 2d 6e 6f 64 65 2d 74 72 75 65 2d 65 78 70  | rint-ast.(js2-cond-node-true-exp | 
| 204c0 |  72 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73    65 72 74 20 22 20 3a 20 22 29 0a 20 20 20 20 28  | r.n).0).....(insert.".:.").....( | 
| 204e0 |  6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a    73 32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 66 61 6c  | js2-print-ast.(js2-cond-node-fal | 
| 20500 |  73 65 2d 65 78 70 72 20 6e 29 20 30 29 29 29 0a    0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28  | se-expr.n).0)))..(cl-defstruct.( | 
| 20520 |  6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | js2-infix-node................(: | 
| 20540 |  69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | include.js2-node)............... | 
| 20560 |  20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d    61 6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f  | .(:constructor.make-js2-infix-no | 
| 20580 |  64 65 20 28 26 6b 65 79 20 74 79 70 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de.(&key.type................... | 
| 205a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 205c0 |  20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73    2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20  | .....(pos.js2-ts-cursor)........ | 
| 205e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 20600 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 65 6e 20 6f 70 2d 70 6f 73 0a 20 20 20 20 20  | ................len.op-pos...... | 
| 20620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 20640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6c 65 66 74 20 72 69 67 68 74 29 29 29 0a  | ..................left.right))). | 
| 20660 |  20 20 22 52 65 70 72 65 73 65 6e 74 73 20 69 6e    66 69 78 20 65 78 70 72 65 73 73 69 6f 6e 73 2e  | .."Represents.infix.expressions. | 
| 20680 |  0a 49 6e 63 6c 75 64 65 73 20 61 73 73 69 67 6e    6d 65 6e 74 20 6f 70 73 20 6c 69 6b 65 20 60 7c  | .Includes.assignment.ops.like.`| | 
| 206a0 |  3d 27 2c 20 61 6e 64 20 74 68 65 20 63 6f 6d 6d    61 20 6f 70 65 72 61 74 6f 72 2e 0a 54 68 65 20  | =',.and.the.comma.operator..The. | 
| 206c0 |  74 79 70 65 20 66 69 65 6c 64 20 69 6e 68 65 72    69 74 65 64 20 66 72 6f 6d 20 60 6a 73 32 2d 6e  | type.field.inherited.from.`js2-n | 
| 206e0 |  6f 64 65 27 20 68 6f 6c 64 73 20 74 68 65 20 6f    70 65 72 61 74 6f 72 2e 22 0a 20 20 6f 70 2d 70  | ode'.holds.the.operator."...op-p | 
| 20700 |  6f 73 20 20 20 20 3b 20 62 75 66 66 65 72 20 70    6f 73 69 74 69 6f 6e 20 77 68 65 72 65 20 6f 70  | os....;.buffer.position.where.op | 
| 20720 |  65 72 61 74 6f 72 20 62 65 67 69 6e 73 0a 20 20    6c 65 66 74 20 20 20 20 20 20 3b 20 61 6e 79 20  | erator.begins...left......;.any. | 
| 20740 |  60 6a 73 32 2d 6e 6f 64 65 27 0a 20 20 72 69 67    68 74 29 20 20 20 20 3b 20 61 6e 79 20 60 6a 73  | `js2-node'...right)....;.any.`js | 
| 20760 |  32 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73    74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 69  | 2-node'..(js2--struct-put.'js2-i | 
| 20780 |  6e 66 69 78 2d 6e 6f 64 65 20 27 6a 73 32 2d 76    69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69  | nfix-node.'js2-visitor.'js2-visi | 
| 207a0 |  74 2d 69 6e 66 69 78 2d 6e 6f 64 65 29 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | t-infix-node).(js2--struct-put.' | 
| 207c0 |  6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 20 27    6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32  | js2-infix-node.'js2-printer.'js2 | 
| 207e0 |  2d 70 72 69 6e 74 2d 69 6e 66 69 78 2d 6e 6f 64    65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76  | -print-infix-node)..(defun.js2-v | 
| 20800 |  69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64 65 20    28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73  | isit-infix-node.(n.v)...(js2-vis | 
| 20820 |  69 74 2d 61 73 74 20 28 6a 73 32 2d 69 6e 66 69    78 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 29 20 76  | it-ast.(js2-infix-node-left.n).v | 
| 20840 |  29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61    73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f  | )...(js2-visit-ast.(js2-infix-no | 
| 20860 |  64 65 2d 72 69 67 68 74 20 6e 29 20 76 29 29 0a    0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6f  | de-right.n).v))..(defconst.js2-o | 
| 20880 |  70 65 72 61 74 6f 72 2d 74 6f 6b 65 6e 73 0a 20    20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d  | perator-tokens...(let.((table.(m | 
| 208a0 |  61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a    74 65 73 74 20 27 65 71 29 29 0a 20 20 20 20 20  | ake-hash-table.:test.'eq))...... | 
| 208c0 |  20 20 20 28 74 6f 6b 65 6e 73 0a 20 20 20 20 20    20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 73 20  | ...(tokens..........(list.(cons. | 
| 208e0 |  6a 73 32 2d 49 4e 20 22 69 6e 22 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e  | js2-IN."in")................(con | 
| 20900 |  73 20 6a 73 32 2d 54 59 50 45 4f 46 20 22 74 79    70 65 6f 66 22 29 0a 20 20 20 20 20 20 20 20 20  | s.js2-TYPEOF."typeof").......... | 
| 20920 |  20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d    49 4e 53 54 41 4e 43 45 4f 46 20 22 69 6e 73 74  | ......(cons.js2-INSTANCEOF."inst | 
| 20940 |  61 6e 63 65 6f 66 22 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73  | anceof")................(cons.js | 
| 20960 |  32 2d 44 45 4c 50 52 4f 50 20 22 64 65 6c 65 74    65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | 2-DELPROP."delete")............. | 
| 20980 |  20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 57 41    49 54 20 22 61 77 61 69 74 22 29 0a 20 20 20 20  | ...(cons.js2-AWAIT."await")..... | 
| 209a0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 6a 73 32 2d 56 4f 49 44 20 22 76 6f 69 64 22  | ...........(cons.js2-VOID."void" | 
| 209c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6f 6e 73 20 6a 73 32 2d 43 4f 4d 4d 41  | )................(cons.js2-COMMA | 
| 209e0 |  20 22 2c 22 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 43  | .",")................(cons.js2-C | 
| 20a00 |  4f 4c 4f 4e 20 22 3a 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a  | OLON.":")................(cons.j | 
| 20a20 |  73 32 2d 4f 52 20 22 7c 7c 22 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73  | s2-OR."||")................(cons | 
| 20a40 |  20 6a 73 32 2d 41 4e 44 20 22 26 26 22 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63  | .js2-AND."&&")................(c | 
| 20a60 |  6f 6e 73 20 6a 73 32 2d 4e 55 4c 4c 49 53 48 2d    43 4f 41 4c 45 53 43 49 4e 47 20 22 3f 3f 22 29  | ons.js2-NULLISH-COALESCING."??") | 
| 20a80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 6e 73 20 6a 73 32 2d 49 4e 43 20 22 2b  | ................(cons.js2-INC."+ | 
| 20aa0 |  2b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 44 45 43  | +")................(cons.js2-DEC | 
| 20ac0 |  20 22 2d 2d 22 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d  | ."--")................(cons.js2- | 
| 20ae0 |  42 49 54 4f 52 20 22 7c 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20  | BITOR."|")................(cons. | 
| 20b00 |  6a 73 32 2d 42 49 54 58 4f 52 20 22 5e 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | js2-BITXOR."^")................( | 
| 20b20 |  63 6f 6e 73 20 6a 73 32 2d 42 49 54 41 4e 44 20    22 26 22 29 0a 20 20 20 20 20 20 20 20 20 20 20  | cons.js2-BITAND."&")............ | 
| 20b40 |  20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 45 51    20 22 3d 3d 22 29 0a 20 20 20 20 20 20 20 20 20  | ....(cons.js2-EQ."==").......... | 
| 20b60 |  20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d    4e 45 20 22 21 3d 22 29 0a 20 20 20 20 20 20 20  | ......(cons.js2-NE."!=")........ | 
| 20b80 |  20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73    32 2d 4c 54 20 22 3c 22 29 0a 20 20 20 20 20 20  | ........(cons.js2-LT."<")....... | 
| 20ba0 |  20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a    73 32 2d 4c 45 20 22 3c 3d 22 29 0a 20 20 20 20  | .........(cons.js2-LE."<=")..... | 
| 20bc0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 6a 73 32 2d 47 54 20 22 3e 22 29 0a 20 20 20  | ...........(cons.js2-GT.">").... | 
| 20be0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e    73 20 6a 73 32 2d 47 45 20 22 3e 3d 22 29 0a 20  | ............(cons.js2-GE.">=").. | 
| 20c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 73 20 6a 73 32 2d 4c 53 48 20 22 3c 3c 22  | ..............(cons.js2-LSH."<<" | 
| 20c20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6f 6e 73 20 6a 73 32 2d 52 53 48 20 22  | )................(cons.js2-RSH." | 
| 20c40 |  3e 3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 55 52  | >>")................(cons.js2-UR | 
| 20c60 |  53 48 20 22 3e 3e 3e 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a  | SH.">>>")................(cons.j | 
| 20c80 |  73 32 2d 41 44 44 20 22 2b 22 29 20 20 20 20 20    20 20 3b 20 69 6e 66 69 78 20 70 6c 75 73 0a 20  | s2-ADD."+").......;.infix.plus.. | 
| 20ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 73 20 6a 73 32 2d 53 55 42 20 22 2d 22 29  | ..............(cons.js2-SUB."-") | 
| 20cc0 |  20 20 20 20 20 20 20 3b 20 69 6e 66 69 78 20 6d    69 6e 75 73 0a 20 20 20 20 20 20 20 20 20 20 20  | .......;.infix.minus............ | 
| 20ce0 |  20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 4d 55    4c 20 22 2a 22 29 0a 20 20 20 20 20 20 20 20 20  | ....(cons.js2-MUL."*").......... | 
| 20d00 |  20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d    45 58 50 4f 4e 20 22 2a 2a 22 29 0a 20 20 20 20  | ......(cons.js2-EXPON."**")..... | 
| 20d20 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 6a 73 32 2d 44 49 56 20 22 2f 22 29 0a 20 20  | ...........(cons.js2-DIV."/")... | 
| 20d40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f    6e 73 20 6a 73 32 2d 4d 4f 44 20 22 25 22 29 0a  | .............(cons.js2-MOD."%"). | 
| 20d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6f 6e 73 20 6a 73 32 2d 4e 4f 54 20 22 21 22  | ...............(cons.js2-NOT."!" | 
| 20d80 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6f 6e 73 20 6a 73 32 2d 42 49 54 4e 4f  | )................(cons.js2-BITNO | 
| 20da0 |  54 20 22 7e 22 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d  | T."~")................(cons.js2- | 
| 20dc0 |  50 4f 53 20 22 2b 22 29 20 20 20 20 20 20 20 3b    20 75 6e 61 72 79 20 70 6c 75 73 0a 20 20 20 20  | POS."+").......;.unary.plus..... | 
| 20de0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 6a 73 32 2d 4e 45 47 20 22 2d 22 29 20 20 20  | ...........(cons.js2-NEG."-")... | 
| 20e00 |  20 20 20 20 3b 20 75 6e 61 72 79 20 6d 69 6e 75    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....;.unary.minus............... | 
| 20e20 |  20 28 63 6f 6e 73 20 6a 73 32 2d 54 52 49 50 4c    45 44 4f 54 20 22 2e 2e 2e 22 29 0a 20 20 20 20  | .(cons.js2-TRIPLEDOT."...")..... | 
| 20e40 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73    20 6a 73 32 2d 53 48 45 51 20 22 3d 3d 3d 22 29  | ...........(cons.js2-SHEQ."===") | 
| 20e60 |  20 20 20 20 3b 20 73 68 61 6c 6c 6f 77 20 65 71    75 61 6c 69 74 79 0a 20 20 20 20 20 20 20 20 20  | ....;.shallow.equality.......... | 
| 20e80 |  20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d    53 48 4e 45 20 22 21 3d 3d 22 29 20 20 20 20 3b  | ......(cons.js2-SHNE."!==")....; | 
| 20ea0 |  20 73 68 61 6c 6c 6f 77 20 69 6e 65 71 75 61 6c    69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .shallow.inequality............. | 
| 20ec0 |  20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53    49 47 4e 20 22 3d 22 29 0a 20 20 20 20 20 20 20  | ...(cons.js2-ASSIGN."=")........ | 
| 20ee0 |  20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73    32 2d 41 53 53 49 47 4e 5f 42 49 54 4f 52 20 22  | ........(cons.js2-ASSIGN_BITOR." | 
| 20f00 |  7c 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53  | |=")................(cons.js2-AS | 
| 20f20 |  53 49 47 4e 5f 42 49 54 58 4f 52 20 22 5e 3d 22    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | SIGN_BITXOR."^=")............... | 
| 20f40 |  20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47    4e 5f 42 49 54 41 4e 44 20 22 26 3d 22 29 0a 20  | .(cons.js2-ASSIGN_BITAND."&=").. | 
| 20f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4c  | ..............(cons.js2-ASSIGN_L | 
| 20f80 |  53 48 20 22 3c 3c 3d 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6a  | SH."<<=")................(cons.j | 
| 20fa0 |  73 32 2d 41 53 53 49 47 4e 5f 52 53 48 20 22 3e    3e 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20  | s2-ASSIGN_RSH.">>=")............ | 
| 20fc0 |  20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41 53    53 49 47 4e 5f 55 52 53 48 20 22 3e 3e 3e 3d 22  | ....(cons.js2-ASSIGN_URSH.">>>=" | 
| 20fe0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47  | )................(cons.js2-ASSIG | 
| 21000 |  4e 5f 41 44 44 20 22 2b 3d 22 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73  | N_ADD."+=")................(cons | 
| 21020 |  20 6a 73 32 2d 41 53 53 49 47 4e 5f 53 55 42 20    22 2d 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20  | .js2-ASSIGN_SUB."-=")........... | 
| 21040 |  20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41    53 53 49 47 4e 5f 4d 55 4c 20 22 2a 3d 22 29 0a  | .....(cons.js2-ASSIGN_MUL."*="). | 
| 21060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e 5f  | ...............(cons.js2-ASSIGN_ | 
| 21080 |  45 58 50 4f 4e 20 22 2a 2a 3d 22 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e  | EXPON."**=")................(con | 
| 210a0 |  73 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56    20 22 2f 3d 22 29 0a 20 20 20 20 20 20 20 20 20  | s.js2-ASSIGN_DIV."/=").......... | 
| 210c0 |  20 20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d    41 53 53 49 47 4e 5f 4d 4f 44 20 22 25 3d 22 29  | ......(cons.js2-ASSIGN_MOD."%=") | 
| 210e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 6e 73 20 6a 73 32 2d 41 53 53 49 47 4e  | ................(cons.js2-ASSIGN | 
| 21100 |  5f 41 4e 44 20 22 26 26 3d 22 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73  | _AND."&&=")................(cons | 
| 21120 |  20 6a 73 32 2d 41 53 53 49 47 4e 5f 4f 52 20 22    7c 7c 3d 22 29 0a 20 20 20 20 20 20 20 20 20 20  | .js2-ASSIGN_OR."||=")........... | 
| 21140 |  20 20 20 20 20 28 63 6f 6e 73 20 6a 73 32 2d 41    53 53 49 47 4e 5f 4e 55 4c 4c 49 53 48 20 22 3f  | .....(cons.js2-ASSIGN_NULLISH."? | 
| 21160 |  3f 3d 22 29 29 29 29 0a 20 20 20 20 28 63 6c 2d    6c 6f 6f 70 20 66 6f 72 20 28 6b 20 2e 20 76 29  | ?=")))).....(cl-loop.for.(k...v) | 
| 21180 |  20 69 6e 20 74 6f 6b 65 6e 73 20 64 6f 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68  | .in.tokens.do..............(puth | 
| 211a0 |  61 73 68 20 6b 20 76 20 74 61 62 6c 65 29 29 0a    20 20 20 20 74 61 62 6c 65 29 29 0a 0a 28 64 65  | ash.k.v.table)).....table))..(de | 
| 211c0 |  66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 69 6e    66 69 78 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20  | fun.js2-print-infix-node.(n.i).. | 
| 211e0 |  20 28 6c 65 74 2a 20 28 28 74 74 20 28 6a 73 32    2d 6e 6f 64 65 2d 74 79 70 65 20 6e 29 29 0a 20  | .(let*.((tt.(js2-node-type.n)).. | 
| 21200 |  20 20 20 20 20 20 20 20 28 6f 70 20 28 67 65 74    68 61 73 68 20 74 74 20 6a 73 32 2d 6f 70 65 72  | ........(op.(gethash.tt.js2-oper | 
| 21220 |  61 74 6f 72 2d 74 6f 6b 65 6e 73 29 29 29 0a 20    20 20 20 28 75 6e 6c 65 73 73 20 6f 70 0a 20 20  | ator-tokens))).....(unless.op... | 
| 21240 |  20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 72 65    63 6f 67 6e 69 7a 65 64 20 69 6e 66 69 78 20 6f  | ....(error."unrecognized.infix.o | 
| 21260 |  70 65 72 61 74 6f 72 20 25 73 22 20 28 6a 73 32    2d 6e 6f 64 65 2d 74 79 70 65 20 6e 29 29 29 0a  | perator.%s".(js2-node-type.n))). | 
| 21280 |  20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32    2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20  | ....(insert.(js2-make-pad.i))... | 
| 212a0 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74    20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65  | ..(js2-print-ast.(js2-infix-node | 
| 212c0 |  2d 6c 65 66 74 20 6e 29 20 30 29 0a 20 20 20 20    28 75 6e 6c 65 73 73 20 28 3d 20 74 74 20 6a 73  | -left.n).0).....(unless.(=.tt.js | 
| 212e0 |  32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 28    69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20  | 2-COMMA).......(insert.".")).... | 
| 21300 |  20 28 69 6e 73 65 72 74 20 6f 70 29 0a 20 20 20    20 28 69 6e 73 65 72 74 20 22 20 22 29 0a 20 20  | .(insert.op).....(insert.".")... | 
| 21320 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74    20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65  | ..(js2-print-ast.(js2-infix-node | 
| 21340 |  2d 72 69 67 68 74 20 6e 29 20 30 29 29 29 0a 0a    28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a  | -right.n).0)))..(cl-defstruct.(j | 
| 21360 |  73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | s2-assign-node................(: | 
| 21380 |  69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 6e 66 69    78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20  | include.js2-infix-node)......... | 
| 213a0 |  20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75    63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 61 73  | .......(:constructor.make-js2-as | 
| 213c0 |  73 69 67 6e 2d 6e 6f 64 65 20 28 26 6b 65 79 20    74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20  | sign-node.(&key.type............ | 
| 213e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f    73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29  | .............(pos.js2-ts-cursor) | 
| 21420 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6c 65 6e 20 6f 70 2d  | .........................len.op- | 
| 21460 |  70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos............................. | 
| 21480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74  | ............................left | 
| 214a0 |  20 72 69 67 68 74 29 29 29 0a 20 20 22 52 65 70    72 65 73 65 6e 74 73 20 61 6e 79 20 61 73 73 69  | .right)))..."Represents.any.assi | 
| 214c0 |  67 6e 6d 65 6e 74 2e 0a 54 68 65 20 74 79 70 65    20 66 69 65 6c 64 20 68 6f 6c 64 73 20 74 68 65  | gnment..The.type.field.holds.the | 
| 214e0 |  20 61 63 74 75 61 6c 20 61 73 73 69 67 6e 6d 65    6e 74 20 6f 70 65 72 61 74 6f 72 2e 22 29 0a 0a  | .actual.assignment.operator.").. | 
| 21500 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64  | (js2--struct-put.'js2-assign-nod | 
| 21520 |  65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27    6a 73 32 2d 76 69 73 69 74 2d 69 6e 66 69 78 2d  | e.'js2-visitor.'js2-visit-infix- | 
| 21540 |  6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 61 73 73 69  | node).(js2--struct-put.'js2-assi | 
| 21560 |  67 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69    6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d  | gn-node.'js2-printer.'js2-print- | 
| 21580 |  69 6e 66 69 78 2d 6e 6f 64 65 29 0a 0a 28 63 6c    2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d  | infix-node)..(cl-defstruct.(js2- | 
| 215a0 |  75 6e 61 72 79 2d 6e 6f 64 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c  | unary-node................(:incl | 
| 215c0 |  75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63  | ude.js2-node)................(:c | 
| 215e0 |  6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d    6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 20 28  | onstructor.make-js2-unary-node.( | 
| 21600 |  26 6b 65 79 20 74 79 70 65 20 3b 20 72 65 71 75    69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20  | &key.type.;.required............ | 
| 21620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21640 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73    20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a  | ............(pos.js2-ts-cursor). | 
| 21660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6c 65 6e 20 6f 70 65 72 61  | .......................len.opera | 
| 216a0 |  6e 64 29 29 29 0a 20 20 22 41 53 54 20 6e 6f 64    65 20 74 79 70 65 20 66 6f 72 20 75 6e 61 72 79  | nd)))..."AST.node.type.for.unary | 
| 216c0 |  20 6f 70 65 72 61 74 6f 72 20 6e 6f 64 65 73 2e    0a 54 68 65 20 74 79 70 65 20 66 69 65 6c 64 20  | .operator.nodes..The.type.field. | 
| 216e0 |  63 61 6e 20 62 65 20 4e 4f 54 2c 20 42 49 54 4e    4f 54 2c 20 50 4f 53 2c 20 4e 45 47 2c 20 49 4e  | can.be.NOT,.BITNOT,.POS,.NEG,.IN | 
| 21700 |  43 2c 20 44 45 43 2c 0a 54 59 50 45 4f 46 2c 20    44 45 4c 50 52 4f 50 2c 20 54 52 49 50 4c 45 44  | C,.DEC,.TYPEOF,.DELPROP,.TRIPLED | 
| 21720 |  4f 54 20 6f 72 20 41 57 41 49 54 2e 20 20 46 6f    72 20 49 4e 43 20 6f 72 20 44 45 43 2c 20 61 20  | OT.or.AWAIT...For.INC.or.DEC,.a. | 
| 21740 |  27 70 6f 73 74 66 69 78 20 6e 6f 64 65 0a 70 72    6f 70 65 72 74 79 20 69 73 20 61 64 64 65 64 20  | 'postfix.node.property.is.added. | 
| 21760 |  69 66 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20    66 6f 6c 6c 6f 77 73 20 74 68 65 20 6f 70 65 72  | if.the.operator.follows.the.oper | 
| 21780 |  61 6e 64 2e 22 0a 20 20 6f 70 65 72 61 6e 64 29    20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65 27  | and."...operand)..;.a.`js2-node' | 
| 217a0 |  20 65 78 70 72 65 73 73 69 6f 6e 0a 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | .expression..(js2--struct-put.'j | 
| 217c0 |  73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | s2-unary-node.'js2-visitor.'js2- | 
| 217e0 |  76 69 73 69 74 2d 75 6e 61 72 79 2d 6e 6f 64 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | visit-unary-node).(js2--struct-p | 
| 21800 |  75 74 20 27 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f    64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20  | ut.'js2-unary-node.'js2-printer. | 
| 21820 |  27 6a 73 32 2d 70 72 69 6e 74 2d 75 6e 61 72 79    2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a  | 'js2-print-unary-node)..(defun.j | 
| 21840 |  73 32 2d 76 69 73 69 74 2d 75 6e 61 72 79 2d 6e    6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32  | s2-visit-unary-node.(n.v)...(js2 | 
| 21860 |  2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d    75 6e 61 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61  | -visit-ast.(js2-unary-node-opera | 
| 21880 |  6e 64 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 70 72 69 6e 74 2d 75 6e 61 72  | nd.n).v))..(defun.js2-print-unar | 
| 218a0 |  79 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28    6c 65 74 2a 20 28 28 74 74 20 28 6a 73 32 2d 6e  | y-node.(n.i)...(let*.((tt.(js2-n | 
| 218c0 |  6f 64 65 2d 74 79 70 65 20 6e 29 29 0a 20 20 20    20 20 20 20 20 20 28 6f 70 20 28 67 65 74 68 61  | ode-type.n))..........(op.(getha | 
| 218e0 |  73 68 20 74 74 20 6a 73 32 2d 6f 70 65 72 61 74    6f 72 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20  | sh.tt.js2-operator-tokens))..... | 
| 21900 |  20 20 20 20 20 28 70 6f 73 74 66 69 78 20 28 6a    73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70  | .....(postfix.(js2-node-get-prop | 
| 21920 |  20 6e 20 27 70 6f 73 74 66 69 78 29 29 29 0a 20    20 20 20 28 75 6e 6c 65 73 73 20 6f 70 0a 20 20  | .n.'postfix))).....(unless.op... | 
| 21940 |  20 20 20 20 28 65 72 72 6f 72 20 22 75 6e 72 65    63 6f 67 6e 69 7a 65 64 20 75 6e 61 72 79 20 6f  | ....(error."unrecognized.unary.o | 
| 21960 |  70 65 72 61 74 6f 72 20 25 73 22 20 74 74 29 29    0a 20 20 20 20 28 69 6e 73 65 72 74 20 28 6a 73  | perator.%s".tt)).....(insert.(js | 
| 21980 |  32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20    20 20 20 28 75 6e 6c 65 73 73 20 70 6f 73 74 66  | 2-make-pad.i)).....(unless.postf | 
| 219a0 |  69 78 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74    20 6f 70 29 29 0a 20 20 20 20 28 69 66 20 28 6f  | ix.......(insert.op)).....(if.(o | 
| 219c0 |  72 20 28 3d 20 74 74 20 6a 73 32 2d 54 59 50 45    4f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | r.(=.tt.js2-TYPEOF)............. | 
| 219e0 |  28 3d 20 74 74 20 6a 73 32 2d 44 45 4c 50 52 4f    50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | (=.tt.js2-DELPROP).............( | 
| 21a00 |  3d 20 74 74 20 6a 73 32 2d 41 57 41 49 54 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74  | =.tt.js2-AWAIT).............(=.t | 
| 21a20 |  74 20 6a 73 32 2d 56 4f 49 44 29 29 0a 20 20 20    20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22  | t.js2-VOID)).........(insert."." | 
| 21a40 |  29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e    74 2d 61 73 74 20 28 6a 73 32 2d 75 6e 61 72 79  | )).....(js2-print-ast.(js2-unary | 
| 21a60 |  2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20 6e 29    20 30 29 0a 20 20 20 20 28 77 68 65 6e 20 70 6f  | -node-operand.n).0).....(when.po | 
| 21a80 |  73 74 66 69 78 0a 20 20 20 20 20 20 28 69 6e 73    65 72 74 20 6f 70 29 29 29 29 0a 0a 28 63 6c 2d  | stfix.......(insert.op))))..(cl- | 
| 21aa0 |  64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 6c    65 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20  | defstruct.(js2-let-node......... | 
| 21ac0 |  20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65    20 6a 73 32 2d 73 63 6f 70 65 29 0a 20 20 20 20  | .......(:include.js2-scope)..... | 
| 21ae0 |  20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e    73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73  | ...........(:constructor.make-js | 
| 21b00 |  32 2d 6c 65 74 2d 6e 6f 64 65 20 28 26 6b 65 79    20 28 74 79 70 65 20 6a 73 32 2d 4c 45 54 45 58  | 2-let-node.(&key.(type.js2-LETEX | 
| 21b20 |  50 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | PR)............................. | 
| 21b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a  | .........................(pos.(j | 
| 21b60 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20  | s2-current-token-beg)).......... | 
| 21b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20    76 61 72 73 20 62 6f 64 79 0a 20 20 20 20 20 20  | ............len.vars.body....... | 
| 21bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21be0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c    70 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e  | ...............lp.rp)))..."AST.n | 
| 21c00 |  6f 64 65 20 66 6f 72 20 61 20 6c 65 74 20 65 78    70 72 65 73 73 69 6f 6e 20 6f 72 20 61 20 6c 65  | ode.for.a.let.expression.or.a.le | 
| 21c20 |  74 20 73 74 61 74 65 6d 65 6e 74 2e 0a 4e 6f 74    65 20 74 68 61 74 20 61 20 6c 65 74 20 64 65 63  | t.statement..Note.that.a.let.dec | 
| 21c40 |  6c 61 72 61 74 69 6f 6e 20 73 75 63 68 20 61 73    20 6c 65 74 20 78 3d 36 2c 20 79 3d 37 20 69 73  | laration.such.as.let.x=6,.y=7.is | 
| 21c60 |  20 61 20 60 6a 73 32 2d 76 61 72 2d 64 65 63 6c    2d 6e 6f 64 65 27 2e 22 0a 20 20 76 61 72 73 20  | .a.`js2-var-decl-node'."...vars. | 
| 21c80 |  20 20 3b 20 61 20 60 6a 73 32 2d 76 61 72 2d 64    65 63 6c 2d 6e 6f 64 65 27 0a 20 20 62 6f 64 79  | ..;.a.`js2-var-decl-node'...body | 
| 21ca0 |  20 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65    27 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74  | ...;.a.`js2-node'.representing.t | 
| 21cc0 |  68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6f 72    20 62 6f 64 79 20 62 6c 6f 63 6b 0a 20 20 6c 70  | he.expression.or.body.block...lp | 
| 21ce0 |  0a 20 20 72 70 29 0a 0a 28 6a 73 32 2d 2d 73 74    72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c 65  | ...rp)..(js2--struct-put.'js2-le | 
| 21d00 |  74 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69    74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6c  | t-node.'js2-visitor.'js2-visit-l | 
| 21d20 |  65 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73    74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6c  | et-node).(js2--struct-put.'js2-l | 
| 21d40 |  65 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69    6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d  | et-node.'js2-printer.'js2-print- | 
| 21d60 |  6c 65 74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 76 69 73 69 74 2d 6c 65 74 2d  | let-node)..(defun.js2-visit-let- | 
| 21d80 |  6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73    32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32  | node.(n.v)...(js2-visit-ast.(js2 | 
| 21da0 |  2d 6c 65 74 2d 6e 6f 64 65 2d 76 61 72 73 20 6e    29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | -let-node-vars.n).v)...(js2-visi | 
| 21dc0 |  74 2d 61 73 74 20 28 6a 73 32 2d 6c 65 74 2d 6e    6f 64 65 2d 62 6f 64 79 20 6e 29 20 76 29 29 0a  | t-ast.(js2-let-node-body.n).v)). | 
| 21de0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e    74 2d 6c 65 74 2d 6e 6f 64 65 20 28 6e 20 69 29  | .(defun.js2-print-let-node.(n.i) | 
| 21e00 |  0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d    6d 61 6b 65 2d 70 61 64 20 69 29 20 22 6c 65 74  | ...(insert.(js2-make-pad.i)."let | 
| 21e20 |  20 28 22 29 0a 20 20 28 6c 65 74 20 28 28 70 20    28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 6a  | .(")...(let.((p.(point))).....(j | 
| 21e40 |  73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73    32 2d 6c 65 74 2d 6e 6f 64 65 2d 76 61 72 73 20  | s2-print-ast.(js2-let-node-vars. | 
| 21e60 |  6e 29 20 30 29 0a 20 20 20 20 28 64 65 6c 65 74    65 2d 72 65 67 69 6f 6e 20 70 20 28 2b 20 70 20  | n).0).....(delete-region.p.(+.p. | 
| 21e80 |  34 29 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22    29 20 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e  | 4)))...(insert.").")...(js2-prin | 
| 21ea0 |  74 2d 61 73 74 20 28 6a 73 32 2d 6c 65 74 2d 6e    6f 64 65 2d 62 6f 64 79 20 6e 29 20 69 29 29 0a  | t-ast.(js2-let-node-body.n).i)). | 
| 21ec0 |  0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28    6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65  | .(cl-defstruct.(js2-keyword-node | 
| 21ee0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f  | ................(:include.js2-no | 
| 21f00 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72  | de)................(:constructor | 
| 21f20 |  20 6d 61 6b 65 2d 6a 73 32 2d 6b 65 79 77 6f 72    64 2d 6e 6f 64 65 20 28 26 6b 65 79 20 74 79 70  | .make-js2-keyword-node.(&key.typ | 
| 21f40 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e............................... | 
| 21f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20  | ...........................(pos. | 
| 21f80 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20  | (js2-current-token-beg))........ | 
| 21fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 21fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73  | ..................(len.(-.js2-ts | 
| 21fe0 |  2d 63 75 72 73 6f 72 20 70 6f 73 29 29 29 29 29    0a 20 20 22 41 53 54 20 6e 6f 64 65 20 72 65 70  | -cursor.pos)))))..."AST.node.rep | 
| 22000 |  72 65 73 65 6e 74 69 6e 67 20 61 20 6c 69 74 65    72 61 6c 20 6b 65 79 77 6f 72 64 20 73 75 63 68  | resenting.a.literal.keyword.such | 
| 22020 |  20 61 73 20 60 6e 75 6c 6c 27 2e 0a 55 73 65 64    20 66 6f 72 20 60 6e 75 6c 6c 27 2c 20 60 74 68  | .as.`null'..Used.for.`null',.`th | 
| 22040 |  69 73 27 2c 20 60 74 72 75 65 27 2c 20 60 66 61    6c 73 65 27 20 61 6e 64 20 60 64 65 62 75 67 67  | is',.`true',.`false'.and.`debugg | 
| 22060 |  65 72 27 2e 0a 54 68 65 20 6e 6f 64 65 20 74 79    70 65 20 69 73 20 73 65 74 20 74 6f 20 6a 73 32  | er'..The.node.type.is.set.to.js2 | 
| 22080 |  2d 4e 55 4c 4c 2c 20 6a 73 32 2d 54 48 49 53 2c    20 65 74 63 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73  | -NULL,.js2-THIS,.etc.")..(js2--s | 
| 220a0 |  74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6b    65 79 77 6f 72 64 2d 6e 6f 64 65 20 27 6a 73 32  | truct-put.'js2-keyword-node.'js2 | 
| 220c0 |  2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69    73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d  | -visitor.'js2-visit-none).(js2-- | 
| 220e0 |  73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d    6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 27 6a 73  | struct-put.'js2-keyword-node.'js | 
| 22100 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64  | 2-printer.'js2-print-keyword-nod | 
| 22120 |  65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    72 69 6e 74 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64  | e)..(defun.js2-print-keyword-nod | 
| 22140 |  65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72    74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20  | e.(n.i)...(insert.(js2-make-pad. | 
| 22160 |  69 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65    74 20 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65  | i)...........(let.((tt.(js2-node | 
| 22180 |  2d 74 79 70 65 20 6e 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20  | -type.n))).............(cond.... | 
| 221a0 |  20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74    20 6a 73 32 2d 54 48 49 53 29 20 22 74 68 69 73  | ..........((=.tt.js2-THIS)."this | 
| 221c0 |  22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    28 28 3d 20 74 74 20 6a 73 32 2d 53 55 50 45 52  | ")..............((=.tt.js2-SUPER | 
| 221e0 |  29 20 22 73 75 70 65 72 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a  | )."super")..............((=.tt.j | 
| 22200 |  73 32 2d 4e 55 4c 4c 29 20 22 6e 75 6c 6c 22 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28  | s2-NULL)."null")..............(( | 
| 22220 |  3d 20 74 74 20 6a 73 32 2d 54 52 55 45 29 20 22    74 72 75 65 22 29 0a 20 20 20 20 20 20 20 20 20  | =.tt.js2-TRUE)."true").......... | 
| 22240 |  20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 46    41 4c 53 45 29 20 22 66 61 6c 73 65 22 29 0a 20  | ....((=.tt.js2-FALSE)."false").. | 
| 22260 |  20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20    74 74 20 6a 73 32 2d 44 45 42 55 47 47 45 52 29  | ............((=.tt.js2-DEBUGGER) | 
| 22280 |  20 22 64 65 62 75 67 67 65 72 22 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72  | ."debugger")..............(t.(er | 
| 222a0 |  72 6f 72 20 22 49 6e 76 61 6c 69 64 20 6b 65 79    77 6f 72 64 20 6c 69 74 65 72 61 6c 20 74 79 70  | ror."Invalid.keyword.literal.typ | 
| 222c0 |  65 3a 20 25 64 22 20 74 74 29 29 29 29 29 29 0a    0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 74  | e:.%d".tt))))))..(defsubst.js2-t | 
| 222e0 |  68 69 73 2d 6f 72 2d 73 75 70 65 72 2d 6e 6f 64    65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65  | his-or-super-node-p.(node)..."Re | 
| 22300 |  74 75 72 6e 20 74 20 69 66 20 4e 4f 44 45 20 69    73 20 61 20 60 6a 73 32 2d 6c 69 74 65 72 61 6c  | turn.t.if.NODE.is.a.`js2-literal | 
| 22320 |  2d 6e 6f 64 65 27 20 6f 66 20 74 79 70 65 20 6a    73 32 2d 54 48 49 53 20 6f 72 20 6a 73 32 2d 53  | -node'.of.type.js2-THIS.or.js2-S | 
| 22340 |  55 50 45 52 2e 22 0a 20 20 28 6c 65 74 20 28 28    74 79 70 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 74  | UPER."...(let.((type.(js2-node-t | 
| 22360 |  79 70 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20    28 6f 72 20 28 65 71 20 74 79 70 65 20 6a 73 32  | ype.node))).....(or.(eq.type.js2 | 
| 22380 |  2d 54 48 49 53 29 20 28 65 71 20 74 79 70 65 20    6a 73 32 2d 53 55 50 45 52 29 29 29 29 0a 0a 28  | -THIS).(eq.type.js2-SUPER))))..( | 
| 223a0 |  63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73    32 2d 6e 65 77 2d 6e 6f 64 65 0a 20 20 20 20 20  | cl-defstruct.(js2-new-node...... | 
| 223c0 |  20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c    75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20  | ..........(:include.js2-node)... | 
| 223e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63    6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d  | .............(:constructor.make- | 
| 22400 |  6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 20 28 26 6b    65 79 20 28 74 79 70 65 20 6a 73 32 2d 4e 45 57  | js2-new-node.(&key.(type.js2-NEW | 
| 22420 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 22440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32  | .......................(pos.(js2 | 
| 22460 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -current-token-beg))............ | 
| 22480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 224a0 |  20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 74 61    72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20  | ..........len.target............ | 
| 224c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 224e0 |  20 20 20 20 20 20 20 20 20 20 61 72 67 73 20 69    6e 69 74 69 61 6c 69 7a 65 72 0a 20 20 20 20 20  | ..........args.initializer...... | 
| 22500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 70 20 72 70 29 29 29 0a 20 20 22 41 53 54 20  | ................lp.rp)))..."AST. | 
| 22540 |  6e 6f 64 65 20 66 6f 72 20 6e 65 77 2d 65 78 70    72 65 73 73 69 6f 6e 20 73 75 63 68 20 61 73 20  | node.for.new-expression.such.as. | 
| 22560 |  6e 65 77 20 46 6f 6f 28 29 2e 22 0a 20 20 74 61    72 67 65 74 20 20 3b 20 61 6e 20 69 64 65 6e 74  | new.Foo()."...target..;.an.ident | 
| 22580 |  69 66 69 65 72 20 6f 72 20 72 65 66 65 72 65 6e    63 65 0a 20 20 61 72 67 73 20 20 20 20 3b 20 61  | ifier.or.reference...args....;.a | 
| 225a0 |  20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 61 72    67 75 6d 65 6e 74 20 6e 6f 64 65 73 0a 20 20 6c  | .Lisp.list.of.argument.nodes...l | 
| 225c0 |  70 20 20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f    6e 20 6f 66 20 6c 65 66 74 2d 70 61 72 65 6e 2c  | p......;.position.of.left-paren, | 
| 225e0 |  20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64 0a    20 20 72 70 20 20 20 20 20 20 3b 20 70 6f 73 69  | .nil.if.omitted...rp......;.posi | 
| 22600 |  74 69 6f 6e 20 6f 66 20 72 69 67 68 74 2d 70 61    72 65 6e 2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74  | tion.of.right-paren,.nil.if.omit | 
| 22620 |  74 65 64 0a 20 20 69 6e 69 74 69 61 6c 69 7a 65    72 29 20 3b 20 65 78 70 65 72 69 6d 65 6e 74 61  | ted...initializer).;.experimenta | 
| 22640 |  6c 20 52 68 69 6e 6f 20 73 79 6e 74 61 78 3a 20    20 6f 70 74 69 6f 6e 61 6c 20 60 6a 73 32 2d 6f  | l.Rhino.syntax:..optional.`js2-o | 
| 22660 |  62 6a 65 63 74 2d 6e 6f 64 65 27 0a 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | bject-node'..(js2--struct-put.'j | 
| 22680 |  73 32 2d 6e 65 77 2d 6e 6f 64 65 20 27 6a 73 32    2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69  | s2-new-node.'js2-visitor.'js2-vi | 
| 226a0 |  73 69 74 2d 6e 65 77 2d 6e 6f 64 65 29 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | sit-new-node).(js2--struct-put.' | 
| 226c0 |  6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 20 27 6a 73    32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70  | js2-new-node.'js2-printer.'js2-p | 
| 226e0 |  72 69 6e 74 2d 6e 65 77 2d 6e 6f 64 65 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74  | rint-new-node)..(defun.js2-visit | 
| 22700 |  2d 6e 65 77 2d 6e 6f 64 65 20 28 6e 20 76 29 0a    20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74  | -new-node.(n.v)...(js2-visit-ast | 
| 22720 |  20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 74    61 72 67 65 74 20 6e 29 20 76 29 0a 20 20 28 64  | .(js2-new-node-target.n).v)...(d | 
| 22740 |  6f 6c 69 73 74 20 28 61 72 67 20 28 6a 73 32 2d    6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 29  | olist.(arg.(js2-new-node-args.n) | 
| 22760 |  29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74    2d 61 73 74 20 61 72 67 20 76 29 29 0a 20 20 28  | ).....(js2-visit-ast.arg.v))...( | 
| 22780 |  6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a    73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74  | js2-visit-ast.(js2-new-node-init | 
| 227a0 |  69 61 6c 69 7a 65 72 20 6e 29 20 76 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74  | ializer.n).v))..(defun.js2-print | 
| 227c0 |  2d 6e 65 77 2d 6e 6f 64 65 20 28 6e 20 69 29 0a    20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d  | -new-node.(n.i)...(insert.(js2-m | 
| 227e0 |  61 6b 65 2d 70 61 64 20 69 29 20 22 6e 65 77 20    22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | ake-pad.i)."new.")...(js2-print- | 
| 22800 |  61 73 74 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64    65 2d 74 61 72 67 65 74 20 6e 29 29 0a 20 20 28  | ast.(js2-new-node-target.n))...( | 
| 22820 |  69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 28 6a    73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 6a  | insert."(")...(js2-print-list.(j | 
| 22840 |  73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73    20 6e 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22  | s2-new-node-args.n))...(insert." | 
| 22860 |  29 22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32    2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 69 61  | )")...(when.(js2-new-node-initia | 
| 22880 |  6c 69 7a 65 72 20 6e 29 0a 20 20 20 20 28 69 6e    73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28 6a  | lizer.n).....(insert.".").....(j | 
| 228a0 |  73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73    32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 69  | s2-print-ast.(js2-new-node-initi | 
| 228c0 |  61 6c 69 7a 65 72 20 6e 29 29 29 29 0a 0a 28 63    6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32  | alizer.n))))..(cl-defstruct.(js2 | 
| 228e0 |  2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c  | -name-node................(:incl | 
| 22900 |  75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63  | ude.js2-node)................(:c | 
| 22920 |  6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d    6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 26  | onstructor.make-js2-name-node.(& | 
| 22940 |  6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 4e 41    4d 45 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | key.(type.js2-NAME)............. | 
| 22960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22980 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | ..........(pos.(js2-current-toke | 
| 229a0 |  6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-beg))......................... | 
| 229c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | ..............................(l | 
| 229e0 |  65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72    73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20  | en.(-.js2-ts-cursor............. | 
| 22a00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | ..................(js2-current-t | 
| 22a40 |  6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oken-beg)))..................... | 
| 22a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22a80 |  20 20 28 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e  | ..(name.(js2-current-token-strin | 
| 22aa0 |  67 29 29 29 29 29 0a 20 20 22 41 53 54 20 6e 6f    64 65 20 66 6f 72 20 61 20 4a 61 76 61 53 63 72  | g)))))..."AST.node.for.a.JavaScr | 
| 22ac0 |  69 70 74 20 69 64 65 6e 74 69 66 69 65 72 22 0a    20 20 6e 61 6d 65 20 20 20 3b 20 61 20 73 74 72  | ipt.identifier"...name...;.a.str | 
| 22ae0 |  69 6e 67 0a 20 20 73 63 6f 70 65 29 20 3b 20 61    20 60 6a 73 32 2d 73 63 6f 70 65 27 20 28 6f 70  | ing...scope).;.a.`js2-scope'.(op | 
| 22b00 |  74 69 6f 6e 61 6c 2c 20 75 73 65 64 20 66 6f 72    20 63 6f 64 65 67 65 6e 29 0a 0a 28 6a 73 32 2d  | tional,.used.for.codegen)..(js2- | 
| 22b20 |  2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32    2d 6e 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d  | -struct-put.'js2-name-node.'js2- | 
| 22b40 |  76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73    69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d 2d 73  | visitor.'js2-visit-none).(js2--s | 
| 22b60 |  74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6e    61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72  | truct-put.'js2-name-node.'js2-pr | 
| 22b80 |  69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74    2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 0a 28 64 65  | inter.'js2-print-name-node)..(de | 
| 22ba0 |  66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e 61    6d 65 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20  | fun.js2-print-name-node.(n.i)... | 
| 22bc0 |  28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b    65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20  | (insert.(js2-make-pad.i)........ | 
| 22be0 |  20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64    65 2d 6e 61 6d 65 20 6e 29 29 29 0a 0a 28 64 65  | ...(js2-name-node-name.n)))..(de | 
| 22c00 |  66 73 75 62 73 74 20 6a 73 32 2d 6e 61 6d 65 2d    6e 6f 64 65 2d 6c 65 6e 67 74 68 20 28 6e 6f 64  | fsubst.js2-name-node-length.(nod | 
| 22c20 |  65 29 0a 20 20 22 52 65 74 75 72 6e 20 69 64 65    6e 74 69 66 69 65 72 20 6c 65 6e 67 74 68 20 6f  | e)..."Return.identifier.length.o | 
| 22c40 |  66 20 4e 4f 44 45 2c 20 61 20 60 6a 73 32 2d 6e    61 6d 65 2d 6e 6f 64 65 27 2e 0a 52 65 74 75 72  | f.NODE,.a.`js2-name-node'..Retur | 
| 22c60 |  6e 73 20 30 20 69 66 20 4e 4f 44 45 20 69 73 20    6e 69 6c 20 6f 72 20 69 74 73 20 69 64 65 6e 74  | ns.0.if.NODE.is.nil.or.its.ident | 
| 22c80 |  69 66 69 65 72 20 66 69 65 6c 64 20 69 73 20 6e    69 6c 2e 22 0a 20 20 28 69 66 20 6e 6f 64 65 0a  | ifier.field.is.nil."...(if.node. | 
| 22ca0 |  20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 6a    73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d  | ......(length.(js2-name-node-nam | 
| 22cc0 |  65 20 6e 6f 64 65 29 29 0a 20 20 20 20 30 29 29    0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20  | e.node)).....0))..(cl-defstruct. | 
| 22ce0 |  28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-number-node................ | 
| 22d00 |  28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (:include.js2-node)............. | 
| 22d20 |  20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72    20 6d 61 6b 65 2d 6a 73 32 2d 6e 75 6d 62 65 72  | ...(:constructor.make-js2-number | 
| 22d40 |  2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70    65 20 6a 73 32 2d 4e 55 4d 42 45 52 29 0a 20 20  | -node.(&key.(type.js2-NUMBER)... | 
| 22d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d  | ......................(pos.(js2- | 
| 22da0 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65    67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | current-token-beg))............. | 
| 22dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22de0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e    20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f  | ............(len.(-.js2-ts-curso | 
| 22e00 |  72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r............................... | 
| 22e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22e40 |  20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20  | ..(js2-current-token-beg)))..... | 
| 22e60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22e80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 76 61 6c 75 65 20 28 6a 73 32 2d  | ....................(value.(js2- | 
| 22ea0 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74    72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20  | current-token-string)).......... | 
| 22ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 75 6d 2d 76 61 6c 75 65 20 28 6a 73 32 2d 74  | ...............(num-value.(js2-t | 
| 22f00 |  6f 6b 65 6e 2d 6e 75 6d 62 65 72 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oken-number..................... | 
| 22f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22f40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ................(js2-current-tok | 
| 22f60 |  65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en)))........................... | 
| 22f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e  | ..............................(n | 
| 22fa0 |  75 6d 2d 62 61 73 65 20 28 6a 73 32 2d 74 6f 6b    65 6e 2d 6e 75 6d 62 65 72 2d 62 61 73 65 0a 20  | um-base.(js2-token-number-base.. | 
| 22fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 22fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23000 |  20 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20  | ..(js2-current-token)))......... | 
| 23020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70 20  | ................(legacy-octal-p. | 
| 23060 |  28 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62 65    72 2d 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70  | (js2-token-number-legacy-octal-p | 
| 23080 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 230a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 230c0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29 29  | ..........(js2-current-token)))) | 
| 230e0 |  29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66    6f 72 20 61 20 6e 75 6d 62 65 72 20 6c 69 74 65  | ))..."AST.node.for.a.number.lite | 
| 23100 |  72 61 6c 2e 22 0a 20 20 76 61 6c 75 65 20 20 20    20 20 20 3b 20 74 68 65 20 6f 72 69 67 69 6e 61  | ral."...value......;.the.origina | 
| 23120 |  6c 20 73 74 72 69 6e 67 2c 20 65 2e 67 2e 20 22    36 2e 30 32 65 32 33 22 0a 20 20 6e 75 6d 2d 76  | l.string,.e.g.."6.02e23"...num-v | 
| 23140 |  61 6c 75 65 20 20 3b 20 74 68 65 20 70 61 72 73    65 64 20 6e 75 6d 62 65 72 20 76 61 6c 75 65 0a  | alue..;.the.parsed.number.value. | 
| 23160 |  20 20 6e 75 6d 2d 62 61 73 65 20 20 3b 20 74 68    65 20 6e 75 6d 62 65 72 27 73 20 62 61 73 65 0a  | ..num-base..;.the.number's.base. | 
| 23180 |  20 20 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d 70    29 20 20 3b 20 77 68 65 74 68 65 72 20 74 68 65  | ..legacy-octal-p)..;.whether.the | 
| 231a0 |  20 6e 75 6d 62 65 72 20 69 73 20 61 20 6c 65 67    61 63 79 20 6f 63 74 61 6c 20 28 30 31 32 33 20  | .number.is.a.legacy.octal.(0123. | 
| 231c0 |  69 6e 73 74 65 61 64 20 6f 66 20 30 6f 31 32 33    29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | instead.of.0o123)..(js2--struct- | 
| 231e0 |  70 75 74 20 27 6a 73 32 2d 6e 75 6d 62 65 72 2d    6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f  | put.'js2-number-node.'js2-visito | 
| 23200 |  72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e    65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | r.'js2-visit-none).(js2--struct- | 
| 23220 |  70 75 74 20 27 6a 73 32 2d 6e 75 6d 62 65 72 2d    6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65  | put.'js2-number-node.'js2-printe | 
| 23240 |  72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 6e 75 6d    62 65 72 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75  | r.'js2-print-number-node)..(defu | 
| 23260 |  6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e 75 6d 62    65 72 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20  | n.js2-print-number-node.(n.i)... | 
| 23280 |  28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b    65 2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20  | (insert.(js2-make-pad.i)........ | 
| 232a0 |  20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74    72 69 6e 67 20 28 6a 73 32 2d 6e 75 6d 62 65 72  | ...(number-to-string.(js2-number | 
| 232c0 |  2d 6e 6f 64 65 2d 6e 75 6d 2d 76 61 6c 75 65 20    6e 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74  | -node-num-value.n))))..(cl-defst | 
| 232e0 |  72 75 63 74 20 28 6a 73 32 2d 72 65 67 65 78 70    2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20  | ruct.(js2-regexp-node........... | 
| 23300 |  20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a    73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | .....(:include.js2-node)........ | 
| 23320 |  20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72    75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 72  | ........(:constructor.make-js2-r | 
| 23340 |  65 67 65 78 70 2d 6e 6f 64 65 20 28 26 6b 65 79    20 28 74 79 70 65 20 6a 73 32 2d 52 45 47 45 58  | egexp-node.(&key.(type.js2-REGEX | 
| 23360 |  50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | P).............................. | 
| 23380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20  | ...........................(pos. | 
| 233a0 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20  | (js2-current-token-beg))........ | 
| 233c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 233e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d  | .................(len.(-.js2-ts- | 
| 23400 |  63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | cursor.......................... | 
| 23420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23440 |  20 20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29  | .......(js2-current-token-beg))) | 
| 23460 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 66  | .........................value.f | 
| 234a0 |  6c 61 67 73 29 29 29 0a 20 20 22 41 53 54 20 6e    6f 64 65 20 66 6f 72 20 61 20 72 65 67 75 6c 61  | lags)))..."AST.node.for.a.regula | 
| 234c0 |  72 20 65 78 70 72 65 73 73 69 6f 6e 20 6c 69 74    65 72 61 6c 2e 22 0a 20 20 76 61 6c 75 65 20 20  | r.expression.literal."...value.. | 
| 234e0 |  3b 20 74 68 65 20 72 65 67 65 78 70 20 73 74 72    69 6e 67 2c 20 77 69 74 68 6f 75 74 20 2f 2f 20  | ;.the.regexp.string,.without.//. | 
| 23500 |  64 65 6c 69 6d 69 74 65 72 73 0a 20 20 66 6c 61    67 73 29 20 3b 20 61 20 73 74 72 69 6e 67 20 6f  | delimiters...flags).;.a.string.o | 
| 23520 |  66 20 66 6c 61 67 73 2c 20 65 2e 67 2e 20 60 6d    69 27 2e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | f.flags,.e.g..`mi'...(js2--struc | 
| 23540 |  74 2d 70 75 74 20 27 6a 73 32 2d 72 65 67 65 78    70 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69  | t-put.'js2-regexp-node.'js2-visi | 
| 23560 |  74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6e    6f 6e 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | tor.'js2-visit-none).(js2--struc | 
| 23580 |  74 2d 70 75 74 20 27 6a 73 32 2d 72 65 67 65 78    70 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e  | t-put.'js2-regexp-node.'js2-prin | 
| 235a0 |  74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 72    65 67 65 78 70 29 0a 0a 28 64 65 66 75 6e 20 6a  | ter.'js2-print-regexp)..(defun.j | 
| 235c0 |  73 32 2d 70 72 69 6e 74 2d 72 65 67 65 78 70 20    28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74 20  | s2-print-regexp.(n.i)...(insert. | 
| 235e0 |  28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29    0a 20 20 20 20 20 20 20 20 20 20 22 2f 22 0a 20  | (js2-make-pad.i)..........."/".. | 
| 23600 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65    67 65 78 70 2d 6e 6f 64 65 2d 76 61 6c 75 65 20  | .........(js2-regexp-node-value. | 
| 23620 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 22 2f 22    29 0a 20 20 28 69 66 20 28 6a 73 32 2d 72 65 67  | n)..........."/")...(if.(js2-reg | 
| 23640 |  65 78 70 2d 6e 6f 64 65 2d 66 6c 61 67 73 20 6e    29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20  | exp-node-flags.n).......(insert. | 
| 23660 |  28 6a 73 32 2d 72 65 67 65 78 70 2d 6e 6f 64 65    2d 66 6c 61 67 73 20 6e 29 29 29 29 0a 0a 28 63  | (js2-regexp-node-flags.n))))..(c | 
| 23680 |  6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32    2d 73 74 72 69 6e 67 2d 6e 6f 64 65 0a 20 20 20  | l-defstruct.(js2-string-node.... | 
| 236a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e    63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65 29 0a  | ............(:include.js2-node). | 
| 236c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b  | ...............(:constructor.mak | 
| 236e0 |  65 2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64    65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73  | e-js2-string-node.(&key.(type.js | 
| 23700 |  32 2d 53 54 52 49 4e 47 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-STRING)....................... | 
| 23720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23740 |  20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a  | ..(pos.(js2-current-token-beg)). | 
| 23760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20  | ........................(len.(-. | 
| 237a0 |  6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-ts-cursor................... | 
| 237c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 237e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | ..............(js2-current-token | 
| 23800 |  2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -beg)))......................... | 
| 23820 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23840 |  28 76 61 6c 75 65 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67  | (value.(js2-current-token-string | 
| 23860 |  29 29 29 29 29 0a 20 20 22 53 74 72 69 6e 67 20    6c 69 74 65 72 61 6c 2e 0a 45 73 63 61 70 65 20  | )))))..."String.literal..Escape. | 
| 23880 |  63 68 61 72 61 63 74 65 72 73 20 61 72 65 20 6e    6f 74 20 65 76 61 6c 75 61 74 65 64 3b 20 65 2e  | characters.are.not.evaluated;.e. | 
| 238a0 |  67 2e 20 5c 6e 20 69 73 20 32 20 63 68 61 72 73    20 69 6e 20 76 61 6c 75 65 20 66 69 65 6c 64 2e  | g..\n.is.2.chars.in.value.field. | 
| 238c0 |  0a 59 6f 75 20 63 61 6e 20 74 65 6c 6c 20 74 68    65 20 71 75 6f 74 65 20 74 79 70 65 20 62 79 20  | .You.can.tell.the.quote.type.by. | 
| 238e0 |  6c 6f 6f 6b 69 6e 67 20 61 74 20 74 68 65 20 66    69 72 73 74 20 63 68 61 72 61 63 74 65 72 2e 22  | looking.at.the.first.character." | 
| 23900 |  0a 20 20 76 61 6c 75 65 29 20 3b 20 74 68 65 20    63 68 61 72 61 63 74 65 72 73 20 6f 66 20 74 68  | ...value).;.the.characters.of.th | 
| 23920 |  65 20 73 74 72 69 6e 67 2c 20 69 6e 63 6c 75 64    69 6e 67 20 74 68 65 20 71 75 6f 74 65 73 0a 0a  | e.string,.including.the.quotes.. | 
| 23940 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64  | (js2--struct-put.'js2-string-nod | 
| 23960 |  65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27    6a 73 32 2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a  | e.'js2-visitor.'js2-visit-none). | 
| 23980 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64  | (js2--struct-put.'js2-string-nod | 
| 239a0 |  65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27    6a 73 32 2d 70 72 69 6e 74 2d 73 74 72 69 6e 67  | e.'js2-printer.'js2-print-string | 
| 239c0 |  2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 70 72 69 6e 74 2d 73 74 72 69 6e 67 2d  | -node)..(defun.js2-print-string- | 
| 239e0 |  6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e    73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70  | node.(n.i)...(insert.(js2-make-p | 
| 23a00 |  61 64 20 69 29 0a 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6e 6f 64 65 2d 73 74 72 69 6e 67  | ad.i)...........(js2-node-string | 
| 23a20 |  20 6e 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74    72 75 63 74 20 28 6a 73 32 2d 74 65 6d 70 6c 61  | .n)))..(cl-defstruct.(js2-templa | 
| 23a40 |  74 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65  | te-node................(:include | 
| 23a60 |  20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73  | .js2-node)................(:cons | 
| 23a80 |  74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32    2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 28  | tructor.make-js2-template-node.( | 
| 23aa0 |  26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54    45 4d 50 4c 41 54 45 5f 48 45 41 44 29 0a 20 20  | &key.(type.js2-TEMPLATE_HEAD)... | 
| 23ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 70 6f 73 20 6c 65 6e 20  | ........................pos.len. | 
| 23b00 |  6b 69 64 73 29 29 29 0a 20 20 22 54 65 6d 70 6c    61 74 65 20 6c 69 74 65 72 61 6c 2e 22 0a 20 20  | kids)))..."Template.literal."... | 
| 23b20 |  6b 69 64 73 29 20 20 3b 20 60 6a 73 32 2d 73 74    72 69 6e 67 2d 6e 6f 64 65 27 20 69 73 20 75 73  | kids)..;.`js2-string-node'.is.us | 
| 23b40 |  65 64 20 66 6f 72 20 73 74 72 69 6e 67 20 73 65    67 6d 65 6e 74 73 2c 20 6f 74 68 65 72 20 6e 6f  | ed.for.string.segments,.other.no | 
| 23b60 |  64 65 73 0a 20 20 20 20 20 20 20 20 20 3b 20 66    6f 72 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73  | des..........;.for.substitutions | 
| 23b80 |  20 69 6e 73 69 64 65 2e 0a 0a 28 6a 73 32 2d 2d    73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d  | .inside...(js2--struct-put.'js2- | 
| 23ba0 |  74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | template-node.'js2-visitor.'js2- | 
| 23bc0 |  76 69 73 69 74 2d 74 65 6d 70 6c 61 74 65 29 0a    28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74  | visit-template).(js2--struct-put | 
| 23be0 |  20 27 6a 73 32 2d 74 65 6d 70 6c 61 74 65 2d 6e    6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72  | .'js2-template-node.'js2-printer | 
| 23c00 |  20 27 6a 73 32 2d 70 72 69 6e 74 2d 74 65 6d 70    6c 61 74 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | .'js2-print-template)..(defun.js | 
| 23c20 |  32 2d 76 69 73 69 74 2d 74 65 6d 70 6c 61 74 65    20 28 6e 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20  | 2-visit-template.(n.callback)... | 
| 23c40 |  28 64 6f 6c 69 73 74 20 28 6b 69 64 20 28 6a 73    32 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 2d  | (dolist.(kid.(js2-template-node- | 
| 23c60 |  6b 69 64 73 20 6e 29 29 0a 20 20 20 20 28 6a 73    32 2d 76 69 73 69 74 2d 61 73 74 20 6b 69 64 20  | kids.n)).....(js2-visit-ast.kid. | 
| 23c80 |  63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 74 65  | callback)))..(defun.js2-print-te | 
| 23ca0 |  6d 70 6c 61 74 65 20 28 6e 20 69 29 0a 20 20 28    69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65  | mplate.(n.i)...(insert.(js2-make | 
| 23cc0 |  2d 70 61 64 20 69 29 29 0a 20 20 28 64 6f 6c 69    73 74 20 28 6b 69 64 20 28 6a 73 32 2d 74 65 6d  | -pad.i))...(dolist.(kid.(js2-tem | 
| 23ce0 |  70 6c 61 74 65 2d 6e 6f 64 65 2d 6b 69 64 73 20    6e 29 29 0a 20 20 20 20 28 69 66 20 28 6a 73 32  | plate-node-kids.n)).....(if.(js2 | 
| 23d00 |  2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b    69 64 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73  | -string-node-p.kid).........(ins | 
| 23d20 |  65 72 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 74    72 69 6e 67 20 6b 69 64 29 29 0a 20 20 20 20 20  | ert.(js2-node-string.kid))...... | 
| 23d40 |  20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20    6b 69 64 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66  | .(js2-print-ast.kid))))..(cl-def | 
| 23d60 |  73 74 72 75 63 74 20 28 6a 73 32 2d 74 61 67 67    65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65  | struct.(js2-tagged-template-node | 
| 23d80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f  | ................(:include.js2-no | 
| 23da0 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72  | de)................(:constructor | 
| 23dc0 |  20 6d 61 6b 65 2d 6a 73 32 2d 74 61 67 67 65 64    2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 28  | .make-js2-tagged-template-node.( | 
| 23de0 |  26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 54    41 47 47 45 44 5f 54 45 4d 50 4c 41 54 45 29 0a  | &key.(type.js2-TAGGED_TEMPLATE). | 
| 23e00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 23e40 |  20 70 6f 73 20 6c 65 6e 20 74 61 67 20 74 65 6d    70 6c 61 74 65 29 29 29 0a 20 20 22 54 61 67 67  | .pos.len.tag.template)))..."Tagg | 
| 23e60 |  65 64 20 74 65 6d 70 6c 61 74 65 20 6c 69 74 65    72 61 6c 2e 22 0a 20 20 74 61 67 20 20 20 20 20  | ed.template.literal."...tag..... | 
| 23e80 |  20 20 3b 20 60 6a 73 32 2d 6e 6f 64 65 27 20 77    69 74 68 20 74 68 65 20 74 61 67 20 65 78 70 72  | ..;.`js2-node'.with.the.tag.expr | 
| 23ea0 |  65 73 73 69 6f 6e 2e 0a 20 20 74 65 6d 70 6c 61    74 65 29 20 3b 20 60 6a 73 32 2d 74 65 6d 70 6c  | ession....template).;.`js2-templ | 
| 23ec0 |  61 74 65 2d 6e 6f 64 65 27 20 77 69 74 68 20 74    68 65 20 74 65 6d 70 6c 61 74 65 2e 0a 0a 28 6a  | ate-node'.with.the.template...(j | 
| 23ee0 |  73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27    6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c  | s2--struct-put.'js2-tagged-templ | 
| 23f00 |  61 74 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69    73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74  | ate-node.'js2-visitor.'js2-visit | 
| 23f20 |  2d 74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | -tagged-template).(js2--struct-p | 
| 23f40 |  75 74 20 27 6a 73 32 2d 74 61 67 67 65 64 2d 74    65 6d 70 6c 61 74 65 2d 6e 6f 64 65 20 27 6a 73  | ut.'js2-tagged-template-node.'js | 
| 23f60 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 74 61 67 67 65 64 2d 74 65 6d 70  | 2-printer.'js2-print-tagged-temp | 
| 23f80 |  6c 61 74 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 76 69 73 69 74 2d 74 61 67 67 65 64 2d 74  | late)..(defun.js2-visit-tagged-t | 
| 23fa0 |  65 6d 70 6c 61 74 65 20 28 6e 20 63 61 6c 6c 62    61 63 6b 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | emplate.(n.callback)...(js2-visi | 
| 23fc0 |  74 2d 61 73 74 20 28 6a 73 32 2d 74 61 67 67 65    64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64 65 2d  | t-ast.(js2-tagged-template-node- | 
| 23fe0 |  74 61 67 20 6e 29 20 63 61 6c 6c 62 61 63 6b 29    0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73  | tag.n).callback)...(js2-visit-as | 
| 24000 |  74 20 28 6a 73 32 2d 74 61 67 67 65 64 2d 74 65    6d 70 6c 61 74 65 2d 6e 6f 64 65 2d 74 65 6d 70  | t.(js2-tagged-template-node-temp | 
| 24020 |  6c 61 74 65 20 6e 29 20 63 61 6c 6c 62 61 63 6b    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70  | late.n).callback))..(defun.js2-p | 
| 24040 |  72 69 6e 74 2d 74 61 67 67 65 64 2d 74 65 6d 70    6c 61 74 65 20 28 6e 20 69 29 0a 20 20 28 69 6e  | rint-tagged-template.(n.i)...(in | 
| 24060 |  73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70    61 64 20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72  | sert.(js2-make-pad.i))...(js2-pr | 
| 24080 |  69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 74 61 67    67 65 64 2d 74 65 6d 70 6c 61 74 65 2d 6e 6f 64  | int-ast.(js2-tagged-template-nod | 
| 240a0 |  65 2d 74 61 67 20 6e 29 29 0a 20 20 28 6a 73 32    2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d  | e-tag.n))...(js2-print-ast.(js2- | 
| 240c0 |  74 61 67 67 65 64 2d 74 65 6d 70 6c 61 74 65 2d    6e 6f 64 65 2d 74 65 6d 70 6c 61 74 65 20 6e 29  | tagged-template-node-template.n) | 
| 240e0 |  29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63    74 20 28 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64  | ))..(cl-defstruct.(js2-array-nod | 
| 24100 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e  | e................(:include.js2-n | 
| 24120 |  6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f  | ode)................(:constructo | 
| 24140 |  72 20 6d 61 6b 65 2d 6a 73 32 2d 61 72 72 61 79    2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70  | r.make-js2-array-node.(&key.(typ | 
| 24160 |  65 20 6a 73 32 2d 41 52 52 41 59 4c 49 54 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.js2-ARRAYLIT)................. | 
| 24180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 241a0 |  20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d    74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20  | .......(pos.js2-ts-cursor)...... | 
| 241c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 241e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6c 65 6e 20 65 6c 65 6d 73 29 29 29 0a 20  | ..................len.elems))).. | 
| 24200 |  20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61    6e 20 61 72 72 61 79 20 6c 69 74 65 72 61 6c 2e  | ."AST.node.for.an.array.literal. | 
| 24220 |  22 0a 20 20 65 6c 65 6d 73 29 20 20 3b 20 6c 69    73 74 20 6f 66 20 65 78 70 72 65 73 73 69 6f 6e  | "...elems)..;.list.of.expression | 
| 24240 |  73 2e 20 20 5b 66 6f 6f 2c 2c 62 61 72 5d 20 79    69 65 6c 64 73 20 61 20 6e 69 6c 20 6d 69 64 64  | s...[foo,,bar].yields.a.nil.midd | 
| 24260 |  6c 65 20 65 6c 65 6d 65 6e 74 2e 0a 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | le.element...(js2--struct-put.'j | 
| 24280 |  73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | s2-array-node.'js2-visitor.'js2- | 
| 242a0 |  76 69 73 69 74 2d 61 72 72 61 79 2d 6e 6f 64 65    29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70  | visit-array-node).(js2--struct-p | 
| 242c0 |  75 74 20 27 6a 73 32 2d 61 72 72 61 79 2d 6e 6f    64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20  | ut.'js2-array-node.'js2-printer. | 
| 242e0 |  27 6a 73 32 2d 70 72 69 6e 74 2d 61 72 72 61 79    2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a  | 'js2-print-array-node)..(defun.j | 
| 24300 |  73 32 2d 76 69 73 69 74 2d 61 72 72 61 79 2d 6e    6f 64 65 20 28 6e 20 76 29 0a 20 20 28 64 6f 6c  | s2-visit-array-node.(n.v)...(dol | 
| 24320 |  69 73 74 20 28 65 20 28 6a 73 32 2d 61 72 72 61    79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29  | ist.(e.(js2-array-node-elems.n)) | 
| 24340 |  0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d    61 73 74 20 65 20 76 29 29 29 20 20 3b 20 43 61  | .....(js2-visit-ast.e.v)))..;.Ca | 
| 24360 |  6e 20 62 65 20 6e 69 6c 3b 20 65 2e 67 2e 20 5b    61 2c 20 2c 62 5d 2e 0a 0a 28 64 65 66 75 6e 20  | n.be.nil;.e.g..[a,.,b]...(defun. | 
| 24380 |  6a 73 32 2d 70 72 69 6e 74 2d 61 72 72 61 79 2d    6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e  | js2-print-array-node.(n.i)...(in | 
| 243a0 |  73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70    61 64 20 69 29 20 22 5b 22 29 0a 20 20 28 6c 65  | sert.(js2-make-pad.i)."[")...(le | 
| 243c0 |  74 20 28 28 65 6c 65 6d 73 20 28 6a 73 32 2d 61    72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20  | t.((elems.(js2-array-node-elems. | 
| 243e0 |  6e 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72    69 6e 74 2d 6c 69 73 74 20 65 6c 65 6d 73 29 0a  | n))).....(js2-print-list.elems). | 
| 24400 |  20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 65    6c 65 6d 73 20 28 6e 75 6c 6c 20 28 63 61 72 20  | ....(when.(and.elems.(null.(car. | 
| 24420 |  28 6c 61 73 74 20 65 6c 65 6d 73 29 29 29 29 0a    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2c  | (last.elems)))).......(insert.", | 
| 24440 |  22 29 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22    5d 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72  | ")))...(insert."]"))..(cl-defstr | 
| 24460 |  75 63 74 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d    6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20  | uct.(js2-object-node............ | 
| 24480 |  20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73    32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20  | ....(:include.js2-node)......... | 
| 244a0 |  20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75    63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 6f 62  | .......(:constructor.make-js2-ob | 
| 244c0 |  6a 65 63 74 2d 6e 6f 64 65 20 28 26 6b 65 79 20    28 74 79 70 65 20 6a 73 32 2d 4f 42 4a 45 43 54  | ject-node.(&key.(type.js2-OBJECT | 
| 244e0 |  4c 49 54 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | LIT)............................ | 
| 24500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f  | .............................(po | 
| 24520 |  73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.js2-ts-cursor)................ | 
| 24540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 24560 |  20 20 20 20 20 20 20 20 20 6c 65 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........len.................... | 
| 24580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 245a0 |  20 20 20 20 20 65 6c 65 6d 73 29 29 29 0a 20 20    22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e  | .....elems)))..."AST.node.for.an | 
| 245c0 |  20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20    65 78 70 72 65 73 73 69 6f 6e 2e 0a 60 65 6c 65  | .object.literal.expression..`ele | 
| 245e0 |  6d 73 27 20 69 73 20 61 20 6c 69 73 74 20 6f 66    20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f  | ms'.is.a.list.of.`js2-object-pro | 
| 24600 |  70 2d 6e 6f 64 65 27 2e 22 0a 20 20 65 6c 65 6d    73 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74  | p-node'."...elems)..(js2--struct | 
| 24620 |  2d 70 75 74 20 27 6a 73 32 2d 6f 62 6a 65 63 74    2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74  | -put.'js2-object-node.'js2-visit | 
| 24640 |  6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 6f 62    6a 65 63 74 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d  | or.'js2-visit-object-node).(js2- | 
| 24660 |  2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32    2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 20 27 6a 73  | -struct-put.'js2-object-node.'js | 
| 24680 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65  | 2-printer.'js2-print-object-node | 
| 246a0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69    73 69 74 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 20  | )..(defun.js2-visit-object-node. | 
| 246c0 |  28 6e 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20    28 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e  | (n.v)...(dolist.(e.(js2-object-n | 
| 246e0 |  6f 64 65 2d 65 6c 65 6d 73 20 6e 29 29 0a 20 20    20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74  | ode-elems.n)).....(js2-visit-ast | 
| 24700 |  20 65 20 76 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 70 72 69 6e 74 2d 6f 62 6a 65 63 74  | .e.v)))..(defun.js2-print-object | 
| 24720 |  2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69    6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d  | -node.(n.i)...(insert.(js2-make- | 
| 24740 |  70 61 64 20 69 29 20 22 7b 22 29 0a 20 20 28 6a    73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 6a  | pad.i)."{")...(js2-print-list.(j | 
| 24760 |  73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 65    6c 65 6d 73 20 6e 29 29 0a 20 20 28 69 6e 73 65  | s2-object-node-elems.n))...(inse | 
| 24780 |  72 74 20 22 7d 22 29 29 0a 0a 28 63 6c 2d 64 65    66 73 74 72 75 63 74 20 28 6a 73 32 2d 63 6c 61  | rt."}"))..(cl-defstruct.(js2-cla | 
| 247a0 |  73 73 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65  | ss-node................(:include | 
| 247c0 |  20 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-object-node)............... | 
| 247e0 |  20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d    61 6b 65 2d 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f  | .(:constructor.make-js2-class-no | 
| 24800 |  64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a    73 32 2d 43 4c 41 53 53 29 0a 20 20 20 20 20 20  | de.(&key.(type.js2-CLASS)....... | 
| 24820 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 24840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72  | .................(pos.js2-ts-cur | 
| 24860 |  73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | sor)............................ | 
| 24880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72  | ............................(for | 
| 248a0 |  6d 20 27 43 4c 41 53 53 5f 53 54 41 54 45 4d 45    4e 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | m.'CLASS_STATEMENT)............. | 
| 248c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 248e0 |  20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65    20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ...........(name."")............ | 
| 24900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 24920 |  20 20 20 20 20 20 20 20 20 20 20 20 65 78 74 65    6e 64 73 20 6c 65 6e 20 65 6c 65 6d 73 29 29 29  | ............extends.len.elems))) | 
| 24940 |  0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72    20 61 6e 20 63 6c 61 73 73 20 65 78 70 72 65 73  | ..."AST.node.for.an.class.expres | 
| 24960 |  73 69 6f 6e 2e 0a 60 65 6c 65 6d 73 27 20 69 73    20 61 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d  | sion..`elems'.is.a.list.of.`js2- | 
| 24980 |  6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65    27 2c 20 61 6e 64 20 60 65 78 74 65 6e 64 73 27  | object-prop-node',.and.`extends' | 
| 249a0 |  20 69 73 20 61 6e 0a 6f 70 74 69 6f 6e 61 6c 20    60 6a 73 32 2d 65 78 70 72 2d 6e 6f 64 65 27 22  | .is.an.optional.`js2-expr-node'" | 
| 249c0 |  0a 20 20 66 6f 72 6d 20 20 20 20 20 20 20 20 20    20 20 20 20 3b 20 43 4c 41 53 53 5f 7b 53 54 41  | ...form.............;.CLASS_{STA | 
| 249e0 |  54 45 4d 45 4e 54 7c 45 58 50 52 45 53 53 49 4f    4e 7d 0a 20 20 6e 61 6d 65 20 20 20 20 20 20 20  | TEMENT|EXPRESSION}...name....... | 
| 24a00 |  20 20 20 20 20 20 3b 20 63 6c 61 73 73 20 6e 61    6d 65 20 28 61 20 60 6a 73 32 2d 6e 6f 64 65 2d  | ......;.class.name.(a.`js2-node- | 
| 24a20 |  6e 61 6d 65 27 2c 20 6f 72 20 6e 69 6c 20 69 66    20 61 6e 6f 6e 79 6d 6f 75 73 29 0a 20 20 65 78  | name',.or.nil.if.anonymous)...ex | 
| 24a40 |  74 65 6e 64 73 20 20 20 20 20 20 20 20 20 20 3b    20 63 6c 61 73 73 20 68 65 72 69 74 61 67 65 20  | tends..........;.class.heritage. | 
| 24a60 |  28 61 20 60 6a 73 32 2d 65 78 70 72 2d 6e 6f 64    65 27 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6e 6f  | (a.`js2-expr-node',.or.nil.if.no | 
| 24a80 |  6e 65 29 0a 20 20 29 0a 0a 28 6a 73 32 2d 2d 73    74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63  | ne)...)..(js2--struct-put.'js2-c | 
| 24aa0 |  6c 61 73 73 2d 6e 6f 64 65 20 27 6a 73 32 2d 76    69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69  | lass-node.'js2-visitor.'js2-visi | 
| 24ac0 |  74 2d 63 6c 61 73 73 2d 6e 6f 64 65 29 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | t-class-node).(js2--struct-put.' | 
| 24ae0 |  6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 20 27    6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32  | js2-class-node.'js2-printer.'js2 | 
| 24b00 |  2d 70 72 69 6e 74 2d 63 6c 61 73 73 2d 6e 6f 64    65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76  | -print-class-node)..(defun.js2-v | 
| 24b20 |  69 73 69 74 2d 63 6c 61 73 73 2d 6e 6f 64 65 20    28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73  | isit-class-node.(n.v)...(js2-vis | 
| 24b40 |  69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6c 61 73    73 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76  | it-ast.(js2-class-node-name.n).v | 
| 24b60 |  29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61    73 74 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f  | )...(js2-visit-ast.(js2-class-no | 
| 24b80 |  64 65 2d 65 78 74 65 6e 64 73 20 6e 29 20 76 29    0a 20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 6a  | de-extends.n).v)...(dolist.(e.(j | 
| 24ba0 |  73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 65 6c    65 6d 73 20 6e 29 29 0a 20 20 20 20 28 6a 73 32  | s2-class-node-elems.n)).....(js2 | 
| 24bc0 |  2d 76 69 73 69 74 2d 61 73 74 20 65 20 76 29 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72  | -visit-ast.e.v)))..(defun.js2-pr | 
| 24be0 |  69 6e 74 2d 63 6c 61 73 73 2d 6e 6f 64 65 20 28    6e 20 69 29 0a 20 20 28 6c 65 74 2a 20 28 28 70  | int-class-node.(n.i)...(let*.((p | 
| 24c00 |  61 64 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64    20 69 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e  | ad.(js2-make-pad.i))..........(n | 
| 24c20 |  61 6d 65 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e    6f 64 65 2d 6e 61 6d 65 20 6e 29 29 0a 20 20 20  | ame.(js2-class-node-name.n)).... | 
| 24c40 |  20 20 20 20 20 20 28 65 78 74 65 6e 64 73 20 28    6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 65  | ......(extends.(js2-class-node-e | 
| 24c60 |  78 74 65 6e 64 73 20 6e 29 29 0a 20 20 20 20 20    20 20 20 20 28 65 6c 65 6d 73 20 28 6a 73 32 2d  | xtends.n))..........(elems.(js2- | 
| 24c80 |  63 6c 61 73 73 2d 6e 6f 64 65 2d 65 6c 65 6d 73    20 6e 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72  | class-node-elems.n))).....(inser | 
| 24ca0 |  74 20 70 61 64 20 22 63 6c 61 73 73 22 29 0a 20    20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 20 20  | t.pad."class").....(when.name... | 
| 24cc0 |  20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e  | ....(insert.".").......(js2-prin | 
| 24ce0 |  74 2d 61 73 74 20 6e 61 6d 65 20 30 29 29 0a 20    20 20 20 28 77 68 65 6e 20 65 78 74 65 6e 64 73  | t-ast.name.0)).....(when.extends | 
| 24d00 |  0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22    20 65 78 74 65 6e 64 73 20 22 29 0a 20 20 20 20  | .......(insert.".extends.")..... | 
| 24d20 |  20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74    20 65 78 74 65 6e 64 73 29 29 0a 20 20 20 20 28  | ..(js2-print-ast.extends)).....( | 
| 24d40 |  69 6e 73 65 72 74 20 22 20 7b 22 29 0a 20 20 20    20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 20 65  | insert.".{").....(dolist.(elem.e | 
| 24d60 |  6c 65 6d 73 29 0a 20 20 20 20 20 20 28 69 6e 73    65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20  | lems).......(insert."\n")....... | 
| 24d80 |  28 69 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65    74 2d 70 72 6f 70 20 65 6c 65 6d 20 27 53 54 41  | (if.(js2-node-get-prop.elem.'STA | 
| 24da0 |  54 49 43 29 0a 20 20 20 20 20 20 20 20 20 20 28    70 72 6f 67 6e 20 28 69 6e 73 65 72 74 20 28 6a  | TIC)...........(progn.(insert.(j | 
| 24dc0 |  73 32 2d 6d 61 6b 65 2d 70 61 64 20 28 31 2b 20    69 29 29 20 22 73 74 61 74 69 63 20 22 29 0a 20  | s2-make-pad.(1+.i))."static.").. | 
| 24de0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 65  | ................(js2-print-ast.e | 
| 24e00 |  6c 65 6d 20 30 29 29 20 3b 3b 20 54 4f 44 4f 28    73 64 68 29 3a 20 69 6e 64 65 6e 74 61 74 69 6f  | lem.0)).;;.TODO(sdh):.indentatio | 
| 24e20 |  6e 20 69 73 6e 27 74 20 71 75 69 74 65 20 72 69    67 68 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | n.isn't.quite.right.........(js2 | 
| 24e40 |  2d 70 72 69 6e 74 2d 61 73 74 20 65 6c 65 6d 20    28 31 2b 20 69 29 29 29 29 0a 20 20 20 20 28 69  | -print-ast.elem.(1+.i)))).....(i | 
| 24e60 |  6e 73 65 72 74 20 22 5c 6e 22 20 70 61 64 20 22    7d 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74  | nsert."\n".pad."}")))..(cl-defst | 
| 24e80 |  72 75 63 74 20 28 6a 73 32 2d 63 6f 6d 70 75 74    65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64  | ruct.(js2-computed-prop-name-nod | 
| 24ea0 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e  | e................(:include.js2-n | 
| 24ec0 |  6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f  | ode)................(:constructo | 
| 24ee0 |  72 20 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 75    74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f  | r.make-js2-computed-prop-name-no | 
| 24f00 |  64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de.............................. | 
| 24f20 |  28 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (&key........................... | 
| 24f40 |  20 20 20 20 28 74 79 70 65 20 6a 73 32 2d 4c 42    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(type.js2-LB)............... | 
| 24f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    65 78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20  | ................expr............ | 
| 24f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63 75 72  | ...................(pos.(js2-cur | 
| 24fa0 |  72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rent-token-beg))................ | 
| 24fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75  | ...............(len.(-.js2-ts-cu | 
| 24fe0 |  72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rsor............................ | 
| 25000 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65  | ...........(js2-current-token-be | 
| 25020 |  67 29 29 29 29 29 29 0a 20 20 22 41 53 54 20 6e    6f 64 65 20 66 6f 72 20 61 20 60 43 6f 6d 70 75  | g))))))..."AST.node.for.a.`Compu | 
| 25040 |  74 65 64 50 72 6f 70 65 72 74 79 4e 61 6d 65 27    2e 22 0a 20 20 65 78 70 72 29 0a 0a 28 6a 73 32  | tedPropertyName'."...expr)..(js2 | 
| 25060 |  2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73    32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d  | --struct-put.'js2-computed-prop- | 
| 25080 |  6e 61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76    69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69  | name-node.'js2-visitor.'js2-visi | 
| 250a0 |  74 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d    6e 61 6d 65 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d  | t-computed-prop-name-node).(js2- | 
| 250c0 |  2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32    2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e  | -struct-put.'js2-computed-prop-n | 
| 250e0 |  61 6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72    69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74  | ame-node.'js2-printer.'js2-print | 
| 25100 |  2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e    61 6d 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75  | -computed-prop-name-node)..(defu | 
| 25120 |  6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f 6d 70    75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e  | n.js2-visit-computed-prop-name-n | 
| 25140 |  6f 64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32    2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d  | ode.(n.v)...(js2-visit-ast.(js2- | 
| 25160 |  63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d 6e 61    6d 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20  | computed-prop-name-node-expr.n). | 
| 25180 |  76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 72 69 6e 74 2d 63 6f 6d 70 75 74 65 64 2d 70  | v))..(defun.js2-print-computed-p | 
| 251a0 |  72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28 6e    20 69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a  | rop-name-node.(n.i)...(insert.(j | 
| 251c0 |  73 32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22    5b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74  | s2-make-pad.i)."[")...(js2-print | 
| 251e0 |  2d 61 73 74 20 28 6a 73 32 2d 63 6f 6d 70 75 74    65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64  | -ast.(js2-computed-prop-name-nod | 
| 25200 |  65 2d 65 78 70 72 20 6e 29 20 30 29 0a 20 20 28    69 6e 73 65 72 74 20 22 5d 22 29 29 0a 0a 28 63  | e-expr.n).0)...(insert."]"))..(c | 
| 25220 |  6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32    2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64  | l-defstruct.(js2-object-prop-nod | 
| 25240 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 69  | e................(:include.js2-i | 
| 25260 |  6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73  | nfix-node)................(:cons | 
| 25280 |  74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32    2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64  | tructor.make-js2-object-prop-nod | 
| 252a0 |  65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73    32 2d 43 4f 4c 4f 4e 29 0a 20 20 20 20 20 20 20  | e.(&key.(type.js2-COLON)........ | 
| 252c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 252e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74  | ......................(pos.js2-t | 
| 25300 |  73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s-cursor)....................... | 
| 25320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25340 |  20 20 20 20 20 20 20 6c 65 6e 20 6c 65 66 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......len.left................. | 
| 25360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67    68 74 20 6f 70 2d 70 6f 73 29 29 29 0a 20 20 22  | .............right.op-pos)))..." | 
| 253a0 |  41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20    6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20 70  | AST.node.for.an.object.literal.p | 
| 253c0 |  72 6f 70 3a 76 61 6c 75 65 20 65 6e 74 72 79 2e    0a 54 68 65 20 60 6c 65 66 74 27 20 66 69 65 6c  | rop:value.entry..The.`left'.fiel | 
| 253e0 |  64 20 69 73 20 74 68 65 20 70 72 6f 70 65 72 74    79 3a 20 61 20 6e 61 6d 65 20 6e 6f 64 65 2c 20  | d.is.the.property:.a.name.node,. | 
| 25400 |  73 74 72 69 6e 67 20 6e 6f 64 65 2c 0a 6e 75 6d    62 65 72 20 6e 6f 64 65 20 6f 72 20 65 78 70 72  | string.node,.number.node.or.expr | 
| 25420 |  65 73 73 69 6f 6e 20 6e 6f 64 65 2e 20 20 54 68    65 20 60 72 69 67 68 74 27 20 66 69 65 6c 64 20  | ession.node...The.`right'.field. | 
| 25440 |  69 73 20 61 0a 60 6a 73 32 2d 6e 6f 64 65 27 20    72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65  | is.a.`js2-node'.representing.the | 
| 25460 |  20 69 6e 69 74 69 61 6c 69 7a 65 72 20 76 61 6c    75 65 2e 20 20 49 66 20 74 68 65 20 70 72 6f 70  | .initializer.value...If.the.prop | 
| 25480 |  65 72 74 79 0a 69 73 20 61 62 62 72 65 76 69 61    74 65 64 2c 20 74 68 65 20 6e 6f 64 65 27 73 20  | erty.is.abbreviated,.the.node's. | 
| 254a0 |  60 53 48 4f 52 54 48 41 4e 44 27 20 70 72 6f 70    65 72 74 79 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20  | `SHORTHAND'.property.is.non-nil. | 
| 254c0 |  61 6e 64 0a 62 6f 74 68 20 66 69 65 6c 64 73 20    68 61 76 65 20 74 68 65 20 73 61 6d 65 20 76 61  | and.both.fields.have.the.same.va | 
| 254e0 |  6c 75 65 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74    72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 6f 62  | lue.")..(js2--struct-put.'js2-ob | 
| 25500 |  6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 20 27    6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32  | ject-prop-node.'js2-visitor.'js2 | 
| 25520 |  2d 76 69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64    65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | -visit-infix-node).(js2--struct- | 
| 25540 |  70 75 74 20 27 6a 73 32 2d 6f 62 6a 65 63 74 2d    70 72 6f 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 70  | put.'js2-object-prop-node.'js2-p | 
| 25560 |  72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e    74 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f  | rinter.'js2-print-object-prop-no | 
| 25580 |  64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 72 69 6e 74 2d 6f 62 6a 65 63 74 2d 70 72 6f  | de)..(defun.js2-print-object-pro | 
| 255a0 |  70 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28    6c 65 74 2a 20 28 28 6c 65 66 74 20 28 6a 73 32  | p-node.(n.i)...(let*.((left.(js2 | 
| 255c0 |  2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64    65 2d 6c 65 66 74 20 6e 29 29 0a 20 20 20 20 20  | -object-prop-node-left.n))...... | 
| 255e0 |  20 20 20 20 28 72 69 67 68 74 20 28 6a 73 32 2d    6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65  | ....(right.(js2-object-prop-node | 
| 25600 |  2d 72 69 67 68 74 20 6e 29 29 29 0a 20 20 20 20    28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 6c  | -right.n))).....(js2-print-ast.l | 
| 25620 |  65 66 74 20 69 29 0a 20 20 20 20 28 69 66 20 28    6e 6f 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65  | eft.i).....(if.(not.(js2-node-ge | 
| 25640 |  74 2d 70 72 6f 70 20 6e 20 27 53 48 4f 52 54 48    41 4e 44 29 29 0a 20 20 20 20 20 20 20 20 28 70  | t-prop.n.'SHORTHAND)).........(p | 
| 25660 |  72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28    69 6e 73 65 72 74 20 22 3a 20 22 29 0a 20 20 20  | rogn...........(insert.":.").... | 
| 25680 |  20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e    74 2d 61 73 74 20 72 69 67 68 74 20 30 29 29 29  | .......(js2-print-ast.right.0))) | 
| 256a0 |  29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63    74 20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f  | ))..(cl-defstruct.(js2-method-no | 
| 256c0 |  64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d  | de................(:include.js2- | 
| 256e0 |  69 6e 66 69 78 2d 6e 6f 64 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e  | infix-node)................(:con | 
| 25700 |  73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73    32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 20 28 26  | structor.make-js2-method-node.(& | 
| 25720 |  6b 65 79 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d    63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20  | key.(pos.js2-ts-cursor)......... | 
| 25740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 65 6e 20 6c 65 66 74 20 72 69 67 68 74 29 29  | ................len.left.right)) | 
| 25780 |  29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f    72 20 61 20 6d 65 74 68 6f 64 20 69 6e 20 61 6e  | )..."AST.node.for.a.method.in.an | 
| 257a0 |  20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 20    6f 72 20 61 20 63 6c 61 73 73 20 62 6f 64 79 2e  | .object.literal.or.a.class.body. | 
| 257c0 |  0a 54 68 65 20 60 6c 65 66 74 27 20 66 69 65 6c    64 20 69 73 20 74 68 65 20 60 6a 73 32 2d 6e 61  | .The.`left'.field.is.the.`js2-na | 
| 257e0 |  6d 65 2d 6e 6f 64 65 27 20 6e 61 6d 69 6e 67 20    74 68 65 20 6d 65 74 68 6f 64 2e 0a 54 68 65 20  | me-node'.naming.the.method..The. | 
| 25800 |  60 72 69 67 68 74 27 20 66 69 65 6c 64 20 69 73    20 61 6c 77 61 79 73 20 61 6e 20 61 6e 6f 6e 79  | `right'.field.is.always.an.anony | 
| 25820 |  6d 6f 75 73 20 60 6a 73 32 2d 66 75 6e 63 74 69    6f 6e 2d 6e 6f 64 65 27 20 77 69 74 68 20 61 20  | mous.`js2-function-node'.with.a. | 
| 25840 |  6e 6f 64 65 0a 70 72 6f 70 65 72 74 79 20 60 4d    45 54 48 4f 44 5f 54 59 50 45 27 20 73 65 74 20  | node.property.`METHOD_TYPE'.set. | 
| 25860 |  74 6f 20 27 47 45 54 20 6f 72 20 27 53 45 54 2e    20 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | to.'GET.or.'SET..")..(js2--struc | 
| 25880 |  74 2d 70 75 74 20 27 6a 73 32 2d 6d 65 74 68 6f    64 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69  | t-put.'js2-method-node.'js2-visi | 
| 258a0 |  74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 69    6e 66 69 78 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d  | tor.'js2-visit-infix-node).(js2- | 
| 258c0 |  2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32    2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 20 27 6a 73  | -struct-put.'js2-method-node.'js | 
| 258e0 |  32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70    72 69 6e 74 2d 6d 65 74 68 6f 64 29 0a 0a 28 64  | 2-printer.'js2-print-method)..(d | 
| 25900 |  65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6d    65 74 68 6f 64 20 28 6e 20 69 29 0a 20 20 28 6c  | efun.js2-print-method.(n.i)...(l | 
| 25920 |  65 74 2a 20 28 28 70 61 64 20 28 6a 73 32 2d 6d    61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20 20  | et*.((pad.(js2-make-pad.i))..... | 
| 25940 |  20 20 20 20 20 28 6c 65 66 74 20 28 6a 73 32 2d    6d 65 74 68 6f 64 2d 6e 6f 64 65 2d 6c 65 66 74  | .....(left.(js2-method-node-left | 
| 25960 |  20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 72    69 67 68 74 20 28 6a 73 32 2d 6d 65 74 68 6f 64  | .n))..........(right.(js2-method | 
| 25980 |  2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 29 29 0a    20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28  | -node-right.n))..........(type.( | 
| 259a0 |  6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d 70 72 6f    70 20 72 69 67 68 74 20 27 4d 45 54 48 4f 44 5f  | js2-node-get-prop.right.'METHOD_ | 
| 259c0 |  54 59 50 45 29 29 29 0a 20 20 20 20 28 69 6e 73    65 72 74 20 70 61 64 29 0a 20 20 20 20 28 77 68  | TYPE))).....(insert.pad).....(wh | 
| 259e0 |  65 6e 20 74 79 70 65 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 28 63 64 72 20 28 61 73 73 6f  | en.type.......(insert.(cdr.(asso | 
| 25a00 |  63 20 74 79 70 65 20 27 28 28 47 45 54 20 2e 20    22 67 65 74 20 22 29 0a 20 20 20 20 20 20 20 20  | c.type.'((GET..."get.")......... | 
| 25a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 53 45 54 20 2e 20  | .........................(SET... | 
| 25a40 |  22 73 65 74 20 22 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | "set.")......................... | 
| 25a60 |  20 20 20 20 20 20 20 20 20 28 41 53 59 4e 43 20    2e 20 22 61 73 79 6e 63 20 22 29 0a 20 20 20 20  | .........(ASYNC..."async.")..... | 
| 25a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 46 55  | .............................(FU | 
| 25aa0 |  4e 43 54 49 4f 4e 20 2e 20 22 22 29 29 29 29 29    29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | NCTION..."")))))).....(when.(and | 
| 25ac0 |  20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e    6f 64 65 2d 70 20 72 69 67 68 74 29 0a 20 20 20  | .(js2-function-node-p.right).... | 
| 25ae0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20    27 53 54 41 52 20 28 6a 73 32 2d 66 75 6e 63 74  | ............(eq.'STAR.(js2-funct | 
| 25b00 |  69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74    6f 72 2d 74 79 70 65 20 72 69 67 68 74 29 29 29  | ion-node-generator-type.right))) | 
| 25b20 |  0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22    2a 22 29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72  | .......(insert."*")).....(js2-pr | 
| 25b40 |  69 6e 74 2d 61 73 74 20 6c 65 66 74 20 30 29 0a    20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61  | int-ast.left.0).....(js2-print-a | 
| 25b60 |  73 74 20 72 69 67 68 74 20 30 29 29 29 0a 0a 28    63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73  | st.right.0)))..(cl-defstruct.(js | 
| 25b80 |  32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | 2-prop-get-node................( | 
| 25ba0 |  3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 6e 66    69 78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | :include.js2-infix-node)........ | 
| 25bc0 |  20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72    75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 70  | ........(:constructor.make-js2-p | 
| 25be0 |  72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 28 26 6b    65 79 20 28 74 79 70 65 20 6a 73 32 2d 47 45 54  | rop-get-node.(&key.(type.js2-GET | 
| 25c00 |  50 52 4f 50 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | PROP)........................... | 
| 25c20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25c40 |  28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73    6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (pos.js2-ts-cursor)............. | 
| 25c60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65    6e 20 6c 65 66 74 20 72 69 67 68 74 29 29 29 0a  | ..............len.left.right))). | 
| 25ca0 |  20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20    61 20 64 6f 74 74 65 64 20 70 72 6f 70 65 72 74  | .."AST.node.for.a.dotted.propert | 
| 25cc0 |  79 20 72 65 66 65 72 65 6e 63 65 2c 20 65 2e 67    2e 20 66 6f 6f 2e 62 61 72 20 6f 72 20 66 6f 6f  | y.reference,.e.g..foo.bar.or.foo | 
| 25ce0 |  28 29 2e 62 61 72 22 29 0a 0a 28 6a 73 32 2d 2d    73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d  | ().bar")..(js2--struct-put.'js2- | 
| 25d00 |  70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 27 6a    73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d  | prop-get-node.'js2-visitor.'js2- | 
| 25d20 |  76 69 73 69 74 2d 70 72 6f 70 2d 67 65 74 2d 6e    6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | visit-prop-get-node).(js2--struc | 
| 25d40 |  74 2d 70 75 74 20 27 6a 73 32 2d 70 72 6f 70 2d    67 65 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72  | t-put.'js2-prop-get-node.'js2-pr | 
| 25d60 |  69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74    2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 29 0a  | inter.'js2-print-prop-get-node). | 
| 25d80 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69    74 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20  | .(defun.js2-visit-prop-get-node. | 
| 25da0 |  28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73    69 74 2d 61 73 74 20 28 6a 73 32 2d 70 72 6f 70  | (n.v)...(js2-visit-ast.(js2-prop | 
| 25dc0 |  2d 67 65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e    29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | -get-node-left.n).v)...(js2-visi | 
| 25de0 |  74 2d 61 73 74 20 28 6a 73 32 2d 70 72 6f 70 2d    67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e  | t-ast.(js2-prop-get-node-right.n | 
| 25e00 |  29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 70 72 69 6e 74 2d 70 72 6f 70 2d 67 65 74  | ).v))..(defun.js2-print-prop-get | 
| 25e20 |  2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69    6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d  | -node.(n.i)...(insert.(js2-make- | 
| 25e40 |  70 61 64 20 69 29 29 0a 20 20 28 6a 73 32 2d 70    72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 70 72  | pad.i))...(js2-print-ast.(js2-pr | 
| 25e60 |  6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 6c 65 66 74    20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74  | op-get-node-left.n).0)...(insert | 
| 25e80 |  20 22 2e 22 29 0a 20 20 28 6a 73 32 2d 70 72 69    6e 74 2d 61 73 74 20 28 6a 73 32 2d 70 72 6f 70  | .".")...(js2-print-ast.(js2-prop | 
| 25ea0 |  2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20    6e 29 20 30 29 29 0a 0a 28 63 6c 2d 64 65 66 73  | -get-node-right.n).0))..(cl-defs | 
| 25ec0 |  74 72 75 63 74 20 28 6a 73 32 2d 65 6c 65 6d 2d    67 65 74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20  | truct.(js2-elem-get-node........ | 
| 25ee0 |  20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64    65 20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20  | ........(:include.js2-node)..... | 
| 25f00 |  20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e    73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73  | ...........(:constructor.make-js | 
| 25f20 |  32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 20    28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d  | 2-elem-get-node.(&key.(type.js2- | 
| 25f40 |  47 45 54 45 4c 45 4d 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | GETELEM)........................ | 
| 25f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25f80 |  20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63    75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20  | ...(pos.js2-ts-cursor).......... | 
| 25fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 25fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6c 65 6e 20 74 61 72 67 65 74 20 65 6c 65 6d  | .................len.target.elem | 
| 25fe0 |  65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ent............................. | 
| 26000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 62  | ..............................lb | 
| 26020 |  20 72 62 29 29 29 0a 20 20 22 41 53 54 20 6e 6f    64 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20  | .rb)))..."AST.node.for.an.array. | 
| 26040 |  69 6e 64 65 78 20 65 78 70 72 65 73 73 69 6f 6e    20 73 75 63 68 20 61 73 20 66 6f 6f 5b 62 61 72  | index.expression.such.as.foo[bar | 
| 26060 |  5d 2e 22 0a 20 20 74 61 72 67 65 74 20 20 3b 20    61 20 60 6a 73 32 2d 6e 6f 64 65 27 20 2d 20 74  | ]."...target..;.a.`js2-node'.-.t | 
| 26080 |  68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 70 72    65 63 65 64 69 6e 67 20 74 68 65 20 22 2e 22 0a  | he.expression.preceding.the.".". | 
| 260a0 |  20 20 65 6c 65 6d 65 6e 74 20 3b 20 61 20 60 6a    73 32 2d 6e 6f 64 65 27 20 2d 20 74 68 65 20 65  | ..element.;.a.`js2-node'.-.the.e | 
| 260c0 |  78 70 72 65 73 73 69 6f 6e 20 69 6e 20 62 72 61    63 6b 65 74 73 0a 20 20 6c 62 20 20 20 20 20 20  | xpression.in.brackets...lb...... | 
| 260e0 |  3b 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 6c 65    66 74 2d 62 72 61 63 6b 65 74 2c 20 6e 69 6c 20  | ;.position.of.left-bracket,.nil. | 
| 26100 |  69 66 20 6f 6d 69 74 74 65 64 0a 20 20 72 62 29    20 20 20 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20  | if.omitted...rb).....;.position. | 
| 26120 |  6f 66 20 72 69 67 68 74 2d 62 72 61 63 6b 65 74    2c 20 6e 69 6c 20 69 66 20 6f 6d 69 74 74 65 64  | of.right-bracket,.nil.if.omitted | 
| 26140 |  0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70    75 74 20 27 6a 73 32 2d 65 6c 65 6d 2d 67 65 74  | ..(js2--struct-put.'js2-elem-get | 
| 26160 |  2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74    6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 65 6c  | -node.'js2-visitor.'js2-visit-el | 
| 26180 |  65 6d 2d 67 65 74 2d 6e 6f 64 65 29 0a 28 6a 73    32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a  | em-get-node).(js2--struct-put.'j | 
| 261a0 |  73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65    20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a  | s2-elem-get-node.'js2-printer.'j | 
| 261c0 |  73 32 2d 70 72 69 6e 74 2d 65 6c 65 6d 2d 67 65    74 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20  | s2-print-elem-get-node)..(defun. | 
| 261e0 |  6a 73 32 2d 76 69 73 69 74 2d 65 6c 65 6d 2d 67    65 74 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20  | js2-visit-elem-get-node.(n.v)... | 
| 26200 |  28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28    6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64  | (js2-visit-ast.(js2-elem-get-nod | 
| 26220 |  65 2d 74 61 72 67 65 74 20 6e 29 20 76 29 0a 20    20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20  | e-target.n).v)...(js2-visit-ast. | 
| 26240 |  28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f    64 65 2d 65 6c 65 6d 65 6e 74 20 6e 29 20 76 29  | (js2-elem-get-node-element.n).v) | 
| 26260 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72    69 6e 74 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64  | )..(defun.js2-print-elem-get-nod | 
| 26280 |  65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72    74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20  | e.(n.i)...(insert.(js2-make-pad. | 
| 262a0 |  69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74    2d 61 73 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67  | i))...(js2-print-ast.(js2-elem-g | 
| 262c0 |  65 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e    29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 20 22  | et-node-target.n).0)...(insert." | 
| 262e0 |  5b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74    2d 61 73 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67  | [")...(js2-print-ast.(js2-elem-g | 
| 26300 |  65 74 2d 6e 6f 64 65 2d 65 6c 65 6d 65 6e 74 20    6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72 74 20  | et-node-element.n).0)...(insert. | 
| 26320 |  22 5d 22 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74    72 75 63 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e  | "]"))..(cl-defstruct.(js2-call-n | 
| 26340 |  6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32  | ode................(:include.js2 | 
| 26360 |  2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63  | -node)................(:construc | 
| 26380 |  74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 63 61 6c    6c 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79  | tor.make-js2-call-node.(&key.(ty | 
| 263a0 |  70 65 20 6a 73 32 2d 43 41 4c 4c 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pe.js2-CALL).................... | 
| 263c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 263e0 |  20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63    75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20  | ...(pos.js2-ts-cursor).......... | 
| 26400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e    20 74 61 72 67 65 74 20 61 72 67 73 0a 20 20 20  | .............len.target.args.... | 
| 26440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6c 70 20 72 70 29 29 29 0a 20 20 22 41  | ...................lp.rp)))..."A | 
| 26480 |  53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 4a 61    76 61 53 63 72 69 70 74 20 66 75 6e 63 74 69 6f  | ST.node.for.a.JavaScript.functio | 
| 264a0 |  6e 20 63 61 6c 6c 2e 22 0a 20 20 74 61 72 67 65    74 20 20 3b 20 61 20 60 6a 73 32 2d 6e 6f 64 65  | n.call."...target..;.a.`js2-node | 
| 264c0 |  27 20 65 76 61 6c 75 61 74 69 6e 67 20 74 6f 20    74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20  | '.evaluating.to.the.function.to. | 
| 264e0 |  63 61 6c 6c 0a 20 20 61 72 67 73 20 20 3b 20 61    20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a  | call...args..;.a.Lisp.list.of.`j | 
| 26500 |  73 32 2d 6e 6f 64 65 27 20 61 72 67 75 6d 65 6e    74 73 0a 20 20 6c 70 20 20 20 20 3b 20 70 6f 73  | s2-node'.arguments...lp....;.pos | 
| 26520 |  69 74 69 6f 6e 20 6f 66 20 6f 70 65 6e 2d 70 61    72 65 6e 2c 20 6f 72 20 6e 69 6c 20 69 66 20 6d  | ition.of.open-paren,.or.nil.if.m | 
| 26540 |  69 73 73 69 6e 67 0a 20 20 72 70 29 20 20 20 3b    20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 63 6c 6f  | issing...rp)...;.position.of.clo | 
| 26560 |  73 65 2d 70 61 72 65 6e 2c 20 6f 72 20 6e 69 6c    20 69 66 20 6d 69 73 73 69 6e 67 0a 0a 28 6a 73  | se-paren,.or.nil.if.missing..(js | 
| 26580 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20 27 6a 73  | 2--struct-put.'js2-call-node.'js | 
| 265a0 |  32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76    69 73 69 74 2d 63 61 6c 6c 2d 6e 6f 64 65 29 0a  | 2-visitor.'js2-visit-call-node). | 
| 265c0 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20  | (js2--struct-put.'js2-call-node. | 
| 265e0 |  27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73    32 2d 70 72 69 6e 74 2d 63 61 6c 6c 2d 6e 6f 64  | 'js2-printer.'js2-print-call-nod | 
| 26600 |  65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76    69 73 69 74 2d 63 61 6c 6c 2d 6e 6f 64 65 20 28  | e)..(defun.js2-visit-call-node.( | 
| 26620 |  6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69    74 2d 61 73 74 20 28 6a 73 32 2d 63 61 6c 6c 2d  | n.v)...(js2-visit-ast.(js2-call- | 
| 26640 |  6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 29 20 76    29 0a 20 20 28 64 6f 6c 69 73 74 20 28 61 72 67  | node-target.n).v)...(dolist.(arg | 
| 26660 |  20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d    61 72 67 73 20 6e 29 29 0a 20 20 20 20 28 6a 73  | .(js2-call-node-args.n)).....(js | 
| 26680 |  32 2d 76 69 73 69 74 2d 61 73 74 20 61 72 67 20    76 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | 2-visit-ast.arg.v)))..(defun.js2 | 
| 266a0 |  2d 70 72 69 6e 74 2d 63 61 6c 6c 2d 6e 6f 64 65    20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74  | -print-call-node.(n.i)...(insert | 
| 266c0 |  20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69    29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | .(js2-make-pad.i))...(js2-print- | 
| 266e0 |  61 73 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f    64 65 2d 74 61 72 67 65 74 20 6e 29 20 30 29 0a  | ast.(js2-call-node-target.n).0). | 
| 26700 |  20 20 28 69 6e 73 65 72 74 20 22 28 22 29 0a 20    20 28 6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74  | ..(insert."(")...(js2-print-list | 
| 26720 |  20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d    61 72 67 73 20 6e 29 29 0a 20 20 28 69 6e 73 65  | .(js2-call-node-args.n))...(inse | 
| 26740 |  72 74 20 22 29 22 29 29 0a 0a 28 63 6c 2d 64 65    66 73 74 72 75 63 74 20 28 6a 73 32 2d 79 69 65  | rt.")"))..(cl-defstruct.(js2-yie | 
| 26760 |  6c 64 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65  | ld-node................(:include | 
| 26780 |  20 6a 73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73  | .js2-node)................(:cons | 
| 267a0 |  74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32    2d 79 69 65 6c 64 2d 6e 6f 64 65 20 28 26 6b 65  | tructor.make-js2-yield-node.(&ke | 
| 267c0 |  79 20 28 74 79 70 65 20 6a 73 32 2d 59 49 45 4c    44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | y.(type.js2-YIELD).............. | 
| 267e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26800 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20  | ..........(pos.js2-ts-cursor)... | 
| 26820 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6c 65 6e 20 76 61 6c 75 65 20 73  | .....................len.value.s | 
| 26860 |  74 61 72 2d 70 29 29 29 0a 20 20 22 41 53 54 20    6e 6f 64 65 20 66 6f 72 20 79 69 65 6c 64 20 73  | tar-p)))..."AST.node.for.yield.s | 
| 26880 |  74 61 74 65 6d 65 6e 74 20 6f 72 20 65 78 70 72    65 73 73 69 6f 6e 2e 22 0a 20 20 73 74 61 72 2d  | tatement.or.expression."...star- | 
| 268a0 |  70 20 3b 20 77 68 65 74 68 65 72 20 69 74 27 73    20 79 69 65 6c 64 2a 0a 20 20 76 61 6c 75 65 29  | p.;.whether.it's.yield*...value) | 
| 268c0 |  20 3b 20 6f 70 74 69 6f 6e 61 6c 3a 20 20 76 61    6c 75 65 20 74 6f 20 62 65 20 79 69 65 6c 64 65  | .;.optional:..value.to.be.yielde | 
| 268e0 |  64 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d    70 75 74 20 27 6a 73 32 2d 79 69 65 6c 64 2d 6e  | d..(js2--struct-put.'js2-yield-n | 
| 26900 |  6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72    20 27 6a 73 32 2d 76 69 73 69 74 2d 79 69 65 6c  | ode.'js2-visitor.'js2-visit-yiel | 
| 26920 |  64 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73 74    72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 79 69  | d-node).(js2--struct-put.'js2-yi | 
| 26940 |  65 6c 64 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72    69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74  | eld-node.'js2-printer.'js2-print | 
| 26960 |  2d 79 69 65 6c 64 2d 6e 6f 64 65 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 79  | -yield-node)..(defun.js2-visit-y | 
| 26980 |  69 65 6c 64 2d 6e 6f 64 65 20 28 6e 20 76 29 0a    20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74  | ield-node.(n.v)...(js2-visit-ast | 
| 269a0 |  20 28 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64 65    2d 76 61 6c 75 65 20 6e 29 20 76 29 29 0a 0a 28  | .(js2-yield-node-value.n).v))..( | 
| 269c0 |  64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d    79 69 65 6c 64 2d 6e 6f 64 65 20 28 6e 20 69 29  | defun.js2-print-yield-node.(n.i) | 
| 269e0 |  0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32 2d    6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 28  | ...(insert.(js2-make-pad.i))...( | 
| 26a00 |  69 6e 73 65 72 74 20 22 79 69 65 6c 64 22 29 0a    20 20 28 77 68 65 6e 20 28 6a 73 32 2d 79 69 65  | insert."yield")...(when.(js2-yie | 
| 26a20 |  6c 64 2d 6e 6f 64 65 2d 73 74 61 72 2d 70 20 6e    29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 2a  | ld-node-star-p.n).....(insert."* | 
| 26a40 |  22 29 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32    2d 79 69 65 6c 64 2d 6e 6f 64 65 2d 76 61 6c 75  | "))...(when.(js2-yield-node-valu | 
| 26a60 |  65 20 6e 29 0a 20 20 20 20 28 69 6e 73 65 72 74    20 22 20 22 29 0a 20 20 20 20 28 6a 73 32 2d 70  | e.n).....(insert.".").....(js2-p | 
| 26a80 |  72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 79 69    65 6c 64 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e  | rint-ast.(js2-yield-node-value.n | 
| 26aa0 |  29 20 30 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73    74 72 75 63 74 20 28 6a 73 32 2d 70 61 72 65 6e  | ).0)))..(cl-defstruct.(js2-paren | 
| 26ac0 |  2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a  | -node................(:include.j | 
| 26ae0 |  73 32 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72  | s2-node)................(:constr | 
| 26b00 |  75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 70    61 72 65 6e 2d 6e 6f 64 65 20 28 26 6b 65 79 20  | uctor.make-js2-paren-node.(&key. | 
| 26b20 |  28 74 79 70 65 20 6a 73 32 2d 4c 50 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (type.js2-LP)................... | 
| 26b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26b60 |  20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73    2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20  | .....(pos.js2-ts-cursor)........ | 
| 26b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 65 6e 20 65 78 70 72 29 29 29 0a 20 20 22 41  | ................len.expr)))..."A | 
| 26bc0 |  53 54 20 6e 6f 64 65 20 66 6f 72 20 61 20 70 61    72 65 6e 74 68 65 73 69 7a 65 64 20 65 78 70 72  | ST.node.for.a.parenthesized.expr | 
| 26be0 |  65 73 73 69 6f 6e 2e 0a 49 6e 20 70 61 72 74 69    63 75 6c 61 72 2c 20 75 73 65 64 20 77 68 65 6e  | ession..In.particular,.used.when | 
| 26c00 |  20 74 68 65 20 70 61 72 65 6e 73 20 61 72 65 20    73 79 6e 74 61 63 74 69 63 61 6c 6c 79 20 6f 70  | .the.parens.are.syntactically.op | 
| 26c20 |  74 69 6f 6e 61 6c 2c 0a 61 73 20 6f 70 70 6f 73    65 64 20 74 6f 20 72 65 71 75 69 72 65 64 20 70  | tional,.as.opposed.to.required.p | 
| 26c40 |  61 72 65 6e 73 20 73 75 63 68 20 61 73 20 74 68    6f 73 65 20 65 6e 63 6c 6f 73 69 6e 67 20 61 6e  | arens.such.as.those.enclosing.an | 
| 26c60 |  20 69 66 2d 63 6f 6e 64 69 74 69 6f 6e 61 6c 2e    22 0a 20 20 65 78 70 72 29 20 20 20 3b 20 60 6a  | .if-conditional."...expr)...;.`j | 
| 26c80 |  73 32 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d    73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d  | s2-node'..(js2--struct-put.'js2- | 
| 26ca0 |  70 61 72 65 6e 2d 6e 6f 64 65 20 27 6a 73 32 2d    76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73  | paren-node.'js2-visitor.'js2-vis | 
| 26cc0 |  69 74 2d 70 61 72 65 6e 2d 6e 6f 64 65 29 0a 28    6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20  | it-paren-node).(js2--struct-put. | 
| 26ce0 |  27 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 20    27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73  | 'js2-paren-node.'js2-printer.'js | 
| 26d00 |  32 2d 70 72 69 6e 74 2d 70 61 72 65 6e 2d 6e 6f    64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | 2-print-paren-node)..(defun.js2- | 
| 26d20 |  76 69 73 69 74 2d 70 61 72 65 6e 2d 6e 6f 64 65    20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69  | visit-paren-node.(n.v)...(js2-vi | 
| 26d40 |  73 69 74 2d 61 73 74 20 28 6a 73 32 2d 70 61 72    65 6e 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 29 20  | sit-ast.(js2-paren-node-expr.n). | 
| 26d60 |  76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 72 69 6e 74 2d 70 61 72 65 6e 2d 6e 6f 64 65  | v))..(defun.js2-print-paren-node | 
| 26d80 |  20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65 72 74    20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64 20 69  | .(n.i)...(insert.(js2-make-pad.i | 
| 26da0 |  29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 28 22    29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61  | ))...(insert."(")...(js2-print-a | 
| 26dc0 |  73 74 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f    64 65 2d 65 78 70 72 20 6e 29 20 30 29 0a 20 20  | st.(js2-paren-node-expr.n).0)... | 
| 26de0 |  28 69 6e 73 65 72 74 20 22 29 22 29 29 0a 0a 28    63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73  | (insert.")"))..(cl-defstruct.(js | 
| 26e00 |  32 2d 63 6f 6d 70 2d 6e 6f 64 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63  | 2-comp-node................(:inc | 
| 26e20 |  6c 75 64 65 20 6a 73 32 2d 73 63 6f 70 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | lude.js2-scope)................( | 
| 26e40 |  3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b    65 2d 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 20  | :constructor.make-js2-comp-node. | 
| 26e60 |  28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d    41 52 52 41 59 43 4f 4d 50 29 0a 20 20 20 20 20  | (&key.(type.js2-ARRAYCOMP)...... | 
| 26e80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72  | .................(pos.js2-ts-cur | 
| 26ec0 |  73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | sor)............................ | 
| 26ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 72  | ...........................len.r | 
| 26f00 |  65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | esult........................... | 
| 26f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 6f 70  | ............................loop | 
| 26f40 |  73 20 66 69 6c 74 65 72 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.filters....................... | 
| 26f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 26f80 |  66 6f 72 6d 29 29 29 0a 20 20 22 41 53 54 20 6e    6f 64 65 20 66 6f 72 20 61 6e 20 41 72 72 61 79  | form)))..."AST.node.for.an.Array | 
| 26fa0 |  20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 20 73    75 63 68 20 61 73 20 5b 5b 78 2c 79 5d 20 66 6f  | .comprehension.such.as.[[x,y].fo | 
| 26fc0 |  72 20 28 78 20 69 6e 20 66 6f 6f 29 20 66 6f 72    20 28 79 20 69 6e 20 62 61 72 29 5d 2e 22 0a 20  | r.(x.in.foo).for.(y.in.bar)].".. | 
| 26fe0 |  20 72 65 73 75 6c 74 20 20 3b 20 72 65 73 75 6c    74 20 65 78 70 72 65 73 73 69 6f 6e 20 28 6a 75  | .result..;.result.expression.(ju | 
| 27000 |  73 74 20 61 66 74 65 72 20 6c 65 66 74 2d 62 72    61 63 6b 65 74 29 0a 20 20 6c 6f 6f 70 73 20 20  | st.after.left-bracket)...loops.. | 
| 27020 |  20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f    66 20 60 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70  | .;.a.Lisp.list.of.`js2-comp-loop | 
| 27040 |  2d 6e 6f 64 65 27 0a 20 20 66 69 6c 74 65 72 73    20 3b 20 61 20 4c 69 73 70 20 6c 69 73 74 20 6f  | -node'...filters.;.a.Lisp.list.o | 
| 27060 |  66 20 67 75 61 72 64 2f 66 69 6c 74 65 72 20 65    78 70 72 65 73 73 69 6f 6e 73 0a 20 20 66 6f 72  | f.guard/filter.expressions...for | 
| 27080 |  6d 20 20 20 20 3b 20 41 52 52 41 59 2c 20 4c 45    47 41 43 59 5f 41 52 52 41 59 20 6f 72 20 53 54  | m....;.ARRAY,.LEGACY_ARRAY.or.ST | 
| 270a0 |  41 52 5f 47 45 4e 45 52 41 54 4f 52 0a 20 20 20    20 20 20 20 20 20 20 3b 20 53 70 69 64 65 72 4d  | AR_GENERATOR...........;.SpiderM | 
| 270c0 |  6f 6e 6b 65 79 20 61 6c 73 6f 20 73 75 70 70 6f    72 74 73 20 22 6c 65 67 61 63 79 20 67 65 6e 65  | onkey.also.supports."legacy.gene | 
| 270e0 |  72 61 74 6f 72 20 65 78 70 72 65 73 73 69 6f 6e    73 22 2c 20 62 75 74 20 77 65 20 64 6f 6e 74 2e  | rator.expressions",.but.we.dont. | 
| 27100 |  0a 20 20 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70  | ...)..(js2--struct-put.'js2-comp | 
| 27120 |  2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74    6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 63 6f  | -node.'js2-visitor.'js2-visit-co | 
| 27140 |  6d 70 2d 6e 6f 64 65 29 0a 28 6a 73 32 2d 2d 73    74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 63  | mp-node).(js2--struct-put.'js2-c | 
| 27160 |  6f 6d 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72    69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74  | omp-node.'js2-printer.'js2-print | 
| 27180 |  2d 63 6f 6d 70 2d 6e 6f 64 65 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 63 6f  | -comp-node)..(defun.js2-visit-co | 
| 271a0 |  6d 70 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20    28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28  | mp-node.(n.v)...(js2-visit-ast.( | 
| 271c0 |  6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 72 65    73 75 6c 74 20 6e 29 20 76 29 0a 20 20 28 64 6f  | js2-comp-node-result.n).v)...(do | 
| 271e0 |  6c 69 73 74 20 28 6c 20 28 6a 73 32 2d 63 6f 6d    70 2d 6e 6f 64 65 2d 6c 6f 6f 70 73 20 6e 29 29  | list.(l.(js2-comp-node-loops.n)) | 
| 27200 |  0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d    61 73 74 20 6c 20 76 29 29 0a 20 20 28 64 6f 6c  | .....(js2-visit-ast.l.v))...(dol | 
| 27220 |  69 73 74 20 28 66 20 28 6a 73 32 2d 63 6f 6d 70    2d 6e 6f 64 65 2d 66 69 6c 74 65 72 73 20 6e 29  | ist.(f.(js2-comp-node-filters.n) | 
| 27240 |  29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74    2d 61 73 74 20 66 20 76 29 29 29 0a 0a 28 64 65  | ).....(js2-visit-ast.f.v)))..(de | 
| 27260 |  66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 63 6f    6d 70 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20  | fun.js2-print-comp-node.(n.i)... | 
| 27280 |  28 6c 65 74 20 28 28 70 61 64 20 28 6a 73 32 2d    6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20 20  | (let.((pad.(js2-make-pad.i)).... | 
| 272a0 |  20 20 20 20 20 28 72 65 73 75 6c 74 20 28 6a 73    32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 72 65 73 75  | .....(result.(js2-comp-node-resu | 
| 272c0 |  6c 74 20 6e 29 29 0a 20 20 20 20 20 20 20 20 28    6c 6f 6f 70 73 20 28 6a 73 32 2d 63 6f 6d 70 2d  | lt.n)).........(loops.(js2-comp- | 
| 272e0 |  6e 6f 64 65 2d 6c 6f 6f 70 73 20 6e 29 29 0a 20    20 20 20 20 20 20 20 28 66 69 6c 74 65 72 73 20  | node-loops.n)).........(filters. | 
| 27300 |  28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 66    69 6c 74 65 72 73 20 6e 29 29 0a 20 20 20 20 20  | (js2-comp-node-filters.n))...... | 
| 27320 |  20 20 20 28 6c 65 67 61 63 79 2d 70 20 28 65 71    20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d  | ...(legacy-p.(eq.(js2-comp-node- | 
| 27340 |  66 6f 72 6d 20 6e 29 20 27 4c 45 47 41 43 59 5f    41 52 52 41 59 29 29 0a 20 20 20 20 20 20 20 20  | form.n).'LEGACY_ARRAY))......... | 
| 27360 |  28 67 65 6e 2d 70 20 28 65 71 20 28 6a 73 32 2d    63 6f 6d 70 2d 6e 6f 64 65 2d 66 6f 72 6d 20 6e  | (gen-p.(eq.(js2-comp-node-form.n | 
| 27380 |  29 20 27 53 54 41 52 5f 47 45 4e 45 52 41 54 4f    52 29 29 29 0a 20 20 20 20 28 69 6e 73 65 72 74  | ).'STAR_GENERATOR))).....(insert | 
| 273a0 |  20 70 61 64 20 28 69 66 20 67 65 6e 2d 70 20 22    28 22 20 22 5b 22 29 29 0a 20 20 20 20 28 77 68  | .pad.(if.gen-p."("."[")).....(wh | 
| 273c0 |  65 6e 20 6c 65 67 61 63 79 2d 70 0a 20 20 20 20    20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74  | en.legacy-p.......(js2-print-ast | 
| 273e0 |  20 72 65 73 75 6c 74 20 30 29 29 0a 20 20 20 20    28 64 6f 6c 69 73 74 20 28 6c 20 6c 6f 6f 70 73  | .result.0)).....(dolist.(l.loops | 
| 27400 |  29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65    67 61 63 79 2d 70 0a 20 20 20 20 20 20 20 20 28  | ).......(when.legacy-p.........( | 
| 27420 |  69 6e 73 65 72 74 20 22 20 22 29 29 0a 20 20 20    20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73  | insert.".")).......(js2-print-as | 
| 27440 |  74 20 6c 20 30 29 0a 20 20 20 20 20 20 28 75 6e    6c 65 73 73 20 6c 65 67 61 63 79 2d 70 0a 20 20  | t.l.0).......(unless.legacy-p... | 
| 27460 |  20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20    22 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74  | ......(insert."."))).....(dolist | 
| 27480 |  20 28 66 20 66 69 6c 74 65 72 73 29 0a 20 20 20    20 20 20 28 77 68 65 6e 20 6c 65 67 61 63 79 2d  | .(f.filters).......(when.legacy- | 
| 274a0 |  70 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 22 20 22 29 29 0a 20 20 20 20 20 20 28 69  | p.........(insert.".")).......(i | 
| 274c0 |  6e 73 65 72 74 20 22 69 66 20 28 22 29 0a 20 20    20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61  | nsert."if.(").......(js2-print-a | 
| 274e0 |  73 74 20 66 20 30 29 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 29 22 29 0a 20 20 20 20 20  | st.f.0).......(insert.")")...... | 
| 27500 |  20 28 75 6e 6c 65 73 73 20 6c 65 67 61 63 79 2d    70 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72  | .(unless.legacy-p.........(inser | 
| 27520 |  74 20 22 20 22 29 29 29 0a 20 20 20 20 28 75 6e    6c 65 73 73 20 6c 65 67 61 63 79 2d 70 0a 20 20  | t."."))).....(unless.legacy-p... | 
| 27540 |  20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61    73 74 20 72 65 73 75 6c 74 20 30 29 29 0a 20 20  | ....(js2-print-ast.result.0))... | 
| 27560 |  20 20 28 69 6e 73 65 72 74 20 28 69 66 20 67 65    6e 2d 70 20 22 29 22 20 22 5d 22 29 29 29 29 0a  | ..(insert.(if.gen-p.")"."]")))). | 
| 27580 |  0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28    6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f  | .(cl-defstruct.(js2-comp-loop-no | 
| 275a0 |  64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d  | de................(:include.js2- | 
| 275c0 |  66 6f 72 2d 69 6e 2d 6e 6f 64 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f  | for-in-node)................(:co | 
| 275e0 |  6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a    73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64  | nstructor.make-js2-comp-loop-nod | 
| 27600 |  65 20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73    32 2d 46 4f 52 29 0a 20 20 20 20 20 20 20 20 20  | e.(&key.(type.js2-FOR).......... | 
| 27620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 27640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75  | ..................(pos.js2-ts-cu | 
| 27660 |  72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rsor)........................... | 
| 27680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 276a0 |  20 6c 65 6e 20 69 74 65 72 61 74 6f 72 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .len.iterator................... | 
| 276c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 276e0 |  20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 20    69 6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20  | .........object.in-pos.......... | 
| 27700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 27720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 66 6f 72 65 61 63 68 2d 70 0a 20 20 20 20  | ..................foreach-p..... | 
| 27740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 27760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 65 61 63 68 2d 70 6f 73 0a  | .......................each-pos. | 
| 27780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 277a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6f 66  | ...........................forof | 
| 277c0 |  2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -p.............................. | 
| 277e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 70  | ..............................lp | 
| 27800 |  20 72 70 29 29 29 0a 20 20 22 41 53 54 20 73 75    62 74 72 65 65 20 66 6f 72 20 65 61 63 68 20 27  | .rp)))..."AST.subtree.for.each.' | 
| 27820 |  66 6f 72 20 28 66 6f 6f 20 69 6e 20 62 61 72 29    27 20 6c 6f 6f 70 20 69 6e 20 61 6e 20 61 72 72  | for.(foo.in.bar)'.loop.in.an.arr | 
| 27840 |  61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e    2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | ay.comprehension.")..(js2--struc | 
| 27860 |  74 2d 70 75 74 20 27 6a 73 32 2d 63 6f 6d 70 2d    6c 6f 6f 70 2d 6e 6f 64 65 20 27 6a 73 32 2d 76  | t-put.'js2-comp-loop-node.'js2-v | 
| 27880 |  69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69    74 2d 63 6f 6d 70 2d 6c 6f 6f 70 29 0a 28 6a 73  | isitor.'js2-visit-comp-loop).(js | 
| 278a0 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64  | 2--struct-put.'js2-comp-loop-nod | 
| 278c0 |  65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27    6a 73 32 2d 70 72 69 6e 74 2d 63 6f 6d 70 2d 6c  | e.'js2-printer.'js2-print-comp-l | 
| 278e0 |  6f 6f 70 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 76 69 73 69 74 2d 63 6f 6d 70 2d 6c 6f 6f 70  | oop)..(defun.js2-visit-comp-loop | 
| 27900 |  20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69    73 69 74 2d 61 73 74 20 28 6a 73 32 2d 63 6f 6d  | .(n.v)...(js2-visit-ast.(js2-com | 
| 27920 |  70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 69 74 65 72    61 74 6f 72 20 6e 29 20 76 29 0a 20 20 28 6a 73  | p-loop-node-iterator.n).v)...(js | 
| 27940 |  32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73 32    2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d  | 2-visit-ast.(js2-comp-loop-node- | 
| 27960 |  6f 62 6a 65 63 74 20 6e 29 20 76 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d  | object.n).v))..(defun.js2-print- | 
| 27980 |  63 6f 6d 70 2d 6c 6f 6f 70 20 28 6e 20 5f 69 29    0a 20 20 28 69 6e 73 65 72 74 20 22 66 6f 72 20  | comp-loop.(n._i)...(insert."for. | 
| 279a0 |  22 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d    63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 66  | ")...(when.(js2-comp-loop-node-f | 
| 279c0 |  6f 72 65 61 63 68 2d 70 20 6e 29 20 28 69 6e 73    65 72 74 20 22 65 61 63 68 20 22 29 29 0a 20 20  | oreach-p.n).(insert."each."))... | 
| 279e0 |  28 69 6e 73 65 72 74 20 22 28 22 29 0a 20 20 28    6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a  | (insert."(")...(js2-print-ast.(j | 
| 27a00 |  73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64    65 2d 69 74 65 72 61 74 6f 72 20 6e 29 20 30 29  | s2-comp-loop-node-iterator.n).0) | 
| 27a20 |  0a 20 20 28 69 6e 73 65 72 74 20 28 69 66 20 28    6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f  | ...(insert.(if.(js2-comp-loop-no | 
| 27a40 |  64 65 2d 66 6f 72 6f 66 2d 70 20 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 22 20 6f 66  | de-forof-p.n)...............".of | 
| 27a60 |  20 22 20 22 20 69 6e 20 22 29 29 0a 20 20 28 6a    73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73  | .".".in."))...(js2-print-ast.(js | 
| 27a80 |  32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65    2d 6f 62 6a 65 63 74 20 6e 29 20 30 29 0a 20 20  | 2-comp-loop-node-object.n).0)... | 
| 27aa0 |  28 69 6e 73 65 72 74 20 22 29 22 29 29 0a 0a 28    63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73  | (insert.")"))..(cl-defstruct.(js | 
| 27ac0 |  32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-empty-expr-node............... | 
| 27ae0 |  20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .(:include.js2-node)............ | 
| 27b00 |  20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f    72 20 6d 61 6b 65 2d 6a 73 32 2d 65 6d 70 74 79  | ....(:constructor.make-js2-empty | 
| 27b20 |  2d 65 78 70 72 2d 6e 6f 64 65 20 28 26 6b 65 79    20 28 74 79 70 65 20 6a 73 32 2d 45 4d 50 54 59  | -expr-node.(&key.(type.js2-EMPTY | 
| 27b40 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 27b60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70  | ..............................(p | 
| 27b80 |  6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20  | os.(js2-current-token-beg))..... | 
| 27ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 27bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6c 65 6e 29 29 29 0a 20  | ........................len))).. | 
| 27be0 |  20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61    6e 20 65 6d 70 74 79 20 65 78 70 72 65 73 73 69  | ."AST.node.for.an.empty.expressi | 
| 27c00 |  6f 6e 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 65 6d 70  | on.")..(js2--struct-put.'js2-emp | 
| 27c20 |  74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 27 6a 73    32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76  | ty-expr-node.'js2-visitor.'js2-v | 
| 27c40 |  69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73 32 2d    2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32  | isit-none).(js2--struct-put.'js2 | 
| 27c60 |  2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65    20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a  | -empty-expr-node.'js2-printer.'j | 
| 27c80 |  73 32 2d 70 72 69 6e 74 2d 6e 6f 6e 65 29 0a 0a    28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a  | s2-print-none)..(cl-defstruct.(j | 
| 27ca0 |  73 32 2d 78 6d 6c 2d 6e 6f 64 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63  | s2-xml-node................(:inc | 
| 27cc0 |  6c 75 64 65 20 6a 73 32 2d 62 6c 6f 63 6b 2d 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | lude.js2-block-node)............ | 
| 27ce0 |  20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f    72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6e  | ....(:constructor.make-js2-xml-n | 
| 27d00 |  6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20    6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20  | ode.(&key.(type.js2-XML)........ | 
| 27d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 27d40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | ..............(pos.(js2-current- | 
| 27d60 |  74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | token-beg))..................... | 
| 27d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 27da0 |  20 6c 65 6e 20 6b 69 64 73 29 29 29 0a 20 20 22    41 53 54 20 6e 6f 64 65 20 66 6f 72 20 69 6e 69  | .len.kids)))..."AST.node.for.ini | 
| 27dc0 |  74 69 61 6c 20 70 61 72 73 65 20 6f 66 20 45 34    58 20 6c 69 74 65 72 61 6c 73 2e 0a 54 68 65 20  | tial.parse.of.E4X.literals..The. | 
| 27de0 |  6b 69 64 73 20 66 69 65 6c 64 20 69 73 20 61 20    6c 69 73 74 20 6f 66 20 58 4d 4c 20 66 72 61 67  | kids.field.is.a.list.of.XML.frag | 
| 27e00 |  6d 65 6e 74 73 2c 20 65 61 63 68 20 61 20 60 6a    73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 27 20  | ments,.each.a.`js2-string-node'. | 
| 27e20 |  6f 72 0a 61 20 60 6a 73 32 2d 78 6d 6c 2d 6a 73    2d 65 78 70 72 2d 6e 6f 64 65 27 2e 20 20 45 71  | or.a.`js2-xml-js-expr-node'...Eq | 
| 27e40 |  75 69 76 61 6c 65 6e 74 20 74 6f 20 52 68 69 6e    6f 27 73 20 58 6d 6c 4c 69 74 65 72 61 6c 20 6e  | uivalent.to.Rhino's.XmlLiteral.n | 
| 27e60 |  6f 64 65 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74    72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d  | ode.")..(js2--struct-put.'js2-xm | 
| 27e80 |  6c 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69    74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d 62  | l-node.'js2-visitor.'js2-visit-b | 
| 27ea0 |  6c 6f 63 6b 29 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d  | lock).(js2--struct-put.'js2-xml- | 
| 27ec0 |  6e 6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65    72 20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c  | node.'js2-printer.'js2-print-xml | 
| 27ee0 |  2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6e 6f 64  | -node)..(defun.js2-print-xml-nod | 
| 27f00 |  65 20 28 6e 20 69 29 0a 20 20 28 64 6f 6c 69 73    74 20 28 6b 69 64 20 28 6a 73 32 2d 78 6d 6c 2d  | e.(n.i)...(dolist.(kid.(js2-xml- | 
| 27f20 |  6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 0a 20 20    20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74  | node-kids.n)).....(js2-print-ast | 
| 27f40 |  20 6b 69 64 20 69 29 29 29 0a 0a 28 63 6c 2d 64    65 66 73 74 72 75 63 74 20 28 6a 73 32 2d 78 6d  | .kid.i)))..(cl-defstruct.(js2-xm | 
| 27f60 |  6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | l-js-expr-node................(: | 
| 27f80 |  69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d    6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  | include.js2-xml-node)........... | 
| 27fa0 |  20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74    6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d  | .....(:constructor.make-js2-xml- | 
| 27fc0 |  6a 73 2d 65 78 70 72 2d 6e 6f 64 65 20 28 26 6b    65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d 4c  | js-expr-node.(&key.(type.js2-XML | 
| 27fe0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 28000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 28020 |  70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f    72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos.js2-ts-cursor).............. | 
| 28040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 65 6e 20 65 78 70 72 29 29 29 0a 20 20 22 41  | ................len.expr)))..."A | 
| 28080 |  53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 65    6d 62 65 64 64 65 64 20 4a 61 76 61 53 63 72 69  | ST.node.for.an.embedded.JavaScri | 
| 280a0 |  70 74 20 7b 65 78 70 72 65 73 73 69 6f 6e 7d 20    69 6e 20 61 6e 20 45 34 58 20 6c 69 74 65 72 61  | pt.{expression}.in.an.E4X.litera | 
| 280c0 |  6c 2e 0a 54 68 65 20 73 74 61 72 74 20 61 6e 64    20 65 6e 64 20 66 69 65 6c 64 73 20 63 6f 72 72  | l..The.start.and.end.fields.corr | 
| 280e0 |  65 73 70 6f 6e 64 20 74 6f 20 74 68 65 20 63 75    72 6c 79 2d 62 72 61 63 65 73 2e 22 0a 20 20 65  | espond.to.the.curly-braces."...e | 
| 28100 |  78 70 72 29 20 20 3b 20 61 20 60 6a 73 32 2d 65    78 70 72 2d 6e 6f 64 65 27 20 6f 66 20 73 6f 6d  | xpr)..;.a.`js2-expr-node'.of.som | 
| 28120 |  65 20 73 6f 72 74 0a 0a 28 6a 73 32 2d 2d 73 74    72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d  | e.sort..(js2--struct-put.'js2-xm | 
| 28140 |  6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64 65 20 27    6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32  | l-js-expr-node.'js2-visitor.'js2 | 
| 28160 |  2d 76 69 73 69 74 2d 78 6d 6c 2d 6a 73 2d 65 78    70 72 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74  | -visit-xml-js-expr).(js2--struct | 
| 28180 |  2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 6a 73    2d 65 78 70 72 2d 6e 6f 64 65 20 27 6a 73 32 2d  | -put.'js2-xml-js-expr-node.'js2- | 
| 281a0 |  70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69    6e 74 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 29 0a  | printer.'js2-print-xml-js-expr). | 
| 281c0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69    74 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 20 28 6e  | .(defun.js2-visit-xml-js-expr.(n | 
| 281e0 |  20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69 74    2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 6a 73  | .v)...(js2-visit-ast.(js2-xml-js | 
| 28200 |  2d 65 78 70 72 2d 6e 6f 64 65 2d 65 78 70 72 20    6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | -expr-node-expr.n).v))..(defun.j | 
| 28220 |  73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6a 73 2d    65 78 70 72 20 28 6e 20 69 29 0a 20 20 28 69 6e  | s2-print-xml-js-expr.(n.i)...(in | 
| 28240 |  73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70    61 64 20 69 29 29 0a 20 20 28 69 6e 73 65 72 74  | sert.(js2-make-pad.i))...(insert | 
| 28260 |  20 22 7b 22 29 0a 20 20 28 6a 73 32 2d 70 72 69    6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d  | ."{")...(js2-print-ast.(js2-xml- | 
| 28280 |  6a 73 2d 65 78 70 72 2d 6e 6f 64 65 2d 65 78 70    72 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65 72  | js-expr-node-expr.n).0)...(inser | 
| 282a0 |  74 20 22 7d 22 29 29 0a 0a 28 63 6c 2d 64 65 66    73 74 72 75 63 74 20 28 6a 73 32 2d 78 6d 6c 2d  | t."}"))..(cl-defstruct.(js2-xml- | 
| 282c0 |  64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | dot-query-node................(: | 
| 282e0 |  69 6e 63 6c 75 64 65 20 6a 73 32 2d 69 6e 66 69    78 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20  | include.js2-infix-node)......... | 
| 28300 |  20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75    63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d  | .......(:constructor.make-js2-xm | 
| 28320 |  6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65    20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32  | l-dot-query-node.(&key.(type.js2 | 
| 28340 |  2d 44 4f 54 51 55 45 52 59 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -DOTQUERY)...................... | 
| 28360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28380 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20  | ..........(pos.js2-ts-cursor)... | 
| 283a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 283c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 2d  | .............................op- | 
| 283e0 |  70 6f 73 20 6c 65 6e 20 6c 65 66 74 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos.len.left.................... | 
| 28400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28420 |  20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68    74 20 72 70 29 29 29 0a 20 20 22 41 53 54 20 6e  | ............right.rp)))..."AST.n | 
| 28440 |  6f 64 65 20 66 6f 72 20 61 6e 20 45 34 58 20 66    6f 6f 2e 28 62 61 72 29 20 66 69 6c 74 65 72 20  | ode.for.an.E4X.foo.(bar).filter. | 
| 28460 |  65 78 70 72 65 73 73 69 6f 6e 2e 0a 4e 6f 74 65    20 74 68 61 74 20 74 68 65 20 6c 65 66 74 2d 70  | expression..Note.that.the.left-p | 
| 28480 |  61 72 65 6e 20 69 73 20 61 75 74 6f 6d 61 74 69    63 61 6c 6c 79 20 74 68 65 20 63 68 61 72 61 63  | aren.is.automatically.the.charac | 
| 284a0 |  74 65 72 20 69 6d 6d 65 64 69 61 74 65 6c 79 0a    66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 64 6f  | ter.immediately.following.the.do | 
| 284c0 |  74 20 28 2e 29 20 69 6e 20 74 68 65 20 6f 70 65    72 61 74 6f 72 2e 20 20 4e 6f 20 77 68 69 74 65  | t.(.).in.the.operator...No.white | 
| 284e0 |  73 70 61 63 65 20 69 73 20 70 65 72 6d 69 74 74    65 64 0a 62 65 74 77 65 65 6e 20 74 68 65 20 64  | space.is.permitted.between.the.d | 
| 28500 |  6f 74 20 61 6e 64 20 74 68 65 20 6c 70 20 62 79    20 74 68 65 20 73 63 61 6e 6e 65 72 2e 22 0a 20  | ot.and.the.lp.by.the.scanner.".. | 
| 28520 |  20 72 70 29 0a 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d  | .rp)..(js2--struct-put.'js2-xml- | 
| 28540 |  64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 20 27    6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32  | dot-query-node.'js2-visitor.'js2 | 
| 28560 |  2d 76 69 73 69 74 2d 69 6e 66 69 78 2d 6e 6f 64    65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | -visit-infix-node).(js2--struct- | 
| 28580 |  70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 64 6f 74    2d 71 75 65 72 79 2d 6e 6f 64 65 20 27 6a 73 32  | put.'js2-xml-dot-query-node.'js2 | 
| 285a0 |  2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72    69 6e 74 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72  | -printer.'js2-print-xml-dot-quer | 
| 285c0 |  79 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    72 69 6e 74 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65  | y)..(defun.js2-print-xml-dot-que | 
| 285e0 |  72 79 20 28 6e 20 69 29 0a 20 20 28 69 6e 73 65    72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61 64  | ry.(n.i)...(insert.(js2-make-pad | 
| 28600 |  20 69 29 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e    74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 64  | .i))...(js2-print-ast.(js2-xml-d | 
| 28620 |  6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65 2d 6c 65    66 74 20 6e 29 20 30 29 0a 20 20 28 69 6e 73 65  | ot-query-node-left.n).0)...(inse | 
| 28640 |  72 74 20 22 2e 28 22 29 0a 20 20 28 6a 73 32 2d    70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78  | rt.".(")...(js2-print-ast.(js2-x | 
| 28660 |  6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64    65 2d 72 69 67 68 74 20 6e 29 20 30 29 0a 20 20  | ml-dot-query-node-right.n).0)... | 
| 28680 |  28 69 6e 73 65 72 74 20 22 29 22 29 29 0a 0a 28    63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a 73  | (insert.")"))..(cl-defstruct.(js | 
| 286a0 |  32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | 2-xml-ref-node................(: | 
| 286c0 |  69 6e 63 6c 75 64 65 20 6a 73 32 2d 6e 6f 64 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | include.js2-node)............... | 
| 286e0 |  20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 6e    69 6c 29 29 20 20 3b 20 61 62 73 74 72 61 63 74  | .(:constructor.nil))..;.abstract | 
| 28700 |  0a 20 20 22 42 61 73 65 20 74 79 70 65 20 66 6f    72 20 45 34 58 20 58 4d 4c 20 61 74 74 72 69 62  | ..."Base.type.for.E4X.XML.attrib | 
| 28720 |  75 74 65 2d 61 63 63 65 73 73 20 6f 72 20 70 72    6f 70 65 72 74 79 2d 67 65 74 20 65 78 70 72 65  | ute-access.or.property-get.expre | 
| 28740 |  73 73 69 6f 6e 73 2e 0a 53 75 63 68 20 65 78 70    72 65 73 73 69 6f 6e 73 20 63 61 6e 20 74 61 6b  | ssions..Such.expressions.can.tak | 
| 28760 |  65 20 61 20 76 61 72 69 65 74 79 20 6f 66 20 66    6f 72 6d 73 2e 20 20 54 68 65 20 67 65 6e 65 72  | e.a.variety.of.forms...The.gener | 
| 28780 |  61 6c 20 73 79 6e 74 61 78 20 68 61 73 0a 74 68    72 65 65 20 70 61 72 74 73 3a 0a 0a 20 20 2d 20  | al.syntax.has.three.parts:....-. | 
| 287a0 |  28 6f 70 74 69 6f 6e 61 6c 29 20 61 6e 20 40 20    28 73 70 65 63 69 66 79 69 6e 67 20 61 6e 20 61  | (optional).an.@.(specifying.an.a | 
| 287c0 |  74 74 72 69 62 75 74 65 20 61 63 63 65 73 73 29    0a 20 20 2d 20 28 6f 70 74 69 6f 6e 61 6c 29 20  | ttribute.access)...-.(optional). | 
| 287e0 |  61 20 6e 61 6d 65 73 70 61 63 65 20 28 61 20 60    6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 29 20  | a.namespace.(a.`js2-name-node'). | 
| 28800 |  61 6e 64 20 64 6f 75 62 6c 65 2d 63 6f 6c 6f 6e    0a 20 20 2d 20 28 72 65 71 75 69 72 65 64 29 20  | and.double-colon...-.(required). | 
| 28820 |  65 69 74 68 65 72 20 61 20 60 6a 73 32 2d 6e 61    6d 65 2d 6e 6f 64 65 27 20 6f 72 20 61 20 62 72  | either.a.`js2-name-node'.or.a.br | 
| 28840 |  61 63 6b 65 74 65 64 20 5b 65 78 70 72 65 73 73    69 6f 6e 5d 0a 0a 54 68 65 20 70 72 6f 70 65 72  | acketed.[expression]..The.proper | 
| 28860 |  74 79 2d 6e 61 6d 65 20 65 78 70 72 65 73 73 69    6f 6e 73 20 28 65 78 61 6d 70 6c 65 73 3a 20 20  | ty-name.expressions.(examples:.. | 
| 28880 |  6e 73 3a 3a 6e 61 6d 65 2c 20 40 6e 61 6d 65 29    20 61 72 65 0a 72 65 70 72 65 73 65 6e 74 65 64  | ns::name,.@name).are.represented | 
| 288a0 |  20 61 73 20 60 6a 73 32 2d 78 6d 6c 2d 70 72 6f    70 2d 72 65 66 27 20 6e 6f 64 65 73 2e 20 20 54  | .as.`js2-xml-prop-ref'.nodes...T | 
| 288c0 |  68 65 20 62 72 61 63 6b 65 74 65 64 2d 65 78 70    72 65 73 73 69 6f 6e 0a 76 65 72 73 69 6f 6e 73  | he.bracketed-expression.versions | 
| 288e0 |  20 28 65 78 61 6d 70 6c 65 73 3a 20 20 6e 73 3a    3a 5b 6e 61 6d 65 5d 2c 20 40 5b 6e 61 6d 65 5d  | .(examples:..ns::[name],.@[name] | 
| 28900 |  29 20 62 65 63 6f 6d 65 20 60 6a 73 32 2d 78 6d    6c 2d 65 6c 65 6d 2d 72 65 66 27 20 6e 6f 64 65  | ).become.`js2-xml-elem-ref'.node | 
| 28920 |  73 2e 0a 0a 54 68 69 73 20 6e 6f 64 65 20 74 79    70 65 20 28 6f 72 20 6d 6f 72 65 20 73 70 65 63  | s...This.node.type.(or.more.spec | 
| 28940 |  69 66 69 63 61 6c 6c 79 2c 20 69 74 73 20 73 75    62 63 6c 61 73 73 65 73 29 20 77 69 6c 6c 20 73  | ifically,.its.subclasses).will.s | 
| 28960 |  6f 6d 65 74 69 6d 65 73 0a 62 65 20 74 68 65 20    72 69 67 68 74 2d 68 61 6e 64 20 63 68 69 6c 64  | ometimes.be.the.right-hand.child | 
| 28980 |  20 6f 66 20 61 20 60 6a 73 32 2d 70 72 6f 70 2d    67 65 74 2d 6e 6f 64 65 27 20 6f 72 20 61 0a 60  | .of.a.`js2-prop-get-node'.or.a.` | 
| 289a0 |  6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 27 20    6f 66 20 74 79 70 65 20 60 6a 73 32 2d 44 4f 54  | js2-infix-node'.of.type.`js2-DOT | 
| 289c0 |  44 4f 54 27 2c 20 74 68 65 20 2e 2e 20 78 6d 6c    2d 64 65 73 63 65 6e 64 61 6e 74 73 20 6f 70 65  | DOT',.the....xml-descendants.ope | 
| 289e0 |  72 61 74 6f 72 2e 0a 54 68 65 20 60 6a 73 32 2d    78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 27 20 6d 61  | rator..The.`js2-xml-ref-node'.ma | 
| 28a00 |  79 20 61 6c 73 6f 20 62 65 20 61 20 73 74 61 6e    64 61 6c 6f 6e 65 20 70 72 69 6d 61 72 79 20 65  | y.also.be.a.standalone.primary.e | 
| 28a20 |  78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 0a 6e    6f 20 65 78 70 6c 69 63 69 74 20 74 61 72 67 65  | xpression.with.no.explicit.targe | 
| 28a40 |  74 2c 20 77 68 69 63 68 20 69 73 20 76 61 6c 69    64 20 69 6e 20 63 65 72 74 61 69 6e 20 65 78 70  | t,.which.is.valid.in.certain.exp | 
| 28a60 |  72 65 73 73 69 6f 6e 20 63 6f 6e 74 65 78 74 73    20 73 75 63 68 20 61 73 0a 0a 20 20 63 6f 6d 70  | ression.contexts.such.as....comp | 
| 28a80 |  61 6e 79 2e 2e 65 6d 70 6c 6f 79 65 65 2e 28 40    69 64 20 3c 20 31 30 30 29 0a 0a 69 6e 20 74 68  | any..employee.(@id.<.100)..in.th | 
| 28aa0 |  69 73 20 63 61 73 65 2c 20 74 68 65 20 40 69 64    20 69 73 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 72  | is.case,.the.@id.is.a.`js2-xml-r | 
| 28ac0 |  65 66 27 20 74 68 61 74 20 69 73 20 70 61 72 74    20 6f 66 20 61 6e 20 69 6e 66 69 78 20 60 3c 27  | ef'.that.is.part.of.an.infix.`<' | 
| 28ae0 |  0a 65 78 70 72 65 73 73 69 6f 6e 20 77 68 6f 73    65 20 70 61 72 65 6e 74 20 69 73 20 61 20 60 6a  | .expression.whose.parent.is.a.`j | 
| 28b00 |  73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79    2d 6e 6f 64 65 27 2e 22 0a 20 20 6e 61 6d 65 73  | s2-xml-dot-query-node'."...names | 
| 28b20 |  70 61 63 65 0a 20 20 61 74 2d 70 6f 73 0a 20 20    63 6f 6c 6f 6e 2d 70 6f 73 29 0a 0a 28 64 65 66  | pace...at-pos...colon-pos)..(def | 
| 28b40 |  73 75 62 73 74 20 6a 73 32 2d 78 6d 6c 2d 72 65    66 2d 6e 6f 64 65 2d 61 74 74 72 2d 61 63 63 65  | subst.js2-xml-ref-node-attr-acce | 
| 28b60 |  73 73 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52    65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66  | ss-p.(node)..."Return.non-nil.if | 
| 28b80 |  20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e    20 62 65 67 61 6e 20 77 69 74 68 20 61 6e 20 40  | .this.expression.began.with.an.@ | 
| 28ba0 |  2d 74 6f 6b 65 6e 2e 22 0a 20 20 28 61 6e 64 20    28 6e 75 6d 62 65 72 70 20 28 6a 73 32 2d 78 6d  | -token."...(and.(numberp.(js2-xm | 
| 28bc0 |  6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 2d 70 6f    73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20  | l-ref-node-at-pos.node))........ | 
| 28be0 |  28 63 6c 2d 70 6c 75 73 70 20 28 6a 73 32 2d 78    6d 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74 2d 70  | (cl-plusp.(js2-xml-ref-node-at-p | 
| 28c00 |  6f 73 20 6e 6f 64 65 29 29 29 29 0a 0a 28 63 6c    2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d  | os.node))))..(cl-defstruct.(js2- | 
| 28c20 |  78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | xml-prop-ref-node............... | 
| 28c40 |  20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78    6d 6c 2d 72 65 66 2d 6e 6f 64 65 29 0a 20 20 20  | .(:include.js2-xml-ref-node).... | 
| 28c60 |  20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f    6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a  | ............(:constructor.make-j | 
| 28c80 |  73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d    6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65  | s2-xml-prop-ref-node.(&key.(type | 
| 28ca0 |  20 6a 73 32 2d 52 45 46 5f 4e 41 4d 45 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-REF_NAME).................. | 
| 28cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28ce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f    73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | .............(pos.(js2-current-t | 
| 28d00 |  6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oken-beg))...................... | 
| 28d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28d40 |  20 20 20 20 20 20 20 20 20 6c 65 6e 20 70 72 6f    70 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20  | .........len.propname........... | 
| 28d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 61 74  | ....................namespace.at | 
| 28da0 |  2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -pos............................ | 
| 28dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 28de0 |  20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 29 29 29 0a    20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20  | ...colon-pos)))..."AST.node.for. | 
| 28e00 |  61 6e 20 45 34 58 20 58 4d 4c 20 5b 65 78 70 72    5d 20 70 72 6f 70 65 72 74 79 2d 72 65 66 20 65  | an.E4X.XML.[expr].property-ref.e | 
| 28e20 |  78 70 72 65 73 73 69 6f 6e 2e 0a 54 68 65 20 4a    61 76 61 53 63 72 69 70 74 20 73 79 6e 74 61 78  | xpression..The.JavaScript.syntax | 
| 28e40 |  20 69 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20    40 2c 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6e  | .is.an.optional.@,.an.optional.n | 
| 28e60 |  73 3a 3a 2c 20 61 6e 64 20 61 20 6e 61 6d 65 2e    0a 0a 20 20 5b 20 60 40 27 20 5d 20 5b 20 6e 61  | s::,.and.a.name.....[.`@'.].[.na | 
| 28e80 |  6d 65 20 60 3a 3a 27 20 5d 20 6e 61 6d 65 0a 0a    45 78 61 6d 70 6c 65 73 20 69 6e 63 6c 75 64 65  | me.`::'.].name..Examples.include | 
| 28ea0 |  20 6e 61 6d 65 2c 20 6e 73 3a 3a 6e 61 6d 65 2c    20 6e 73 3a 3a 2a 2c 20 2a 3a 3a 6e 61 6d 65 2c  | .name,.ns::name,.ns::*,.*::name, | 
| 28ec0 |  20 2a 3a 3a 2a 2c 20 40 61 74 74 72 2c 20 40 6e    73 3a 3a 61 74 74 72 2c 0a 40 6e 73 3a 3a 2a 2c  | .*::*,.@attr,.@ns::attr,.@ns::*, | 
| 28ee0 |  20 40 2a 3a 3a 61 74 74 72 2c 20 40 2a 3a 3a 2a    2c 20 61 6e 64 20 40 2a 2e 0a 0a 54 68 65 20 6e  | .@*::attr,.@*::*,.and.@*...The.n | 
| 28f00 |  6f 64 65 20 73 74 61 72 74 73 20 61 74 20 74 68    65 20 40 20 74 6f 6b 65 6e 2c 20 69 66 20 70 72  | ode.starts.at.the.@.token,.if.pr | 
| 28f20 |  65 73 65 6e 74 2e 20 20 4f 74 68 65 72 77 69 73    65 20 69 74 20 73 74 61 72 74 73 20 61 74 20 74  | esent...Otherwise.it.starts.at.t | 
| 28f40 |  68 65 0a 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d    65 2e 20 20 54 68 65 20 6e 6f 64 65 20 62 6f 75  | he.namespace.name...The.node.bou | 
| 28f60 |  6e 64 73 20 65 78 74 65 6e 64 20 74 68 72 6f 75    67 68 20 74 68 65 20 63 6c 6f 73 69 6e 67 20 72  | nds.extend.through.the.closing.r | 
| 28f80 |  69 67 68 74 2d 62 72 61 63 6b 65 74 2c 0a 6f 72    20 69 66 20 69 74 20 69 73 20 6d 69 73 73 69 6e  | ight-bracket,.or.if.it.is.missin | 
| 28fa0 |  67 20 64 75 65 20 74 6f 20 61 20 73 79 6e 74 61    78 20 65 72 72 6f 72 2c 20 74 68 72 6f 75 67 68  | g.due.to.a.syntax.error,.through | 
| 28fc0 |  20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20    69 6e 64 65 78 0a 65 78 70 72 65 73 73 69 6f 6e  | .the.end.of.the.index.expression | 
| 28fe0 |  2e 22 0a 20 20 70 72 6f 70 6e 61 6d 65 29 0a 0a    28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74  | ."...propname)..(js2--struct-put | 
| 29000 |  20 27 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72    65 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73  | .'js2-xml-prop-ref-node.'js2-vis | 
| 29020 |  69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d    78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64  | itor.'js2-visit-xml-prop-ref-nod | 
| 29040 |  65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d    70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 70 72 6f  | e).(js2--struct-put.'js2-xml-pro | 
| 29060 |  70 2d 72 65 66 2d 6e 6f 64 65 20 27 6a 73 32 2d    70 72 69 6e 74 65 72 20 27 6a 73 32 2d 70 72 69  | p-ref-node.'js2-printer.'js2-pri | 
| 29080 |  6e 74 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d    6e 6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | nt-xml-prop-ref-node)..(defun.js | 
| 290a0 |  32 2d 76 69 73 69 74 2d 78 6d 6c 2d 70 72 6f 70    2d 72 65 66 2d 6e 6f 64 65 20 28 6e 20 76 29 0a  | 2-visit-xml-prop-ref-node.(n.v). | 
| 290c0 |  20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74    20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d 72  | ..(js2-visit-ast.(js2-xml-prop-r | 
| 290e0 |  65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63    65 20 6e 29 20 76 29 0a 20 20 28 6a 73 32 2d 76  | ef-node-namespace.n).v)...(js2-v | 
| 29100 |  69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d    6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65 2d  | isit-ast.(js2-xml-prop-ref-node- | 
| 29120 |  70 72 6f 70 6e 61 6d 65 20 6e 29 20 76 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e  | propname.n).v))..(defun.js2-prin | 
| 29140 |  74 2d 78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e    6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e 73  | t-xml-prop-ref-node.(n.i)...(ins | 
| 29160 |  65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61    64 20 69 29 29 0a 20 20 28 69 66 20 28 6a 73 32  | ert.(js2-make-pad.i))...(if.(js2 | 
| 29180 |  2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64 65 2d 61 74    74 72 2d 61 63 63 65 73 73 2d 70 20 6e 29 0a 20  | -xml-ref-node-attr-access-p.n).. | 
| 291a0 |  20 20 20 20 20 28 69 6e 73 65 72 74 20 22 40 22    29 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d  | .....(insert."@"))...(when.(js2- | 
| 291c0 |  78 6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64    65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 0a 20  | xml-prop-ref-node-namespace.n).. | 
| 291e0 |  20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73    74 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d  | ...(js2-print-ast.(js2-xml-prop- | 
| 29200 |  72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61    63 65 20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e  | ref-node-namespace.n).0).....(in | 
| 29220 |  73 65 72 74 20 22 3a 3a 22 29 29 0a 20 20 28 69    66 20 28 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d  | sert."::"))...(if.(js2-xml-prop- | 
| 29240 |  72 65 66 2d 6e 6f 64 65 2d 70 72 6f 70 6e 61 6d    65 20 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d  | ref-node-propname.n).......(js2- | 
| 29260 |  70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78    6d 6c 2d 70 72 6f 70 2d 72 65 66 2d 6e 6f 64 65  | print-ast.(js2-xml-prop-ref-node | 
| 29280 |  2d 70 72 6f 70 6e 61 6d 65 20 6e 29 20 30 29 29    29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74  | -propname.n).0)))..(cl-defstruct | 
| 292a0 |  20 28 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72    65 66 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20  | .(js2-xml-elem-ref-node......... | 
| 292c0 |  20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65    20 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64  | .......(:include.js2-xml-ref-nod | 
| 292e0 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20  | e)................(:constructor. | 
| 29300 |  6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 65 6c 65    6d 2d 72 65 66 2d 6e 6f 64 65 20 28 26 6b 65 79  | make-js2-xml-elem-ref-node.(&key | 
| 29320 |  20 28 74 79 70 65 20 6a 73 32 2d 52 45 46 5f 4d    45 4d 42 45 52 29 0a 20 20 20 20 20 20 20 20 20  | .(type.js2-REF_MEMBER).......... | 
| 29340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d 63  | .....................(pos.(js2-c | 
| 29380 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | urrent-token-beg)).............. | 
| 293a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 293c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6c 65 6e 20 65 78 70 72 20 6c 62 20 72 62 0a  | .................len.expr.lb.rb. | 
| 293e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61  | ..............................na | 
| 29420 |  6d 65 73 70 61 63 65 20 61 74 2d 70 6f 73 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mespace.at-pos.................. | 
| 29440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c    6f 6e 2d 70 6f 73 29 29 29 0a 20 20 22 41 53 54  | .............colon-pos)))..."AST | 
| 29480 |  20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 45 34 58    20 58 4d 4c 20 5b 65 78 70 72 5d 20 6d 65 6d 62  | .node.for.an.E4X.XML.[expr].memb | 
| 294a0 |  65 72 2d 72 65 66 20 65 78 70 72 65 73 73 69 6f    6e 2e 0a 53 79 6e 74 61 78 3a 0a 0a 20 5b 20 60  | er-ref.expression..Syntax:...[.` | 
| 294c0 |  40 27 20 5d 20 5b 20 6e 61 6d 65 20 60 3a 3a 27    20 5d 20 60 5b 27 20 65 78 70 72 20 60 5d 27 0a  | @'.].[.name.`::'.].`['.expr.`]'. | 
| 294e0 |  0a 45 78 61 6d 70 6c 65 73 20 69 6e 63 6c 75 64    65 20 6e 73 3a 3a 5b 65 78 70 72 5d 2c 20 40 6e  | .Examples.include.ns::[expr],.@n | 
| 29500 |  73 3a 3a 5b 65 78 70 72 5d 2c 20 40 5b 65 78 70    72 5d 2c 20 2a 3a 3a 5b 65 78 70 72 5d 20 61 6e  | s::[expr],.@[expr],.*::[expr].an | 
| 29520 |  64 20 40 2a 3a 3a 5b 65 78 70 72 5d 2e 0a 0a 4e    6f 74 65 20 74 68 61 74 20 74 68 65 20 66 6f 72  | d.@*::[expr]...Note.that.the.for | 
| 29540 |  6d 20 5b 65 78 70 72 5d 20 28 69 2e 65 2e 20 6e    6f 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 61  | m.[expr].(i.e..no.namespace.or.a | 
| 29560 |  74 74 72 69 62 75 74 65 2d 71 75 61 6c 69 66 69    65 72 29 0a 69 73 20 6e 6f 74 20 61 20 6c 65 67  | ttribute-qualifier).is.not.a.leg | 
| 29580 |  61 6c 20 45 34 58 20 58 4d 4c 20 65 6c 65 6d 65    6e 74 2d 72 65 66 20 65 78 70 72 65 73 73 69 6f  | al.E4X.XML.element-ref.expressio | 
| 295a0 |  6e 2c 20 73 69 6e 63 65 20 69 74 27 73 20 61 6c    72 65 61 64 79 20 75 73 65 64 0a 66 6f 72 20 73  | n,.since.it's.already.used.for.s | 
| 295c0 |  74 61 6e 64 61 72 64 20 4a 61 76 61 53 63 72 69    70 74 20 65 6c 65 6d 65 6e 74 2d 67 65 74 20 61  | tandard.JavaScript.element-get.a | 
| 295e0 |  72 72 61 79 20 69 6e 64 65 78 69 6e 67 2e 20 20    48 65 6e 63 65 2c 20 61 0a 60 6a 73 32 2d 78 6d  | rray.indexing...Hence,.a.`js2-xm | 
| 29600 |  6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 27    20 61 6c 77 61 79 73 20 68 61 73 20 65 69 74 68  | l-elem-ref-node'.always.has.eith | 
| 29620 |  65 72 20 74 68 65 20 61 74 74 72 69 62 75 74 65    2d 71 75 61 6c 69 66 69 65 72 2c 20 61 0a 6e 6f  | er.the.attribute-qualifier,.a.no | 
| 29640 |  6e 2d 6e 69 6c 20 6e 61 6d 65 73 70 61 63 65 20    6e 6f 64 65 2c 20 6f 72 20 62 6f 74 68 2e 0a 0a  | n-nil.namespace.node,.or.both... | 
| 29660 |  54 68 65 20 6e 6f 64 65 20 73 74 61 72 74 73 20    61 74 20 74 68 65 20 40 20 74 6f 6b 65 6e 2c 20  | The.node.starts.at.the.@.token,. | 
| 29680 |  69 66 20 70 72 65 73 65 6e 74 2e 20 20 4f 74 68    65 72 77 69 73 65 20 69 74 20 73 74 61 72 74 73  | if.present...Otherwise.it.starts | 
| 296a0 |  0a 61 74 20 74 68 65 20 6e 61 6d 65 73 70 61 63    65 20 6e 61 6d 65 2e 20 20 54 68 65 20 6e 6f 64  | .at.the.namespace.name...The.nod | 
| 296c0 |  65 20 62 6f 75 6e 64 73 20 65 78 74 65 6e 64 20    74 68 72 6f 75 67 68 20 74 68 65 20 63 6c 6f 73  | e.bounds.extend.through.the.clos | 
| 296e0 |  69 6e 67 0a 72 69 67 68 74 2d 62 72 61 63 6b 65    74 2c 20 6f 72 20 69 66 20 69 74 20 69 73 20 6d  | ing.right-bracket,.or.if.it.is.m | 
| 29700 |  69 73 73 69 6e 67 20 64 75 65 20 74 6f 20 61 20    73 79 6e 74 61 78 20 65 72 72 6f 72 2c 20 74 68  | issing.due.to.a.syntax.error,.th | 
| 29720 |  72 6f 75 67 68 20 74 68 65 0a 65 6e 64 20 6f 66    20 74 68 65 20 69 6e 64 65 78 20 65 78 70 72 65  | rough.the.end.of.the.index.expre | 
| 29740 |  73 73 69 6f 6e 2e 22 0a 20 20 65 78 70 72 20 20    3b 20 74 68 65 20 62 72 61 63 6b 65 74 65 64 20  | ssion."...expr..;.the.bracketed. | 
| 29760 |  69 6e 64 65 78 20 65 78 70 72 65 73 73 69 6f 6e    0a 20 20 6c 62 0a 20 20 72 62 29 0a 0a 28 6a 73  | index.expression...lb...rb)..(js | 
| 29780 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d  | 2--struct-put.'js2-xml-elem-ref- | 
| 297a0 |  6e 6f 64 65 20 27 6a 73 32 2d 76 69 73 69 74 6f    72 20 27 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c  | node.'js2-visitor.'js2-visit-xml | 
| 297c0 |  2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 29 0a    28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74  | -elem-ref-node).(js2--struct-put | 
| 297e0 |  20 27 6a 73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72    65 66 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69  | .'js2-xml-elem-ref-node.'js2-pri | 
| 29800 |  6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d    78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64  | nter.'js2-print-xml-elem-ref-nod | 
| 29820 |  65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76    69 73 69 74 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65  | e)..(defun.js2-visit-xml-elem-re | 
| 29840 |  66 2d 6e 6f 64 65 20 28 6e 20 76 29 0a 20 20 28    6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a  | f-node.(n.v)...(js2-visit-ast.(j | 
| 29860 |  73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d    6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e  | s2-xml-elem-ref-node-namespace.n | 
| 29880 |  29 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69    74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 65  | ).v)...(js2-visit-ast.(js2-xml-e | 
| 298a0 |  6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 2d 65 78 70    72 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e  | lem-ref-node-expr.n).v))..(defun | 
| 298c0 |  20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 65    6c 65 6d 2d 72 65 66 2d 6e 6f 64 65 20 28 6e 20  | .js2-print-xml-elem-ref-node.(n. | 
| 298e0 |  69 29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73    32 2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20  | i)...(insert.(js2-make-pad.i)).. | 
| 29900 |  20 28 69 66 20 28 6a 73 32 2d 78 6d 6c 2d 72 65    66 2d 6e 6f 64 65 2d 61 74 74 72 2d 61 63 63 65  | .(if.(js2-xml-ref-node-attr-acce | 
| 29920 |  73 73 2d 70 20 6e 29 0a 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 40 22 29 29 0a 20 20 28 77  | ss-p.n).......(insert."@"))...(w | 
| 29940 |  68 65 6e 20 28 6a 73 32 2d 78 6d 6c 2d 65 6c 65    6d 2d 72 65 66 2d 6e 6f 64 65 2d 6e 61 6d 65 73  | hen.(js2-xml-elem-ref-node-names | 
| 29960 |  70 61 63 65 20 6e 29 0a 20 20 20 20 28 6a 73 32    2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d  | pace.n).....(js2-print-ast.(js2- | 
| 29980 |  78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64    65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 20 30  | xml-elem-ref-node-namespace.n).0 | 
| 299a0 |  29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 22 3a    3a 22 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22  | ).....(insert."::"))...(insert." | 
| 299c0 |  5b 22 29 0a 20 20 28 69 66 20 28 6a 73 32 2d 78    6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e 6f 64 65  | [")...(if.(js2-xml-elem-ref-node | 
| 299e0 |  2d 65 78 70 72 20 6e 29 0a 20 20 20 20 20 20 28    6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a  | -expr.n).......(js2-print-ast.(j | 
| 29a00 |  73 32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d    6e 6f 64 65 2d 65 78 70 72 20 6e 29 20 30 29 29  | s2-xml-elem-ref-node-expr.n).0)) | 
| 29a20 |  0a 20 20 28 69 6e 73 65 72 74 20 22 5d 22 29 29    0a 0a 3b 3b 3b 20 50 6c 61 63 65 68 6f 6c 64 65  | ...(insert."]"))..;;;.Placeholde | 
| 29a40 |  72 20 6e 6f 64 65 73 20 66 6f 72 20 77 68 65 6e    20 77 65 20 74 72 79 20 70 61 72 73 69 6e 67 20  | r.nodes.for.when.we.try.parsing. | 
| 29a60 |  74 68 65 20 58 4d 4c 20 6c 69 74 65 72 61 6c 73    20 73 74 72 75 63 74 75 72 61 6c 6c 79 2e 0a 0a  | the.XML.literals.structurally... | 
| 29a80 |  28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a    73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67  | (cl-defstruct.(js2-xml-start-tag | 
| 29aa0 |  2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a  | -node................(:include.j | 
| 29ac0 |  73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f  | s2-xml-node)................(:co | 
| 29ae0 |  6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a    73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67  | nstructor.make-js2-xml-start-tag | 
| 29b00 |  2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70    65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20  | -node.(&key.(type.js2-XML)...... | 
| 29b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a  | ..........................(pos.j | 
| 29b60 |  73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ts-cursor)................... | 
| 29b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e    20 6e 61 6d 65 20 61 74 74 72 73 20 6b 69 64 73  | .............len.name.attrs.kids | 
| 29bc0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29be0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 29c00 |  65 6d 70 74 79 2d 70 29 29 29 0a 20 20 22 41 53    54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 58 4d  | empty-p)))..."AST.node.for.an.XM | 
| 29c20 |  4c 20 73 74 61 72 74 2d 74 61 67 2e 20 20 4e 6f    74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64  | L.start-tag...Not.currently.used | 
| 29c40 |  2e 0a 54 68 65 20 60 6b 69 64 73 27 20 66 69 65    6c 64 20 69 73 20 61 20 4c 69 73 70 20 6c 69 73  | ..The.`kids'.field.is.a.Lisp.lis | 
| 29c60 |  74 20 6f 66 20 63 68 69 6c 64 20 63 6f 6e 74 65    6e 74 20 6e 6f 64 65 73 2e 22 0a 20 20 6e 61 6d  | t.of.child.content.nodes."...nam | 
| 29c80 |  65 20 20 20 20 20 20 3b 20 61 20 60 6a 73 32 2d    78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 27 0a 20  | e......;.a.`js2-xml-name-node'.. | 
| 29ca0 |  20 61 74 74 72 73 20 20 20 20 20 3b 20 61 20 4c    69 73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32  | .attrs.....;.a.Lisp.list.of.`js2 | 
| 29cc0 |  2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 27 0a    20 20 65 6d 70 74 79 2d 70 29 20 20 3b 20 74 20  | -xml-attr-node'...empty-p)..;.t. | 
| 29ce0 |  69 66 20 74 68 69 73 20 69 73 20 61 6e 20 65 6d    70 74 79 20 65 6c 65 6d 65 6e 74 20 73 75 63 68  | if.this.is.an.empty.element.such | 
| 29d00 |  20 61 73 20 3c 66 6f 6f 20 62 61 72 3d 22 62 61    7a 22 2f 3e 0a 0a 28 6a 73 32 2d 2d 73 74 72 75  | .as.<foo.bar="baz"/>..(js2--stru | 
| 29d20 |  63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d    73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 20 27  | ct-put.'js2-xml-start-tag-node.' | 
| 29d40 |  6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32    2d 76 69 73 69 74 2d 78 6d 6c 2d 73 74 61 72 74  | js2-visitor.'js2-visit-xml-start | 
| 29d60 |  2d 74 61 67 29 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d  | -tag).(js2--struct-put.'js2-xml- | 
| 29d80 |  73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65 20 27    6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32  | start-tag-node.'js2-printer.'js2 | 
| 29da0 |  2d 70 72 69 6e 74 2d 78 6d 6c 2d 73 74 61 72 74    2d 74 61 67 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | -print-xml-start-tag)..(defun.js | 
| 29dc0 |  32 2d 76 69 73 69 74 2d 78 6d 6c 2d 73 74 61 72    74 2d 74 61 67 20 28 6e 20 76 29 0a 20 20 28 6a  | 2-visit-xml-start-tag.(n.v)...(j | 
| 29de0 |  73 32 2d 76 69 73 69 74 2d 61 73 74 20 28 6a 73    32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67 2d  | s2-visit-ast.(js2-xml-start-tag- | 
| 29e00 |  6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 29 0a    20 20 28 64 6f 6c 69 73 74 20 28 61 74 74 72 20  | node-name.n).v)...(dolist.(attr. | 
| 29e20 |  28 6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74    61 67 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29  | (js2-xml-start-tag-node-attrs.n) | 
| 29e40 |  29 0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74    2d 61 73 74 20 61 74 74 72 20 76 29 29 0a 20 20  | ).....(js2-visit-ast.attr.v))... | 
| 29e60 |  28 6a 73 32 2d 76 69 73 69 74 2d 62 6c 6f 63 6b    20 6e 20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | (js2-visit-block.n.v))..(defun.j | 
| 29e80 |  73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 73 74 61    72 74 2d 74 61 67 20 28 6e 20 69 29 0a 20 20 28  | s2-print-xml-start-tag.(n.i)...( | 
| 29ea0 |  69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65    2d 70 61 64 20 69 29 20 22 3c 22 29 0a 20 20 28  | insert.(js2-make-pad.i)."<")...( | 
| 29ec0 |  6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6a    73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61 67  | js2-print-ast.(js2-xml-start-tag | 
| 29ee0 |  2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 30 29    0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 78 6d  | -node-name.n).0)...(when.(js2-xm | 
| 29f00 |  6c 2d 73 74 61 72 74 2d 74 61 67 2d 6e 6f 64 65    2d 61 74 74 72 73 20 6e 29 0a 20 20 20 20 28 69  | l-start-tag-node-attrs.n).....(i | 
| 29f20 |  6e 73 65 72 74 20 22 20 22 29 0a 20 20 20 20 28    6a 73 32 2d 70 72 69 6e 74 2d 6c 69 73 74 20 28  | nsert.".").....(js2-print-list.( | 
| 29f40 |  6a 73 32 2d 78 6d 6c 2d 73 74 61 72 74 2d 74 61    67 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 20  | js2-xml-start-tag-node-attrs.n). | 
| 29f60 |  22 20 22 29 29 0a 20 20 28 69 6e 73 65 72 74 20    22 3e 22 29 29 0a 0a 3b 3b 20 49 20 2d 74 68 69  | "."))...(insert.">"))..;;.I.-thi | 
| 29f80 |  6e 6b 2d 20 49 27 6d 20 67 6f 69 6e 67 20 74 6f    20 6d 61 6b 65 20 74 68 65 20 70 61 72 65 6e 74  | nk-.I'm.going.to.make.the.parent | 
| 29fa0 |  20 6e 6f 64 65 20 74 68 65 20 63 6f 72 72 65 73    70 6f 6e 64 69 6e 67 20 73 74 61 72 74 2d 74 61  | .node.the.corresponding.start-ta | 
| 29fc0 |  67 2c 0a 3b 3b 20 61 6e 64 20 61 64 64 20 74 68    65 20 65 6e 64 2d 74 61 67 20 74 6f 20 74 68 65  | g,.;;.and.add.the.end-tag.to.the | 
| 29fe0 |  20 6b 69 64 73 20 6c 69 73 74 20 6f 66 20 74 68    65 20 70 61 72 65 6e 74 20 61 73 20 77 65 6c 6c  | .kids.list.of.the.parent.as.well | 
| 2a000 |  2e 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20    28 6a 73 32 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67  | ..(cl-defstruct.(js2-xml-end-tag | 
| 2a020 |  2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a  | -node................(:include.j | 
| 2a040 |  73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f  | s2-xml-node)................(:co | 
| 2a060 |  6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a    73 32 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e  | nstructor.make-js2-xml-end-tag-n | 
| 2a080 |  6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65 20    6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20 20  | ode.(&key.(type.js2-XML)........ | 
| 2a0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2a0c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74  | ......................(pos.js2-t | 
| 2a0e0 |  73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s-cursor)....................... | 
| 2a100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2a120 |  20 20 20 20 20 20 20 6c 65 6e 20 6e 61 6d 65 29    29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66  | .......len.name)))..."AST.node.f | 
| 2a140 |  6f 72 20 61 6e 20 58 4d 4c 20 65 6e 64 2d 74 61    67 2e 20 20 4e 6f 74 20 63 75 72 72 65 6e 74 6c  | or.an.XML.end-tag...Not.currentl | 
| 2a160 |  79 20 75 73 65 64 2e 22 0a 20 20 6e 61 6d 65 29    20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e  | y.used."...name)..;.a.`js2-xml-n | 
| 2a180 |  61 6d 65 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d    2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a 73 32  | ame-node'..(js2--struct-put.'js2 | 
| 2a1a0 |  2d 78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e 6f 64    65 20 27 6a 73 32 2d 76 69 73 69 74 6f 72 20 27  | -xml-end-tag-node.'js2-visitor.' | 
| 2a1c0 |  6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d 65 6e    64 2d 74 61 67 29 0a 28 6a 73 32 2d 2d 73 74 72  | js2-visit-xml-end-tag).(js2--str | 
| 2a1e0 |  75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c    2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65 20 27 6a  | uct-put.'js2-xml-end-tag-node.'j | 
| 2a200 |  73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73 32 2d    70 72 69 6e 74 2d 78 6d 6c 2d 65 6e 64 2d 74 61  | s2-printer.'js2-print-xml-end-ta | 
| 2a220 |  67 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 76    69 73 69 74 2d 78 6d 6c 2d 65 6e 64 2d 74 61 67  | g)..(defun.js2-visit-xml-end-tag | 
| 2a240 |  20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69    73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c  | .(n.v)...(js2-visit-ast.(js2-xml | 
| 2a260 |  2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65 2d 6e 61    6d 65 20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75  | -end-tag-node-name.n).v))..(defu | 
| 2a280 |  6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d    65 6e 64 2d 74 61 67 20 28 6e 20 69 29 0a 20 20  | n.js2-print-xml-end-tag.(n.i)... | 
| 2a2a0 |  28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b    65 2d 70 61 64 20 69 29 29 0a 20 20 28 69 6e 73  | (insert.(js2-make-pad.i))...(ins | 
| 2a2c0 |  65 72 74 20 22 3c 2f 22 29 0a 20 20 28 6a 73 32    2d 70 72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d  | ert."</")...(js2-print-ast.(js2- | 
| 2a2e0 |  78 6d 6c 2d 65 6e 64 2d 74 61 67 2d 6e 6f 64 65    2d 6e 61 6d 65 20 6e 29 20 30 29 0a 20 20 28 69  | xml-end-tag-node-name.n).0)...(i | 
| 2a300 |  6e 73 65 72 74 20 22 3e 22 29 29 0a 0a 28 63 6c    2d 64 65 66 73 74 72 75 63 74 20 28 6a 73 32 2d  | nsert.">"))..(cl-defstruct.(js2- | 
| 2a320 |  78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69  | xml-name-node................(:i | 
| 2a340 |  6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | nclude.js2-xml-node)............ | 
| 2a360 |  20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f    72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6e  | ....(:constructor.make-js2-xml-n | 
| 2a380 |  61 6d 65 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28    74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20  | ame-node.(&key.(type.js2-XML)... | 
| 2a3a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2a3c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32  | ........................(pos.js2 | 
| 2a3e0 |  2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -ts-cursor)..................... | 
| 2a400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2a420 |  20 20 20 20 20 20 6c 65 6e 20 6e 61 6d 65 73 70    61 63 65 20 6b 69 64 73 29 29 29 0a 20 20 22 41  | ......len.namespace.kids)))..."A | 
| 2a440 |  53 54 20 6e 6f 64 65 20 66 6f 72 20 61 6e 20 45    34 58 20 58 4d 4c 20 6e 61 6d 65 2e 20 20 4e 6f  | ST.node.for.an.E4X.XML.name...No | 
| 2a460 |  74 20 63 75 72 72 65 6e 74 6c 79 20 75 73 65 64    2e 0a 41 6e 79 20 58 4d 4c 20 6e 61 6d 65 20 63  | t.currently.used..Any.XML.name.c | 
| 2a480 |  61 6e 20 62 65 20 71 75 61 6c 69 66 69 65 64 20    77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65  | an.be.qualified.with.a.namespace | 
| 2a4a0 |  2c 20 68 65 6e 63 65 20 74 68 65 20 6e 61 6d 65    73 70 61 63 65 20 66 69 65 6c 64 2e 0a 46 75 72  | ,.hence.the.namespace.field..Fur | 
| 2a4c0 |  74 68 65 72 2c 20 61 6e 79 20 45 34 58 20 6e 61    6d 65 20 63 61 6e 20 62 65 20 63 6f 6d 70 72 69  | ther,.any.E4X.name.can.be.compri | 
| 2a4e0 |  73 65 64 20 6f 66 20 61 72 62 69 74 72 61 72 79    20 4a 61 76 61 53 63 72 69 70 74 20 7b 7d 20 65  | sed.of.arbitrary.JavaScript.{}.e | 
| 2a500 |  78 70 72 65 73 73 69 6f 6e 73 2e 0a 54 68 65 20    6b 69 64 73 20 66 69 65 6c 64 20 69 73 20 61 20  | xpressions..The.kids.field.is.a. | 
| 2a520 |  6c 69 73 74 20 6f 66 20 60 6a 73 32 2d 6e 61 6d    65 2d 6e 6f 64 65 27 20 61 6e 64 20 60 6a 73 32  | list.of.`js2-name-node'.and.`js2 | 
| 2a540 |  2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d 6e 6f 64    65 27 2e 0a 46 6f 72 20 61 20 73 69 6d 70 6c 65  | -xml-js-expr-node'..For.a.simple | 
| 2a560 |  20 6e 61 6d 65 2c 20 74 68 65 20 6b 69 64 73 20    6c 69 73 74 20 68 61 73 20 65 78 61 63 74 6c 79  | .name,.the.kids.list.has.exactly | 
| 2a580 |  20 6f 6e 65 20 6e 6f 64 65 2c 20 61 20 60 6a 73    32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 22 0a 20  | .one.node,.a.`js2-name-node'.".. | 
| 2a5a0 |  20 6e 61 6d 65 73 70 61 63 65 29 20 20 3b 20 61    20 60 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64  | .namespace)..;.a.`js2-string-nod | 
| 2a5c0 |  65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74    2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 6e 61  | e'..(js2--struct-put.'js2-xml-na | 
| 2a5e0 |  6d 65 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69 73    69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74 2d  | me-node.'js2-visitor.'js2-visit- | 
| 2a600 |  78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64 65 29 0a 28    6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20  | xml-name-node).(js2--struct-put. | 
| 2a620 |  27 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f    64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72 20  | 'js2-xml-name-node.'js2-printer. | 
| 2a640 |  27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 6e    61 6d 65 2d 6e 6f 64 65 29 0a 0a 28 64 65 66 75  | 'js2-print-xml-name-node)..(defu | 
| 2a660 |  6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c 2d    6e 61 6d 65 2d 6e 6f 64 65 20 28 6e 20 76 29 0a  | n.js2-visit-xml-name-node.(n.v). | 
| 2a680 |  20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74    20 28 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e  | ..(js2-visit-ast.(js2-xml-name-n | 
| 2a6a0 |  6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29    20 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | ode-namespace.n).v))..(defun.js2 | 
| 2a6c0 |  2d 70 72 69 6e 74 2d 78 6d 6c 2d 6e 61 6d 65 2d    6e 6f 64 65 20 28 6e 20 69 29 0a 20 20 28 69 6e  | -print-xml-name-node.(n.i)...(in | 
| 2a6e0 |  73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70    61 64 20 69 29 29 0a 20 20 28 77 68 65 6e 20 28  | sert.(js2-make-pad.i))...(when.( | 
| 2a700 |  6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d 6e 6f 64    65 2d 6e 61 6d 65 73 70 61 63 65 20 6e 29 0a 20  | js2-xml-name-node-namespace.n).. | 
| 2a720 |  20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73    74 20 28 6a 73 32 2d 78 6d 6c 2d 6e 61 6d 65 2d  | ...(js2-print-ast.(js2-xml-name- | 
| 2a740 |  6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63 65 20 6e    29 20 30 29 0a 20 20 20 20 28 69 6e 73 65 72 74  | node-namespace.n).0).....(insert | 
| 2a760 |  20 22 3a 3a 22 29 29 0a 20 20 28 64 6f 6c 69 73    74 20 28 6b 69 64 20 28 6a 73 32 2d 78 6d 6c 2d  | ."::"))...(dolist.(kid.(js2-xml- | 
| 2a780 |  6e 61 6d 65 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e    29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e  | name-node-kids.n)).....(js2-prin | 
| 2a7a0 |  74 2d 61 73 74 20 6b 69 64 20 30 29 29 29 0a 0a    28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 6a  | t-ast.kid.0)))..(cl-defstruct.(j | 
| 2a7c0 |  73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a  | s2-xml-pi-node................(: | 
| 2a7e0 |  69 6e 63 6c 75 64 65 20 6a 73 32 2d 78 6d 6c 2d    6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  | include.js2-xml-node)........... | 
| 2a800 |  20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74    6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 78 6d 6c 2d  | .....(:constructor.make-js2-xml- | 
| 2a820 |  70 69 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28 74    79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20  | pi-node.(&key.(type.js2-XML).... | 
| 2a840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2a860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73  | .....................(pos.js2-ts | 
| 2a880 |  2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -cursor)........................ | 
| 2a8a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2a8c0 |  20 6c 65 6e 20 6e 61 6d 65 20 61 74 74 72 73 29    29 29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66  | .len.name.attrs)))..."AST.node.f | 
| 2a8e0 |  6f 72 20 61 6e 20 45 34 58 20 58 4d 4c 20 70 72    6f 63 65 73 73 69 6e 67 20 69 6e 73 74 72 75 63  | or.an.E4X.XML.processing.instruc | 
| 2a900 |  74 69 6f 6e 2e 20 20 4e 6f 74 20 63 75 72 72 65    6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 6e 61  | tion...Not.currently.used."...na | 
| 2a920 |  6d 65 20 20 20 3b 20 61 20 60 6a 73 32 2d 78 6d    6c 2d 6e 61 6d 65 2d 6e 6f 64 65 27 0a 20 20 61  | me...;.a.`js2-xml-name-node'...a | 
| 2a940 |  74 74 72 73 29 20 3b 20 61 20 6c 69 73 74 20 6f    66 20 60 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d  | ttrs).;.a.list.of.`js2-xml-attr- | 
| 2a960 |  6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73 74 72    75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c  | node'..(js2--struct-put.'js2-xml | 
| 2a980 |  2d 70 69 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69    73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74  | -pi-node.'js2-visitor.'js2-visit | 
| 2a9a0 |  2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 29 0a 28 6a    73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27  | -xml-pi-node).(js2--struct-put.' | 
| 2a9c0 |  6a 73 32 2d 78 6d 6c 2d 70 69 2d 6e 6f 64 65 20    27 6a 73 32 2d 70 72 69 6e 74 65 72 20 27 6a 73  | js2-xml-pi-node.'js2-printer.'js | 
| 2a9e0 |  32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 70 69 2d 6e    6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | 2-print-xml-pi-node)..(defun.js2 | 
| 2aa00 |  2d 76 69 73 69 74 2d 78 6d 6c 2d 70 69 2d 6e 6f    64 65 20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d  | -visit-xml-pi-node.(n.v)...(js2- | 
| 2aa20 |  76 69 73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78    6d 6c 2d 70 69 2d 6e 6f 64 65 2d 6e 61 6d 65 20  | visit-ast.(js2-xml-pi-node-name. | 
| 2aa40 |  6e 29 20 76 29 0a 20 20 28 64 6f 6c 69 73 74 20    28 61 74 74 72 20 28 6a 73 32 2d 78 6d 6c 2d 70  | n).v)...(dolist.(attr.(js2-xml-p | 
| 2aa60 |  69 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 29    0a 20 20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d  | i-node-attrs.n)).....(js2-visit- | 
| 2aa80 |  61 73 74 20 61 74 74 72 20 76 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d  | ast.attr.v)))..(defun.js2-print- | 
| 2aaa0 |  78 6d 6c 2d 70 69 2d 6e 6f 64 65 20 28 6e 20 69    29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32  | xml-pi-node.(n.i)...(insert.(js2 | 
| 2aac0 |  2d 6d 61 6b 65 2d 70 61 64 20 69 29 20 22 3c 3f    22 29 0a 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | -make-pad.i)."<?")...(js2-print- | 
| 2aae0 |  61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 69 2d    6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 29 0a 20 20  | ast.(js2-xml-pi-node-name.n))... | 
| 2ab00 |  28 77 68 65 6e 20 28 6a 73 32 2d 78 6d 6c 2d 70    69 2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 0a  | (when.(js2-xml-pi-node-attrs.n). | 
| 2ab20 |  20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29    0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e 74 2d  | ....(insert.".").....(js2-print- | 
| 2ab40 |  6c 69 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 70 69    2d 6e 6f 64 65 2d 61 74 74 72 73 20 6e 29 29 29  | list.(js2-xml-pi-node-attrs.n))) | 
| 2ab60 |  0a 20 20 28 69 6e 73 65 72 74 20 22 3f 3e 22 29    29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74  | ...(insert."?>"))..(cl-defstruct | 
| 2ab80 |  20 28 6a 73 32 2d 78 6d 6c 2d 63 64 61 74 61 2d    6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20  | .(js2-xml-cdata-node............ | 
| 2aba0 |  20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 6a 73    32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20  | ....(:include.js2-xml-node)..... | 
| 2abc0 |  20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e    73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73  | ...........(:constructor.make-js | 
| 2abe0 |  32 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65    20 28 26 6b 65 79 20 28 74 79 70 65 20 6a 73 32  | 2-xml-cdata-node.(&key.(type.js2 | 
| 2ac00 |  2d 58 4d 4c 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -XML)........................... | 
| 2ac20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2ac40 |  20 28 70 6f 73 20 6a 73 32 2d 74 73 2d 63 75 72    73 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .(pos.js2-ts-cursor)............ | 
| 2ac60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2ac80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6c 65 6e 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20  | ................len.content))).. | 
| 2aca0 |  20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 61    20 43 44 41 54 41 20 65 73 63 61 70 65 20 73 65  | ."AST.node.for.a.CDATA.escape.se | 
| 2acc0 |  63 74 69 6f 6e 2e 20 20 4e 6f 74 20 63 75 72 72    65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20 63  | ction...Not.currently.used."...c | 
| 2ace0 |  6f 6e 74 65 6e 74 29 20 20 3b 20 61 20 60 6a 73    32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 27 20 77  | ontent)..;.a.`js2-string-node'.w | 
| 2ad00 |  69 74 68 20 6e 6f 64 65 2d 70 72 6f 70 65 72 74    79 20 27 71 75 6f 74 65 2d 74 79 70 65 20 27 63  | ith.node-property.'quote-type.'c | 
| 2ad20 |  64 61 74 61 0a 0a 28 6a 73 32 2d 2d 73 74 72 75    63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d  | data..(js2--struct-put.'js2-xml- | 
| 2ad40 |  63 64 61 74 61 2d 6e 6f 64 65 20 27 6a 73 32 2d    76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73  | cdata-node.'js2-visitor.'js2-vis | 
| 2ad60 |  69 74 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64    65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74 2d  | it-xml-cdata-node).(js2--struct- | 
| 2ad80 |  70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 63 64 61    74 61 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69  | put.'js2-xml-cdata-node.'js2-pri | 
| 2ada0 |  6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d    78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65 29 0a  | nter.'js2-print-xml-cdata-node). | 
| 2adc0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69    74 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f 64 65  | .(defun.js2-visit-xml-cdata-node | 
| 2ade0 |  20 28 6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69    73 69 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c  | .(n.v)...(js2-visit-ast.(js2-xml | 
| 2ae00 |  2d 63 64 61 74 61 2d 6e 6f 64 65 2d 63 6f 6e 74    65 6e 74 20 6e 29 20 76 29 29 0a 0a 28 64 65 66  | -cdata-node-content.n).v))..(def | 
| 2ae20 |  75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c    2d 63 64 61 74 61 2d 6e 6f 64 65 20 28 6e 20 69  | un.js2-print-xml-cdata-node.(n.i | 
| 2ae40 |  29 0a 20 20 28 69 6e 73 65 72 74 20 28 6a 73 32    2d 6d 61 6b 65 2d 70 61 64 20 69 29 29 0a 20 20  | )...(insert.(js2-make-pad.i))... | 
| 2ae60 |  28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28    6a 73 32 2d 78 6d 6c 2d 63 64 61 74 61 2d 6e 6f  | (js2-print-ast.(js2-xml-cdata-no | 
| 2ae80 |  64 65 2d 63 6f 6e 74 65 6e 74 20 6e 29 29 29 0a    0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28  | de-content.n)))..(cl-defstruct.( | 
| 2aea0 |  6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-xml-attr-node............... | 
| 2aec0 |  20 28 3a 69 6e 63 6c 75 64 65 20 6a 73 32 2d 78    6d 6c 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | .(:include.js2-xml-node)........ | 
| 2aee0 |  20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72    75 63 74 6f 72 20 6d 61 6b 65 2d 6a 73 32 2d 61  | ........(:constructor.make-js2-a | 
| 2af00 |  74 74 72 2d 6e 6f 64 65 20 28 26 6b 65 79 20 28    74 79 70 65 20 6a 73 32 2d 58 4d 4c 29 0a 20 20  | ttr-node.(&key.(type.js2-XML)... | 
| 2af20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2af40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 70 6f 73 20 6a 73 32 2d 74 73 2d  | ....................(pos.js2-ts- | 
| 2af60 |  63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | cursor)......................... | 
| 2af80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65  | ..............................le | 
| 2afa0 |  6e 20 6e 61 6d 65 20 76 61 6c 75 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n.name.value.................... | 
| 2afc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2afe0 |  20 20 20 65 71 2d 70 6f 73 20 71 75 6f 74 65 2d    74 79 70 65 29 29 29 0a 20 20 22 41 53 54 20 6e  | ...eq-pos.quote-type)))..."AST.n | 
| 2b000 |  6f 64 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67    20 61 20 66 6f 6f 3d 5c 5c 3d 27 62 61 72 5c 5c  | ode.representing.a.foo=\\='bar\\ | 
| 2b020 |  3d 27 20 58 4d 4c 20 61 74 74 72 69 62 75 74 65    20 76 61 6c 75 65 2e 20 20 4e 6f 74 20 79 65 74  | ='.XML.attribute.value...Not.yet | 
| 2b040 |  20 75 73 65 64 2e 22 0a 20 20 6e 61 6d 65 20 20    20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e 61  | .used."...name...;.a.`js2-xml-na | 
| 2b060 |  6d 65 2d 6e 6f 64 65 27 0a 20 20 76 61 6c 75 65    20 20 3b 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 6e  | me-node'...value..;.a.`js2-xml-n | 
| 2b080 |  61 6d 65 2d 6e 6f 64 65 27 0a 20 20 65 71 2d 70    6f 73 20 3b 20 62 75 66 66 65 72 20 70 6f 73 69  | ame-node'...eq-pos.;.buffer.posi | 
| 2b0a0 |  74 69 6f 6e 20 6f 66 20 22 3d 22 20 73 69 67 6e    0a 20 20 71 75 6f 74 65 2d 74 79 70 65 29 20 3b  | tion.of."=".sign...quote-type).; | 
| 2b0c0 |  20 27 73 69 6e 67 6c 65 20 6f 72 20 27 64 6f 75    62 6c 65 0a 0a 28 6a 73 32 2d 2d 73 74 72 75 63  | .'single.or.'double..(js2--struc | 
| 2b0e0 |  74 2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 61    74 74 72 2d 6e 6f 64 65 20 27 6a 73 32 2d 76 69  | t-put.'js2-xml-attr-node.'js2-vi | 
| 2b100 |  73 69 74 6f 72 20 27 6a 73 32 2d 76 69 73 69 74    2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65 29 0a  | sitor.'js2-visit-xml-attr-node). | 
| 2b120 |  28 6a 73 32 2d 2d 73 74 72 75 63 74 2d 70 75 74    20 27 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e  | (js2--struct-put.'js2-xml-attr-n | 
| 2b140 |  6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72    20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d  | ode.'js2-printer.'js2-print-xml- | 
| 2b160 |  61 74 74 72 2d 6e 6f 64 65 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 76 69 73 69 74 2d 78 6d 6c  | attr-node)..(defun.js2-visit-xml | 
| 2b180 |  2d 61 74 74 72 2d 6e 6f 64 65 20 28 6e 20 76 29    0a 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73  | -attr-node.(n.v)...(js2-visit-as | 
| 2b1a0 |  74 20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d    6e 6f 64 65 2d 6e 61 6d 65 20 6e 29 20 76 29 0a  | t.(js2-xml-attr-node-name.n).v). | 
| 2b1c0 |  20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74    20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e  | ..(js2-visit-ast.(js2-xml-attr-n | 
| 2b1e0 |  6f 64 65 2d 76 61 6c 75 65 20 6e 29 20 76 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 69  | ode-value.n).v))..(defun.js2-pri | 
| 2b200 |  6e 74 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65    20 28 6e 20 69 29 0a 20 20 28 6c 65 74 20 28 28  | nt-xml-attr-node.(n.i)...(let.(( | 
| 2b220 |  71 75 6f 74 65 20 28 69 66 20 28 65 71 20 28 6a    73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e 6f 64 65  | quote.(if.(eq.(js2-xml-attr-node | 
| 2b240 |  2d 71 75 6f 74 65 2d 74 79 70 65 20 6e 29 20 27    73 69 6e 67 6c 65 29 0a 20 20 20 20 20 20 20 20  | -quote-type.n).'single)......... | 
| 2b260 |  20 20 20 20 20 20 20 20 20 20 20 22 27 22 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..........."'".................. | 
| 2b280 |  22 5c 22 22 29 29 29 0a 20 20 20 20 28 69 6e 73    65 72 74 20 28 6a 73 32 2d 6d 61 6b 65 2d 70 61  | "\""))).....(insert.(js2-make-pa | 
| 2b2a0 |  64 20 69 29 29 0a 20 20 20 20 28 6a 73 32 2d 70    72 69 6e 74 2d 61 73 74 20 28 6a 73 32 2d 78 6d  | d.i)).....(js2-print-ast.(js2-xm | 
| 2b2c0 |  6c 2d 61 74 74 72 2d 6e 6f 64 65 2d 6e 61 6d 65    20 6e 29 20 30 29 0a 20 20 20 20 28 69 6e 73 65  | l-attr-node-name.n).0).....(inse | 
| 2b2e0 |  72 74 20 22 3d 22 20 71 75 6f 74 65 29 0a 20 20    20 20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74  | rt."=".quote).....(js2-print-ast | 
| 2b300 |  20 28 6a 73 32 2d 78 6d 6c 2d 61 74 74 72 2d 6e    6f 64 65 2d 76 61 6c 75 65 20 6e 29 20 30 29 0a  | .(js2-xml-attr-node-value.n).0). | 
| 2b320 |  20 20 20 20 28 69 6e 73 65 72 74 20 71 75 6f 74    65 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72  | ....(insert.quote)))..(cl-defstr | 
| 2b340 |  75 63 74 20 28 6a 73 32 2d 78 6d 6c 2d 74 65 78    74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20  | uct.(js2-xml-text-node.......... | 
| 2b360 |  20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20    6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20  | ......(:include.js2-xml-node)... | 
| 2b380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63    6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d  | .............(:constructor.make- | 
| 2b3a0 |  6a 73 32 2d 74 65 78 74 2d 6e 6f 64 65 20 28 26    6b 65 79 20 28 74 79 70 65 20 6a 73 32 2d 58 4d  | js2-text-node.(&key.(type.js2-XM | 
| 2b3c0 |  4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | L).............................. | 
| 2b3e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 70 6f 73 20 6a 73  | .........................(pos.js | 
| 2b400 |  32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-ts-cursor).................... | 
| 2b420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2b440 |  20 20 20 6c 65 6e 20 63 6f 6e 74 65 6e 74 29 29    29 0a 20 20 22 41 53 54 20 6e 6f 64 65 20 66 6f  | ...len.content)))..."AST.node.fo | 
| 2b460 |  72 20 61 6e 20 45 34 58 20 58 4d 4c 20 74 65 78    74 20 6e 6f 64 65 2e 20 20 4e 6f 74 20 63 75 72  | r.an.E4X.XML.text.node...Not.cur | 
| 2b480 |  72 65 6e 74 6c 79 20 75 73 65 64 2e 22 0a 20 20    63 6f 6e 74 65 6e 74 29 20 20 3b 20 61 20 4c 69  | rently.used."...content)..;.a.Li | 
| 2b4a0 |  73 70 20 6c 69 73 74 20 6f 66 20 60 6a 73 32 2d    73 74 72 69 6e 67 2d 6e 6f 64 65 27 20 61 6e 64  | sp.list.of.`js2-string-node'.and | 
| 2b4c0 |  20 60 6a 73 32 2d 78 6d 6c 2d 6a 73 2d 65 78 70    72 2d 6e 6f 64 65 27 0a 0a 28 6a 73 32 2d 2d 73  | .`js2-xml-js-expr-node'..(js2--s | 
| 2b4e0 |  74 72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78    6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 20 27 6a 73  | truct-put.'js2-xml-text-node.'js | 
| 2b500 |  32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32 2d 76    69 73 69 74 2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f  | 2-visitor.'js2-visit-xml-text-no | 
| 2b520 |  64 65 29 0a 28 6a 73 32 2d 2d 73 74 72 75 63 74    2d 70 75 74 20 27 6a 73 32 2d 78 6d 6c 2d 74 65  | de).(js2--struct-put.'js2-xml-te | 
| 2b540 |  78 74 2d 6e 6f 64 65 20 27 6a 73 32 2d 70 72 69    6e 74 65 72 20 27 6a 73 32 2d 70 72 69 6e 74 2d  | xt-node.'js2-printer.'js2-print- | 
| 2b560 |  78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 76 69 73 69 74  | xml-text-node)..(defun.js2-visit | 
| 2b580 |  2d 78 6d 6c 2d 74 65 78 74 2d 6e 6f 64 65 20 28    6e 20 76 29 0a 20 20 28 6a 73 32 2d 76 69 73 69  | -xml-text-node.(n.v)...(js2-visi | 
| 2b5a0 |  74 2d 61 73 74 20 28 6a 73 32 2d 78 6d 6c 2d 74    65 78 74 2d 6e 6f 64 65 2d 63 6f 6e 74 65 6e 74  | t-ast.(js2-xml-text-node-content | 
| 2b5c0 |  20 6e 29 20 76 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 74 65  | .n).v))..(defun.js2-print-xml-te | 
| 2b5e0 |  78 74 2d 6e 6f 64 65 20 28 6e 20 69 29 0a 20 20    28 69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b  | xt-node.(n.i)...(insert.(js2-mak | 
| 2b600 |  65 2d 70 61 64 20 69 29 29 0a 20 20 28 64 6f 6c    69 73 74 20 28 6b 69 64 20 28 6a 73 32 2d 78 6d  | e-pad.i))...(dolist.(kid.(js2-xm | 
| 2b620 |  6c 2d 74 65 78 74 2d 6e 6f 64 65 2d 63 6f 6e 74    65 6e 74 20 6e 29 29 0a 20 20 20 20 28 6a 73 32  | l-text-node-content.n)).....(js2 | 
| 2b640 |  2d 70 72 69 6e 74 2d 61 73 74 20 6b 69 64 29 29    29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74  | -print-ast.kid)))..(cl-defstruct | 
| 2b660 |  20 28 6a 73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e    74 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20  | .(js2-xml-comment-node.......... | 
| 2b680 |  20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20    6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29 0a 20 20  | ......(:include.js2-xml-node)... | 
| 2b6a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63    6f 6e 73 74 72 75 63 74 6f 72 20 6d 61 6b 65 2d  | .............(:constructor.make- | 
| 2b6c0 |  6a 73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 2d    6e 6f 64 65 20 28 26 6b 65 79 20 28 74 79 70 65  | js2-xml-comment-node.(&key.(type | 
| 2b6e0 |  20 6a 73 32 2d 58 4d 4c 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-XML)....................... | 
| 2b700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2b720 |  20 20 20 20 20 20 20 28 70 6f 73 20 6a 73 32 2d    74 73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20  | .......(pos.js2-ts-cursor)...... | 
| 2b740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 2b760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6c 65 6e 29 29 29 0a 20  | ........................len))).. | 
| 2b780 |  20 22 41 53 54 20 6e 6f 64 65 20 66 6f 72 20 45    34 58 20 58 4d 4c 20 63 6f 6d 6d 65 6e 74 2e 20  | ."AST.node.for.E4X.XML.comment.. | 
| 2b7a0 |  20 4e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 75    73 65 64 2e 22 29 0a 0a 28 6a 73 32 2d 2d 73 74  | .Not.currently.used.")..(js2--st | 
| 2b7c0 |  72 75 63 74 2d 70 75 74 20 27 6a 73 32 2d 78 6d    6c 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 20 27  | ruct-put.'js2-xml-comment-node.' | 
| 2b7e0 |  6a 73 32 2d 76 69 73 69 74 6f 72 20 27 6a 73 32    2d 76 69 73 69 74 2d 6e 6f 6e 65 29 0a 28 6a 73  | js2-visitor.'js2-visit-none).(js | 
| 2b800 |  32 2d 2d 73 74 72 75 63 74 2d 70 75 74 20 27 6a    73 32 2d 78 6d 6c 2d 63 6f 6d 6d 65 6e 74 2d 6e  | 2--struct-put.'js2-xml-comment-n | 
| 2b820 |  6f 64 65 20 27 6a 73 32 2d 70 72 69 6e 74 65 72    20 27 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d  | ode.'js2-printer.'js2-print-xml- | 
| 2b840 |  63 6f 6d 6d 65 6e 74 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 72 69 6e 74 2d 78 6d 6c 2d 63  | comment)..(defun.js2-print-xml-c | 
| 2b860 |  6f 6d 6d 65 6e 74 20 28 6e 20 69 29 0a 20 20 28    69 6e 73 65 72 74 20 28 6a 73 32 2d 6d 61 6b 65  | omment.(n.i)...(insert.(js2-make | 
| 2b880 |  2d 70 61 64 20 69 29 0a 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 74 72 69  | -pad.i)...........(js2-node-stri | 
| 2b8a0 |  6e 67 20 6e 29 29 29 0a 0a 3b 3b 3b 20 4e 6f 64    65 20 75 74 69 6c 69 74 69 65 73 0a 0a 28 64 65  | ng.n)))..;;;.Node.utilities..(de | 
| 2b8c0 |  66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65 2d    6c 69 6e 65 20 28 6e 29 0a 20 20 22 46 65 74 63  | fsubst.js2-node-line.(n)..."Fetc | 
| 2b8e0 |  68 20 74 68 65 20 73 6f 75 72 63 65 20 6c 69 6e    65 20 6e 75 6d 62 65 72 20 61 74 20 74 68 65 20  | h.the.source.line.number.at.the. | 
| 2b900 |  73 74 61 72 74 20 6f 66 20 6e 6f 64 65 20 4e 2e    0a 54 68 69 73 20 69 73 20 4f 28 6e 29 20 69 6e  | start.of.node.N..This.is.O(n).in | 
| 2b920 |  20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74    68 65 20 73 6f 75 72 63 65 20 62 75 66 66 65 72  | .the.length.of.the.source.buffer | 
| 2b940 |  3b 20 75 73 65 20 70 72 75 64 65 6e 74 6c 79 2e    22 0a 20 20 28 31 2b 20 28 63 6f 75 6e 74 2d 6c  | ;.use.prudently."...(1+.(count-l | 
| 2b960 |  69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29    20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70  | ines.(point-min).(js2-node-abs-p | 
| 2b980 |  6f 73 20 6e 29 29 29 29 0a 0a 28 64 65 66 73 75    62 73 74 20 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f  | os.n))))..(defsubst.js2-block-no | 
| 2b9a0 |  64 65 2d 6b 69 64 20 28 6e 20 69 29 0a 20 20 22    52 65 74 75 72 6e 20 63 68 69 6c 64 20 49 20 6f  | de-kid.(n.i)..."Return.child.I.o | 
| 2b9c0 |  66 20 6e 6f 64 65 20 4e 2c 20 6f 72 20 6e 69 6c    20 69 66 20 74 68 65 72 65 20 61 72 65 6e 27 74  | f.node.N,.or.nil.if.there.aren't | 
| 2b9e0 |  20 74 68 61 74 20 6d 61 6e 79 2e 22 0a 20 20 28    6e 74 68 20 69 20 28 6a 73 32 2d 62 6c 6f 63 6b  | .that.many."...(nth.i.(js2-block | 
| 2ba00 |  2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 29 29 29 0a    0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 62  | -node-kids.n)))..(defsubst.js2-b | 
| 2ba20 |  6c 6f 63 6b 2d 6e 6f 64 65 2d 66 69 72 73 74 20    28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 66 69  | lock-node-first.(n)..."Return.fi | 
| 2ba40 |  72 73 74 20 63 68 69 6c 64 20 6f 66 20 62 6c 6f    63 6b 20 6e 6f 64 65 20 4e 2c 20 6f 72 20 6e 69  | rst.child.of.block.node.N,.or.ni | 
| 2ba60 |  6c 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f    6e 65 2e 22 0a 20 20 28 63 6c 2d 66 69 72 73 74  | l.if.there.is.none."...(cl-first | 
| 2ba80 |  20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65    2d 6b 69 64 73 20 6e 29 29 29 0a 0a 28 64 65 66  | .(js2-block-node-kids.n)))..(def | 
| 2baa0 |  75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 72 6f 6f 74    20 28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 74  | un.js2-node-root.(n)..."Return.t | 
| 2bac0 |  68 65 20 72 6f 6f 74 20 6f 66 20 74 68 65 20 41    53 54 20 63 6f 6e 74 61 69 6e 69 6e 67 20 4e 2e  | he.root.of.the.AST.containing.N. | 
| 2bae0 |  0a 49 66 20 4e 20 68 61 73 20 6e 6f 20 70 61 72    65 6e 74 20 70 6f 69 6e 74 65 72 2c 20 72 65 74  | .If.N.has.no.parent.pointer,.ret | 
| 2bb00 |  75 72 6e 73 20 4e 2e 22 0a 20 20 28 6c 65 74 20    28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f  | urns.N."...(let.((parent.(js2-no | 
| 2bb20 |  64 65 2d 70 61 72 65 6e 74 20 6e 29 29 29 0a 20    20 20 20 28 69 66 20 70 61 72 65 6e 74 0a 20 20  | de-parent.n))).....(if.parent... | 
| 2bb40 |  20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d    72 6f 6f 74 20 70 61 72 65 6e 74 29 0a 20 20 20  | ......(js2-node-root.parent).... | 
| 2bb60 |  20 20 20 6e 29 29 29 0a 0a 28 64 65 66 73 75 62    73 74 20 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72  | ...n)))..(defsubst.js2-node-shor | 
| 2bb80 |  74 2d 6e 61 6d 65 20 28 6e 29 0a 20 20 22 52 65    74 75 72 6e 20 74 68 65 20 73 68 6f 72 74 20 6e  | t-name.(n)..."Return.the.short.n | 
| 2bba0 |  61 6d 65 20 6f 66 20 6e 6f 64 65 20 4e 20 61 73    20 61 20 73 74 72 69 6e 67 2c 20 65 2e 67 2e 20  | ame.of.node.N.as.a.string,.e.g.. | 
| 2bbc0 |  60 6a 73 32 2d 69 66 2d 6e 6f 64 65 27 2e 22 0a    20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 73  | `js2-if-node'."...(let.((name.(s | 
| 2bbe0 |  79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 61 72 65 66    20 6e 20 30 29 29 29 29 0a 20 20 20 20 28 69 66  | ymbol-name.(aref.n.0)))).....(if | 
| 2bc00 |  20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d    70 20 22 63 6c 2d 73 74 72 75 63 74 2d 22 20 6e  | .(string-prefix-p."cl-struct-".n | 
| 2bc20 |  61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 75    62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d  | ame).........(substring.(symbol- | 
| 2bc40 |  6e 61 6d 65 20 28 61 72 65 66 20 6e 20 30 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | name.(aref.n.0))................ | 
| 2bc60 |  20 20 20 20 28 6c 65 6e 67 74 68 20 22 63 6c 2d    73 74 72 75 63 74 2d 22 29 29 0a 20 20 20 20 20  | ....(length."cl-struct-"))...... | 
| 2bc80 |  20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d  | .name)))..(defun.js2-node-child- | 
| 2bca0 |  6c 69 73 74 20 28 6e 6f 64 65 29 0a 20 20 22 52    65 74 75 72 6e 20 74 68 65 20 63 68 69 6c 64 20  | list.(node)..."Return.the.child. | 
| 2bcc0 |  6c 69 73 74 20 66 6f 72 20 4e 4f 44 45 2c 20 61    20 4c 69 73 70 20 6c 69 73 74 20 6f 66 20 6e 6f  | list.for.NODE,.a.Lisp.list.of.no | 
| 2bce0 |  64 65 73 2e 0a 57 6f 72 6b 73 20 66 6f 72 20 62    6c 6f 63 6b 20 6e 6f 64 65 73 2c 20 61 72 72 61  | des..Works.for.block.nodes,.arra | 
| 2bd00 |  79 20 6e 6f 64 65 73 2c 20 6f 62 6a 20 6c 69 74    65 72 61 6c 73 2c 20 66 75 6e 61 72 67 20 6c 69  | y.nodes,.obj.literals,.funarg.li | 
| 2bd20 |  73 74 73 2c 0a 76 61 72 20 64 65 63 6c 73 20 61    6e 64 20 74 72 79 20 6e 6f 64 65 73 20 28 66 6f  | sts,.var.decls.and.try.nodes.(fo | 
| 2bd40 |  72 20 63 61 74 63 68 20 63 6c 61 75 73 65 73 29    2e 20 20 4e 6f 74 65 20 74 68 61 74 20 79 6f 75  | r.catch.clauses)...Note.that.you | 
| 2bd60 |  20 73 68 6f 75 6c 64 20 63 61 6c 6c 0a 60 6a 73    32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64  | .should.call.`js2-block-node-kid | 
| 2bd80 |  73 27 20 6f 6e 20 74 68 65 20 66 75 6e 63 74 69    6f 6e 20 62 6f 64 79 20 66 6f 72 20 74 68 65 20  | s'.on.the.function.body.for.the. | 
| 2bda0 |  62 6f 64 79 20 73 74 61 74 65 6d 65 6e 74 73 2e    0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 66 6f 72  | body.statements..Returns.nil.for | 
| 2bdc0 |  20 7a 65 72 6f 2d 6c 65 6e 67 74 68 20 63 68 69    6c 64 20 6c 69 73 74 73 20 6f 72 20 75 6e 73 75  | .zero-length.child.lists.or.unsu | 
| 2bde0 |  70 70 6f 72 74 65 64 20 6e 6f 64 65 73 2e 22 0a    20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32  | pported.nodes."...(cond....((js2 | 
| 2be00 |  2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70    20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d  | -function-node-p.node).....(js2- | 
| 2be20 |  66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 61    72 61 6d 73 20 6e 6f 64 65 29 29 0a 20 20 20 28  | function-node-params.node))....( | 
| 2be40 |  28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d    70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32  | (js2-block-node-p.node).....(js2 | 
| 2be60 |  2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73    20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32  | -block-node-kids.node))....((js2 | 
| 2be80 |  2d 74 72 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65    29 0a 20 20 20 20 28 6a 73 32 2d 74 72 79 2d 6e  | -try-node-p.node).....(js2-try-n | 
| 2bea0 |  6f 64 65 2d 63 61 74 63 68 2d 63 6c 61 75 73 65    73 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73  | ode-catch-clauses.node))....((js | 
| 2bec0 |  32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e    6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 61 72  | 2-array-node-p.node).....(js2-ar | 
| 2bee0 |  72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e    6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6f  | ray-node-elems.node))....((js2-o | 
| 2bf00 |  62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64    65 29 0a 20 20 20 20 28 6a 73 32 2d 6f 62 6a 65  | bject-node-p.node).....(js2-obje | 
| 2bf20 |  63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f    64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63 61  | ct-node-elems.node))....((js2-ca | 
| 2bf40 |  6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a    20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f  | ll-node-p.node).....(js2-call-no | 
| 2bf60 |  64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20    20 20 28 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65  | de-args.node))....((js2-new-node | 
| 2bf80 |  2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73    32 2d 6e 65 77 2d 6e 6f 64 65 2d 61 72 67 73 20  | -p.node).....(js2-new-node-args. | 
| 2bfa0 |  6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d    76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 70 20  | node))....((js2-var-decl-node-p. | 
| 2bfc0 |  6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 76    61 72 2d 64 65 63 6c 2d 6e 6f 64 65 2d 6b 69 64  | node).....(js2-var-decl-node-kid | 
| 2bfe0 |  73 20 6e 6f 64 65 29 29 0a 20 20 20 28 74 0a 20    20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75  | s.node))....(t.....nil)))..(defu | 
| 2c000 |  6e 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 63    68 69 6c 64 2d 6c 69 73 74 20 28 6e 6f 64 65 20  | n.js2-node-set-child-list.(node. | 
| 2c020 |  6b 69 64 73 29 0a 20 20 22 53 65 74 20 74 68 65    20 63 68 69 6c 64 20 6c 69 73 74 20 66 6f 72 20  | kids)..."Set.the.child.list.for. | 
| 2c040 |  4e 4f 44 45 20 74 6f 20 4b 49 44 53 2e 22 0a 20    20 20 28 63 6f 6e 64 0a 20 20 20 20 28 28 6a 73  | NODE.to.KIDS."....(cond.....((js | 
| 2c060 |  32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d    70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65  | 2-function-node-p.node)......(se | 
| 2c080 |  74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e    2d 6e 6f 64 65 2d 70 61 72 61 6d 73 20 6e 6f 64  | tf.(js2-function-node-params.nod | 
| 2c0a0 |  65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 28    6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70  | e).kids)).....((js2-block-node-p | 
| 2c0c0 |  20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74    66 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64  | .node)......(setf.(js2-block-nod | 
| 2c0e0 |  65 2d 6b 69 64 73 20 6e 6f 64 65 29 20 6b 69 64    73 29 29 0a 20 20 20 20 28 28 6a 73 32 2d 74 72  | e-kids.node).kids)).....((js2-tr | 
| 2c100 |  79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20    20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 74  | y-node-p.node)......(setf.(js2-t | 
| 2c120 |  72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c    61 75 73 65 73 20 6e 6f 64 65 29 20 6b 69 64 73  | ry-node-catch-clauses.node).kids | 
| 2c140 |  29 29 0a 20 20 20 20 28 28 6a 73 32 2d 61 72 72    61 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a  | )).....((js2-array-node-p.node). | 
| 2c160 |  20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d    61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d 73  | .....(setf.(js2-array-node-elems | 
| 2c180 |  20 6e 6f 64 65 29 20 6b 69 64 73 29 29 0a 20 20    20 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e  | .node).kids)).....((js2-object-n | 
| 2c1a0 |  6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20    20 28 73 65 74 66 20 28 6a 73 32 2d 6f 62 6a 65  | ode-p.node)......(setf.(js2-obje | 
| 2c1c0 |  63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f    64 65 29 20 6b 69 64 73 29 29 0a 20 20 20 20 28  | ct-node-elems.node).kids)).....( | 
| 2c1e0 |  28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70    20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73 65 74  | (js2-call-node-p.node)......(set | 
| 2c200 |  66 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65    2d 61 72 67 73 20 6e 6f 64 65 29 20 6b 69 64 73  | f.(js2-call-node-args.node).kids | 
| 2c220 |  29 29 0a 20 20 20 20 28 28 6a 73 32 2d 6e 65 77    2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20  | )).....((js2-new-node-p.node)... | 
| 2c240 |  20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 65    77 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65  | ...(setf.(js2-new-node-args.node | 
| 2c260 |  29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 28 6a    73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65  | ).kids)).....((js2-var-decl-node | 
| 2c280 |  2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 28 73    65 74 66 20 28 6a 73 32 2d 76 61 72 2d 64 65 63  | -p.node)......(setf.(js2-var-dec | 
| 2c2a0 |  6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 6e 6f 64 65    29 20 6b 69 64 73 29 29 0a 20 20 20 20 28 74 0a  | l-node-kids.node).kids)).....(t. | 
| 2c2c0 |  20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 73    75 70 70 6f 72 74 65 64 20 6e 6f 64 65 20 74 79  | .....(error."Unsupported.node.ty | 
| 2c2e0 |  70 65 3a 20 25 73 22 20 28 6a 73 32 2d 6e 6f 64    65 2d 73 68 6f 72 74 2d 6e 61 6d 65 20 6e 6f 64  | pe:.%s".(js2-node-short-name.nod | 
| 2c300 |  65 29 29 29 29 0a 20 20 20 6b 69 64 73 29 0a 0a    3b 3b 20 41 6c 6c 20 62 65 63 61 75 73 65 20 43  | e))))....kids)..;;.All.because.C | 
| 2c320 |  6f 6d 6d 6f 6e 20 4c 69 73 70 20 64 6f 65 73 6e    27 74 20 73 75 70 70 6f 72 74 20 6d 75 6c 74 69  | ommon.Lisp.doesn't.support.multi | 
| 2c340 |  70 6c 65 20 69 6e 68 65 72 69 74 61 6e 63 65 20    66 6f 72 20 64 65 66 73 74 72 75 63 74 73 2e 0a  | ple.inheritance.for.defstructs.. | 
| 2c360 |  28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70 61    72 65 6e 2d 65 78 70 72 2d 6e 6f 64 65 73 0a 20  | (defconst.js2-paren-expr-nodes.. | 
| 2c380 |  20 27 28 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32    2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 0a  | .'(cl-struct-js2-comp-loop-node. | 
| 2c3a0 |  20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73    32 2d 63 6f 6d 70 2d 6e 6f 64 65 0a 20 20 20 20  | ....cl-struct-js2-comp-node..... | 
| 2c3c0 |  63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 63 61    6c 6c 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73  | cl-struct-js2-call-node.....cl-s | 
| 2c3e0 |  74 72 75 63 74 2d 6a 73 32 2d 63 61 74 63 68 2d    6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75  | truct-js2-catch-node.....cl-stru | 
| 2c400 |  63 74 2d 6a 73 32 2d 64 6f 2d 6e 6f 64 65 0a 20    20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32  | ct-js2-do-node.....cl-struct-js2 | 
| 2c420 |  2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 0a 20    20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32  | -elem-get-node.....cl-struct-js2 | 
| 2c440 |  2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 0a 20 20 20    20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 66  | -for-in-node.....cl-struct-js2-f | 
| 2c460 |  6f 72 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73    74 72 75 63 74 2d 6a 73 32 2d 66 75 6e 63 74 69  | or-node.....cl-struct-js2-functi | 
| 2c480 |  6f 6e 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73    74 72 75 63 74 2d 6a 73 32 2d 69 66 2d 6e 6f 64  | on-node.....cl-struct-js2-if-nod | 
| 2c4a0 |  65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d    6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 0a 20 20 20  | e.....cl-struct-js2-let-node.... | 
| 2c4c0 |  20 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 6e    65 77 2d 6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73  | .cl-struct-js2-new-node.....cl-s | 
| 2c4e0 |  74 72 75 63 74 2d 6a 73 32 2d 70 61 72 65 6e 2d    6e 6f 64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75  | truct-js2-paren-node.....cl-stru | 
| 2c500 |  63 74 2d 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f    64 65 0a 20 20 20 20 63 6c 2d 73 74 72 75 63 74  | ct-js2-switch-node.....cl-struct | 
| 2c520 |  2d 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 0a    20 20 20 20 63 6c 2d 73 74 72 75 63 74 2d 6a 73  | -js2-while-node.....cl-struct-js | 
| 2c540 |  32 2d 77 69 74 68 2d 6e 6f 64 65 0a 20 20 20 20    63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d 78 6d  | 2-with-node.....cl-struct-js2-xm | 
| 2c560 |  6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64 65    29 0a 20 20 22 4e 6f 64 65 20 74 79 70 65 73 20  | l-dot-query-node)..."Node.types. | 
| 2c580 |  74 68 61 74 20 63 61 6e 20 68 61 76 65 20 61 20    70 61 72 65 6e 74 68 65 73 69 7a 65 64 20 63 68  | that.can.have.a.parenthesized.ch | 
| 2c5a0 |  69 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a    49 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 6e  | ild.expression..In.particular,.n | 
| 2c5c0 |  6f 64 65 73 20 74 68 61 74 20 72 65 73 70 6f 6e    64 20 74 6f 20 60 6a 73 32 2d 6e 6f 64 65 2d 6c  | odes.that.respond.to.`js2-node-l | 
| 2c5e0 |  70 27 20 61 6e 64 20 60 6a 73 32 2d 6e 6f 64 65    2d 72 70 27 2e 22 29 0a 0a 28 64 65 66 73 75 62  | p'.and.`js2-node-rp'.")..(defsub | 
| 2c600 |  73 74 20 6a 73 32 2d 70 61 72 65 6e 2d 65 78 70    72 2d 6e 6f 64 65 2d 70 20 28 6e 6f 64 65 29 0a  | st.js2-paren-expr-node-p.(node). | 
| 2c620 |  20 20 22 52 65 74 75 72 6e 20 74 20 66 6f 72 20    6e 6f 64 65 73 20 74 68 61 74 20 74 79 70 69 63  | .."Return.t.for.nodes.that.typic | 
| 2c640 |  61 6c 6c 79 20 68 61 76 65 20 61 20 70 61 72 65    6e 74 68 65 73 69 7a 65 64 20 63 68 69 6c 64 20  | ally.have.a.parenthesized.child. | 
| 2c660 |  65 78 70 72 65 73 73 69 6f 6e 2e 0a 55 73 65 66    75 6c 20 66 6f 72 20 63 6f 6d 70 75 74 69 6e 67  | expression..Useful.for.computing | 
| 2c680 |  20 74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e    20 61 6e 63 68 6f 72 73 20 66 6f 72 20 61 72 67  | .the.indentation.anchors.for.arg | 
| 2c6a0 |  2d 6c 69 73 74 73 20 61 6e 64 20 63 6f 6e 64 69    74 69 6f 6e 73 2e 0a 4e 6f 74 65 20 74 68 61 74  | -lists.and.conditions..Note.that | 
| 2c6c0 |  20 69 74 20 6d 61 79 20 72 65 74 75 72 6e 20 61    20 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 2c  | .it.may.return.a.false.positive, | 
| 2c6e0 |  20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 77 68    65 6e 20 4e 4f 44 45 20 69 73 0a 61 20 60 6a 73  | .for.instance.when.NODE.is.a.`js | 
| 2c700 |  32 2d 6e 65 77 2d 6e 6f 64 65 27 20 61 6e 64 20    74 68 65 72 65 20 61 72 65 20 6e 6f 20 61 72 67  | 2-new-node'.and.there.are.no.arg | 
| 2c720 |  75 6d 65 6e 74 73 20 6f 72 20 70 61 72 65 6e 74    68 65 73 65 73 2e 22 0a 20 20 28 6d 65 6d 71 20  | uments.or.parentheses."...(memq. | 
| 2c740 |  28 61 72 65 66 20 6e 6f 64 65 20 30 29 20 6a 73    32 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6e 6f 64  | (aref.node.0).js2-paren-expr-nod | 
| 2c760 |  65 73 29 29 0a 0a 3b 3b 20 46 61 6b 65 20 70 6f    6c 79 6d 6f 72 70 68 69 73 6d 2e 2e 2e 20 79 65  | es))..;;.Fake.polymorphism....ye | 
| 2c780 |  63 68 2e 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e    6f 64 65 2d 6c 70 20 28 6e 6f 64 65 29 0a 20 20  | ch..(defun.js2-node-lp.(node)... | 
| 2c7a0 |  22 52 65 74 75 72 6e 20 72 65 6c 61 74 69 76 65    20 6c 65 66 74 2d 70 61 72 65 6e 20 70 6f 73 69  | "Return.relative.left-paren.posi | 
| 2c7c0 |  74 69 6f 6e 20 66 6f 72 20 4e 4f 44 45 2c 20 69    66 20 61 70 70 6c 69 63 61 62 6c 65 2e 0a 46 6f  | tion.for.NODE,.if.applicable..Fo | 
| 2c7e0 |  72 20 60 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d    6e 6f 64 65 27 20 73 74 72 75 63 74 73 2c 20 72  | r.`js2-elem-get-node'.structs,.r | 
| 2c800 |  65 74 75 72 6e 73 20 6c 65 66 74 2d 62 72 61 63    6b 65 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 4e 6f  | eturns.left-bracket.position..No | 
| 2c820 |  74 65 20 74 68 61 74 20 74 68 65 20 70 6f 73 69    74 69 6f 6e 20 6d 61 79 20 62 65 20 6e 69 6c 20  | te.that.the.position.may.be.nil. | 
| 2c840 |  69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 61    20 70 61 72 73 65 20 65 72 72 6f 72 2e 22 0a 20  | in.the.case.of.a.parse.error.".. | 
| 2c860 |  20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d    65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 70 20  | .(cond....((js2-elem-get-node-p. | 
| 2c880 |  6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 65    6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 6c 62 20  | node).....(js2-elem-get-node-lb. | 
| 2c8a0 |  6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d    6c 6f 6f 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65  | node))....((js2-loop-node-p.node | 
| 2c8c0 |  29 0a 20 20 20 20 28 6a 73 32 2d 6c 6f 6f 70 2d    6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20  | ).....(js2-loop-node-lp.node)).. | 
| 2c8e0 |  20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e    2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20  | ..((js2-function-node-p.node)... | 
| 2c900 |  20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d    6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20  | ..(js2-function-node-lp.node)).. | 
| 2c920 |  20 20 28 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d    70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32  | ..((js2-if-node-p.node).....(js2 | 
| 2c940 |  2d 69 66 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65    29 29 0a 20 20 20 28 28 6a 73 32 2d 6e 65 77 2d  | -if-node-lp.node))....((js2-new- | 
| 2c960 |  6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20    20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 6c  | node-p.node).....(js2-new-node-l | 
| 2c980 |  70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73    32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f  | p.node))....((js2-call-node-p.no | 
| 2c9a0 |  64 65 29 0a 20 20 20 20 28 6a 73 32 2d 63 61 6c    6c 2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29  | de).....(js2-call-node-lp.node)) | 
| 2c9c0 |  0a 20 20 20 28 28 6a 73 32 2d 70 61 72 65 6e 2d    6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20  | ....((js2-paren-node-p.node).... | 
| 2c9e0 |  20 30 29 0a 20 20 20 28 28 6a 73 32 2d 73 77 69    74 63 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | .0)....((js2-switch-node-p.node) | 
| 2ca00 |  0a 20 20 20 20 28 6a 73 32 2d 73 77 69 74 63 68    2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a  | .....(js2-switch-node-lp.node)). | 
| 2ca20 |  20 20 20 28 28 6a 73 32 2d 63 61 74 63 68 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20  | ...((js2-catch-node-p.node)..... | 
| 2ca40 |  28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64 65 2d    6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a  | (js2-catch-node-lp.node))....((j | 
| 2ca60 |  73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f    64 65 29 0a 20 20 20 20 28 6a 73 32 2d 6c 65 74  | s2-let-node-p.node).....(js2-let | 
| 2ca80 |  2d 6e 6f 64 65 2d 6c 70 20 6e 6f 64 65 29 29 0a    20 20 20 28 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f  | -node-lp.node))....((js2-comp-no | 
| 2caa0 |  64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 30    29 0a 20 20 20 28 28 6a 73 32 2d 77 69 74 68 2d  | de-p.node).....0)....((js2-with- | 
| 2cac0 |  6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20    20 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d  | node-p.node).....(js2-with-node- | 
| 2cae0 |  6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a    73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79  | lp.node))....((js2-xml-dot-query | 
| 2cb00 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20    20 20 28 31 2b 20 28 6a 73 32 2d 69 6e 66 69 78  | -node-p.node).....(1+.(js2-infix | 
| 2cb20 |  2d 6e 6f 64 65 2d 6f 70 2d 70 6f 73 20 6e 6f 64    65 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28  | -node-op-pos.node)))....(t.....( | 
| 2cb40 |  65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 74    65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 73  | error."Unsupported.node.type:.%s | 
| 2cb60 |  22 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72    74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29 29  | ".(js2-node-short-name.node))))) | 
| 2cb80 |  0a 0a 3b 3b 20 46 61 6b 65 20 70 6f 6c 79 6d 6f    72 70 68 69 73 6d 2e 2e 2e 20 62 6c 65 63 68 2e  | ..;;.Fake.polymorphism....blech. | 
| 2cba0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65    2d 72 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65  | .(defun.js2-node-rp.(node)..."Re | 
| 2cbc0 |  74 75 72 6e 20 72 65 6c 61 74 69 76 65 20 72 69    67 68 74 2d 70 61 72 65 6e 20 70 6f 73 69 74 69  | turn.relative.right-paren.positi | 
| 2cbe0 |  6f 6e 20 66 6f 72 20 4e 4f 44 45 2c 20 69 66 20    61 70 70 6c 69 63 61 62 6c 65 2e 0a 46 6f 72 20  | on.for.NODE,.if.applicable..For. | 
| 2cc00 |  60 6a 73 32 2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f    64 65 27 20 73 74 72 75 63 74 73 2c 20 72 65 74  | `js2-elem-get-node'.structs,.ret | 
| 2cc20 |  75 72 6e 73 20 72 69 67 68 74 2d 62 72 61 63 6b    65 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 4e 6f 74  | urns.right-bracket.position..Not | 
| 2cc40 |  65 20 74 68 61 74 20 74 68 65 20 70 6f 73 69 74    69 6f 6e 20 6d 61 79 20 62 65 20 6e 69 6c 20 69  | e.that.the.position.may.be.nil.i | 
| 2cc60 |  6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 61 20    70 61 72 73 65 20 65 72 72 6f 72 2e 22 0a 20 20  | n.the.case.of.a.parse.error."... | 
| 2cc80 |  28 63 6f 6e 64 0a 20 20 20 28 28 6a 73 32 2d 65    6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e  | (cond....((js2-elem-get-node-p.n | 
| 2cca0 |  6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d 65 6c    65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 72 62 20 6e  | ode).....(js2-elem-get-node-rb.n | 
| 2ccc0 |  6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 6c    6f 6f 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | ode))....((js2-loop-node-p.node) | 
| 2cce0 |  0a 20 20 20 20 28 6a 73 32 2d 6c 6f 6f 70 2d 6e    6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20  | .....(js2-loop-node-rp.node))... | 
| 2cd00 |  20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d    6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20  | .((js2-function-node-p.node).... | 
| 2cd20 |  20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e    6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a 20 20  | .(js2-function-node-rp.node))... | 
| 2cd40 |  20 28 28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 70    20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d  | .((js2-if-node-p.node).....(js2- | 
| 2cd60 |  69 66 2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29    29 0a 20 20 20 28 28 6a 73 32 2d 6e 65 77 2d 6e  | if-node-rp.node))....((js2-new-n | 
| 2cd80 |  6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20    28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d 72 70  | ode-p.node).....(js2-new-node-rp | 
| 2cda0 |  20 6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32    2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64  | .node))....((js2-call-node-p.nod | 
| 2cdc0 |  65 29 0a 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c    2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a  | e).....(js2-call-node-rp.node)). | 
| 2cde0 |  20 20 20 28 28 6a 73 32 2d 70 61 72 65 6e 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20  | ...((js2-paren-node-p.node)..... | 
| 2ce00 |  28 31 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65    6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 28 28 6a  | (1-.(js2-node-len.node)))....((j | 
| 2ce20 |  73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 70    20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d  | s2-switch-node-p.node).....(js2- | 
| 2ce40 |  73 77 69 74 63 68 2d 6e 6f 64 65 2d 72 70 20 6e    6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63  | switch-node-rp.node))....((js2-c | 
| 2ce60 |  61 74 63 68 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65    29 0a 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68  | atch-node-p.node).....(js2-catch | 
| 2ce80 |  2d 6e 6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 0a    20 20 20 28 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64  | -node-rp.node))....((js2-let-nod | 
| 2cea0 |  65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a    73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 72 70 20 6e  | e-p.node).....(js2-let-node-rp.n | 
| 2cec0 |  6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 63    6f 6d 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | ode))....((js2-comp-node-p.node) | 
| 2cee0 |  0a 20 20 20 20 28 31 2d 20 28 6a 73 32 2d 6e 6f    64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a 20  | .....(1-.(js2-node-len.node))).. | 
| 2cf00 |  20 20 28 28 6a 73 32 2d 77 69 74 68 2d 6e 6f 64    65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6a  | ..((js2-with-node-p.node).....(j | 
| 2cf20 |  73 32 2d 77 69 74 68 2d 6e 6f 64 65 2d 72 70 20    6e 6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d  | s2-with-node-rp.node))....((js2- | 
| 2cf40 |  78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f    64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28  | xml-dot-query-node-p.node).....( | 
| 2cf60 |  31 2b 20 28 6a 73 32 2d 78 6d 6c 2d 64 6f 74 2d    71 75 65 72 79 2d 6e 6f 64 65 2d 72 70 20 6e 6f  | 1+.(js2-xml-dot-query-node-rp.no | 
| 2cf80 |  64 65 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20    28 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72  | de)))....(t.....(error."Unsuppor | 
| 2cfa0 |  74 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25    73 22 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f  | ted.node.type:.%s".(js2-node-sho | 
| 2cfc0 |  72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29 29    29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32  | rt-name.node)))))..(defsubst.js2 | 
| 2cfe0 |  2d 6e 6f 64 65 2d 66 69 72 73 74 2d 63 68 69 6c    64 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75  | -node-first-child.(node)..."Retu | 
| 2d000 |  72 6e 20 74 68 65 20 66 69 72 73 74 20 65 6c 65    6d 65 6e 74 20 6f 66 20 60 6a 73 32 2d 6e 6f 64  | rn.the.first.element.of.`js2-nod | 
| 2d020 |  65 2d 63 68 69 6c 64 2d 6c 69 73 74 27 20 66 6f    72 20 4e 4f 44 45 2e 22 0a 20 20 28 63 61 72 20  | e-child-list'.for.NODE."...(car. | 
| 2d040 |  28 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d    6c 69 73 74 20 6e 6f 64 65 29 29 29 0a 0a 28 64  | (js2-node-child-list.node)))..(d | 
| 2d060 |  65 66 73 75 62 73 74 20 6a 73 32 2d 6e 6f 64 65    2d 6c 61 73 74 2d 63 68 69 6c 64 20 28 6e 6f 64  | efsubst.js2-node-last-child.(nod | 
| 2d080 |  65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65    20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 6f 66  | e)..."Return.the.last.element.of | 
| 2d0a0 |  20 60 6a 73 32 2d 6e 6f 64 65 2d 6c 61 73 74 2d    63 68 69 6c 64 27 20 66 6f 72 20 4e 4f 44 45 2e  | .`js2-node-last-child'.for.NODE. | 
| 2d0c0 |  22 0a 20 20 28 63 61 72 20 28 6c 61 73 74 20 28    6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c  | "...(car.(last.(js2-node-child-l | 
| 2d0e0 |  69 73 74 20 6e 6f 64 65 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 70 72  | ist.node))))..(defun.js2-node-pr | 
| 2d100 |  65 76 2d 73 69 62 6c 69 6e 67 20 28 6e 6f 64 65    29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20  | ev-sibling.(node)..."Return.the. | 
| 2d120 |  70 72 65 76 69 6f 75 73 20 73 74 61 74 65 6d 65    6e 74 20 69 6e 20 70 61 72 65 6e 74 2e 0a 57 6f  | previous.statement.in.parent..Wo | 
| 2d140 |  72 6b 73 20 66 6f 72 20 70 61 72 65 6e 74 73 20    73 75 70 70 6f 72 74 65 64 20 62 79 20 60 6a 73  | rks.for.parents.supported.by.`js | 
| 2d160 |  32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73    74 27 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20  | 2-node-child-list'..Returns.nil. | 
| 2d180 |  69 66 20 4e 4f 44 45 20 69 73 20 6e 6f 74 20 69    6e 20 74 68 65 20 70 61 72 65 6e 74 2c 20 6f 72  | if.NODE.is.not.in.the.parent,.or | 
| 2d1a0 |  20 50 41 52 45 4e 54 20 69 73 0a 6e 6f 74 20 61    20 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 2c  | .PARENT.is.not.a.supported.node, | 
| 2d1c0 |  20 6f 72 20 69 66 20 4e 4f 44 45 20 69 73 20 74    68 65 20 66 69 72 73 74 20 63 68 69 6c 64 2e 22  | .or.if.NODE.is.the.first.child." | 
| 2d1e0 |  0a 20 20 28 6c 65 74 2a 20 28 28 70 20 28 6a 73    32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f  | ...(let*.((p.(js2-node-parent.no | 
| 2d200 |  64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6b    69 64 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 63 68  | de))..........(kids.(js2-node-ch | 
| 2d220 |  69 6c 64 2d 6c 69 73 74 20 70 29 29 0a 20 20 20    20 20 20 20 20 20 28 73 69 62 20 28 63 61 72 20  | ild-list.p))..........(sib.(car. | 
| 2d240 |  6b 69 64 73 29 29 29 0a 20 20 20 20 28 77 68 69    6c 65 20 28 61 6e 64 20 6b 69 64 73 0a 20 20 20  | kids))).....(while.(and.kids.... | 
| 2d260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f    74 20 28 65 71 20 6e 6f 64 65 20 28 63 61 64 72  | .............(not.(eq.node.(cadr | 
| 2d280 |  20 6b 69 64 73 29 29 29 29 0a 20 20 20 20 20 20    28 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20  | .kids)))).......(setq.kids.(cdr. | 
| 2d2a0 |  6b 69 64 73 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 73 69 62 20 28 63 61 72 20 6b 69 64 73 29  | kids).............sib.(car.kids) | 
| 2d2c0 |  29 29 0a 20 20 20 20 73 69 62 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 6e 65  | )).....sib))..(defun.js2-node-ne | 
| 2d2e0 |  78 74 2d 73 69 62 6c 69 6e 67 20 28 6e 6f 64 65    29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20  | xt-sibling.(node)..."Return.the. | 
| 2d300 |  6e 65 78 74 20 73 74 61 74 65 6d 65 6e 74 20 69    6e 20 70 61 72 65 6e 74 20 62 6c 6f 63 6b 2e 0a  | next.statement.in.parent.block.. | 
| 2d320 |  52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 4e    4f 44 45 20 69 73 20 6e 6f 74 20 69 6e 20 74 68  | Returns.nil.if.NODE.is.not.in.th | 
| 2d340 |  65 20 62 6c 6f 63 6b 2c 20 6f 72 20 50 41 52 45    4e 54 20 69 73 20 6e 6f 74 0a 61 20 62 6c 6f 63  | e.block,.or.PARENT.is.not.a.bloc | 
| 2d360 |  6b 20 6e 6f 64 65 2c 20 6f 72 20 69 66 20 4e 4f    44 45 20 69 73 20 74 68 65 20 6c 61 73 74 20 73  | k.node,.or.if.NODE.is.the.last.s | 
| 2d380 |  74 61 74 65 6d 65 6e 74 2e 22 0a 20 20 28 6c 65    74 2a 20 28 28 70 20 28 6a 73 32 2d 6e 6f 64 65  | tatement."...(let*.((p.(js2-node | 
| 2d3a0 |  2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 20 20 20 28 6b 69 64 73 20 28 6a  | -parent.node))..........(kids.(j | 
| 2d3c0 |  73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69    73 74 20 70 29 29 29 0a 20 20 20 20 28 77 68 69  | s2-node-child-list.p))).....(whi | 
| 2d3e0 |  6c 65 20 28 61 6e 64 20 6b 69 64 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f  | le.(and.kids.................(no | 
| 2d400 |  74 20 28 65 71 20 6e 6f 64 65 20 28 63 61 72 20    6b 69 64 73 29 29 29 29 0a 20 20 20 20 20 20 28  | t.(eq.node.(car.kids)))).......( | 
| 2d420 |  73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20 6b    69 64 73 29 29 29 0a 20 20 20 20 28 63 61 64 72  | setq.kids.(cdr.kids))).....(cadr | 
| 2d440 |  20 6b 69 64 73 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64 2d 63  | .kids)))..(defun.js2-node-find-c | 
| 2d460 |  68 69 6c 64 2d 62 65 66 6f 72 65 20 28 70 6f 73    20 70 61 72 65 6e 74 20 26 6f 70 74 69 6f 6e 61  | hild-before.(pos.parent.&optiona | 
| 2d480 |  6c 20 61 66 74 65 72 29 0a 20 20 22 46 69 6e 64    20 74 68 65 20 6c 61 73 74 20 63 68 69 6c 64 20  | l.after)..."Find.the.last.child. | 
| 2d4a0 |  74 68 61 74 20 73 74 61 72 74 73 20 62 65 66 6f    72 65 20 50 4f 53 20 69 6e 20 70 61 72 65 6e 74  | that.starts.before.POS.in.parent | 
| 2d4c0 |  2e 0a 49 66 20 41 46 54 45 52 20 69 73 20 6e 6f    6e 2d 6e 69 6c 2c 20 72 65 74 75 72 6e 73 20 66  | ..If.AFTER.is.non-nil,.returns.f | 
| 2d4e0 |  69 72 73 74 20 63 68 69 6c 64 20 73 74 61 72 74    69 6e 67 20 61 66 74 65 72 20 50 4f 53 2e 0a 50  | irst.child.starting.after.POS..P | 
| 2d500 |  4f 53 20 69 73 20 61 6e 20 61 62 73 6f 6c 75 74    65 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f  | OS.is.an.absolute.buffer.positio | 
| 2d520 |  6e 2e 20 20 50 41 52 45 4e 54 20 69 73 20 61 6e    79 20 6e 6f 64 65 0a 73 75 70 70 6f 72 74 65 64  | n...PARENT.is.any.node.supported | 
| 2d540 |  20 62 79 20 60 6a 73 32 2d 6e 6f 64 65 2d 63 68    69 6c 64 2d 6c 69 73 74 27 2e 0a 52 65 74 75 72  | .by.`js2-node-child-list'..Retur | 
| 2d560 |  6e 73 20 6e 69 6c 20 69 66 20 6e 6f 20 61 70 70    6c 69 63 61 62 6c 65 20 63 68 69 6c 64 20 69 73  | ns.nil.if.no.applicable.child.is | 
| 2d580 |  20 66 6f 75 6e 64 2e 22 0a 20 20 28 6c 65 74 20    28 28 6b 69 64 73 20 28 69 66 20 28 6a 73 32 2d  | .found."...(let.((kids.(if.(js2- | 
| 2d5a0 |  66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20    70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20  | function-node-p.parent)......... | 
| 2d5c0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62    6c 6f 63 6b 2d 6e 6f 64 65 2d 6b 69 64 73 20 28  | ..........(js2-block-node-kids.( | 
| 2d5e0 |  6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64    65 2d 62 6f 64 79 20 70 61 72 65 6e 74 29 29 0a  | js2-function-node-body.parent)). | 
| 2d600 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d  | ................(js2-node-child- | 
| 2d620 |  6c 69 73 74 20 70 61 72 65 6e 74 29 29 29 0a 20    20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73 32  | list.parent))).........(beg.(js2 | 
| 2d640 |  2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 28 69    66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d  | -node-abs-pos.(if.(js2-function- | 
| 2d660 |  6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | node-p.parent).................. | 
| 2d680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d  | ..................(js2-function- | 
| 2d6a0 |  6e 6f 64 65 2d 62 6f 64 79 20 70 61 72 65 6e 74    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | node-body.parent)............... | 
| 2d6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20  | ...................parent))).... | 
| 2d6e0 |  20 20 20 20 20 6b 69 64 20 72 65 73 75 6c 74 20    66 6e 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74  | .....kid.result.fn.........(cont | 
| 2d700 |  69 6e 75 65 20 74 29 29 0a 20 20 20 20 28 73 65    74 71 20 66 6e 20 28 69 66 20 61 66 74 65 72 20  | inue.t)).....(setq.fn.(if.after. | 
| 2d720 |  27 3e 3d 20 27 3c 29 29 0a 20 20 20 20 28 77 68    69 6c 65 20 28 61 6e 64 20 6b 69 64 73 20 63 6f  | '>=.'<)).....(while.(and.kids.co | 
| 2d740 |  6e 74 69 6e 75 65 29 0a 20 20 20 20 20 20 28 73    65 74 71 20 6b 69 64 20 28 63 61 72 20 6b 69 64  | ntinue).......(setq.kid.(car.kid | 
| 2d760 |  73 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66    75 6e 63 61 6c 6c 20 66 6e 20 28 2b 20 62 65 67  | s)).......(if.(funcall.fn.(+.beg | 
| 2d780 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6b    69 64 29 29 20 70 6f 73 29 0a 20 20 20 20 20 20  | .(js2-node-pos.kid)).pos)....... | 
| 2d7a0 |  20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c 74    20 6b 69 64 0a 20 20 20 20 20 20 20 20 20 20 20  | ....(setq.result.kid............ | 
| 2d7c0 |  20 20 20 20 20 63 6f 6e 74 69 6e 75 65 20 28 6e    6f 74 20 61 66 74 65 72 29 29 0a 20 20 20 20 20  | .....continue.(not.after))...... | 
| 2d7e0 |  20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75    65 20 61 66 74 65 72 29 29 0a 20 20 20 20 20 20  | ...(setq.continue.after))....... | 
| 2d800 |  28 73 65 74 71 20 6b 69 64 73 20 28 63 64 72 20    6b 69 64 73 29 29 29 0a 20 20 20 20 72 65 73 75  | (setq.kids.(cdr.kids))).....resu | 
| 2d820 |  6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 6e 6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64  | lt))..(defun.js2-node-find-child | 
| 2d840 |  2d 61 66 74 65 72 20 28 70 6f 73 20 70 61 72 65    6e 74 29 0a 20 20 22 46 69 6e 64 20 66 69 72 73  | -after.(pos.parent)..."Find.firs | 
| 2d860 |  74 20 63 68 69 6c 64 20 74 68 61 74 20 73 74 61    72 74 73 20 61 66 74 65 72 20 50 4f 53 20 69 6e  | t.child.that.starts.after.POS.in | 
| 2d880 |  20 70 61 72 65 6e 74 2e 0a 50 4f 53 20 69 73 20    61 6e 20 61 62 73 6f 6c 75 74 65 20 62 75 66 66  | .parent..POS.is.an.absolute.buff | 
| 2d8a0 |  65 72 20 70 6f 73 69 74 69 6f 6e 2e 20 20 50 41    52 45 4e 54 20 69 73 20 61 6e 79 20 6e 6f 64 65  | er.position...PARENT.is.any.node | 
| 2d8c0 |  0a 73 75 70 70 6f 72 74 65 64 20 62 79 20 60 6a    73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c 69  | .supported.by.`js2-node-child-li | 
| 2d8e0 |  73 74 27 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c    20 69 66 20 6e 6f 20 61 70 70 6c 69 63 61 62 6c  | st'..Returns.nil.if.no.applicabl | 
| 2d900 |  65 20 63 68 69 6c 64 20 69 73 20 66 6f 75 6e 64    2e 22 0a 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 66  | e.child.is.found."...(js2-node-f | 
| 2d920 |  69 6e 64 2d 63 68 69 6c 64 2d 62 65 66 6f 72 65    20 70 6f 73 20 70 61 72 65 6e 74 20 27 61 66 74  | ind-child-before.pos.parent.'aft | 
| 2d940 |  65 72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 6e 6f 64 65 2d 72 65 70 6c 61 63 65 2d 63 68  | er))..(defun.js2-node-replace-ch | 
| 2d960 |  69 6c 64 20 28 70 6f 73 20 70 61 72 65 6e 74 20    6e 65 77 2d 6e 6f 64 65 29 0a 20 20 22 52 65 70  | ild.(pos.parent.new-node)..."Rep | 
| 2d980 |  6c 61 63 65 20 6e 6f 64 65 20 61 74 20 69 6e 64    65 78 20 50 4f 53 20 69 6e 20 50 41 52 45 4e 54  | lace.node.at.index.POS.in.PARENT | 
| 2d9a0 |  20 77 69 74 68 20 4e 45 57 2d 4e 4f 44 45 2e 0a    4f 6e 6c 79 20 77 6f 72 6b 73 20 66 6f 72 20 70  | .with.NEW-NODE..Only.works.for.p | 
| 2d9c0 |  61 72 65 6e 74 73 20 73 75 70 70 6f 72 74 65 64    20 62 79 20 60 6a 73 32 2d 6e 6f 64 65 2d 63 68  | arents.supported.by.`js2-node-ch | 
| 2d9e0 |  69 6c 64 2d 6c 69 73 74 27 2e 22 0a 20 20 28 6c    65 74 20 28 28 6b 69 64 73 20 28 6a 73 32 2d 6e  | ild-list'."...(let.((kids.(js2-n | 
| 2da00 |  6f 64 65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70    61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20  | ode-child-list.parent))......... | 
| 2da20 |  28 69 20 30 29 29 0a 20 20 20 20 28 77 68 69 6c    65 20 28 3c 20 69 20 70 6f 73 29 0a 20 20 20 20  | (i.0)).....(while.(<.i.pos)..... | 
| 2da40 |  20 20 28 73 65 74 71 20 6b 69 64 73 20 28 63 64    72 20 6b 69 64 73 29 0a 20 20 20 20 20 20 20 20  | ..(setq.kids.(cdr.kids)......... | 
| 2da60 |  20 20 20 20 69 20 28 31 2b 20 69 29 29 29 0a 20    20 20 20 28 73 65 74 63 61 72 20 6b 69 64 73 20  | ....i.(1+.i))).....(setcar.kids. | 
| 2da80 |  6e 65 77 2d 6e 6f 64 65 29 0a 20 20 20 20 28 6a    73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c  | new-node).....(js2-node-add-chil | 
| 2daa0 |  64 72 65 6e 20 70 61 72 65 6e 74 20 6e 65 77 2d    6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20  | dren.parent.new-node)))..(defun. | 
| 2dac0 |  6a 73 32 2d 6e 6f 64 65 2d 62 75 66 66 65 72 20    28 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68  | js2-node-buffer.(n)..."Return.th | 
| 2dae0 |  65 20 62 75 66 66 65 72 20 61 73 73 6f 63 69 61    74 65 64 20 77 69 74 68 20 41 53 54 20 4e 2e 0a  | e.buffer.associated.with.AST.N.. | 
| 2db00 |  52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 74    68 65 20 62 75 66 66 65 72 20 69 73 20 6e 6f 74  | Returns.nil.if.the.buffer.is.not | 
| 2db20 |  20 73 65 74 20 61 73 20 61 20 70 72 6f 70 65 72    74 79 20 6f 6e 20 74 68 65 20 72 6f 6f 74 0a 6e  | .set.as.a.property.on.the.root.n | 
| 2db40 |  6f 64 65 2c 20 6f 72 20 69 66 20 70 61 72 65 6e    74 20 6c 69 6e 6b 73 20 77 65 72 65 20 6e 6f 74  | ode,.or.if.parent.links.were.not | 
| 2db60 |  20 72 65 63 6f 72 64 65 64 20 64 75 72 69 6e 67    20 70 61 72 73 69 6e 67 2e 22 0a 20 20 28 6c 65  | .recorded.during.parsing."...(le | 
| 2db80 |  74 20 28 28 72 6f 6f 74 20 28 6a 73 32 2d 6e 6f    64 65 2d 72 6f 6f 74 20 6e 29 29 29 0a 20 20 20  | t.((root.(js2-node-root.n))).... | 
| 2dba0 |  20 28 61 6e 64 20 72 6f 6f 74 0a 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f  | .(and.root..........(js2-ast-roo | 
| 2dbc0 |  74 2d 70 20 72 6f 6f 74 29 0a 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74  | t-p.root)..........(js2-ast-root | 
| 2dbe0 |  2d 62 75 66 66 65 72 20 72 6f 6f 74 29 29 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 6c 6f  | -buffer.root))))..(defun.js2-blo | 
| 2dc00 |  63 6b 2d 6e 6f 64 65 2d 70 75 73 68 20 28 6e 20    6b 69 64 29 0a 20 20 22 50 75 73 68 20 6a 73 32  | ck-node-push.(n.kid)..."Push.js2 | 
| 2dc20 |  2d 6e 6f 64 65 20 4b 49 44 20 6f 6e 74 6f 20 74    68 65 20 65 6e 64 20 6f 66 20 6a 73 32 2d 62 6c  | -node.KID.onto.the.end.of.js2-bl | 
| 2dc40 |  6f 63 6b 2d 6e 6f 64 65 20 4e 27 73 20 63 68 69    6c 64 20 6c 69 73 74 2e 0a 4b 49 44 20 69 73 20  | ock-node.N's.child.list..KID.is. | 
| 2dc60 |  61 6c 77 61 79 73 20 61 64 64 65 64 20 74 6f 20    74 68 65 20 2d 65 6e 64 2d 20 6f 66 20 74 68 65  | always.added.to.the.-end-.of.the | 
| 2dc80 |  20 6b 69 64 73 20 6c 69 73 74 2e 0a 46 75 6e 63    74 69 6f 6e 20 61 6c 73 6f 20 63 61 6c 6c 73 20  | .kids.list..Function.also.calls. | 
| 2dca0 |  60 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68    69 6c 64 72 65 6e 27 20 74 6f 20 61 64 64 20 74  | `js2-node-add-children'.to.add.t | 
| 2dcc0 |  68 65 20 70 61 72 65 6e 74 20 6c 69 6e 6b 2e 22    0a 20 20 28 6c 65 74 20 28 28 6b 69 64 73 20 28  | he.parent.link."...(let.((kids.( | 
| 2dce0 |  6a 73 32 2d 6e 6f 64 65 2d 63 68 69 6c 64 2d 6c    69 73 74 20 6e 29 29 29 0a 20 20 20 20 28 69 66  | js2-node-child-list.n))).....(if | 
| 2dd00 |  20 6b 69 64 73 0a 20 20 20 20 20 20 20 20 28 73    65 74 63 64 72 20 6b 69 64 73 20 28 6e 63 6f 6e  | .kids.........(setcdr.kids.(ncon | 
| 2dd20 |  63 20 28 63 64 72 20 6b 69 64 73 29 20 28 6c 69    73 74 20 6b 69 64 29 29 29 0a 20 20 20 20 20 20  | c.(cdr.kids).(list.kid)))....... | 
| 2dd40 |  28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 63 68    69 6c 64 2d 6c 69 73 74 20 6e 20 28 6c 69 73 74  | (js2-node-set-child-list.n.(list | 
| 2dd60 |  20 6b 69 64 29 29 29 0a 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72  | .kid))).....(js2-node-add-childr | 
| 2dd80 |  65 6e 20 6e 20 6b 69 64 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 73 74 72  | en.n.kid)))..(defun.js2-node-str | 
| 2dda0 |  69 6e 67 20 28 6e 6f 64 65 29 0a 20 20 28 77 69    74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65  | ing.(node)...(with-current-buffe | 
| 2ddc0 |  72 20 28 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d    62 75 66 66 65 72 20 6e 6f 64 65 29 0a 20 20 20  | r.(or.(js2-node-buffer.node).... | 
| 2dde0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22  | ........................(error." | 
| 2de00 |  4e 6f 20 62 75 66 66 65 72 20 61 76 61 69 6c 61    62 6c 65 20 66 6f 72 20 6e 6f 64 65 20 25 73 22  | No.buffer.available.for.node.%s" | 
| 2de20 |  20 6e 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 74    20 28 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65  | .node)).....(let.((pos.(js2-node | 
| 2de40 |  2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29    0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73  | -abs-pos.node))).......(buffer-s | 
| 2de60 |  75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70    65 72 74 69 65 73 20 70 6f 73 20 28 2b 20 70 6f  | ubstring-no-properties.pos.(+.po | 
| 2de80 |  73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20    6e 6f 64 65 29 29 29 29 29 29 0a 0a 3b 3b 20 43  | s.(js2-node-len.node))))))..;;.C | 
| 2dea0 |  6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 73 74 6f    72 69 6e 67 20 74 68 65 20 6e 6f 64 65 20 77 65  | ontainer.for.storing.the.node.we | 
| 2dec0 |  27 72 65 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20    69 6e 20 61 20 74 72 61 76 65 72 73 61 6c 2e 0a  | 're.looking.for.in.a.traversal.. | 
| 2dee0 |  28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c 20 6a 73    32 2d 64 69 73 63 6f 76 65 72 65 64 2d 6e 6f 64  | (js2-deflocal.js2-discovered-nod | 
| 2df00 |  65 20 6e 69 6c 29 0a 0a 3b 3b 20 4b 65 65 70 20    74 72 61 63 6b 20 6f 66 20 61 62 73 6f 6c 75 74  | e.nil)..;;.Keep.track.of.absolut | 
| 2df20 |  65 20 6e 6f 64 65 20 70 6f 73 69 74 69 6f 6e 20    64 75 72 69 6e 67 20 74 72 61 76 65 72 73 61 6c  | e.node.position.during.traversal | 
| 2df40 |  73 2e 0a 28 6a 73 32 2d 64 65 66 6c 6f 63 61 6c    20 6a 73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66  | s..(js2-deflocal.js2-visitor-off | 
| 2df60 |  73 65 74 20 6e 69 6c 29 0a 0a 28 6a 73 32 2d 64    65 66 6c 6f 63 61 6c 20 6a 73 32 2d 6e 6f 64 65  | set.nil)..(js2-deflocal.js2-node | 
| 2df80 |  2d 73 65 61 72 63 68 2d 70 6f 69 6e 74 20 6e 69    6c 29 0a 0a 28 77 68 65 6e 20 6a 73 32 2d 6d 6f  | -search-point.nil)..(when.js2-mo | 
| 2dfa0 |  64 65 2d 64 65 76 2d 6d 6f 64 65 2d 70 0a 20 20    28 64 65 66 75 6e 20 6a 73 32 2d 66 69 6e 64 2d  | de-dev-mode-p...(defun.js2-find- | 
| 2dfc0 |  6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29    0a 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76  | node-at-point.().....(interactiv | 
| 2dfe0 |  65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 6f    64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d  | e).....(let.((node.(js2-node-at- | 
| 2e000 |  70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28    6d 65 73 73 61 67 65 20 22 25 73 22 20 28 6f 72  | point))).......(message."%s".(or | 
| 2e020 |  20 6e 6f 64 65 20 22 4e 6f 20 6e 6f 64 65 20 66    6f 75 6e 64 20 61 74 20 70 6f 69 6e 74 22 29 29  | .node."No.node.found.at.point")) | 
| 2e040 |  29 29 0a 20 20 28 64 65 66 75 6e 20 6a 73 32 2d    6e 6f 64 65 2d 6e 61 6d 65 2d 61 74 2d 70 6f 69  | ))...(defun.js2-node-name-at-poi | 
| 2e060 |  6e 74 20 28 29 0a 20 20 20 20 28 69 6e 74 65 72    61 63 74 69 76 65 29 0a 20 20 20 20 28 6c 65 74  | nt.().....(interactive).....(let | 
| 2e080 |  20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20  | .((node.(js2-node-at-point)))... | 
| 2e0a0 |  20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73    22 20 28 69 66 20 6e 6f 64 65 0a 20 20 20 20 20  | ....(message."%s".(if.node...... | 
| 2e0c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f  | ...................(js2-node-sho | 
| 2e0e0 |  72 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rt-name.node)................... | 
| 2e100 |  20 20 20 20 22 4e 6f 20 6e 6f 64 65 20 66 6f 75    6e 64 20 61 74 20 70 6f 69 6e 74 2e 22 29 29 29  | ...."No.node.found.at.point."))) | 
| 2e120 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6e    6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 26 6f  | ))..(defun.js2-node-at-point.(&o | 
| 2e140 |  70 74 69 6f 6e 61 6c 20 70 6f 73 20 73 6b 69 70    2d 63 6f 6d 6d 65 6e 74 73 29 0a 20 20 22 52 65  | ptional.pos.skip-comments)..."Re | 
| 2e160 |  74 75 72 6e 20 41 53 54 20 6e 6f 64 65 20 61 74    20 50 4f 53 2c 20 61 20 62 75 66 66 65 72 20 70  | turn.AST.node.at.POS,.a.buffer.p | 
| 2e180 |  6f 73 69 74 69 6f 6e 2c 20 64 65 66 61 75 6c 74    69 6e 67 20 74 6f 20 63 75 72 72 65 6e 74 20 70  | osition,.defaulting.to.current.p | 
| 2e1a0 |  6f 69 6e 74 2e 0a 54 68 65 20 60 6a 73 32 2d 6d    6f 64 65 2d 61 73 74 27 20 76 61 72 69 61 62 6c  | oint..The.`js2-mode-ast'.variabl | 
| 2e1c0 |  65 20 6d 75 73 74 20 62 65 20 73 65 74 20 74 6f    20 74 68 65 20 63 75 72 72 65 6e 74 20 70 61 72  | e.must.be.set.to.the.current.par | 
| 2e1e0 |  73 65 20 74 72 65 65 2e 0a 53 69 67 6e 61 6c 73    20 61 6e 20 65 72 72 6f 72 20 69 66 20 74 68 65  | se.tree..Signals.an.error.if.the | 
| 2e200 |  20 41 53 54 20 28 60 6a 73 32 2d 6d 6f 64 65 2d    61 73 74 27 29 20 69 73 20 6e 69 6c 2e 0a 41 6c  | .AST.(`js2-mode-ast').is.nil..Al | 
| 2e220 |  77 61 79 73 20 72 65 74 75 72 6e 73 20 61 20 6e    6f 64 65 20 2d 20 69 66 20 69 74 20 63 61 6e 27  | ways.returns.a.node.-.if.it.can' | 
| 2e240 |  74 20 66 69 6e 64 20 6f 6e 65 2c 20 69 74 20 72    65 74 75 72 6e 73 20 74 68 65 20 72 6f 6f 74 2e  | t.find.one,.it.returns.the.root. | 
| 2e260 |  0a 49 66 20 53 4b 49 50 2d 43 4f 4d 4d 45 4e 54    53 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 6f  | .If.SKIP-COMMENTS.is.non-nil,.co | 
| 2e280 |  6d 6d 65 6e 74 20 6e 6f 64 65 73 20 61 72 65 20    69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 6c 65 74  | mment.nodes.are.ignored."...(let | 
| 2e2a0 |  20 28 28 61 73 74 20 6a 73 32 2d 6d 6f 64 65 2d    61 73 74 29 0a 20 20 20 20 20 20 20 20 72 65 73  | .((ast.js2-mode-ast).........res | 
| 2e2c0 |  75 6c 74 29 0a 20 20 20 20 28 75 6e 6c 65 73 73    20 61 73 74 0a 20 20 20 20 20 20 28 65 72 72 6f  | ult).....(unless.ast.......(erro | 
| 2e2e0 |  72 20 22 4e 6f 20 4a 61 76 61 53 63 72 69 70 74    20 41 53 54 20 61 76 61 69 6c 61 62 6c 65 22 29  | r."No.JavaScript.AST.available") | 
| 2e300 |  29 0a 20 20 20 20 3b 3b 20 4c 6f 6f 6b 20 74 68    72 6f 75 67 68 20 63 6f 6d 6d 65 6e 74 73 20 66  | ).....;;.Look.through.comments.f | 
| 2e320 |  69 72 73 74 2c 20 73 69 6e 63 65 20 74 68 65 79    20 6d 61 79 20 62 65 20 69 6e 73 69 64 65 20 6e  | irst,.since.they.may.be.inside.n | 
| 2e340 |  6f 64 65 73 20 74 68 61 74 0a 20 20 20 20 3b 3b    20 77 6f 75 6c 64 20 6f 74 68 65 72 77 69 73 65  | odes.that.....;;.would.otherwise | 
| 2e360 |  20 72 65 70 6f 72 74 20 61 20 6d 61 74 63 68 2e    0a 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28  | .report.a.match......(setq.pos.( | 
| 2e380 |  6f 72 20 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74  | or.pos.(point))...........result | 
| 2e3a0 |  20 28 69 66 20 28 3e 20 70 6f 73 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 20 61 73  | .(if.(>.pos.(js2-node-abs-end.as | 
| 2e3c0 |  74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 61 73 74 0a 20 20 20  | t))......................ast.... | 
| 2e3e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 6e 6f 74 20 73 6b 69 70 2d 63 6f  | ................(if.(not.skip-co | 
| 2e400 |  6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | mments)........................( | 
| 2e420 |  6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 61 74 2d 70    6f 69 6e 74 20 70 6f 73 29 29 29 29 0a 20 20 20  | js2-comment-at-point.pos)))).... | 
| 2e440 |  20 28 75 6e 6c 65 73 73 20 72 65 73 75 6c 74 0a    20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d  | .(unless.result.......(setq.js2- | 
| 2e460 |  64 69 73 63 6f 76 65 72 65 64 2d 6e 6f 64 65 20    6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20  | discovered-node.nil............. | 
| 2e480 |  6a 73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73    65 74 20 30 0a 20 20 20 20 20 20 20 20 20 20 20  | js2-visitor-offset.0............ | 
| 2e4a0 |  20 6a 73 32 2d 6e 6f 64 65 2d 73 65 61 72 63 68    2d 70 6f 69 6e 74 20 70 6f 73 29 0a 20 20 20 20  | .js2-node-search-point.pos)..... | 
| 2e4c0 |  20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63    74 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 74  | ..(unwind-protect...........(cat | 
| 2e4e0 |  63 68 20 27 6a 73 32 2d 76 69 73 69 74 2d 64 6f    6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | ch.'js2-visit-done.............( | 
| 2e500 |  6a 73 32 2d 76 69 73 69 74 2d 61 73 74 20 61 73    74 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d  | js2-visit-ast.ast.#'js2-node-at- | 
| 2e520 |  70 6f 69 6e 74 2d 76 69 73 69 74 6f 72 29 29 0a    20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73  | point-visitor)).........(setq.js | 
| 2e540 |  32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73 65 74    20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20  | 2-visitor-offset.nil............ | 
| 2e560 |  20 20 20 6a 73 32 2d 6e 6f 64 65 2d 73 65 61 72    63 68 2d 70 6f 69 6e 74 20 6e 69 6c 29 29 0a 20  | ...js2-node-search-point.nil)).. | 
| 2e580 |  20 20 20 20 20 28 73 65 74 71 20 72 65 73 75 6c    74 20 6a 73 32 2d 64 69 73 63 6f 76 65 72 65 64  | .....(setq.result.js2-discovered | 
| 2e5a0 |  2d 6e 6f 64 65 29 29 0a 20 20 20 20 3b 3b 20 6d    61 79 20 68 61 76 65 20 66 6f 75 6e 64 20 61 20  | -node)).....;;.may.have.found.a. | 
| 2e5c0 |  63 6f 6d 6d 65 6e 74 20 62 65 79 6f 6e 64 20 65    6e 64 20 6f 66 20 6c 61 73 74 20 63 68 69 6c 64  | comment.beyond.end.of.last.child | 
| 2e5e0 |  20 6e 6f 64 65 2c 0a 20 20 20 20 3b 3b 20 73 69    6e 63 65 20 76 69 73 69 74 69 6e 67 20 74 68 65  | .node,.....;;.since.visiting.the | 
| 2e600 |  20 61 73 74 2d 72 6f 6f 74 20 6c 6f 6f 6b 73 20    61 74 20 74 68 65 20 63 6f 6d 6d 65 6e 74 2d 6c  | .ast-root.looks.at.the.comment-l | 
| 2e620 |  69 73 74 20 6c 61 73 74 2e 0a 20 20 20 20 28 69    66 20 28 61 6e 64 20 73 6b 69 70 2d 63 6f 6d 6d  | ist.last......(if.(and.skip-comm | 
| 2e640 |  65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e  | ents..............(js2-comment-n | 
| 2e660 |  6f 64 65 2d 70 20 72 65 73 75 6c 74 29 29 0a 20    20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73  | ode-p.result)).........(setq.res | 
| 2e680 |  75 6c 74 20 6e 69 6c 29 29 0a 20 20 20 20 28 6f    72 20 72 65 73 75 6c 74 20 6a 73 32 2d 6d 6f 64  | ult.nil)).....(or.result.js2-mod | 
| 2e6a0 |  65 2d 61 73 74 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69  | e-ast)))..(defun.js2-node-at-poi | 
| 2e6c0 |  6e 74 2d 76 69 73 69 74 6f 72 20 28 6e 6f 64 65    20 65 6e 64 2d 70 29 0a 20 20 28 6c 65 74 20 28  | nt-visitor.(node.end-p)...(let.( | 
| 2e6e0 |  28 72 65 6c 2d 70 6f 73 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20  | (rel-pos.(js2-node-pos.node))... | 
| 2e700 |  20 20 20 20 20 20 61 62 73 2d 70 6f 73 0a 20 20    20 20 20 20 20 20 61 62 73 2d 65 6e 64 0a 20 20  | ......abs-pos.........abs-end... | 
| 2e720 |  20 20 20 20 20 20 28 70 6f 69 6e 74 20 6a 73 32    2d 6e 6f 64 65 2d 73 65 61 72 63 68 2d 70 6f 69  | ......(point.js2-node-search-poi | 
| 2e740 |  6e 74 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20    20 20 20 20 28 65 6e 64 2d 70 0a 20 20 20 20 20  | nt)).....(cond......(end-p...... | 
| 2e760 |  20 3b 3b 20 74 68 69 73 20 65 76 61 6c 75 61 74    65 73 20 74 6f 20 61 20 6e 6f 6e 2d 6e 69 6c 20  | .;;.this.evaluates.to.a.non-nil. | 
| 2e780 |  72 65 74 75 72 6e 20 76 61 6c 75 65 2c 20 65 76    65 6e 20 69 66 20 69 74 27 73 20 7a 65 72 6f 0a  | return.value,.even.if.it's.zero. | 
| 2e7a0 |  20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6a    73 32 2d 76 69 73 69 74 6f 72 2d 6f 66 66 73 65  | ......(cl-decf.js2-visitor-offse | 
| 2e7c0 |  74 20 72 65 6c 2d 70 6f 73 29 29 0a 20 20 20 20    20 3b 3b 20 77 65 20 61 6c 72 65 61 64 79 20 6c  | t.rel-pos))......;;.we.already.l | 
| 2e7e0 |  6f 6f 6b 65 64 20 66 6f 72 20 63 6f 6d 6d 65 6e    74 73 20 62 65 66 6f 72 65 20 76 69 73 69 74 69  | ooked.for.comments.before.visiti | 
| 2e800 |  6e 67 2c 20 61 6e 64 20 64 6f 6e 27 74 20 77 61    6e 74 20 74 68 65 6d 20 6e 6f 77 0a 20 20 20 20  | ng,.and.don't.want.them.now..... | 
| 2e820 |  20 28 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20  | .((js2-comment-node-p.node)..... | 
| 2e840 |  20 20 6e 69 6c 29 0a 20 20 20 20 20 28 74 0a 20    20 20 20 20 20 28 73 65 74 71 20 61 62 73 2d 70  | ..nil)......(t.......(setq.abs-p | 
| 2e860 |  6f 73 20 28 63 6c 2d 69 6e 63 66 20 6a 73 32 2d    76 69 73 69 74 6f 72 2d 6f 66 66 73 65 74 20 72  | os.(cl-incf.js2-visitor-offset.r | 
| 2e880 |  65 6c 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 77 65 20 6f 6e 6c 79 20 77  | el-pos).............;;.we.only.w | 
| 2e8a0 |  61 6e 74 20 74 6f 20 75 73 65 20 74 68 65 20 6e    6f 64 65 20 69 66 20 74 68 65 20 70 6f 69 6e 74  | ant.to.use.the.node.if.the.point | 
| 2e8c0 |  20 69 73 20 62 65 66 6f 72 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6c 61  | .is.before.............;;.the.la | 
| 2e8e0 |  73 74 20 63 68 61 72 61 63 74 65 72 20 70 6f 73    69 74 69 6f 6e 20 69 6e 20 74 68 65 20 6e 6f 64  | st.character.position.in.the.nod | 
| 2e900 |  65 2c 20 73 6f 20 77 65 20 64 65 63 72 65 6d 65    6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b  | e,.so.we.decrement.............; | 
| 2e920 |  3b 20 74 68 65 20 61 62 73 6f 6c 75 74 65 20 65    6e 64 20 62 79 20 31 2e 0a 20 20 20 20 20 20 20  | ;.the.absolute.end.by.1......... | 
| 2e940 |  20 20 20 20 20 61 62 73 2d 65 6e 64 20 28 2b 20    61 62 73 2d 70 6f 73 20 28 6a 73 32 2d 6e 6f 64  | .....abs-end.(+.abs-pos.(js2-nod | 
| 2e960 |  65 2d 6c 65 6e 20 6e 6f 64 65 29 20 2d 31 29 29    0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20  | e-len.node).-1)).......(cond.... | 
| 2e980 |  20 20 20 20 3b 3b 20 49 66 20 74 68 69 73 20 6e    6f 64 65 20 73 74 61 72 74 73 20 61 66 74 65 72  | ....;;.If.this.node.starts.after | 
| 2e9a0 |  20 73 65 61 72 63 68 2d 70 6f 69 6e 74 2c 20 73    74 6f 70 20 74 68 65 20 73 65 61 72 63 68 2e 0a  | .search-point,.stop.the.search.. | 
| 2e9c0 |  20 20 20 20 20 20 20 28 28 3e 20 61 62 73 2d 70    6f 73 20 70 6f 69 6e 74 29 0a 20 20 20 20 20 20  | .......((>.abs-pos.point)....... | 
| 2e9e0 |  20 20 28 74 68 72 6f 77 20 27 6a 73 32 2d 76 69    73 69 74 2d 64 6f 6e 65 20 6e 69 6c 29 29 0a 20  | ..(throw.'js2-visit-done.nil)).. | 
| 2ea00 |  20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 69 73    20 6e 6f 64 65 20 65 6e 64 73 20 62 65 66 6f 72  | ......;;.If.this.node.ends.befor | 
| 2ea20 |  65 20 74 68 65 20 73 65 61 72 63 68 2d 70 6f 69    6e 74 2c 20 64 6f 6e 27 74 20 63 68 65 63 6b 20  | e.the.search-point,.don't.check. | 
| 2ea40 |  6b 69 64 73 2e 0a 20 20 20 20 20 20 20 28 28 3e    20 70 6f 69 6e 74 20 61 62 73 2d 65 6e 64 29 0a  | kids.........((>.point.abs-end). | 
| 2ea60 |  20 20 20 20 20 20 20 20 6e 69 6c 29 0a 20 20 20    20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 3b  | ........nil)........(t.........; | 
| 2ea80 |  3b 20 4f 74 68 65 72 77 69 73 65 20 70 6f 69 6e    74 20 69 73 20 77 69 74 68 69 6e 20 74 68 69 73  | ;.Otherwise.point.is.within.this | 
| 2eaa0 |  20 6e 6f 64 65 2c 20 70 6f 73 73 69 62 6c 79 20    69 6e 20 61 20 63 68 69 6c 64 2e 0a 20 20 20 20  | .node,.possibly.in.a.child...... | 
| 2eac0 |  20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 64 69    73 63 6f 76 65 72 65 64 2d 6e 6f 64 65 20 6e 6f  | ....(setq.js2-discovered-node.no | 
| 2eae0 |  64 65 29 0a 20 20 20 20 20 20 20 20 74 29 29 29    29 29 29 20 20 3b 20 6b 65 65 70 20 70 72 6f 63  | de).........t))))))..;.keep.proc | 
| 2eb00 |  65 73 73 69 6e 67 20 6b 69 64 73 20 74 6f 20 6c    6f 6f 6b 20 66 6f 72 20 6d 6f 72 65 20 73 70 65  | essing.kids.to.look.for.more.spe | 
| 2eb20 |  63 69 66 69 63 20 6d 61 74 63 68 0a 0a 28 64 65    66 73 75 62 73 74 20 6a 73 32 2d 62 6c 6f 63 6b  | cific.match..(defsubst.js2-block | 
| 2eb40 |  2d 63 6f 6d 6d 65 6e 74 2d 70 20 28 6e 6f 64 65    29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d  | -comment-p.(node)..."Return.non- | 
| 2eb60 |  6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20 61    20 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 20 6f 66  | nil.if.NODE.is.a.comment.node.of | 
| 2eb80 |  20 66 6f 72 6d 61 74 20 60 6a 73 64 6f 63 27 20    6f 72 20 60 62 6c 6f 63 6b 27 2e 22 0a 20 20 28  | .format.`jsdoc'.or.`block'."...( | 
| 2eba0 |  61 6e 64 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74    2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20  | and.(js2-comment-node-p.node)... | 
| 2ebc0 |  20 20 20 20 20 28 6d 65 6d 71 20 28 6a 73 32 2d    63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65 2d 66 6f 72  | .....(memq.(js2-comment-node-for | 
| 2ebe0 |  6d 61 74 20 6e 6f 64 65 29 20 27 28 6a 73 64 6f    63 20 62 6c 6f 63 6b 29 29 29 29 0a 0a 3b 3b 20  | mat.node).'(jsdoc.block))))..;;. | 
| 2ec00 |  54 4f 44 4f 3a 20 20 70 75 74 20 74 68 65 20 63    6f 6d 6d 65 6e 74 73 20 69 6e 20 61 20 76 65 63  | TODO:..put.the.comments.in.a.vec | 
| 2ec20 |  74 6f 72 20 61 6e 64 20 62 69 6e 61 72 79 2d 73    65 61 72 63 68 20 74 68 65 6d 20 69 6e 73 74 65  | tor.and.binary-search.them.inste | 
| 2ec40 |  61 64 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f    6d 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 20 28  | ad.(defun.js2-comment-at-point.( | 
| 2ec60 |  26 6f 70 74 69 6f 6e 61 6c 20 70 6f 73 29 0a 20    20 22 4c 6f 6f 6b 20 74 68 72 6f 75 67 68 20 73  | &optional.pos)..."Look.through.s | 
| 2ec80 |  63 61 6e 6e 65 64 20 63 6f 6d 6d 65 6e 74 20 6e    6f 64 65 73 20 66 6f 72 20 6f 6e 65 20 63 6f 6e  | canned.comment.nodes.for.one.con | 
| 2eca0 |  74 61 69 6e 69 6e 67 20 50 4f 53 2e 0a 50 4f 53    20 69 73 20 61 20 62 75 66 66 65 72 20 70 6f 73  | taining.POS..POS.is.a.buffer.pos | 
| 2ecc0 |  69 74 69 6f 6e 20 74 68 61 74 20 64 65 66 61 75    6c 74 73 20 74 6f 20 63 75 72 72 65 6e 74 20 70  | ition.that.defaults.to.current.p | 
| 2ece0 |  6f 69 6e 74 2e 0a 46 75 6e 63 74 69 6f 6e 20 72    65 74 75 72 6e 73 20 6e 69 6c 20 69 66 20 50 4f  | oint..Function.returns.nil.if.PO | 
| 2ed00 |  53 20 77 61 73 20 6e 6f 74 20 69 6e 20 61 6e 79    20 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 2e 22 0a  | S.was.not.in.any.comment.node.". | 
| 2ed20 |  20 20 28 6c 65 74 20 28 28 61 73 74 20 6a 73 32    2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20  | ..(let.((ast.js2-mode-ast)...... | 
| 2ed40 |  20 20 20 28 78 20 28 6f 72 20 70 6f 73 20 28 70    6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20  | ...(x.(or.pos.(point)))......... | 
| 2ed60 |  62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 75 6e    6c 65 73 73 20 61 73 74 0a 20 20 20 20 20 20 28  | beg.end).....(unless.ast.......( | 
| 2ed80 |  65 72 72 6f 72 20 22 4e 6f 20 4a 61 76 61 53 63    72 69 70 74 20 41 53 54 20 61 76 61 69 6c 61 62  | error."No.JavaScript.AST.availab | 
| 2eda0 |  6c 65 22 29 29 0a 20 20 20 20 28 63 61 74 63 68    20 27 64 6f 6e 65 0a 20 20 20 20 20 20 3b 3b 20  | le")).....(catch.'done.......;;. | 
| 2edc0 |  43 6f 6d 6d 65 6e 74 73 20 61 72 65 20 73 74 6f    72 65 64 20 69 6e 20 6c 65 78 69 63 61 6c 20 6f  | Comments.are.stored.in.lexical.o | 
| 2ede0 |  72 64 65 72 2e 0a 20 20 20 20 20 20 28 64 6f 6c    69 73 74 20 28 63 6f 6d 6d 65 6e 74 20 28 6a 73  | rder........(dolist.(comment.(js | 
| 2ee00 |  32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65    6e 74 73 20 61 73 74 29 20 6e 69 6c 29 0a 20 20  | 2-ast-root-comments.ast).nil)... | 
| 2ee20 |  20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20    28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f  | ......(setq.beg.(js2-node-abs-po | 
| 2ee40 |  73 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20  | s.comment)...............end.(+. | 
| 2ee60 |  62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65    6e 20 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20 20  | beg.(js2-node-len.comment))).... | 
| 2ee80 |  20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e    3d 20 78 20 62 65 67 29 0a 20 20 20 20 20 20 20  | .....(if.(and.(>=.x.beg)........ | 
| 2eea0 |  20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 78 20    65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ..........(<=.x.end))........... | 
| 2eec0 |  28 74 68 72 6f 77 20 27 64 6f 6e 65 20 63 6f 6d    6d 65 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66  | (throw.'done.comment))))))..(def | 
| 2eee0 |  75 6e 20 6a 73 32 2d 63 6f 6d 6d 65 6e 74 73 2d    62 65 74 77 65 65 6e 20 28 73 74 61 72 74 20 65  | un.js2-comments-between.(start.e | 
| 2ef00 |  6e 64 20 63 6f 6d 6d 65 6e 74 73 2d 6c 69 73 74    29 0a 20 20 22 52 65 74 75 72 6e 20 63 6f 6d 6d  | nd.comments-list)..."Return.comm | 
| 2ef20 |  65 6e 74 20 6e 6f 64 65 73 20 62 65 74 77 65 65    6e 20 53 54 41 52 54 20 61 6e 64 20 45 4e 44 2c  | ent.nodes.between.START.and.END, | 
| 2ef40 |  20 6e 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e    64 2e 0a 53 54 41 52 54 20 61 6e 64 20 45 4e 44  | .nil.if.not.found..START.and.END | 
| 2ef60 |  20 61 72 65 20 61 62 73 6f 6c 75 74 65 20 70 6f    73 69 74 69 6f 6e 73 20 69 6e 20 63 75 72 72 65  | .are.absolute.positions.in.curre | 
| 2ef80 |  6e 74 20 62 75 66 66 65 72 2e 0a 43 4f 4d 4d 45    4e 54 53 2d 4c 49 53 54 20 69 73 20 74 68 65 20  | nt.buffer..COMMENTS-LIST.is.the. | 
| 2efa0 |  63 6f 6d 6d 65 6e 74 73 20 6c 69 73 74 20 74 6f    20 63 68 65 63 6b 2e 22 0a 20 20 28 6c 65 74 20  | comments.list.to.check."...(let. | 
| 2efc0 |  28 63 6f 6d 6d 65 6e 74 73 20 63 2d 73 74 61 72    74 20 63 2d 65 6e 64 29 0a 20 20 20 20 28 6e 72  | (comments.c-start.c-end).....(nr | 
| 2efe0 |  65 76 65 72 73 65 0a 20 20 20 20 20 20 28 64 6f    6c 69 73 74 20 28 63 6f 6d 6d 65 6e 74 20 63 6f  | everse.......(dolist.(comment.co | 
| 2f000 |  6d 6d 65 6e 74 73 2d 6c 69 73 74 20 63 6f 6d 6d    65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 28 73  | mments-list.comments).........(s | 
| 2f020 |  65 74 71 20 63 2d 73 74 61 72 74 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 63 6f  | etq.c-start.(js2-node-abs-pos.co | 
| 2f040 |  6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 63 2d 65 6e 64 20 28 31 2d 20 28  | mment)...............c-end.(1-.( | 
| 2f060 |  2b 20 63 2d 73 74 61 72 74 20 28 6a 73 32 2d 6e    6f 64 65 2d 6c 65 6e 20 63 6f 6d 6d 65 6e 74 29  | +.c-start.(js2-node-len.comment) | 
| 2f080 |  29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c    65 73 73 20 28 6f 72 20 28 3c 20 63 2d 65 6e 64  | ))).........(unless.(or.(<.c-end | 
| 2f0a0 |  20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 63  | .start).....................(>.c | 
| 2f0c0 |  2d 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6d  | -start.end))...........(push.com | 
| 2f0e0 |  6d 65 6e 74 20 63 6f 6d 6d 65 6e 74 73 29 29 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | ment.comments))))))..(defun.js2- | 
| 2f100 |  6d 6f 64 65 2d 66 69 6e 64 2d 70 61 72 65 6e 74    2d 66 6e 20 28 6e 6f 64 65 29 0a 20 20 22 46 69  | mode-find-parent-fn.(node)..."Fi | 
| 2f120 |  6e 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6c    6f 73 69 6e 67 20 4e 4f 44 45 2e 0a 52 65 74 75  | nd.function.enclosing.NODE..Retu | 
| 2f140 |  72 6e 73 20 6e 69 6c 20 69 66 20 4e 4f 44 45 20    69 73 20 6e 6f 74 20 69 6e 73 69 64 65 20 61 20  | rns.nil.if.NODE.is.not.inside.a. | 
| 2f160 |  66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 73 65    74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64  | function."...(setq.node.(js2-nod | 
| 2f180 |  65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 0a    20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 6e 6f  | e-parent.node))...(while.(and.no | 
| 2f1a0 |  64 65 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75 6e    63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64  | de.(not.(js2-function-node-p.nod | 
| 2f1c0 |  65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e    6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61  | e))).....(setq.node.(js2-node-pa | 
| 2f1e0 |  72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 28    61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f  | rent.node)))...(and.(js2-functio | 
| 2f200 |  6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 20 6e    6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | n-node-p.node).node))..(defun.js | 
| 2f220 |  32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65 6e 63 6c    6f 73 69 6e 67 2d 66 6e 20 28 6e 6f 64 65 29 0a  | 2-mode-find-enclosing-fn.(node). | 
| 2f240 |  20 20 22 46 69 6e 64 20 66 75 6e 63 74 69 6f 6e    20 6f 72 20 72 6f 6f 74 20 65 6e 63 6c 6f 73 69  | .."Find.function.or.root.enclosi | 
| 2f260 |  6e 67 20 4e 4f 44 45 2e 22 0a 20 20 28 69 66 20    28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20  | ng.NODE."...(if.(js2-ast-root-p. | 
| 2f280 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 6e 6f 64 65    0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20  | node).......node.....(setq.node. | 
| 2f2a0 |  28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74    20 6e 6f 64 65 29 29 0a 20 20 20 20 28 77 68 69  | (js2-node-parent.node)).....(whi | 
| 2f2c0 |  6c 65 20 28 6e 6f 74 20 28 6f 72 20 28 6a 73 32    2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f 64 65  | le.(not.(or.(js2-ast-root-p.node | 
| 2f2e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74  | ).....................(js2-funct | 
| 2f300 |  69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29    29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e  | ion-node-p.node))).......(setq.n | 
| 2f320 |  6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61    72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20  | ode.(js2-node-parent.node))).... | 
| 2f340 |  20 6e 6f 64 65 29 29 0a 0a 20 28 64 65 66 75 6e    20 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 65  | .node))...(defun.js2-mode-find-e | 
| 2f360 |  6e 63 6c 6f 73 69 6e 67 2d 6e 6f 64 65 20 28 62    65 67 20 65 6e 64 29 0a 20 20 22 46 69 6e 64 20  | nclosing-node.(beg.end)..."Find. | 
| 2f380 |  6e 6f 64 65 20 66 75 6c 6c 79 20 65 6e 63 6c 6f    73 69 6e 67 20 42 45 47 20 61 6e 64 20 45 4e 44  | node.fully.enclosing.BEG.and.END | 
| 2f3a0 |  2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65    20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f  | ."...(let.((node.(js2-node-at-po | 
| 2f3c0 |  69 6e 74 20 62 65 67 29 29 0a 20 20 20 20 20 20    20 20 70 6f 73 0a 20 20 20 20 20 20 20 20 28 63  | int.beg)).........pos.........(c | 
| 2f3e0 |  6f 6e 74 69 6e 75 65 20 74 29 29 0a 20 20 20 20    28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a  | ontinue.t)).....(while.continue. | 
| 2f400 |  20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6a    73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f  | ......(if.(or.(js2-ast-root-p.no | 
| 2f420 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20  | de)...............(and.......... | 
| 2f440 |  20 20 20 20 20 20 28 3c 3d 20 28 73 65 74 71 20    70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62  | ......(<=.(setq.pos.(js2-node-ab | 
| 2f460 |  73 2d 70 6f 73 20 6e 6f 64 65 29 29 20 62 65 67    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s-pos.node)).beg)............... | 
| 2f480 |  20 28 3e 3d 20 28 2b 20 70 6f 73 20 28 6a 73 32    2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29  | .(>=.(+.pos.(js2-node-len.node)) | 
| 2f4a0 |  20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65  | .end)))...........(setq.continue | 
| 2f4c0 |  20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73    65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f  | .nil).........(setq.node.(js2-no | 
| 2f4e0 |  64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29    29 29 0a 20 20 20 20 6e 6f 64 65 29 29 0a 0a 28  | de-parent.node)))).....node))..( | 
| 2f500 |  64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 70    61 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d  | defun.js2-node-parent-script-or- | 
| 2f520 |  66 6e 20 28 6e 6f 64 65 29 0a 20 20 22 46 69 6e    64 20 73 63 72 69 70 74 20 6f 72 20 66 75 6e 63  | fn.(node)..."Find.script.or.func | 
| 2f540 |  74 69 6f 6e 20 69 6d 6d 65 64 69 61 74 65 6c 79    20 65 6e 63 6c 6f 73 69 6e 67 20 4e 4f 44 45 2e  | tion.immediately.enclosing.NODE. | 
| 2f560 |  0a 49 66 20 4e 4f 44 45 20 69 73 20 74 68 65 20    61 73 74 2d 72 6f 6f 74 2c 20 72 65 74 75 72 6e  | .If.NODE.is.the.ast-root,.return | 
| 2f580 |  73 20 6e 69 6c 2e 22 0a 20 20 28 69 66 20 28 6a    73 32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f  | s.nil."...(if.(js2-ast-root-p.no | 
| 2f5a0 |  64 65 29 0a 20 20 20 20 20 20 6e 69 6c 0a 20 20    20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73  | de).......nil.....(setq.node.(js | 
| 2f5c0 |  32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f    64 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20  | 2-node-parent.node)).....(while. | 
| 2f5e0 |  28 61 6e 64 20 6e 6f 64 65 20 28 6e 6f 74 20 28    6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e  | (and.node.(not.(or.(js2-function | 
| 2f600 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -node-p.node)................... | 
| 2f620 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 73 63 72 69 70 74 2d 6e 6f 64 65 2d 70 20 6e  | ............(js2-script-node-p.n | 
| 2f640 |  6f 64 65 29 29 29 29 0a 20 20 20 20 20 20 28 73    65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f  | ode)))).......(setq.node.(js2-no | 
| 2f660 |  64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29    29 0a 20 20 20 20 6e 6f 64 65 29 29 0a 0a 28 64  | de-parent.node))).....node))..(d | 
| 2f680 |  65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 69 73    2d 64 65 73 63 65 6e 64 61 6e 74 20 28 6e 6f 64  | efun.js2-node-is-descendant.(nod | 
| 2f6a0 |  65 20 61 6e 63 65 73 74 6f 72 29 0a 20 20 22 52    65 74 75 72 6e 20 74 20 69 66 20 4e 4f 44 45 20  | e.ancestor)..."Return.t.if.NODE. | 
| 2f6c0 |  69 73 20 61 20 64 65 73 63 65 6e 64 61 6e 74 20    6f 66 20 41 4e 43 45 53 54 4f 52 2e 22 0a 20 20  | is.a.descendant.of.ANCESTOR."... | 
| 2f6e0 |  28 77 68 69 6c 65 20 28 61 6e 64 20 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | (while.(and.node...............( | 
| 2f700 |  6e 6f 74 20 28 65 71 20 6e 6f 64 65 20 61 6e 63    65 73 74 6f 72 29 29 29 0a 20 20 20 20 28 73 65  | not.(eq.node.ancestor))).....(se | 
| 2f720 |  74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64    65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29  | tq.node.(js2-node-parent.node))) | 
| 2f740 |  0a 20 20 6e 6f 64 65 29 0a 0a 3b 3b 3b 20 76 69    73 69 74 6f 72 20 69 6e 66 72 61 73 74 72 75 63  | ...node)..;;;.visitor.infrastruc | 
| 2f760 |  74 75 72 65 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 76 69 73 69 74 2d 6e 6f 6e 65 20 28 5f 6e 6f  | ture..(defun.js2-visit-none.(_no | 
| 2f780 |  64 65 20 5f 63 61 6c 6c 62 61 63 6b 29 0a 20 20    22 56 69 73 69 74 6f 72 20 66 6f 72 20 41 53 54  | de._callback)..."Visitor.for.AST | 
| 2f7a0 |  20 6e 6f 64 65 20 74 68 61 74 20 68 61 76 65 20    6e 6f 20 6e 6f 64 65 20 63 68 69 6c 64 72 65 6e  | .node.that.have.no.node.children | 
| 2f7c0 |  2e 22 0a 20 20 6e 69 6c 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 70 72 69 6e 74 2d 6e 6f 6e 65  | ."...nil)..(defun.js2-print-none | 
| 2f7e0 |  20 28 5f 6e 6f 64 65 20 5f 69 6e 64 65 6e 74 29    0a 20 20 22 56 69 73 69 74 6f 72 20 66 6f 72 20  | .(_node._indent)..."Visitor.for. | 
| 2f800 |  41 53 54 20 6e 6f 64 65 20 77 69 74 68 20 6e 6f    20 70 72 69 6e 74 65 64 20 72 65 70 72 65 73 65  | AST.node.with.no.printed.represe | 
| 2f820 |  6e 74 61 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 70 72 69 6e 74 2d 62 6f 64  | ntation.")..(defun.js2-print-bod | 
| 2f840 |  79 20 28 6e 6f 64 65 20 69 6e 64 65 6e 74 29 0a    20 20 22 50 72 69 6e 74 20 61 20 73 74 61 74 65  | y.(node.indent)..."Print.a.state | 
| 2f860 |  6d 65 6e 74 2c 20 6f 72 20 61 20 62 6c 6f 63 6b    20 77 69 74 68 6f 75 74 20 62 72 61 63 65 73 2e  | ment,.or.a.block.without.braces. | 
| 2f880 |  22 0a 20 20 28 69 66 20 28 6a 73 32 2d 62 6c 6f    63 6b 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a  | "...(if.(js2-block-node-p.node). | 
| 2f8a0 |  20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b    69 64 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f  | ......(dolist.(kid.(js2-block-no | 
| 2f8c0 |  64 65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 70 72 69 6e  | de-kids.node)).........(js2-prin | 
| 2f8e0 |  74 2d 61 73 74 20 6b 69 64 20 69 6e 64 65 6e 74    29 29 0a 20 20 20 20 28 6a 73 32 2d 70 72 69 6e  | t-ast.kid.indent)).....(js2-prin | 
| 2f900 |  74 2d 61 73 74 20 6e 6f 64 65 20 69 6e 64 65 6e    74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | t-ast.node.indent)))..(defun.js2 | 
| 2f920 |  2d 70 72 69 6e 74 2d 6c 69 73 74 20 28 61 72 67    73 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 6c 69  | -print-list.(args.&optional.deli | 
| 2f940 |  6d 69 74 65 72 29 0a 20 20 28 63 6c 2d 6c 6f 6f    70 20 77 69 74 68 20 6c 65 6e 20 3d 20 28 6c 65  | miter)...(cl-loop.with.len.=.(le | 
| 2f960 |  6e 67 74 68 20 61 72 67 73 29 0a 20 20 20 20 20    20 20 20 20 20 20 66 6f 72 20 61 72 67 20 69 6e  | ngth.args)............for.arg.in | 
| 2f980 |  20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20    20 66 6f 72 20 63 6f 75 6e 74 20 66 72 6f 6d 20  | .args............for.count.from. | 
| 2f9a0 |  31 0a 20 20 20 20 20 20 20 20 20 20 20 64 6f 0a    20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e  | 1............do............(when | 
| 2f9c0 |  20 61 72 67 20 28 6a 73 32 2d 70 72 69 6e 74 2d    61 73 74 20 61 72 67 20 30 29 29 0a 20 20 20 20  | .arg.(js2-print-ast.arg.0))..... | 
| 2f9e0 |  20 20 20 20 20 20 20 28 69 66 20 28 3c 20 63 6f    75 6e 74 20 6c 65 6e 29 0a 20 20 20 20 20 20 20  | .......(if.(<.count.len)........ | 
| 2fa00 |  20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20    28 6f 72 20 64 65 6c 69 6d 69 74 65 72 20 22 2c  | ........(insert.(or.delimiter.", | 
| 2fa20 |  20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 70 72 69 6e 74 2d 74 72 65 65 20 28  | .")))))..(defun.js2-print-tree.( | 
| 2fa40 |  61 73 74 29 0a 20 20 22 50 72 69 6e 74 73 20 61    6e 20 41 53 54 20 74 6f 20 74 68 65 20 63 75 72  | ast)..."Prints.an.AST.to.the.cur | 
| 2fa60 |  72 65 6e 74 20 62 75 66 66 65 72 2e 0a 4d 61 6b    65 73 20 60 6a 73 32 2d 61 73 74 2d 70 61 72 65  | rent.buffer..Makes.`js2-ast-pare | 
| 2fa80 |  6e 74 2d 6e 6f 64 65 73 27 20 61 76 61 69 6c 61    62 6c 65 20 74 6f 20 74 68 65 20 70 72 69 6e 74  | nt-nodes'.available.to.the.print | 
| 2faa0 |  65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20    20 28 6c 65 74 20 28 28 6d 61 78 2d 6c 69 73 70  | er.functions."...(let.((max-lisp | 
| 2fac0 |  2d 65 76 61 6c 2d 64 65 70 74 68 20 28 6d 61 78    20 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64  | -eval-depth.(max.max-lisp-eval-d | 
| 2fae0 |  65 70 74 68 20 31 35 30 30 29 29 29 0a 20 20 20    20 28 6a 73 32 2d 70 72 69 6e 74 2d 61 73 74 20  | epth.1500))).....(js2-print-ast. | 
| 2fb00 |  61 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 70 72 69 6e 74 2d 61 73 74 20 28 6e 6f  | ast)))..(defun.js2-print-ast.(no | 
| 2fb20 |  64 65 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 64    65 6e 74 29 0a 20 20 22 48 65 6c 70 65 72 20 66  | de.&optional.indent)..."Helper.f | 
| 2fb40 |  75 6e 63 74 69 6f 6e 20 66 6f 72 20 70 72 69 6e    74 69 6e 67 20 41 53 54 20 6e 6f 64 65 73 2e 0a  | unction.for.printing.AST.nodes.. | 
| 2fb60 |  52 65 71 75 69 72 65 73 20 60 6a 73 32 2d 61 73    74 2d 70 61 72 65 6e 74 2d 6e 6f 64 65 73 27 20  | Requires.`js2-ast-parent-nodes'. | 
| 2fb80 |  74 6f 20 62 65 20 6e 6f 6e 2d 6e 69 6c 2e 0a 59    6f 75 20 73 68 6f 75 6c 64 20 75 73 65 20 60 6a  | to.be.non-nil..You.should.use.`j | 
| 2fba0 |  73 32 2d 70 72 69 6e 74 2d 74 72 65 65 27 20 69    6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 66  | s2-print-tree'.instead.of.this.f | 
| 2fbc0 |  75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74    20 28 28 70 72 69 6e 74 65 72 20 28 67 65 74 20  | unction."...(let.((printer.(get. | 
| 2fbe0 |  28 61 72 65 66 20 6e 6f 64 65 20 30 29 20 27 6a    73 32 2d 70 72 69 6e 74 65 72 29 29 0a 20 20 20  | (aref.node.0).'js2-printer)).... | 
| 2fc00 |  20 20 20 20 20 28 69 20 28 6f 72 20 69 6e 64 65    6e 74 20 30 29 29 29 0a 20 20 20 20 3b 3b 20 54  | .....(i.(or.indent.0))).....;;.T | 
| 2fc20 |  4f 44 4f 3a 20 20 77 65 64 67 65 20 63 6f 6d 6d    65 6e 74 73 20 69 6e 20 68 65 72 65 20 73 6f 6d  | ODO:..wedge.comments.in.here.som | 
| 2fc40 |  65 77 68 65 72 65 0a 20 20 20 20 28 69 66 20 70    72 69 6e 74 65 72 0a 20 20 20 20 20 20 20 20 28  | ewhere.....(if.printer.........( | 
| 2fc60 |  66 75 6e 63 61 6c 6c 20 70 72 69 6e 74 65 72 20    6e 6f 64 65 20 69 29 29 29 29 0a 0a 28 64 65 66  | funcall.printer.node.i))))..(def | 
| 2fc80 |  63 6f 6e 73 74 20 6a 73 32 2d 73 69 64 65 2d 65    66 66 65 63 74 69 6e 67 2d 74 6f 6b 65 6e 73 0a  | const.js2-side-effecting-tokens. | 
| 2fca0 |  20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 73 20    28 6d 61 6b 65 2d 62 6f 6f 6c 2d 76 65 63 74 6f  | ..(let.((tokens.(make-bool-vecto | 
| 2fcc0 |  72 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73    20 6e 69 6c 29 29 29 0a 20 20 20 20 28 64 6f 6c  | r.js2-num-tokens.nil))).....(dol | 
| 2fce0 |  69 73 74 20 28 74 74 20 28 6c 69 73 74 20 6a 73    32 2d 41 53 53 49 47 4e 0a 20 20 20 20 20 20 20  | ist.(tt.(list.js2-ASSIGN........ | 
| 2fd00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 41 53 53 49 47 4e 5f 41 44 44 0a 20 20  | ...............js2-ASSIGN_ADD... | 
| 2fd20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42  | ....................js2-ASSIGN_B | 
| 2fd40 |  49 54 41 4e 44 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d  | ITAND.......................js2- | 
| 2fd60 |  41 53 53 49 47 4e 5f 42 49 54 4f 52 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ASSIGN_BITOR.................... | 
| 2fd80 |  20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 42 49    54 58 4f 52 0a 20 20 20 20 20 20 20 20 20 20 20  | ...js2-ASSIGN_BITXOR............ | 
| 2fda0 |  20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41    53 53 49 47 4e 5f 44 49 56 0a 20 20 20 20 20 20  | ...........js2-ASSIGN_DIV....... | 
| 2fdc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6a 73 32 2d 41 53 53 49 47 4e 5f 4c 53 48 0a 20  | ................js2-ASSIGN_LSH.. | 
| 2fde0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f  | .....................js2-ASSIGN_ | 
| 2fe00 |  4d 4f 44 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53  | MOD.......................js2-AS | 
| 2fe20 |  53 49 47 4e 5f 4d 55 4c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | SIGN_MUL.......................j | 
| 2fe40 |  73 32 2d 41 53 53 49 47 4e 5f 52 53 48 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ASSIGN_RSH................... | 
| 2fe60 |  20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 53    55 42 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....js2-ASSIGN_SUB.............. | 
| 2fe80 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53    49 47 4e 5f 55 52 53 48 0a 20 20 20 20 20 20 20  | .........js2-ASSIGN_URSH........ | 
| 2fea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 41 53 53 49 47 4e 5f 45 58 50 4f 4e 0a  | ...............js2-ASSIGN_EXPON. | 
| 2fec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e  | ......................js2-ASSIGN | 
| 2fee0 |  5f 41 4e 44 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41  | _AND.......................js2-A | 
| 2ff00 |  53 53 49 47 4e 5f 4f 52 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | SSIGN_OR.......................j | 
| 2ff20 |  73 32 2d 41 53 53 49 47 4e 5f 4e 55 4c 4c 49 53    48 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ASSIGN_NULLISH............... | 
| 2ff40 |  20 20 20 20 20 20 20 20 6a 73 32 2d 42 4c 4f 43    4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........js2-BLOCK............... | 
| 2ff60 |  20 20 20 20 20 20 20 20 6a 73 32 2d 42 52 45 41    4b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........js2-BREAK............... | 
| 2ff80 |  20 20 20 20 20 20 20 20 6a 73 32 2d 43 41 4c 4c    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........js2-CALL................ | 
| 2ffa0 |  20 20 20 20 20 20 20 6a 73 32 2d 43 41 54 43 48    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......js2-CATCH................ | 
| 2ffc0 |  20 20 20 20 20 20 20 6a 73 32 2d 43 41 54 43 48    5f 53 43 4f 50 45 0a 20 20 20 20 20 20 20 20 20  | .......js2-CATCH_SCOPE.......... | 
| 2ffe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 43 4c 41 53 53 0a 20 20 20 20 20 20 20 20 20  | .............js2-CLASS.......... | 
| 30000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 43 4f 4e 53 54 0a 20 20 20 20 20 20 20 20 20  | .............js2-CONST.......... | 
| 30020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 43 4f 4e 54 49 4e 55 45 0a 20 20 20 20 20 20  | .............js2-CONTINUE....... | 
| 30040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6a 73 32 2d 44 45 42 55 47 47 45 52 0a 20 20 20  | ................js2-DEBUGGER.... | 
| 30060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 44 45 43 0a 20 20 20 20 20  | ...................js2-DEC...... | 
| 30080 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6a 73 32 2d 44 45 4c 50 52 4f 50 0a 20 20 20  | .................js2-DELPROP.... | 
| 300a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 44 45 4c 5f 52 45 46 0a 20  | ...................js2-DEL_REF.. | 
| 300c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 44 4f 0a 20 20 20 20  | .....................js2-DO..... | 
| 300e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6a 73 32 2d 45 4c 53 45 0a 20 20 20 20 20  | ..................js2-ELSE...... | 
| 30100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6a 73 32 2d 45 4d 50 54 59 0a 20 20 20 20 20  | .................js2-EMPTY...... | 
| 30120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6a 73 32 2d 45 4e 54 45 52 57 49 54 48 0a 20  | .................js2-ENTERWITH.. | 
| 30140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 45 58 50 4f 52 54 0a  | .....................js2-EXPORT. | 
| 30160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 52  | ......................js2-EXPR_R | 
| 30180 |  45 53 55 4c 54 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d  | ESULT.......................js2- | 
| 301a0 |  46 49 4e 41 4c 4c 59 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73  | FINALLY.......................js | 
| 301c0 |  32 2d 46 4f 52 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d  | 2-FOR.......................js2- | 
| 301e0 |  46 55 4e 43 54 49 4f 4e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | FUNCTION.......................j | 
| 30200 |  73 32 2d 47 4f 54 4f 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73  | s2-GOTO.......................js | 
| 30220 |  32 2d 49 46 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49  | 2-IF.......................js2-I | 
| 30240 |  46 45 51 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 46  | FEQ.......................js2-IF | 
| 30260 |  4e 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 4d 50  | NE.......................js2-IMP | 
| 30280 |  4f 52 54 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 49 4e  | ORT.......................js2-IN | 
| 302a0 |  43 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6a 73 32 2d 4a 53 52 0a  | C.......................js2-JSR. | 
| 302c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 4c 41 42 45 4c 0a  | ......................js2-LABEL. | 
| 302e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 4c 45 41 56 45 57  | ......................js2-LEAVEW | 
| 30300 |  49 54 48 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45  | ITH.......................js2-LE | 
| 30320 |  54 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54 45  | T.......................js2-LETE | 
| 30340 |  58 50 52 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 4f  | XPR.......................js2-LO | 
| 30360 |  43 41 4c 5f 42 4c 4f 43 4b 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | CAL_BLOCK....................... | 
| 30380 |  6a 73 32 2d 4c 4f 4f 50 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | js2-LOOP.......................j | 
| 303a0 |  73 32 2d 4e 45 57 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32  | s2-NEW.......................js2 | 
| 303c0 |  2d 52 45 46 5f 43 41 4c 4c 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -REF_CALL....................... | 
| 303e0 |  6a 73 32 2d 52 45 54 48 52 4f 57 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-RETHROW..................... | 
| 30400 |  20 20 6a 73 32 2d 52 45 54 55 52 4e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..js2-RETURN.................... | 
| 30420 |  20 20 20 6a 73 32 2d 52 45 54 55 52 4e 5f 52 45    53 55 4c 54 0a 20 20 20 20 20 20 20 20 20 20 20  | ...js2-RETURN_RESULT............ | 
| 30440 |  20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53    45 4d 49 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ...........js2-SEMI............. | 
| 30460 |  20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45    54 45 4c 45 4d 0a 20 20 20 20 20 20 20 20 20 20  | ..........js2-SETELEM........... | 
| 30480 |  20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d    53 45 54 45 4c 45 4d 5f 4f 50 0a 20 20 20 20 20  | ............js2-SETELEM_OP...... | 
| 304a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6a 73 32 2d 53 45 54 4e 41 4d 45 0a 20 20 20  | .................js2-SETNAME.... | 
| 304c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 53 45 54 50 52 4f 50 0a 20  | ...................js2-SETPROP.. | 
| 304e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 53 45 54 50 52 4f 50  | .....................js2-SETPROP | 
| 30500 |  5f 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 45  | _OP.......................js2-SE | 
| 30520 |  54 56 41 52 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 53  | TVAR.......................js2-S | 
| 30540 |  45 54 5f 52 45 46 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32  | ET_REF.......................js2 | 
| 30560 |  2d 53 45 54 5f 52 45 46 5f 4f 50 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -SET_REF_OP..................... | 
| 30580 |  20 20 6a 73 32 2d 53 57 49 54 43 48 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..js2-SWITCH.................... | 
| 305a0 |  20 20 20 6a 73 32 2d 54 41 52 47 45 54 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...js2-TARGET................... | 
| 305c0 |  20 20 20 20 6a 73 32 2d 54 48 52 4f 57 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....js2-THROW................... | 
| 305e0 |  20 20 20 20 6a 73 32 2d 54 52 59 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....js2-TRY..................... | 
| 30600 |  20 20 6a 73 32 2d 56 41 52 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..js2-VAR....................... | 
| 30620 |  6a 73 32 2d 57 48 49 4c 45 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-WHILE....................... | 
| 30640 |  6a 73 32 2d 57 49 54 48 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | js2-WITH.......................j | 
| 30660 |  73 32 2d 57 49 54 48 45 58 50 52 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-WITHEXPR..................... | 
| 30680 |  20 20 6a 73 32 2d 59 49 45 4c 44 29 29 0a 20 20    20 20 20 20 28 61 73 65 74 20 74 6f 6b 65 6e 73  | ..js2-YIELD)).......(aset.tokens | 
| 306a0 |  20 74 74 20 74 29 29 0a 20 20 20 20 74 6f 6b 65    6e 73 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | .tt.t)).....tokens))..(defun.js2 | 
| 306c0 |  2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65    66 66 65 63 74 73 20 28 6e 6f 64 65 29 0a 20 20  | -node-has-side-effects.(node)... | 
| 306e0 |  22 52 65 74 75 72 6e 20 74 20 69 66 20 4e 4f 44    45 20 68 61 73 20 73 69 64 65 20 65 66 66 65 63  | "Return.t.if.NODE.has.side.effec | 
| 30700 |  74 73 2e 22 0a 20 20 28 77 68 65 6e 20 6e 6f 64    65 20 20 3b 20 6d 61 6b 65 73 20 69 74 20 65 61  | ts."...(when.node..;.makes.it.ea | 
| 30720 |  73 69 65 72 20 74 6f 20 68 61 6e 64 6c 65 20 6d    61 6c 66 6f 72 6d 65 64 20 65 78 70 72 65 73 73  | sier.to.handle.malformed.express | 
| 30740 |  69 6f 6e 73 0a 20 20 20 20 28 6c 65 74 20 28 28    74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70  | ions.....(let.((tt.(js2-node-typ | 
| 30760 |  65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20    28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20  | e.node))).......(cond........;;. | 
| 30780 |  54 68 69 73 20 64 6f 75 62 74 6c 65 73 73 20 6e    65 65 64 73 20 73 6f 6d 65 20 77 6f 72 6b 2c 20  | This.doubtless.needs.some.work,. | 
| 307a0 |  73 69 6e 63 65 20 45 58 50 52 5f 56 4f 49 44 20    69 73 20 75 73 65 64 0a 20 20 20 20 20 20 20 3b  | since.EXPR_VOID.is.used........; | 
| 307c0 |  3b 20 69 6e 20 73 65 76 65 72 61 6c 20 77 61 79    73 20 69 6e 20 52 68 69 6e 6f 20 61 6e 64 20 49  | ;.in.several.ways.in.Rhino.and.I | 
| 307e0 |  20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 63 61    75 67 68 74 20 74 68 65 6d 20 61 6c 6c 2e 0a 20  | .may.not.have.caught.them.all... | 
| 30800 |  20 20 20 20 20 20 3b 3b 20 49 27 6c 6c 20 77 61    69 74 20 66 6f 72 20 70 65 6f 70 6c 65 20 74 6f  | ......;;.I'll.wait.for.people.to | 
| 30820 |  20 6e 6f 74 69 63 65 20 69 6e 63 6f 72 72 65 63    74 20 77 61 72 6e 69 6e 67 73 2e 0a 20 20 20 20  | .notice.incorrect.warnings...... | 
| 30840 |  20 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a    73 32 2d 45 58 50 52 5f 56 4f 49 44 29 0a 20 20  | ...((and.(=.tt.js2-EXPR_VOID)... | 
| 30860 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70  | ...........(js2-expr-stmt-node-p | 
| 30880 |  20 6e 6f 64 65 29 29 20 3b 20 62 75 74 20 6e 6f    74 20 69 66 20 45 58 50 52 5f 52 45 53 55 4c 54  | .node)).;.but.not.if.EXPR_RESULT | 
| 308a0 |  0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28    65 78 70 72 20 28 6a 73 32 2d 65 78 70 72 2d 73  | .........(let.((expr.(js2-expr-s | 
| 308c0 |  74 6d 74 2d 6e 6f 64 65 2d 65 78 70 72 20 6e 6f    64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | tmt-node-expr.node)))........... | 
| 308e0 |  28 6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61    73 2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 65  | (or.(js2-node-has-side-effects.e | 
| 30900 |  78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 73 74  | xpr)...............(when.(js2-st | 
| 30920 |  72 69 6e 67 2d 6e 6f 64 65 2d 70 20 65 78 70 72    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ring-node-p.expr)............... | 
| 30940 |  20 20 28 6d 65 6d 62 65 72 20 28 6a 73 32 2d 73    74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65  | ..(member.(js2-string-node-value | 
| 30960 |  20 65 78 70 72 29 20 27 28 22 75 73 65 20 73 74    72 69 63 74 22 20 22 75 73 65 20 61 73 6d 22 29  | .expr).'("use.strict"."use.asm") | 
| 30980 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d    20 74 74 20 6a 73 32 2d 41 57 41 49 54 29 20 74  | )))))........((=.tt.js2-AWAIT).t | 
| 309a0 |  29 0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20    6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20 20  | )........((=.tt.js2-COMMA)...... | 
| 309c0 |  20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73    2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 28 6a  | ...(js2-node-has-side-effects.(j | 
| 309e0 |  73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69    67 68 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20  | s2-infix-node-right.node)))..... | 
| 30a00 |  20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73    32 2d 41 4e 44 29 0a 20 20 20 20 20 20 20 20 20  | ...((or.(=.tt.js2-AND).......... | 
| 30a20 |  20 20 20 28 3d 20 74 74 20 6a 73 32 2d 4f 52 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20  | ...(=.tt.js2-OR).............(=. | 
| 30a40 |  74 74 20 6a 73 32 2d 4e 55 4c 4c 49 53 48 2d 43    4f 41 4c 45 53 43 49 4e 47 29 29 0a 20 20 20 20  | tt.js2-NULLISH-COALESCING))..... | 
| 30a60 |  20 20 20 20 28 6f 72 20 28 6a 73 32 2d 6e 6f 64    65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63  | ....(or.(js2-node-has-side-effec | 
| 30a80 |  74 73 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f    64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 0a  | ts.(js2-infix-node-right.node)). | 
| 30aa0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65  | ............(js2-node-has-side-e | 
| 30ac0 |  66 66 65 63 74 73 20 28 6a 73 32 2d 69 6e 66 69    78 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65  | ffects.(js2-infix-node-left.node | 
| 30ae0 |  29 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20    74 74 20 6a 73 32 2d 48 4f 4f 4b 29 0a 20 20 20  | ))))........((=.tt.js2-HOOK).... | 
| 30b00 |  20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 6e    6f 64 65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66  | .....(and.(js2-node-has-side-eff | 
| 30b20 |  65 63 74 73 20 28 6a 73 32 2d 63 6f 6e 64 2d 6e    6f 64 65 2d 74 72 75 65 2d 65 78 70 72 20 6e 6f  | ects.(js2-cond-node-true-expr.no | 
| 30b40 |  64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 6e 6f 64 65 2d 68 61 73 2d  | de))..............(js2-node-has- | 
| 30b60 |  73 69 64 65 2d 65 66 66 65 63 74 73 20 28 6a 73    32 2d 63 6f 6e 64 2d 6e 6f 64 65 2d 66 61 6c 73  | side-effects.(js2-cond-node-fals | 
| 30b80 |  65 2d 65 78 70 72 20 6e 6f 64 65 29 29 29 29 0a    20 20 20 20 20 20 20 28 28 6a 73 32 2d 70 61 72  | e-expr.node))))........((js2-par | 
| 30ba0 |  65 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | en-node-p.node).........(js2-nod | 
| 30bc0 |  65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63    74 73 20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f  | e-has-side-effects.(js2-paren-no | 
| 30be0 |  64 65 2d 65 78 70 72 20 6e 6f 64 65 29 29 29 0a    20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73  | de-expr.node)))........((=.tt.js | 
| 30c00 |  32 2d 45 52 52 4f 52 29 20 3b 20 61 76 6f 69 64    20 63 61 73 63 61 64 65 64 20 65 72 72 6f 72 20  | 2-ERROR).;.avoid.cascaded.error. | 
| 30c20 |  6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 20    20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 28 6f  | messages.........nil)........((o | 
| 30c40 |  72 20 28 61 6e 64 20 6a 73 32 2d 69 6e 73 74 61    6e 63 65 6f 66 2d 68 61 73 2d 73 69 64 65 2d 65  | r.(and.js2-instanceof-has-side-e | 
| 30c60 |  66 66 65 63 74 73 20 28 3d 20 74 74 20 6a 73 32    2d 49 4e 53 54 41 4e 43 45 4f 46 29 29 0a 20 20  | ffects.(=.tt.js2-INSTANCEOF))... | 
| 30c80 |  20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6a    73 32 2d 67 65 74 70 72 6f 70 2d 68 61 73 2d 73  | ..........(and.js2-getprop-has-s | 
| 30ca0 |  69 64 65 2d 65 66 66 65 63 74 73 20 28 3d 20 74    74 20 6a 73 32 2d 47 45 54 50 52 4f 50 29 29 29  | ide-effects.(=.tt.js2-GETPROP))) | 
| 30cc0 |  0a 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20    20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 61  | .........t)........(t.........(a | 
| 30ce0 |  72 65 66 20 6a 73 32 2d 73 69 64 65 2d 65 66 66    65 63 74 69 6e 67 2d 74 6f 6b 65 6e 73 20 74 74  | ref.js2-side-effecting-tokens.tt | 
| 30d00 |  29 29 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73    74 20 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d  | ))))))..(defconst.js2-stmt-node- | 
| 30d20 |  74 79 70 65 73 0a 20 20 28 6c 69 73 74 20 6a 73    32 2d 42 4c 4f 43 4b 0a 20 20 20 20 20 20 20 20  | types...(list.js2-BLOCK......... | 
| 30d40 |  6a 73 32 2d 42 52 45 41 4b 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 0a 20  | js2-BREAK.........js2-CONTINUE.. | 
| 30d60 |  20 20 20 20 20 20 20 6a 73 32 2d 44 45 46 41 55    4c 54 20 20 3b 20 65 34 78 20 22 64 65 66 61 75  | .......js2-DEFAULT..;.e4x."defau | 
| 30d80 |  6c 74 20 78 6d 6c 20 6e 61 6d 65 73 70 61 63 65    22 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20  | lt.xml.namespace".statement..... | 
| 30da0 |  20 20 20 20 6a 73 32 2d 44 4f 0a 20 20 20 20 20    20 20 20 6a 73 32 2d 45 58 50 4f 52 54 0a 20 20  | ....js2-DO.........js2-EXPORT... | 
| 30dc0 |  20 20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 52    45 53 55 4c 54 0a 20 20 20 20 20 20 20 20 6a 73  | ......js2-EXPR_RESULT.........js | 
| 30de0 |  32 2d 45 58 50 52 5f 56 4f 49 44 0a 20 20 20 20    20 20 20 20 6a 73 32 2d 46 4f 52 0a 20 20 20 20  | 2-EXPR_VOID.........js2-FOR..... | 
| 30e00 |  20 20 20 20 6a 73 32 2d 49 46 0a 20 20 20 20 20    20 20 20 6a 73 32 2d 49 4d 50 4f 52 54 0a 20 20  | ....js2-IF.........js2-IMPORT... | 
| 30e20 |  20 20 20 20 20 20 6a 73 32 2d 52 45 54 55 52 4e    0a 20 20 20 20 20 20 20 20 6a 73 32 2d 53 57 49  | ......js2-RETURN.........js2-SWI | 
| 30e40 |  54 43 48 0a 20 20 20 20 20 20 20 20 6a 73 32 2d    54 48 52 4f 57 0a 20 20 20 20 20 20 20 20 6a 73  | TCH.........js2-THROW.........js | 
| 30e60 |  32 2d 54 52 59 0a 20 20 20 20 20 20 20 20 6a 73    32 2d 57 48 49 4c 45 0a 20 20 20 20 20 20 20 20  | 2-TRY.........js2-WHILE......... | 
| 30e80 |  6a 73 32 2d 57 49 54 48 29 0a 20 20 22 4e 6f 64    65 20 74 79 70 65 73 20 74 68 61 74 20 6f 6e 6c  | js2-WITH)..."Node.types.that.onl | 
| 30ea0 |  79 20 61 70 70 65 61 72 20 69 6e 20 73 74 61 74    65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 73 2e 0a  | y.appear.in.statement.contexts.. | 
| 30ec0 |  54 68 65 20 6c 69 73 74 20 64 6f 65 73 20 6e 6f    74 20 69 6e 63 6c 75 64 65 20 6e 6f 64 65 73 20  | The.list.does.not.include.nodes. | 
| 30ee0 |  74 68 61 74 20 61 6c 77 61 79 73 20 61 70 70 65    61 72 20 61 73 20 74 68 65 20 63 68 69 6c 64 0a  | that.always.appear.as.the.child. | 
| 30f00 |  6f 66 20 61 6e 6f 74 68 65 72 20 73 70 65 63 69    66 69 63 20 73 74 61 74 65 6d 65 6e 74 20 74 79  | of.another.specific.statement.ty | 
| 30f20 |  70 65 2c 20 73 75 63 68 20 61 73 20 73 77 69 74    63 68 2d 63 61 73 65 73 2c 0a 63 61 74 63 68 20  | pe,.such.as.switch-cases,.catch. | 
| 30f40 |  61 6e 64 20 66 69 6e 61 6c 6c 79 20 62 6c 6f 63    6b 73 2c 20 61 6e 64 20 65 6c 73 65 2d 63 6c 61  | and.finally.blocks,.and.else-cla | 
| 30f60 |  75 73 65 73 2e 20 20 54 68 65 20 6c 69 73 74 20    61 6c 73 6f 20 65 78 63 6c 75 64 65 73 0a 6e 6f  | uses...The.list.also.excludes.no | 
| 30f80 |  64 65 73 20 6c 69 6b 65 20 79 69 65 6c 64 2c 20    6c 65 74 20 61 6e 64 20 76 61 72 2c 20 77 68 69  | des.like.yield,.let.and.var,.whi | 
| 30fa0 |  63 68 20 6d 61 79 20 61 70 70 65 61 72 20 69 6e    20 65 69 74 68 65 72 20 65 78 70 72 65 73 73 69  | ch.may.appear.in.either.expressi | 
| 30fc0 |  6f 6e 0a 6f 72 20 73 74 61 74 65 6d 65 6e 74 20    63 6f 6e 74 65 78 74 2c 20 61 6e 64 20 69 6e 20  | on.or.statement.context,.and.in. | 
| 30fe0 |  74 68 65 20 6c 61 74 74 65 72 20 63 6f 6e 74 65    78 74 20 61 6c 77 61 79 73 20 68 61 76 65 20 61  | the.latter.context.always.have.a | 
| 31000 |  0a 60 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d    6e 6f 64 65 27 20 70 61 72 65 6e 74 2e 20 20 46  | .`js2-expr-stmt-node'.parent...F | 
| 31020 |  69 6e 61 6c 6c 79 2c 20 74 68 65 20 6c 69 73 74    20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64  | inally,.the.list.does.not.includ | 
| 31040 |  65 0a 66 75 6e 63 74 69 6f 6e 73 20 6f 72 20 73    63 72 69 70 74 73 2c 20 77 68 69 63 68 20 61 72  | e.functions.or.scripts,.which.ar | 
| 31060 |  65 20 74 72 65 61 74 65 64 20 73 65 70 61 72 61    74 65 6c 79 20 66 72 6f 6d 20 73 74 61 74 65 6d  | e.treated.separately.from.statem | 
| 31080 |  65 6e 74 73 0a 62 79 20 74 68 65 20 4a 61 76 61    53 63 72 69 70 74 20 70 61 72 73 65 72 20 61 6e  | ents.by.the.JavaScript.parser.an | 
| 310a0 |  64 20 72 75 6e 74 69 6d 65 2e 22 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 73 74 6d 74 2d 6e 6f  | d.runtime.")..(defun.js2-stmt-no | 
| 310c0 |  64 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 48    65 75 72 69 73 74 69 63 20 66 6f 72 20 66 69 67  | de-p.(node)..."Heuristic.for.fig | 
| 310e0 |  75 72 69 6e 67 20 6f 75 74 20 69 66 20 4e 4f 44    45 20 69 73 20 61 20 73 74 61 74 65 6d 65 6e 74  | uring.out.if.NODE.is.a.statement | 
| 31100 |  2e 0a 53 6f 6d 65 20 6e 6f 64 65 20 74 79 70 65    73 20 63 61 6e 20 61 70 70 65 61 72 20 69 6e 20  | ..Some.node.types.can.appear.in. | 
| 31120 |  65 69 74 68 65 72 20 61 6e 20 65 78 70 72 65 73    73 69 6f 6e 20 63 6f 6e 74 65 78 74 20 6f 72 20  | either.an.expression.context.or. | 
| 31140 |  61 0a 73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74    65 78 74 2c 20 65 2e 67 2e 20 6c 65 74 2d 6e 6f  | a.statement.context,.e.g..let-no | 
| 31160 |  64 65 73 2c 20 79 69 65 6c 64 2d 6e 6f 64 65 73    2c 20 61 6e 64 20 76 61 72 2d 64 65 63 6c 20 6e  | des,.yield-nodes,.and.var-decl.n | 
| 31180 |  6f 64 65 73 2e 0a 46 6f 72 20 74 68 65 73 65 20    6e 6f 64 65 20 74 79 70 65 73 20 69 6e 20 61 20  | odes..For.these.node.types.in.a. | 
| 311a0 |  73 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 65 78    74 2c 20 74 68 65 20 70 61 72 65 6e 74 20 77 69  | statement.context,.the.parent.wi | 
| 311c0 |  6c 6c 20 62 65 20 61 0a 60 6a 73 32 2d 65 78 70    72 2d 73 74 6d 74 2d 6e 6f 64 65 27 2e 0a 46 75  | ll.be.a.`js2-expr-stmt-node'..Fu | 
| 311e0 |  6e 63 74 69 6f 6e 73 20 61 72 65 6e 27 74 20 69    6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63  | nctions.aren't.included.in.the.c | 
| 31200 |  68 65 63 6b 2e 22 0a 20 20 28 6d 65 6d 71 20 28    6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20 6e 6f  | heck."...(memq.(js2-node-type.no | 
| 31220 |  64 65 29 20 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64    65 2d 74 79 70 65 73 29 29 0a 0a 28 64 65 66 75  | de).js2-stmt-node-types))..(defu | 
| 31240 |  6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d    66 69 72 73 74 2d 73 74 6d 74 20 28 6e 6f 64 65  | n.js2-mode-find-first-stmt.(node | 
| 31260 |  29 0a 20 20 22 53 65 61 72 63 68 20 75 70 77 61    72 64 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d  | )..."Search.upward.starting.from | 
| 31280 |  20 4e 4f 44 45 20 6c 6f 6f 6b 69 6e 67 20 66 6f    72 20 61 20 73 74 61 74 65 6d 65 6e 74 2e 0a 46  | .NODE.looking.for.a.statement..F | 
| 312a0 |  6f 72 20 70 75 72 70 6f 73 65 73 20 6f 66 20 74    68 69 73 20 66 75 6e 63 74 69 6f 6e 2c 20 61 20  | or.purposes.of.this.function,.a. | 
| 312c0 |  60 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f    64 65 27 20 63 6f 75 6e 74 73 2e 22 0a 20 20 28  | `js2-function-node'.counts."...( | 
| 312e0 |  77 68 69 6c 65 20 28 6e 6f 74 20 28 6f 72 20 28    6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 20  | while.(not.(or.(js2-stmt-node-p. | 
| 31300 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e  | node)...................(js2-fun | 
| 31320 |  63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64    65 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6e  | ction-node-p.node))).....(setq.n | 
| 31340 |  6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61    72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 6e  | ode.(js2-node-parent.node)))...n | 
| 31360 |  6f 64 65 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 6e 6f 64 65 2d 70 61 72 65 6e 74 2d 73 74 6d  | ode)..(defun.js2-node-parent-stm | 
| 31380 |  74 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75    72 6e 20 74 68 65 20 6e 6f 64 65 27 73 20 66 69  | t.(node)..."Return.the.node's.fi | 
| 313a0 |  72 73 74 20 61 6e 63 65 73 74 6f 72 20 74 68 61    74 20 69 73 20 61 20 73 74 61 74 65 6d 65 6e 74  | rst.ancestor.that.is.a.statement | 
| 313c0 |  2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 69 66    20 4e 4f 44 45 20 69 73 20 61 20 60 6a 73 32 2d  | ..Returns.nil.if.NODE.is.a.`js2- | 
| 313e0 |  61 73 74 2d 72 6f 6f 74 27 2e 20 20 4e 6f 74 65    20 74 68 61 74 20 61 6e 79 20 65 78 70 72 65 73  | ast-root'...Note.that.any.expres | 
| 31400 |  73 69 6f 6e 0a 61 70 70 65 61 72 69 6e 67 20 69    6e 20 61 20 73 74 61 74 65 6d 65 6e 74 20 63 6f  | sion.appearing.in.a.statement.co | 
| 31420 |  6e 74 65 78 74 20 77 69 6c 6c 20 68 61 76 65 20    61 20 70 61 72 65 6e 74 20 74 68 61 74 20 69 73  | ntext.will.have.a.parent.that.is | 
| 31440 |  20 61 0a 60 6a 73 32 2d 65 78 70 72 2d 73 74 6d    74 2d 6e 6f 64 65 27 20 74 68 61 74 20 77 69 6c  | .a.`js2-expr-stmt-node'.that.wil | 
| 31460 |  6c 20 62 65 20 72 65 74 75 72 6e 65 64 20 62 79    20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22  | l.be.returned.by.this.function." | 
| 31480 |  0a 20 20 28 6c 65 74 20 28 28 70 61 72 65 6e 74    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e  | ...(let.((parent.(js2-node-paren | 
| 314a0 |  74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69    66 20 28 6f 72 20 28 6e 75 6c 6c 20 70 61 72 65  | t.node))).....(if.(or.(null.pare | 
| 314c0 |  6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70  | nt).............(js2-stmt-node-p | 
| 314e0 |  20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 66  | .parent).............(and.(js2-f | 
| 31500 |  75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70    61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20  | unction-node-p.parent).......... | 
| 31520 |  20 20 20 20 20 20 20 20 28 65 71 20 28 6a 73 32    2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 66  | ........(eq.(js2-function-node-f | 
| 31540 |  6f 72 6d 20 70 61 72 65 6e 74 29 20 27 46 55 4e    43 54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 29  | orm.parent).'FUNCTION_STATEMENT) | 
| 31560 |  29 29 0a 20 20 20 20 20 20 20 20 70 61 72 65 6e    74 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | )).........parent.......(js2-nod | 
| 31580 |  65 2d 70 61 72 65 6e 74 2d 73 74 6d 74 20 70 61    72 65 6e 74 29 29 29 29 0a 0a 3b 3b 20 49 6e 20  | e-parent-stmt.parent))))..;;.In. | 
| 315a0 |  74 68 65 20 4d 6f 7a 69 6c 6c 61 20 52 68 69 6e    6f 20 73 6f 75 72 63 65 73 2c 20 52 6f 73 68 61  | the.Mozilla.Rhino.sources,.Rosha | 
| 315c0 |  6e 20 4a 61 6d 65 73 20 77 72 69 74 65 73 3a 0a    3b 3b 20 20 44 6f 65 73 20 63 6f 6e 73 69 73 74  | n.James.writes:.;;..Does.consist | 
| 315e0 |  65 6e 74 2d 72 65 74 75 72 6e 20 61 6e 61 6c 79    73 69 73 20 6f 6e 20 74 68 65 20 66 75 6e 63 74  | ent-return.analysis.on.the.funct | 
| 31600 |  69 6f 6e 20 62 6f 64 79 20 77 68 65 6e 20 73 74    72 69 63 74 20 6d 6f 64 65 20 69 73 0a 3b 3b 20  | ion.body.when.strict.mode.is.;;. | 
| 31620 |  20 65 6e 61 62 6c 65 64 2e 0a 3b 3b 0a 3b 3b 20    20 20 20 66 75 6e 63 74 69 6f 6e 20 28 78 29 20  | .enabled..;;.;;....function.(x). | 
| 31640 |  7b 20 72 65 74 75 72 6e 20 28 78 2b 31 29 20 7d    0a 3b 3b 0a 3b 3b 20 20 69 73 20 6f 6b 2c 20 62  | {.return.(x+1).}.;;.;;..is.ok,.b | 
| 31660 |  75 74 0a 3b 3b 0a 3b 3b 20 20 20 20 66 75 6e 63    74 69 6f 6e 20 28 78 29 20 7b 20 69 66 20 28 78  | ut.;;.;;....function.(x).{.if.(x | 
| 31680 |  20 3c 20 30 29 20 72 65 74 75 72 6e 20 28 78 2b    31 29 3b 20 7d 0a 3b 3b 0a 3b 3b 20 20 69 73 20  | .<.0).return.(x+1);.}.;;.;;..is. | 
| 316a0 |  6e 6f 74 20 62 65 63 61 75 73 65 20 74 68 65 20    66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 70 6f 74  | not.because.the.function.can.pot | 
| 316c0 |  65 6e 74 69 61 6c 6c 79 20 72 65 74 75 72 6e 20    61 20 76 61 6c 75 65 20 77 68 65 6e 20 74 68 65  | entially.return.a.value.when.the | 
| 316e0 |  0a 3b 3b 20 20 63 6f 6e 64 69 74 69 6f 6e 20 69    73 20 73 61 74 69 73 66 69 65 64 20 61 6e 64 20  | .;;..condition.is.satisfied.and. | 
| 31700 |  69 66 20 6e 6f 74 2c 20 74 68 65 20 66 75 6e 63    74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78  | if.not,.the.function.does.not.ex | 
| 31720 |  70 6c 69 63 69 74 6c 79 0a 3b 3b 20 20 72 65 74    75 72 6e 20 61 20 76 61 6c 75 65 2e 0a 3b 3b 0a  | plicitly.;;..return.a.value..;;. | 
| 31740 |  3b 3b 20 20 54 68 69 73 20 65 78 74 65 6e 64 73    20 74 6f 20 63 68 65 63 6b 69 6e 67 20 6d 69 73  | ;;..This.extends.to.checking.mis | 
| 31760 |  6d 61 74 63 68 65 73 20 73 75 63 68 20 61 73 20    22 72 65 74 75 72 6e 22 20 61 6e 64 20 22 72 65  | matches.such.as."return".and."re | 
| 31780 |  74 75 72 6e 20 3c 76 61 6c 75 65 3e 22 0a 3b 3b    20 20 75 73 65 64 20 69 6e 20 74 68 65 20 73 61  | turn.<value>".;;..used.in.the.sa | 
| 317a0 |  6d 65 20 66 75 6e 63 74 69 6f 6e 2e 20 57 61 72    6e 69 6e 67 73 20 61 72 65 20 6e 6f 74 20 65 6d  | me.function..Warnings.are.not.em | 
| 317c0 |  69 74 74 65 64 20 69 66 20 69 6e 63 6f 6e 73 69    73 74 65 6e 74 0a 3b 3b 20 20 72 65 74 75 72 6e  | itted.if.inconsistent.;;..return | 
| 317e0 |  73 20 65 78 69 73 74 20 69 6e 20 63 6f 64 65 20    74 68 61 74 20 63 61 6e 20 62 65 20 73 74 61 74  | s.exist.in.code.that.can.be.stat | 
| 31800 |  69 63 61 6c 6c 79 20 73 68 6f 77 6e 20 74 6f 20    62 65 20 75 6e 72 65 61 63 68 61 62 6c 65 2e 0a  | ically.shown.to.be.unreachable.. | 
| 31820 |  3b 3b 20 20 45 78 2e 0a 3b 3b 20 20 20 20 66 75    6e 63 74 69 6f 6e 20 28 78 29 20 7b 20 77 68 69  | ;;..Ex..;;....function.(x).{.whi | 
| 31840 |  6c 65 20 28 74 72 75 65 29 20 7b 20 2e 2e 2e 20    69 66 20 28 2e 2e 29 20 7b 20 72 65 74 75 72 6e  | le.(true).{.....if.(..).{.return | 
| 31860 |  20 76 61 6c 75 65 20 7d 20 2e 2e 2e 20 7d 20 7d    0a 3b 3b 0a 3b 3b 20 20 65 6d 69 74 73 20 6e 6f  | .value.}.....}.}.;;.;;..emits.no | 
| 31880 |  20 77 61 72 6e 69 6e 67 2e 20 48 6f 77 65 76 65    72 20 69 66 20 74 68 65 20 6c 6f 6f 70 20 68 61  | .warning..However.if.the.loop.ha | 
| 318a0 |  64 20 61 20 62 72 65 61 6b 20 73 74 61 74 65 6d    65 6e 74 2c 20 74 68 65 6e 20 61 0a 3b 3b 20 20  | d.a.break.statement,.then.a.;;.. | 
| 318c0 |  77 61 72 6e 69 6e 67 20 77 6f 75 6c 64 20 62 65    20 65 6d 69 74 74 65 64 2e 0a 3b 3b 0a 3b 3b 20  | warning.would.be.emitted..;;.;;. | 
| 318e0 |  20 54 68 65 20 63 6f 6e 73 69 73 74 65 6e 63 79    20 61 6e 61 6c 79 73 69 73 20 6c 6f 6f 6b 73 20  | .The.consistency.analysis.looks. | 
| 31900 |  61 74 20 63 6f 6e 74 72 6f 6c 20 73 74 72 75 63    74 75 72 65 73 20 73 75 63 68 20 61 73 20 6c 6f  | at.control.structures.such.as.lo | 
| 31920 |  6f 70 73 2c 20 69 66 73 2c 0a 3b 3b 20 20 73 77    69 74 63 68 2c 20 74 72 79 2d 63 61 74 63 68 2d  | ops,.ifs,.;;..switch,.try-catch- | 
| 31940 |  66 69 6e 61 6c 6c 79 20 62 6c 6f 63 6b 73 2c 20    65 78 61 6d 69 6e 65 73 20 74 68 65 20 72 65 61  | finally.blocks,.examines.the.rea | 
| 31960 |  63 68 61 62 6c 65 20 63 6f 64 65 20 70 61 74 68    73 20 61 6e 64 0a 3b 3b 20 20 77 61 72 6e 73 20  | chable.code.paths.and.;;..warns. | 
| 31980 |  74 68 65 20 75 73 65 72 20 61 62 6f 75 74 20 61    6e 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74 20 73  | the.user.about.an.inconsistent.s | 
| 319a0 |  65 74 20 6f 66 20 74 65 72 6d 69 6e 61 74 69 6f    6e 20 70 6f 73 73 69 62 69 6c 69 74 69 65 73 2e  | et.of.termination.possibilities. | 
| 319c0 |  0a 3b 3b 0a 3b 3b 20 20 54 68 65 73 65 20 66 6c    61 67 73 20 65 6e 75 6d 65 72 61 74 65 20 74 68  | .;;.;;..These.flags.enumerate.th | 
| 319e0 |  65 20 70 6f 73 73 69 62 6c 65 20 77 61 79 73 20    61 20 73 74 61 74 65 6d 65 6e 74 2f 66 75 6e 63  | e.possible.ways.a.statement/func | 
| 31a00 |  74 69 6f 6e 20 63 61 6e 0a 3b 3b 20 20 74 65 72    6d 69 6e 61 74 65 2e 20 54 68 65 73 65 20 66 6c  | tion.can.;;..terminate..These.fl | 
| 31a20 |  61 67 73 20 61 72 65 20 75 73 65 64 20 62 79 20    65 6e 64 43 68 65 63 6b 28 29 20 61 6e 64 20 62  | ags.are.used.by.endCheck().and.b | 
| 31a40 |  79 20 74 68 65 20 50 61 72 73 65 72 20 74 6f 0a    3b 3b 20 20 64 65 74 65 63 74 20 69 6e 63 6f 6e  | y.the.Parser.to.;;..detect.incon | 
| 31a60 |  73 69 73 74 65 6e 74 20 72 65 74 75 72 6e 20 75    73 61 67 65 2e 0a 3b 3b 0a 3b 3b 20 20 45 4e 44  | sistent.return.usage..;;.;;..END | 
| 31a80 |  5f 55 4e 52 45 41 43 48 45 44 20 69 73 20 72 65    73 65 72 76 65 64 20 66 6f 72 20 63 6f 64 65 20  | _UNREACHED.is.reserved.for.code. | 
| 31aa0 |  70 61 74 68 73 20 74 68 61 74 20 61 72 65 20 61    73 73 75 6d 65 64 20 74 6f 20 61 6c 77 61 79 73  | paths.that.are.assumed.to.always | 
| 31ac0 |  20 62 65 0a 3b 3b 20 20 61 62 6c 65 20 74 6f 20    65 78 65 63 75 74 65 20 28 65 78 61 6d 70 6c 65  | .be.;;..able.to.execute.(example | 
| 31ae0 |  3a 20 74 68 72 6f 77 2c 20 63 6f 6e 74 69 6e 75    65 29 0a 3b 3b 0a 3b 3b 20 20 45 4e 44 5f 44 52  | :.throw,.continue).;;.;;..END_DR | 
| 31b00 |  4f 50 53 5f 4f 46 46 20 69 6e 64 69 63 61 74 65    73 20 69 66 20 74 68 65 20 73 74 61 74 65 6d 65  | OPS_OFF.indicates.if.the.stateme | 
| 31b20 |  6e 74 20 63 61 6e 20 74 72 61 6e 73 66 65 72 20    63 6f 6e 74 72 6f 6c 20 74 6f 20 74 68 65 0a 3b  | nt.can.transfer.control.to.the.; | 
| 31b40 |  3b 20 20 6e 65 78 74 20 6f 6e 65 2e 20 53 74 61    74 65 6d 65 6e 74 20 73 75 63 68 20 61 73 20 72  | ;..next.one..Statement.such.as.r | 
| 31b60 |  65 74 75 72 6e 20 64 6f 6e 74 2e 20 41 20 63 6f    6d 70 6f 75 6e 64 20 73 74 61 74 65 6d 65 6e 74  | eturn.dont..A.compound.statement | 
| 31b80 |  20 6d 61 79 20 68 61 76 65 0a 3b 3b 20 20 73 6f    6d 65 20 62 72 61 6e 63 68 20 74 68 61 74 20 64  | .may.have.;;..some.branch.that.d | 
| 31ba0 |  72 6f 70 73 20 6f 66 66 20 63 6f 6e 74 72 6f 6c    20 74 6f 20 74 68 65 20 6e 65 78 74 20 73 74 61  | rops.off.control.to.the.next.sta | 
| 31bc0 |  74 65 6d 65 6e 74 2e 0a 3b 3b 0a 3b 3b 20 20 45    4e 44 5f 52 45 54 55 52 4e 53 20 69 6e 64 69 63  | tement..;;.;;..END_RETURNS.indic | 
| 31be0 |  61 74 65 73 20 74 68 61 74 20 74 68 65 20 73 74    61 74 65 6d 65 6e 74 20 63 61 6e 20 72 65 74 75  | ates.that.the.statement.can.retu | 
| 31c00 |  72 6e 20 77 69 74 68 20 6e 6f 20 76 61 6c 75 65    2e 0a 3b 3b 20 20 45 4e 44 5f 52 45 54 55 52 4e  | rn.with.no.value..;;..END_RETURN | 
| 31c20 |  53 5f 56 41 4c 55 45 20 69 6e 64 69 63 61 74 65    73 20 74 68 61 74 20 74 68 65 20 73 74 61 74 65  | S_VALUE.indicates.that.the.state | 
| 31c40 |  6d 65 6e 74 20 63 61 6e 20 72 65 74 75 72 6e 20    61 20 76 61 6c 75 65 2e 0a 3b 3b 0a 3b 3b 20 20  | ment.can.return.a.value..;;.;;.. | 
| 31c60 |  41 20 63 6f 6d 70 6f 75 6e 64 20 73 74 61 74 65    6d 65 6e 74 20 73 75 63 68 20 61 73 0a 3b 3b 20  | A.compound.statement.such.as.;;. | 
| 31c80 |  20 69 66 20 28 63 6f 6e 64 69 74 69 6f 6e 29 20    7b 0a 3b 3b 20 20 20 20 72 65 74 75 72 6e 20 76  | .if.(condition).{.;;....return.v | 
| 31ca0 |  61 6c 75 65 3b 0a 3b 3b 20 20 7d 0a 3b 3b 20 20    57 69 6c 6c 20 62 65 20 64 65 74 65 63 74 65 64  | alue;.;;..}.;;..Will.be.detected | 
| 31cc0 |  20 61 73 20 28 45 4e 44 5f 44 52 4f 50 53 5f 4f    46 46 20 7c 20 45 4e 44 5f 52 45 54 55 52 4e 5f  | .as.(END_DROPS_OFF.|.END_RETURN_ | 
| 31ce0 |  56 41 4c 55 45 29 20 62 79 20 65 6e 64 43 68 65    63 6b 28 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20  | VALUE).by.endCheck()..(defconst. | 
| 31d00 |  6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 43 48 45    44 20 30 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a  | js2-END_UNREACHED.0).(defconst.j | 
| 31d20 |  73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46    20 31 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73  | s2-END_DROPS_OFF.1).(defconst.js | 
| 31d40 |  32 2d 45 4e 44 5f 52 45 54 55 52 4e 53 20 32 29    0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 45  | 2-END_RETURNS.2).(defconst.js2-E | 
| 31d60 |  4e 44 5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45    20 34 29 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73  | ND_RETURNS_VALUE.4).(defconst.js | 
| 31d80 |  32 2d 45 4e 44 5f 59 49 45 4c 44 53 20 38 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 61 73 2d  | 2-END_YIELDS.8)..(defun.js2-has- | 
| 31da0 |  63 6f 6e 73 69 73 74 65 6e 74 2d 72 65 74 75 72    6e 2d 75 73 61 67 65 20 28 6e 6f 64 65 29 0a 20  | consistent-return-usage.(node).. | 
| 31dc0 |  20 22 43 68 65 63 6b 20 74 68 61 74 20 65 76 65    72 79 20 72 65 74 75 72 6e 20 75 73 61 67 65 20  | ."Check.that.every.return.usage. | 
| 31de0 |  69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 62 6f    64 79 20 69 73 20 63 6f 6e 73 69 73 74 65 6e 74  | in.a.function.body.is.consistent | 
| 31e00 |  2e 0a 52 65 74 75 72 6e 73 20 74 20 69 66 20 74    68 65 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69  | ..Returns.t.if.the.function.sati | 
| 31e20 |  73 66 69 65 73 20 73 74 72 69 63 74 20 6d 6f 64    65 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 22 0a  | sfies.strict.mode.requirement.". | 
| 31e40 |  20 20 28 6c 65 74 20 28 28 6e 20 28 6a 73 32 2d    65 6e 64 2d 63 68 65 63 6b 20 6e 6f 64 65 29 29  | ..(let.((n.(js2-end-check.node)) | 
| 31e60 |  29 0a 20 20 20 20 3b 3b 20 65 69 74 68 65 72 20    69 74 20 64 6f 65 73 6e 27 74 20 72 65 74 75 72  | ).....;;.either.it.doesn't.retur | 
| 31e80 |  6e 20 61 20 76 61 6c 75 65 20 69 6e 20 61 6e 79    20 62 72 61 6e 63 68 2e 2e 2e 0a 20 20 20 20 28  | n.a.value.in.any.branch........( | 
| 31ea0 |  6f 72 20 28 6a 73 32 2d 66 6c 61 67 2d 6e 6f 74    2d 73 65 74 2d 70 20 6e 20 6a 73 32 2d 45 4e 44  | or.(js2-flag-not-set-p.n.js2-END | 
| 31ec0 |  5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 29 0a    20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 69 74  | _RETURNS_VALUE).........;;.or.it | 
| 31ee0 |  20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 75 65    20 28 6f 72 20 69 73 20 75 6e 72 65 61 63 68 65  | .returns.a.value.(or.is.unreache | 
| 31f00 |  64 29 20 61 74 20 65 76 65 72 79 20 62 72 61 6e    63 68 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | d).at.every.branch.........(js2- | 
| 31f20 |  66 6c 61 67 2d 6e 6f 74 2d 73 65 74 2d 70 20 6e    20 28 6c 6f 67 69 6f 72 20 6a 73 32 2d 45 4e 44  | flag-not-set-p.n.(logior.js2-END | 
| 31f40 |  5f 44 52 4f 50 53 5f 4f 46 46 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | _DROPS_OFF...................... | 
| 31f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 6a 73 32 2d 45 4e 44 5f 52 45 54 55 52 4e 53  | .................js2-END_RETURNS | 
| 31f80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 31fa0 |  20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 59    49 45 4c 44 53 29 29 29 29 29 0a 0a 28 64 65 66  | .......js2-END_YIELDS)))))..(def | 
| 31fc0 |  75 6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b    2d 69 66 20 28 6e 6f 64 65 29 0a 20 20 22 45 6e  | un.js2-end-check-if.(node)..."En | 
| 31fe0 |  73 75 72 65 20 74 68 61 74 20 72 65 74 75 72 6e    20 75 73 61 67 65 20 69 6e 20 74 68 65 6e 2f 65  | sure.that.return.usage.in.then/e | 
| 32000 |  6c 73 65 20 62 6c 6f 63 6b 73 20 69 73 20 63 6f    6e 73 69 73 74 65 6e 74 2e 0a 49 66 20 74 68 65  | lse.blocks.is.consistent..If.the | 
| 32020 |  72 65 20 69 73 20 6e 6f 20 65 6c 73 65 20 62 6c    6f 63 6b 2c 20 74 68 65 6e 20 74 68 65 20 72 65  | re.is.no.else.block,.then.the.re | 
| 32040 |  74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20 63    61 6e 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 2e  | turn.statement.can.fall.through. | 
| 32060 |  0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61 6c    20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61  | .Returns.logical.OR.of.END_*.fla | 
| 32080 |  67 73 22 0a 20 20 28 6c 65 74 20 28 28 74 68 20    28 6a 73 32 2d 69 66 2d 6e 6f 64 65 2d 74 68 65  | gs"...(let.((th.(js2-if-node-the | 
| 320a0 |  6e 2d 70 61 72 74 20 6e 6f 64 65 29 29 0a 20 20    20 20 20 20 20 20 28 65 6c 20 28 6a 73 32 2d 69  | n-part.node)).........(el.(js2-i | 
| 320c0 |  66 2d 6e 6f 64 65 2d 65 6c 73 65 2d 70 61 72 74    20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69 66  | f-node-else-part.node))).....(if | 
| 320e0 |  20 28 6e 75 6c 6c 20 74 68 29 0a 20 20 20 20 20    20 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41  | .(null.th).........js2-END_UNREA | 
| 32100 |  43 48 45 44 0a 20 20 20 20 20 20 28 6c 6f 67 69    6f 72 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63  | CHED.......(logior.(js2-end-chec | 
| 32120 |  6b 20 74 68 29 20 28 69 66 20 65 6c 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | k.th).(if.el.................... | 
| 32140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b  | ..................(js2-end-check | 
| 32160 |  20 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .el)............................ | 
| 32180 |  20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f    44 52 4f 50 53 5f 4f 46 46 29 29 29 29 29 0a 0a  | ........js2-END_DROPS_OFF))))).. | 
| 321a0 |  28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63    68 65 63 6b 2d 73 77 69 74 63 68 20 28 6e 6f 64  | (defun.js2-end-check-switch.(nod | 
| 321c0 |  65 29 0a 20 20 22 43 6f 6e 73 69 73 74 65 6e 63    79 20 6f 66 20 72 65 74 75 72 6e 20 73 74 61 74  | e)..."Consistency.of.return.stat | 
| 321e0 |  65 6d 65 6e 74 73 20 69 73 20 63 68 65 63 6b 65    64 20 62 65 74 77 65 65 6e 20 74 68 65 20 63 61  | ements.is.checked.between.the.ca | 
| 32200 |  73 65 20 73 74 61 74 65 6d 65 6e 74 73 2e 0a 49    66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 64 65  | se.statements..If.there.is.no.de | 
| 32220 |  66 61 75 6c 74 2c 20 74 68 65 6e 20 74 68 65 20    73 77 69 74 63 68 20 63 61 6e 20 66 61 6c 6c 20  | fault,.then.the.switch.can.fall. | 
| 32240 |  74 68 72 6f 75 67 68 2e 20 49 66 20 74 68 65 72    65 20 69 73 20 61 0a 64 65 66 61 75 6c 74 2c 20  | through..If.there.is.a.default,. | 
| 32260 |  77 65 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20    69 66 20 61 6c 6c 20 63 6f 64 65 20 70 61 74 68  | we.check.to.see.if.all.code.path | 
| 32280 |  73 20 69 6e 20 74 68 65 20 64 65 66 61 75 6c 74    20 72 65 74 75 72 6e 20 6f 72 20 69 66 0a 74 68  | s.in.the.default.return.or.if.th | 
| 322a0 |  65 72 65 20 69 73 20 61 20 63 6f 64 65 20 70 61    74 68 20 74 68 61 74 20 63 61 6e 20 66 61 6c 6c  | ere.is.a.code.path.that.can.fall | 
| 322c0 |  20 74 68 72 6f 75 67 68 2e 0a 52 65 74 75 72 6e    73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20  | .through..Returns.logical.OR.of. | 
| 322e0 |  45 4e 44 5f 2a 20 66 6c 61 67 73 2e 22 0a 20 20    28 6c 65 74 20 28 28 72 76 20 6a 73 32 2d 45 4e  | END_*.flags."...(let.((rv.js2-EN | 
| 32300 |  44 5f 55 4e 52 45 41 43 48 45 44 29 0a 20 20 20    20 20 20 20 20 64 65 66 61 75 6c 74 2d 63 61 73  | D_UNREACHED).........default-cas | 
| 32320 |  65 29 0a 20 20 20 20 3b 3b 20 65 78 61 6d 69 6e    65 20 74 68 65 20 63 61 73 65 73 0a 20 20 20 20  | e).....;;.examine.the.cases..... | 
| 32340 |  28 63 61 74 63 68 20 27 62 72 65 61 6b 0a 20 20    20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 20 28  | (catch.'break.......(dolist.(c.( | 
| 32360 |  6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d    63 61 73 65 73 20 6e 6f 64 65 29 29 0a 20 20 20  | js2-switch-node-cases.node)).... | 
| 32380 |  20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 63 61    73 65 2d 6e 6f 64 65 2d 65 78 70 72 20 63 29 0a  | .....(if.(js2-case-node-expr.c). | 
| 323a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 73 65 74 2d 66 6c 61 67 20 72 76 20 28 6a 73  | ............(js2-set-flag.rv.(js | 
| 323c0 |  32 2d 65 6e 64 2d 63 68 65 63 6b 2d 62 6c 6f 63    6b 20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20  | 2-end-check-block.c))........... | 
| 323e0 |  28 73 65 74 71 20 64 65 66 61 75 6c 74 2d 63 61    73 65 20 63 29 0a 20 20 20 20 20 20 20 20 20 20  | (setq.default-case.c)........... | 
| 32400 |  28 74 68 72 6f 77 20 27 62 72 65 61 6b 20 6e 69    6c 29 29 29 29 0a 20 20 20 20 3b 3b 20 77 65 20  | (throw.'break.nil)))).....;;.we. | 
| 32420 |  64 6f 6e 27 74 20 63 61 72 65 20 68 6f 77 20 74    68 65 20 63 61 73 65 73 20 64 72 6f 70 20 69 6e  | don't.care.how.the.cases.drop.in | 
| 32440 |  74 6f 20 65 61 63 68 20 6f 74 68 65 72 0a 20 20    20 20 28 6a 73 32 2d 63 6c 65 61 72 2d 66 6c 61  | to.each.other.....(js2-clear-fla | 
| 32460 |  67 20 72 76 20 6a 73 32 2d 45 4e 44 5f 44 52 4f    50 53 5f 4f 46 46 29 0a 20 20 20 20 3b 3b 20 65  | g.rv.js2-END_DROPS_OFF).....;;.e | 
| 32480 |  78 61 6d 69 6e 65 20 74 68 65 20 64 65 66 61 75    6c 74 0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d  | xamine.the.default.....(js2-set- | 
| 324a0 |  66 6c 61 67 20 72 76 20 28 69 66 20 64 65 66 61    75 6c 74 2d 63 61 73 65 0a 20 20 20 20 20 20 20  | flag.rv.(if.default-case........ | 
| 324c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b  | ..................(js2-end-check | 
| 324e0 |  20 64 65 66 61 75 6c 74 2d 63 61 73 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .default-case).................. | 
| 32500 |  20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 44 52    4f 50 53 5f 4f 46 46 29 29 0a 20 20 20 20 72 76  | ......js2-END_DROPS_OFF)).....rv | 
| 32520 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65    6e 64 2d 63 68 65 63 6b 2d 74 72 79 20 28 6e 6f  | ))..(defun.js2-end-check-try.(no | 
| 32540 |  64 65 29 0a 20 22 49 66 20 74 68 65 20 62 6c 6f    63 6b 20 68 61 73 20 61 20 66 69 6e 61 6c 6c 79  | de).."If.the.block.has.a.finally | 
| 32560 |  2c 20 72 65 74 75 72 6e 20 63 6f 6e 73 69 73 74    65 6e 63 79 20 69 73 20 63 68 65 63 6b 65 64 20  | ,.return.consistency.is.checked. | 
| 32580 |  69 6e 20 74 68 65 0a 66 69 6e 61 6c 6c 79 20 62    6c 6f 63 6b 2e 20 49 66 20 61 6c 6c 20 63 6f 64  | in.the.finally.block..If.all.cod | 
| 325a0 |  65 20 70 61 74 68 73 20 69 6e 20 74 68 65 20 66    69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 2c 20 74  | e.paths.in.the.finally.return,.t | 
| 325c0 |  68 65 6e 20 74 68 65 0a 72 65 74 75 72 6e 73 20    69 6e 20 74 68 65 20 74 72 79 2d 63 61 74 63 68  | hen.the.returns.in.the.try-catch | 
| 325e0 |  20 62 6c 6f 63 6b 73 20 64 6f 6e 27 74 20 6d 61    74 74 65 72 2e 20 49 66 20 74 68 65 72 65 20 69  | .blocks.don't.matter..If.there.i | 
| 32600 |  73 20 61 20 63 6f 64 65 20 70 61 74 68 0a 74 68    61 74 20 64 6f 65 73 20 6e 6f 74 20 72 65 74 75  | s.a.code.path.that.does.not.retu | 
| 32620 |  72 6e 20 6f 72 20 69 66 20 74 68 65 72 65 20 69    73 20 6e 6f 20 66 69 6e 61 6c 6c 79 20 62 6c 6f  | rn.or.if.there.is.no.finally.blo | 
| 32640 |  63 6b 2c 20 74 68 65 20 72 65 74 75 72 6e 73 0a    6f 66 20 74 68 65 20 74 72 79 20 61 6e 64 20 63  | ck,.the.returns.of.the.try.and.c | 
| 32660 |  61 74 63 68 20 62 6c 6f 63 6b 73 20 61 72 65 20    63 68 65 63 6b 65 64 20 66 6f 72 20 6d 69 73 6d  | atch.blocks.are.checked.for.mism | 
| 32680 |  61 74 63 68 2e 0a 52 65 74 75 72 6e 73 20 6c 6f    67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f  | atch..Returns.logical.OR.of.END_ | 
| 326a0 |  2a 20 66 6c 61 67 73 2e 22 0a 20 28 6c 65 74 20    28 28 66 69 6e 61 6c 6c 79 20 28 6a 73 32 2d 74  | *.flags."..(let.((finally.(js2-t | 
| 326c0 |  72 79 2d 6e 6f 64 65 2d 66 69 6e 61 6c 6c 79 2d    62 6c 6f 63 6b 20 6e 6f 64 65 29 29 0a 20 20 20  | ry-node-finally-block.node)).... | 
| 326e0 |  20 20 20 20 72 76 29 0a 20 20 20 3b 3b 20 63 68    65 63 6b 20 74 68 65 20 66 69 6e 61 6c 6c 79 20  | ....rv)....;;.check.the.finally. | 
| 32700 |  69 66 20 69 74 20 65 78 69 73 74 73 0a 20 20 20    28 73 65 74 71 20 72 76 20 28 69 66 20 66 69 6e  | if.it.exists....(setq.rv.(if.fin | 
| 32720 |  61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68  | ally.................(js2-end-ch | 
| 32740 |  65 63 6b 20 28 6a 73 32 2d 66 69 6e 61 6c 6c 79    2d 6e 6f 64 65 2d 62 6f 64 79 20 66 69 6e 61 6c  | eck.(js2-finally-node-body.final | 
| 32760 |  6c 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53  | ly))...............js2-END_DROPS | 
| 32780 |  5f 4f 46 46 29 29 0a 20 20 20 3b 3b 20 49 66 20    74 68 65 20 66 69 6e 61 6c 6c 79 20 62 6c 6f 63  | _OFF))....;;.If.the.finally.bloc | 
| 327a0 |  6b 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73    2c 20 74 68 65 6e 20 6e 6f 6e 65 20 6f 66 20 74  | k.always.returns,.then.none.of.t | 
| 327c0 |  68 65 20 72 65 74 75 72 6e 73 0a 20 20 20 3b 3b    20 69 6e 20 74 68 65 20 74 72 79 20 6f 72 20 63  | he.returns....;;.in.the.try.or.c | 
| 327e0 |  61 74 63 68 20 62 6c 6f 63 6b 73 20 6d 61 74 74    65 72 2e 0a 20 20 20 28 77 68 65 6e 20 28 6a 73  | atch.blocks.matter.....(when.(js | 
| 32800 |  32 2d 66 6c 61 67 2d 73 65 74 2d 70 20 72 76 20    6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46  | 2-flag-set-p.rv.js2-END_DROPS_OF | 
| 32820 |  46 29 0a 20 20 20 20 20 28 6a 73 32 2d 63 6c 65    61 72 2d 66 6c 61 67 20 72 76 20 6a 73 32 2d 45  | F)......(js2-clear-flag.rv.js2-E | 
| 32840 |  4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 0a 20 20    20 20 20 3b 3b 20 65 78 61 6d 69 6e 65 20 74 68  | ND_DROPS_OFF)......;;.examine.th | 
| 32860 |  65 20 74 72 79 20 62 6c 6f 63 6b 0a 20 20 20 20    20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 72  | e.try.block......(js2-set-flag.r | 
| 32880 |  76 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b    20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 74  | v.(js2-end-check.(js2-try-node-t | 
| 328a0 |  72 79 2d 62 6c 6f 63 6b 20 6e 6f 64 65 29 29 29    0a 20 20 20 20 20 3b 3b 20 63 68 65 63 6b 20 65  | ry-block.node)))......;;.check.e | 
| 328c0 |  61 63 68 20 63 61 74 63 68 20 62 6c 6f 63 6b 0a    20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 62  | ach.catch.block......(dolist.(cb | 
| 328e0 |  20 28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 63    61 74 63 68 2d 63 6c 61 75 73 65 73 20 6e 6f 64  | .(js2-try-node-catch-clauses.nod | 
| 32900 |  65 29 29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d    73 65 74 2d 66 6c 61 67 20 72 76 20 28 6a 73 32  | e))........(js2-set-flag.rv.(js2 | 
| 32920 |  2d 65 6e 64 2d 63 68 65 63 6b 20 63 62 29 29 29    29 0a 20 20 20 72 76 29 29 0a 0a 28 64 65 66 75  | -end-check.cb))))....rv))..(defu | 
| 32940 |  6e 20 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d    6c 6f 6f 70 20 28 6e 6f 64 65 29 0a 20 20 22 52  | n.js2-end-check-loop.(node)..."R | 
| 32960 |  65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e 74 20    69 6e 20 74 68 65 20 6c 6f 6f 70 20 62 6f 64 79  | eturn.statement.in.the.loop.body | 
| 32980 |  20 6d 75 73 74 20 62 65 20 63 6f 6e 73 69 73 74    65 6e 74 2e 0a 54 68 65 20 64 65 66 61 75 6c 74  | .must.be.consistent..The.default | 
| 329a0 |  20 61 73 73 75 6d 70 74 69 6f 6e 20 66 6f 72 20    61 6e 79 20 6b 69 6e 64 20 6f 66 20 61 20 6c 6f  | .assumption.for.any.kind.of.a.lo | 
| 329c0 |  6f 70 20 69 73 20 74 68 61 74 20 69 74 20 77 69    6c 6c 20 65 76 65 6e 74 75 61 6c 6c 79 0a 74 65  | op.is.that.it.will.eventually.te | 
| 329e0 |  72 6d 69 6e 61 74 65 2e 20 20 54 68 65 20 6f 6e    6c 79 20 65 78 63 65 70 74 69 6f 6e 20 69 73 20  | rminate...The.only.exception.is. | 
| 32a00 |  61 20 6c 6f 6f 70 20 77 69 74 68 20 61 20 63 6f    6e 73 74 61 6e 74 20 74 72 75 65 20 63 6f 6e 64  | a.loop.with.a.constant.true.cond | 
| 32a20 |  69 74 69 6f 6e 2e 0a 43 6f 64 65 20 74 68 61 74    20 66 6f 6c 6c 6f 77 73 20 73 75 63 68 20 61 20  | ition..Code.that.follows.such.a. | 
| 32a40 |  6c 6f 6f 70 20 69 73 20 65 78 61 6d 69 6e 65 64    20 6f 6e 6c 79 20 69 66 20 6f 6e 65 20 63 61 6e  | loop.is.examined.only.if.one.can | 
| 32a60 |  20 64 65 74 65 72 6d 69 6e 65 0a 73 74 61 74 69    63 61 6c 6c 79 20 74 68 61 74 20 74 68 65 72 65  | .determine.statically.that.there | 
| 32a80 |  20 69 73 20 61 20 62 72 65 61 6b 20 6f 75 74 20    6f 66 20 74 68 65 20 6c 6f 6f 70 2e 0a 0a 20 20  | .is.a.break.out.of.the.loop..... | 
| 32aa0 |  20 20 66 6f 72 28 2e 2e 2e 20 3b 20 2e 2e 2e 20    3b 20 2e 2e 2e 29 20 7b 7d 0a 20 20 20 20 66 6f  | ..for(....;.....;....).{}.....fo | 
| 32ac0 |  72 28 2e 2e 2e 20 69 6e 20 2e 2e 2e 20 29 20 7b    7d 0a 20 20 20 20 77 68 69 6c 65 28 2e 2e 2e 29  | r(....in.....).{}.....while(...) | 
| 32ae0 |  20 7b 20 7d 0a 20 20 20 20 64 6f 20 7b 20 7d 20    77 68 69 6c 65 28 2e 2e 2e 29 0a 0a 52 65 74 75  | .{.}.....do.{.}.while(...)..Retu | 
| 32b00 |  72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52 20 6f    66 20 45 4e 44 5f 2a 20 66 6c 61 67 73 2e 22 0a  | rns.logical.OR.of.END_*.flags.". | 
| 32b20 |  20 20 28 6c 65 74 20 28 28 72 76 20 28 6a 73 32    2d 65 6e 64 2d 63 68 65 63 6b 20 28 6a 73 32 2d  | ..(let.((rv.(js2-end-check.(js2- | 
| 32b40 |  6c 6f 6f 70 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e    6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28  | loop-node-body.node))).........( | 
| 32b60 |  63 6f 6e 64 69 74 69 6f 6e 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | condition.(cond................. | 
| 32b80 |  20 20 20 20 28 28 6a 73 32 2d 77 68 69 6c 65 2d    6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20  | ....((js2-while-node-p.node).... | 
| 32ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64  | ..................(js2-while-nod | 
| 32bc0 |  65 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 6f 64 65    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-condition.node)).............. | 
| 32be0 |  20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 64 6f    2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20  | ........((js2-do-node-p.node)... | 
| 32c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65  | ....................(js2-do-node | 
| 32c20 |  2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -condition.node))............... | 
| 32c40 |  20 20 20 20 20 20 20 28 28 6a 73 32 2d 66 6f 72    2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20  | .......((js2-for-node-p.node)... | 
| 32c60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 66 6f 72 2d 6e 6f 64  | ....................(js2-for-nod | 
| 32c80 |  65 2d 63 6f 6e 64 69 74 69 6f 6e 20 6e 6f 64 65    29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 63 68  | e-condition.node)))))......;;.ch | 
| 32ca0 |  65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 74 68    65 20 6c 6f 6f 70 20 63 6f 6e 64 69 74 69 6f 6e  | eck.to.see.if.the.loop.condition | 
| 32cc0 |  20 69 73 20 61 6c 77 61 79 73 20 74 72 75 65 0a    20 20 20 20 28 69 66 20 28 61 6e 64 20 63 6f 6e  | .is.always.true.....(if.(and.con | 
| 32ce0 |  64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 65 71 20 28 6a 73 32 2d 61 6c 77  | dition..............(eq.(js2-alw | 
| 32d00 |  61 79 73 2d 64 65 66 69 6e 65 64 2d 62 6f 6f 6c    65 61 6e 2d 70 20 63 6f 6e 64 69 74 69 6f 6e 29  | ays-defined-boolean-p.condition) | 
| 32d20 |  20 27 41 4c 57 41 59 53 5f 54 52 55 45 29 29 0a    20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 6c 65  | .'ALWAYS_TRUE)).........(js2-cle | 
| 32d40 |  61 72 2d 66 6c 61 67 20 72 76 20 6a 73 32 2d 45    4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a 0a  | ar-flag.rv.js2-END_DROPS_OFF)).. | 
| 32d60 |  20 20 20 20 3b 3b 20 6c 6f 6f 6b 20 66 6f 72 20    65 66 66 65 63 74 20 6f 66 20 62 72 65 61 6b 73  | ....;;.look.for.effect.of.breaks | 
| 32d80 |  0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 6c    61 67 20 72 76 20 28 6a 73 32 2d 6e 6f 64 65 2d  | .....(js2-set-flag.rv.(js2-node- | 
| 32da0 |  67 65 74 2d 70 72 6f 70 20 6e 6f 64 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | get-prop.node................... | 
| 32dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 27 43 4f 4e 54 52 4f 4c 5f 42  | ......................'CONTROL_B | 
| 32de0 |  4c 4f 43 4b 5f 50 52 4f 50 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | LOCK_PROP....................... | 
| 32e00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52 45 41 43  | ..................js2-END_UNREAC | 
| 32e20 |  48 45 44 29 29 0a 20 20 20 20 72 76 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63  | HED)).....rv))..(defun.js2-end-c | 
| 32e40 |  68 65 63 6b 2d 62 6c 6f 63 6b 20 28 6e 6f 64 65    29 0a 20 20 22 41 20 67 65 6e 65 72 61 6c 20 62  | heck-block.(node)..."A.general.b | 
| 32e60 |  6c 6f 63 6b 20 6f 66 20 63 6f 64 65 20 69 73 20    65 78 61 6d 69 6e 65 64 20 73 74 61 74 65 6d 65  | lock.of.code.is.examined.stateme | 
| 32e80 |  6e 74 20 62 79 20 73 74 61 74 65 6d 65 6e 74 2e    0a 49 66 20 61 6e 79 20 73 74 61 74 65 6d 65 6e  | nt.by.statement..If.any.statemen | 
| 32ea0 |  74 20 28 65 76 65 6e 20 61 20 63 6f 6d 70 6f 75    6e 64 20 6f 6e 65 29 20 72 65 74 75 72 6e 73 20  | t.(even.a.compound.one).returns. | 
| 32ec0 |  69 6e 20 61 6c 6c 20 62 72 61 6e 63 68 65 73 2c    20 74 68 65 6e 0a 73 75 62 73 65 71 75 65 6e 74  | in.all.branches,.then.subsequent | 
| 32ee0 |  20 73 74 61 74 65 6d 65 6e 74 73 20 61 72 65 20    6e 6f 74 20 65 78 61 6d 69 6e 65 64 2e 0a 52 65  | .statements.are.not.examined..Re | 
| 32f00 |  74 75 72 6e 73 20 6c 6f 67 69 63 61 6c 20 4f 52    20 6f 66 20 45 4e 44 5f 2a 20 66 6c 61 67 73 2e  | turns.logical.OR.of.END_*.flags. | 
| 32f20 |  22 0a 20 20 28 6c 65 74 2a 20 28 28 72 76 20 6a    73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46  | "...(let*.((rv.js2-END_DROPS_OFF | 
| 32f40 |  29 0a 20 20 20 20 20 20 20 20 20 28 6b 69 64 73    20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65  | )..........(kids.(js2-block-node | 
| 32f60 |  2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a 20 20 20    20 20 20 20 20 20 28 6e 20 28 63 61 72 20 6b 69  | -kids.node))..........(n.(car.ki | 
| 32f80 |  64 73 29 29 29 0a 20 20 20 20 3b 3b 20 43 68 65    63 6b 20 65 61 63 68 20 73 74 61 74 65 6d 65 6e  | ds))).....;;.Check.each.statemen | 
| 32fa0 |  74 2e 20 20 49 66 20 74 68 65 20 73 74 61 74 65    6d 65 6e 74 20 63 61 6e 20 63 6f 6e 74 69 6e 75  | t...If.the.statement.can.continu | 
| 32fc0 |  65 20 6f 6e 74 6f 20 74 68 65 20 6e 65 78 74 0a    20 20 20 20 3b 3b 20 6f 6e 65 20 28 69 2e 65 2e  | e.onto.the.next.....;;.one.(i.e. | 
| 32fe0 |  20 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 20 69    73 20 73 65 74 29 2c 20 74 68 65 6e 20 63 68 65  | .END_DROPS_OFF.is.set),.then.che | 
| 33000 |  63 6b 20 74 68 65 20 6e 65 78 74 20 73 74 61 74    65 6d 65 6e 74 2e 0a 20 20 20 20 28 77 68 69 6c  | ck.the.next.statement......(whil | 
| 33020 |  65 20 28 61 6e 64 20 6e 20 28 6a 73 32 2d 66 6c    61 67 2d 73 65 74 2d 70 20 72 76 20 6a 73 32 2d  | e.(and.n.(js2-flag-set-p.rv.js2- | 
| 33040 |  45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46 29 29 0a    20 20 20 20 20 20 28 6a 73 32 2d 63 6c 65 61 72  | END_DROPS_OFF)).......(js2-clear | 
| 33060 |  2d 66 6c 61 67 20 72 76 20 6a 73 32 2d 45 4e 44    5f 44 52 4f 50 53 5f 4f 46 46 29 0a 20 20 20 20  | -flag.rv.js2-END_DROPS_OFF)..... | 
| 33080 |  20 20 28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20    72 76 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63  | ..(js2-set-flag.rv.(js2-end-chec | 
| 330a0 |  6b 20 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74    71 20 6b 69 64 73 20 28 63 64 72 20 6b 69 64 73  | k.n)).......(setq.kids.(cdr.kids | 
| 330c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 20    28 63 61 72 20 6b 69 64 73 29 29 29 0a 20 20 20  | ).............n.(car.kids))).... | 
| 330e0 |  20 72 76 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 65 6e 64 2d 63 68 65 63 6b 2d 6c 61 62 65  | .rv))..(defun.js2-end-check-labe | 
| 33100 |  6c 20 28 6e 6f 64 65 29 0a 20 20 22 41 20 6c 61    62 65 6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20  | l.(node)..."A.labeled.statement. | 
| 33120 |  69 6d 70 6c 69 65 73 20 74 68 61 74 20 74 68 65    72 65 20 6d 61 79 20 62 65 20 61 20 62 72 65 61  | implies.that.there.may.be.a.brea | 
| 33140 |  6b 20 74 6f 20 74 68 65 20 6c 61 62 65 6c 2e 0a    54 68 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f  | k.to.the.label..The.function.pro | 
| 33160 |  63 65 73 73 65 73 20 74 68 65 20 6c 61 62 65 6c    65 64 20 73 74 61 74 65 6d 65 6e 74 20 61 6e 64  | cesses.the.labeled.statement.and | 
| 33180 |  20 74 68 65 6e 20 63 68 65 63 6b 73 20 74 68 65    0a 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 5f 50  | .then.checks.the.CONTROL_BLOCK_P | 
| 331a0 |  52 4f 50 20 70 72 6f 70 65 72 74 79 20 74 6f 20    73 65 65 20 69 66 20 74 68 65 72 65 20 69 73 20  | ROP.property.to.see.if.there.is. | 
| 331c0 |  65 76 65 72 20 61 20 62 72 65 61 6b 20 74 6f 20    74 68 65 0a 70 61 72 74 69 63 75 6c 61 72 20 6c  | ever.a.break.to.the.particular.l | 
| 331e0 |  61 62 65 6c 2e 0a 52 65 74 75 72 6e 73 20 6c 6f    67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e 44 5f  | abel..Returns.logical.OR.of.END_ | 
| 33200 |  2a 20 66 6c 61 67 73 2e 22 0a 20 20 28 6c 65 74    20 28 28 72 76 20 28 6a 73 32 2d 65 6e 64 2d 63  | *.flags."...(let.((rv.(js2-end-c | 
| 33220 |  68 65 63 6b 20 28 6a 73 32 2d 6c 61 62 65 6c 65    64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74 6d 74  | heck.(js2-labeled-stmt-node-stmt | 
| 33240 |  20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 28 6c    6f 67 69 6f 72 20 72 76 20 28 6a 73 32 2d 6e 6f  | .node)))).....(logior.rv.(js2-no | 
| 33260 |  64 65 2d 67 65 74 2d 70 72 6f 70 20 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de-get-prop.node................ | 
| 33280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 27 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43  | ...................'CONTROL_BLOC | 
| 332a0 |  4b 5f 50 52 4f 50 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | K_PROP.......................... | 
| 332c0 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44    5f 55 4e 52 45 41 43 48 45 44 29 29 29 29 0a 0a  | .........js2-END_UNREACHED)))).. | 
| 332e0 |  28 64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 63    68 65 63 6b 2d 62 72 65 61 6b 20 28 6e 6f 64 65  | (defun.js2-end-check-break.(node | 
| 33300 |  29 0a 20 20 22 57 68 65 6e 20 61 20 62 72 65 61    6b 20 69 73 20 65 6e 63 6f 75 6e 74 65 72 65 64  | )..."When.a.break.is.encountered | 
| 33320 |  20 61 6e 6e 6f 74 61 74 65 20 74 68 65 20 73 74    61 74 65 6d 65 6e 74 20 62 65 69 6e 67 20 62 72  | .annotate.the.statement.being.br | 
| 33340 |  6f 6b 65 6e 0a 6f 75 74 20 6f 66 20 62 79 20 73    65 74 74 69 6e 67 20 69 74 73 20 43 4f 4e 54 52  | oken.out.of.by.setting.its.CONTR | 
| 33360 |  4f 4c 5f 42 4c 4f 43 4b 5f 50 52 4f 50 20 70 72    6f 70 65 72 74 79 2e 0a 52 65 74 75 72 6e 73 20  | OL_BLOCK_PROP.property..Returns. | 
| 33380 |  6c 6f 67 69 63 61 6c 20 4f 52 20 6f 66 20 45 4e    44 5f 2a 20 66 6c 61 67 73 2e 22 0a 20 20 28 61  | logical.OR.of.END_*.flags."...(a | 
| 333a0 |  6e 64 20 28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f    64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 29 0a  | nd.(js2-break-node-target.node). | 
| 333c0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65    2d 73 65 74 2d 70 72 6f 70 20 28 6a 73 32 2d 62  | .......(js2-node-set-prop.(js2-b | 
| 333e0 |  72 65 61 6b 2d 6e 6f 64 65 2d 74 61 72 67 65 74    20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20  | reak-node-target.node).......... | 
| 33400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 27 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 5f  | .................'CONTROL_BLOCK_ | 
| 33420 |  50 52 4f 50 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | PROP...........................j | 
| 33440 |  73 32 2d 45 4e 44 5f 44 52 4f 50 53 5f 4f 46 46    29 29 0a 20 20 6a 73 32 2d 45 4e 44 5f 55 4e 52  | s2-END_DROPS_OFF))...js2-END_UNR | 
| 33460 |  45 41 43 48 45 44 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 20 28 6e  | EACHED)..(defun.js2-end-check.(n | 
| 33480 |  6f 64 65 29 0a 20 20 22 45 78 61 6d 69 6e 65 20    74 68 65 20 62 6f 64 79 20 6f 66 20 61 20 66 75  | ode)..."Examine.the.body.of.a.fu | 
| 334a0 |  6e 63 74 69 6f 6e 2c 20 64 6f 69 6e 67 20 61 20    62 61 73 69 63 20 72 65 61 63 68 61 62 69 6c 69  | nction,.doing.a.basic.reachabili | 
| 334c0 |  74 79 20 61 6e 61 6c 79 73 69 73 2e 0a 52 65 74    75 72 6e 73 20 61 20 63 6f 6d 62 69 6e 61 74 69  | ty.analysis..Returns.a.combinati | 
| 334e0 |  6f 6e 20 6f 66 20 66 6c 61 67 73 20 45 4e 44 5f    2a 20 66 6c 61 67 73 20 74 68 61 74 20 69 6e 64  | on.of.flags.END_*.flags.that.ind | 
| 33500 |  69 63 61 74 65 0a 68 6f 77 20 74 68 65 20 66 75    6e 63 74 69 6f 6e 20 65 78 65 63 75 74 69 6f 6e  | icate.how.the.function.execution | 
| 33520 |  20 63 61 6e 20 74 65 72 6d 69 6e 61 74 65 2e 20    54 68 65 73 65 20 63 6f 6e 73 74 69 74 75 74 65  | .can.terminate..These.constitute | 
| 33540 |  20 6f 6e 6c 79 20 74 68 65 0a 70 65 73 73 69 6d    69 73 74 69 63 20 73 65 74 20 6f 66 20 74 65 72  | .only.the.pessimistic.set.of.ter | 
| 33560 |  6d 69 6e 61 74 69 6f 6e 20 63 6f 6e 64 69 74 69    6f 6e 73 2e 20 49 74 20 69 73 20 70 6f 73 73 69  | mination.conditions..It.is.possi | 
| 33580 |  62 6c 65 20 74 68 61 74 20 61 74 0a 72 75 6e 74    69 6d 65 20 63 65 72 74 61 69 6e 20 63 6f 64 65  | ble.that.at.runtime.certain.code | 
| 335a0 |  20 70 61 74 68 73 20 77 69 6c 6c 20 6e 65 76 65    72 20 62 65 20 61 63 74 75 61 6c 6c 79 20 74 61  | .paths.will.never.be.actually.ta | 
| 335c0 |  6b 65 6e 2e 20 48 65 6e 63 65 20 74 68 69 73 0a    61 6e 61 6c 79 73 69 73 20 77 69 6c 6c 20 66 6c  | ken..Hence.this.analysis.will.fl | 
| 335e0 |  61 67 20 65 72 72 6f 72 73 20 69 6e 20 63 61 73    65 73 20 77 68 65 72 65 20 74 68 65 72 65 20 6d  | ag.errors.in.cases.where.there.m | 
| 33600 |  61 79 20 6e 6f 74 20 62 65 20 65 72 72 6f 72 73    2e 0a 52 65 74 75 72 6e 73 20 6c 6f 67 69 63 61  | ay.not.be.errors..Returns.logica | 
| 33620 |  6c 20 4f 52 20 6f 66 20 45 4e 44 5f 2a 20 66 6c    61 67 73 22 0a 20 20 28 6c 65 74 20 28 6b 69 64  | l.OR.of.END_*.flags"...(let.(kid | 
| 33640 |  29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 28 28 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f 64  | ).....(cond......((js2-break-nod | 
| 33660 |  65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20    28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d 62  | e-p.node).......(js2-end-check-b | 
| 33680 |  72 65 61 6b 20 6e 6f 64 65 29 29 0a 20 20 20 20    20 28 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74  | reak.node))......((js2-expr-stmt | 
| 336a0 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20    20 20 20 20 28 69 66 20 28 73 65 74 71 20 6b 69  | -node-p.node).......(if.(setq.ki | 
| 336c0 |  64 20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74    2d 6e 6f 64 65 2d 65 78 70 72 20 6e 6f 64 65 29  | d.(js2-expr-stmt-node-expr.node) | 
| 336e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 65 6e 64 2d 63 68 65 63 6b 20 6b 69 64 29 0a  | )...........(js2-end-check.kid). | 
| 33700 |  20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f    44 52 4f 50 53 5f 4f 46 46 29 29 0a 20 20 20 20  | ........js2-END_DROPS_OFF))..... | 
| 33720 |  20 28 28 6f 72 20 28 6a 73 32 2d 63 6f 6e 74 69    6e 75 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | .((or.(js2-continue-node-p.node) | 
| 33740 |  0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    74 68 72 6f 77 2d 6e 6f 64 65 2d 70 20 6e 6f 64  | ...........(js2-throw-node-p.nod | 
| 33760 |  65 29 29 0a 20 20 20 20 20 20 6a 73 32 2d 45 4e    44 5f 55 4e 52 45 41 43 48 45 44 29 0a 20 20 20  | e)).......js2-END_UNREACHED).... | 
| 33780 |  20 20 28 28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20  | ..((js2-return-node-p.node)..... | 
| 337a0 |  20 20 28 69 66 20 28 73 65 74 71 20 6b 69 64 20    28 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65  | ..(if.(setq.kid.(js2-return-node | 
| 337c0 |  2d 72 65 74 76 61 6c 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44  | -retval.node))...........js2-END | 
| 337e0 |  5f 52 45 54 55 52 4e 53 5f 56 41 4c 55 45 0a 20    20 20 20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 52  | _RETURNS_VALUE.........js2-END_R | 
| 33800 |  45 54 55 52 4e 53 29 29 0a 20 20 20 20 20 28 28    6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 20  | ETURNS))......((js2-loop-node-p. | 
| 33820 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32    2d 65 6e 64 2d 63 68 65 63 6b 2d 6c 6f 6f 70 20  | node).......(js2-end-check-loop. | 
| 33840 |  6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73    32 2d 73 77 69 74 63 68 2d 6e 6f 64 65 2d 70 20  | node))......((js2-switch-node-p. | 
| 33860 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32    2d 65 6e 64 2d 63 68 65 63 6b 2d 73 77 69 74 63  | node).......(js2-end-check-switc | 
| 33880 |  68 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28    6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74  | h.node))......((js2-labeled-stmt | 
| 338a0 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20    20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65  | -node-p.node).......(js2-end-che | 
| 338c0 |  63 6b 2d 6c 61 62 65 6c 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 28 28 6a 73 32 2d 69 66 2d 6e 6f  | ck-label.node))......((js2-if-no | 
| 338e0 |  64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20    20 28 6a 73 32 2d 65 6e 64 2d 63 68 65 63 6b 2d  | de-p.node).......(js2-end-check- | 
| 33900 |  69 66 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 28    28 6a 73 32 2d 74 72 79 2d 6e 6f 64 65 2d 70 20  | if.node))......((js2-try-node-p. | 
| 33920 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a 73 32    2d 65 6e 64 2d 63 68 65 63 6b 2d 74 72 79 20 6e  | node).......(js2-end-check-try.n | 
| 33940 |  6f 64 65 29 29 0a 20 20 20 20 20 28 28 6a 73 32    2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 20 6e 6f  | ode))......((js2-block-node-p.no | 
| 33960 |  64 65 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e    75 6c 6c 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e  | de).......(if.(null.(js2-block-n | 
| 33980 |  6f 64 65 2d 6b 69 64 73 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 4e  | ode-kids.node))...........js2-EN | 
| 339a0 |  44 5f 44 52 4f 50 53 5f 4f 46 46 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 63 68 65  | D_DROPS_OFF.........(js2-end-che | 
| 339c0 |  63 6b 2d 62 6c 6f 63 6b 20 6e 6f 64 65 29 29 29    0a 20 20 20 20 20 28 28 6a 73 32 2d 79 69 65 6c  | ck-block.node)))......((js2-yiel | 
| 339e0 |  64 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20    20 20 20 20 20 6a 73 32 2d 45 4e 44 5f 59 49 45  | d-node-p.node).......js2-END_YIE | 
| 33a00 |  4c 44 53 29 0a 20 20 20 20 20 28 74 0a 20 20 20    20 20 20 6a 73 32 2d 45 4e 44 5f 44 52 4f 50 53  | LDS)......(t.......js2-END_DROPS | 
| 33a20 |  5f 4f 46 46 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 61 6c 77 61 79 73 2d 64 65 66 69  | _OFF))))..(defun.js2-always-defi | 
| 33a40 |  6e 65 64 2d 62 6f 6f 6c 65 61 6e 2d 70 20 28 6e    6f 64 65 29 0a 20 20 22 43 68 65 63 6b 20 69 66  | ned-boolean-p.(node)..."Check.if | 
| 33a60 |  20 4e 4f 44 45 20 61 6c 77 61 79 73 20 65 76 61    6c 75 61 74 65 73 20 74 6f 20 74 72 75 65 20 6f  | .NODE.always.evaluates.to.true.o | 
| 33a80 |  72 20 66 61 6c 73 65 20 69 6e 20 62 6f 6f 6c 65    61 6e 20 63 6f 6e 74 65 78 74 2e 0a 52 65 74 75  | r.false.in.boolean.context..Retu | 
| 33aa0 |  72 6e 73 20 60 41 4c 57 41 59 53 5f 54 52 55 45    27 2c 20 60 41 4c 57 41 59 53 5f 46 41 4c 53 45  | rns.`ALWAYS_TRUE',.`ALWAYS_FALSE | 
| 33ac0 |  27 2c 20 6f 72 20 6e 69 6c 20 69 66 20 69 74 27    73 20 6e 65 69 74 68 65 72 20 61 6c 77 61 79 73  | ',.or.nil.if.it's.neither.always | 
| 33ae0 |  20 74 72 75 65 0a 6e 6f 72 20 61 6c 77 61 79 73    20 66 61 6c 73 65 2e 22 0a 20 20 28 6c 65 74 20  | .true.nor.always.false."...(let. | 
| 33b00 |  28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 74    79 70 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20  | ((tt.(js2-node-type.node))...... | 
| 33b20 |  20 20 20 6e 75 6d 29 0a 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 74  | ...num).....(cond......((or.(=.t | 
| 33b40 |  74 20 6a 73 32 2d 46 41 4c 53 45 29 20 28 3d 20    74 74 20 6a 73 32 2d 4e 55 4c 4c 29 29 0a 20 20  | t.js2-FALSE).(=.tt.js2-NULL))... | 
| 33b60 |  20 20 20 20 27 41 4c 57 41 59 53 5f 46 41 4c 53    45 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a  | ....'ALWAYS_FALSE)......((=.tt.j | 
| 33b80 |  73 32 2d 54 52 55 45 29 0a 20 20 20 20 20 20 27    41 4c 57 41 59 53 5f 54 52 55 45 29 0a 20 20 20  | s2-TRUE).......'ALWAYS_TRUE).... | 
| 33ba0 |  20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4d    42 45 52 29 0a 20 20 20 20 20 20 28 73 65 74 71  | ..((=.tt.js2-NUMBER).......(setq | 
| 33bc0 |  20 6e 75 6d 20 28 6a 73 32 2d 6e 75 6d 62 65 72    2d 6e 6f 64 65 2d 6e 75 6d 2d 76 61 6c 75 65 20  | .num.(js2-number-node-num-value. | 
| 33be0 |  6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 69 66    20 28 61 6e 64 20 28 6e 6f 74 20 28 65 71 20 6e  | node)).......(if.(and.(not.(eq.n | 
| 33c00 |  75 6d 20 30 2e 30 65 2b 4e 61 4e 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f  | um.0.0e+NaN))................(no | 
| 33c20 |  74 20 28 7a 65 72 6f 70 20 6e 75 6d 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 27 41 4c 57 41 59  | t.(zerop.num)))...........'ALWAY | 
| 33c40 |  53 5f 54 52 55 45 0a 20 20 20 20 20 20 20 20 27    41 4c 57 41 59 53 5f 46 41 4c 53 45 29 29 0a 20  | S_TRUE.........'ALWAYS_FALSE)).. | 
| 33c60 |  20 20 20 20 28 74 0a 20 20 20 20 20 20 6e 69 6c    29 29 29 29 0a 0a 3b 3b 3b 20 53 63 61 6e 6e 65  | ....(t.......nil))))..;;;.Scanne | 
| 33c80 |  72 20 2d 2d 20 61 20 70 6f 72 74 20 6f 66 20 4d    6f 7a 69 6c 6c 61 20 52 68 69 6e 6f 27 73 20 6c  | r.--.a.port.of.Mozilla.Rhino's.l | 
| 33ca0 |  65 78 65 72 2e 0a 3b 3b 20 43 6f 72 72 65 73 70    6f 6e 64 73 20 74 6f 20 52 68 69 6e 6f 20 66 69  | exer..;;.Corresponds.to.Rhino.fi | 
| 33cc0 |  6c 65 73 20 54 6f 6b 65 6e 2e 6a 61 76 61 20 61    6e 64 20 54 6f 6b 65 6e 53 74 72 65 61 6d 2e 6a  | les.Token.java.and.TokenStream.j | 
| 33ce0 |  61 76 61 2e 0a 0a 28 64 65 66 76 61 72 20 6a 73    32 2d 74 6f 6b 65 6e 73 20 6e 69 6c 0a 20 20 22  | ava...(defvar.js2-tokens.nil..." | 
| 33d00 |  4c 69 73 74 20 6f 66 20 61 6c 6c 20 64 65 66 69    6e 65 64 20 74 6f 6b 65 6e 20 6e 61 6d 65 73 2e  | List.of.all.defined.token.names. | 
| 33d20 |  22 29 20 20 3b 20 69 6e 69 74 69 61 6c 69 7a 65    64 20 69 6e 20 60 6a 73 32 2d 74 6f 6b 65 6e 2d  | ")..;.initialized.in.`js2-token- | 
| 33d40 |  6e 61 6d 65 73 27 0a 0a 28 64 65 66 63 6f 6e 73    74 20 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 61 6d 65  | names'..(defconst.js2-token-name | 
| 33d60 |  73 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65    73 20 28 6d 61 6b 65 2d 76 65 63 74 6f 72 20 6a  | s...(let*.((names.(make-vector.j | 
| 33d80 |  73 32 2d 6e 75 6d 2d 74 6f 6b 65 6e 73 20 2d 31    29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 73  | s2-num-tokens.-1))..........(cas | 
| 33da0 |  65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69    6c 29 20 20 3b 20 6f 6e 6c 79 20 6d 61 74 63 68  | e-fold-search.nil)..;.only.match | 
| 33dc0 |  20 6a 73 32 2d 55 50 50 45 52 5f 43 41 53 45 0a    20 20 20 20 20 20 20 20 20 28 73 79 6d 73 20 28  | .js2-UPPER_CASE..........(syms.( | 
| 33de0 |  61 70 72 6f 70 6f 73 2d 69 6e 74 65 72 6e 61 6c    20 22 5e 6a 73 32 2d 5c 5c 28 3f 3a 5b 5b 3a 75  | apropos-internal."^js2-\\(?:[[:u | 
| 33e00 |  70 70 65 72 3a 5d 5f 5d 2b 5c 5c 29 22 29 29 29    0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f  | pper:]_]+\\)"))).....(cl-loop.fo | 
| 33e20 |  72 20 73 79 6d 20 69 6e 20 73 79 6d 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69  | r.sym.in.syms..............for.i | 
| 33e40 |  20 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20  | .from.0..............do......... | 
| 33e60 |  20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72    20 28 6d 65 6d 71 20 73 79 6d 20 27 28 6a 73 32  | .....(unless.(or.(memq.sym.'(js2 | 
| 33e80 |  2d 45 4f 46 5f 43 48 41 52 20 6a 73 32 2d 45 52    52 4f 52 29 29 0a 20 20 20 20 20 20 20 20 20 20  | -EOF_CHAR.js2-ERROR))........... | 
| 33ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 6f 74 20 28 62 6f 75 6e 64 70 20 73 79 6d 29  | ...............(not.(boundp.sym) | 
| 33ec0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 61 73 65 74 20 6e 61 6d 65 73 20 28 73  | ))................(aset.names.(s | 
| 33ee0 |  79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29    20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 64  | ymbol-value.sym)...........;.cod | 
| 33f00 |  65 2c 20 65 2e 67 2e 20 31 35 32 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e,.e.g..152..................... | 
| 33f20 |  20 28 64 6f 77 6e 63 61 73 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(downcase...................... | 
| 33f40 |  20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d    62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 20 34 29  | .(substring.(symbol-name.sym).4) | 
| 33f60 |  29 29 20 3b 20 6e 61 6d 65 2c 20 65 2e 67 2e 20    22 6c 65 74 22 0a 20 20 20 20 20 20 20 20 20 20  | )).;.name,.e.g.."let"........... | 
| 33f80 |  20 20 20 20 20 28 70 75 73 68 20 73 79 6d 20 6a    73 32 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20  | .....(push.sym.js2-tokens))).... | 
| 33fa0 |  20 6e 61 6d 65 73 29 0a 20 20 22 56 65 63 74 6f    72 20 6d 61 70 70 69 6e 67 20 69 6e 74 20 76 61  | .names)..."Vector.mapping.int.va | 
| 33fc0 |  6c 75 65 73 20 74 6f 20 74 6f 6b 65 6e 20 73 74    72 69 6e 67 20 6e 61 6d 65 73 2c 20 73 61 6e 73  | lues.to.token.string.names,.sans | 
| 33fe0 |  20 60 6a 73 32 2d 27 20 70 72 65 66 69 78 2e 22    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 74 74  | .`js2-'.prefix.")..(defun.js2-tt | 
| 34000 |  2d 6e 61 6d 65 20 28 74 6f 6b 29 0a 20 20 22 52    65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 6e  | -name.(tok)..."Return.a.string.n | 
| 34020 |  61 6d 65 20 66 6f 72 20 54 4f 4b 2c 20 61 20 74    6f 6b 65 6e 20 73 79 6d 62 6f 6c 20 6f 72 20 63  | ame.for.TOK,.a.token.symbol.or.c | 
| 34040 |  6f 64 65 2e 0a 53 69 67 6e 61 6c 73 20 61 6e 20    65 72 72 6f 72 20 69 66 20 69 74 27 73 20 6e 6f  | ode..Signals.an.error.if.it's.no | 
| 34060 |  74 20 61 20 72 65 63 6f 67 6e 69 7a 65 64 20 74    6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28  | t.a.recognized.token."...(let.(( | 
| 34080 |  63 6f 64 65 20 74 6f 6b 29 29 0a 20 20 20 20 28    69 66 20 28 73 79 6d 62 6f 6c 70 20 74 6f 6b 29  | code.tok)).....(if.(symbolp.tok) | 
| 340a0 |  0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    6f 64 65 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75  | .........(setq.code.(symbol-valu | 
| 340c0 |  65 20 74 6f 6b 29 29 29 0a 20 20 20 20 28 69 66    20 28 65 71 20 63 6f 64 65 20 2d 31 29 0a 20 20  | e.tok))).....(if.(eq.code.-1)... | 
| 340e0 |  20 20 20 20 20 20 22 45 52 52 4f 52 22 0a 20 20    20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 75  | ......"ERROR".......(if.(and.(nu | 
| 34100 |  6d 62 65 72 70 20 63 6f 64 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20  | mberp.code)................(not. | 
| 34120 |  28 63 6c 2d 6d 69 6e 75 73 70 20 63 6f 64 65 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (cl-minusp.code))............... | 
| 34140 |  20 28 3c 20 63 6f 64 65 20 6a 73 32 2d 6e 75 6d    2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20  | .(<.code.js2-num-tokens))....... | 
| 34160 |  20 20 20 20 28 61 72 65 66 20 6a 73 32 2d 74 6f    6b 65 6e 2d 6e 61 6d 65 73 20 63 6f 64 65 29 0a  | ....(aref.js2-token-names.code). | 
| 34180 |  20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22    49 6e 76 61 6c 69 64 20 74 6f 6b 65 6e 3a 20 25  | ........(error."Invalid.token:.% | 
| 341a0 |  73 22 20 63 6f 64 65 29 29 29 29 29 0a 0a 28 64    65 66 73 75 62 73 74 20 6a 73 32 2d 74 74 2d 73  | s".code)))))..(defsubst.js2-tt-s | 
| 341c0 |  79 6d 20 28 74 6f 6b 29 0a 20 20 22 52 65 74 75    72 6e 20 73 79 6d 62 6f 6c 20 66 6f 72 20 54 4f  | ym.(tok)..."Return.symbol.for.TO | 
| 341e0 |  4b 20 67 69 76 65 6e 20 69 74 73 20 63 6f 64 65    2c 20 65 2e 67 2e 20 60 6a 73 32 2d 4c 50 27 20  | K.given.its.code,.e.g..`js2-LP'. | 
| 34200 |  66 6f 72 20 63 6f 64 65 20 38 36 2e 22 0a 20 20    28 69 6e 74 65 72 6e 20 28 6a 73 32 2d 74 74 2d  | for.code.86."...(intern.(js2-tt- | 
| 34220 |  6e 61 6d 65 20 74 6f 6b 29 29 29 0a 0a 28 64 65    66 63 6f 6e 73 74 20 6a 73 32 2d 74 6f 6b 65 6e  | name.tok)))..(defconst.js2-token | 
| 34240 |  2d 63 6f 64 65 73 0a 20 20 28 6c 65 74 20 28 28    74 61 62 6c 65 20 28 6d 61 6b 65 2d 68 61 73 68  | -codes...(let.((table.(make-hash | 
| 34260 |  2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65 71    20 3a 73 69 7a 65 20 32 35 36 29 29 29 0a 20 20  | -table.:test.'eq.:size.256)))... | 
| 34280 |  20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6e    61 6d 65 20 61 63 72 6f 73 73 20 6a 73 32 2d 74  | ..(cl-loop.for.name.across.js2-t | 
| 342a0 |  6f 6b 65 6e 2d 6e 61 6d 65 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 66 6f 72 20 73 79 6d 20  | oken-names..............for.sym. | 
| 342c0 |  3d 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61    74 20 22 6a 73 32 2d 22 20 28 75 70 63 61 73 65  | =.(intern.(concat."js2-".(upcase | 
| 342e0 |  20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20  | .name)))..............do........ | 
| 34300 |  20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 73    79 6d 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65  | ......(puthash.sym.(symbol-value | 
| 34320 |  20 73 79 6d 29 20 74 61 62 6c 65 29 29 0a 20 20    20 20 3b 3b 20 63 6c 65 61 6e 20 75 70 20 61 20  | .sym).table)).....;;.clean.up.a. | 
| 34340 |  66 65 77 20 74 68 61 74 20 61 72 65 20 22 77 72    6f 6e 67 22 20 69 6e 20 52 68 69 6e 6f 27 73 20  | few.that.are."wrong".in.Rhino's. | 
| 34360 |  74 6f 6b 65 6e 20 63 6f 64 65 73 0a 20 20 20 20    28 70 75 74 68 61 73 68 20 27 6a 73 32 2d 44 45  | token.codes.....(puthash.'js2-DE | 
| 34380 |  4c 45 54 45 20 6a 73 32 2d 44 45 4c 50 52 4f 50    20 74 61 62 6c 65 29 0a 20 20 20 20 74 61 62 6c  | LETE.js2-DELPROP.table).....tabl | 
| 343a0 |  65 29 0a 20 20 22 48 61 73 68 74 61 62 6c 65 20    6d 61 70 70 69 6e 67 20 74 6f 6b 65 6e 20 74 79  | e)..."Hashtable.mapping.token.ty | 
| 343c0 |  70 65 20 73 79 6d 62 6f 6c 73 20 74 6f 20 74 68    65 69 72 20 62 79 74 65 63 6f 64 65 73 2e 22 29  | pe.symbols.to.their.bytecodes.") | 
| 343e0 |  0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d    74 74 2d 63 6f 64 65 20 28 73 79 6d 29 0a 20 20  | ..(defsubst.js2-tt-code.(sym)... | 
| 34400 |  22 52 65 74 75 72 6e 20 63 6f 64 65 20 66 6f 72    20 74 6f 6b 65 6e 20 73 79 6d 62 6f 6c 20 53 59  | "Return.code.for.token.symbol.SY | 
| 34420 |  4d 2c 20 65 2e 67 2e 20 38 36 20 66 6f 72 20 60    6a 73 32 2d 4c 50 27 2e 22 0a 20 20 28 6f 72 20  | M,.e.g..86.for.`js2-LP'."...(or. | 
| 34440 |  28 67 65 74 68 61 73 68 20 73 79 6d 20 6a 73 32    2d 74 6f 6b 65 6e 2d 63 6f 64 65 73 29 0a 20 20  | (gethash.sym.js2-token-codes)... | 
| 34460 |  20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61    6c 69 64 20 74 6f 6b 65 6e 20 73 79 6d 62 6f 6c  | ....(error."Invalid.token.symbol | 
| 34480 |  3a 20 25 73 20 22 20 73 79 6d 29 29 29 20 20 3b    20 73 69 67 6e 61 6c 20 63 6f 64 65 20 62 75 67  | :.%s.".sym)))..;.signal.code.bug | 
| 344a0 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 70    6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 28  | ..(defun.js2-report-scan-error.( | 
| 344c0 |  6d 73 67 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f    2d 74 68 72 6f 77 20 62 65 67 20 6c 65 6e 29 0a  | msg.&optional.no-throw.beg.len). | 
| 344e0 |  20 20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b    65 6e 2d 65 6e 64 20 28 6a 73 32 2d 63 75 72 72  | ..(setf.(js2-token-end.(js2-curr | 
| 34500 |  65 6e 74 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d    74 73 2d 63 75 72 73 6f 72 29 0a 20 20 28 6a 73  | ent-token)).js2-ts-cursor)...(js | 
| 34520 |  32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d    73 67 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20  | 2-report-error.msg.nil.......... | 
| 34540 |  20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 62    65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | ...........(or.beg.(js2-current- | 
| 34560 |  74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | token-beg))..................... | 
| 34580 |  28 6f 72 20 6c 65 6e 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e 29 29  | (or.len.(js2-current-token-len)) | 
| 345a0 |  29 0a 20 20 28 75 6e 6c 65 73 73 20 6e 6f 2d 74    68 72 6f 77 0a 20 20 20 20 28 74 68 72 6f 77 20  | )...(unless.no-throw.....(throw. | 
| 345c0 |  27 72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f    52 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | 'return.js2-ERROR)))..(defun.js2 | 
| 345e0 |  2d 73 65 74 2d 73 74 72 69 6e 67 2d 66 72 6f 6d    2d 62 75 66 66 65 72 20 28 74 6f 6b 65 6e 29 0a  | -set-string-from-buffer.(token). | 
| 34600 |  20 20 22 53 65 74 20 60 73 74 72 69 6e 67 27 20    61 6e 64 20 60 65 6e 64 27 20 73 6c 6f 74 73 20  | .."Set.`string'.and.`end'.slots. | 
| 34620 |  66 6f 72 20 54 4f 4b 45 4e 2c 20 72 65 74 75 72    6e 20 74 68 65 20 73 74 72 69 6e 67 2e 22 0a 20  | for.TOKEN,.return.the.string.".. | 
| 34640 |  20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65    6e 2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32  | .(setf.(js2-token-end.token).js2 | 
| 34660 |  2d 74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20    20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74  | -ts-cursor.........(js2-token-st | 
| 34680 |  72 69 6e 67 20 74 6f 6b 65 6e 29 20 28 6a 73 32    2d 63 6f 6c 6c 65 63 74 2d 73 74 72 69 6e 67 20  | ring.token).(js2-collect-string. | 
| 346a0 |  6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62 75    66 66 65 72 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f  | js2-ts-string-buffer)))..;;.TODO | 
| 346c0 |  3a 20 20 63 6f 75 6c 64 20 70 6f 74 65 6e 74 69    61 6c 6c 79 20 61 76 6f 69 64 20 61 20 6c 6f 74  | :..could.potentially.avoid.a.lot | 
| 346e0 |  20 6f 66 20 63 6f 6e 73 69 6e 67 20 62 79 20 61    6c 6c 6f 63 61 74 69 6e 67 20 61 0a 3b 3b 20 63  | .of.consing.by.allocating.a.;;.c | 
| 34700 |  68 61 72 20 62 75 66 66 65 72 20 74 68 65 20 77    61 79 20 52 68 69 6e 6f 20 64 6f 65 73 2e 0a 28  | har.buffer.the.way.Rhino.does..( | 
| 34720 |  64 65 66 73 75 62 73 74 20 6a 73 32 2d 61 64 64    2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 29 0a 20  | defsubst.js2-add-to-string.(c).. | 
| 34740 |  20 28 70 75 73 68 20 63 20 6a 73 32 2d 74 73 2d    73 74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 0a  | .(push.c.js2-ts-string-buffer)). | 
| 34760 |  0a 3b 3b 20 4e 6f 74 65 20 74 68 61 74 20 77 68    65 6e 20 77 65 20 22 72 65 61 64 22 20 74 68 65  | .;;.Note.that.when.we."read".the | 
| 34780 |  20 65 6e 64 2d 6f 66 2d 66 69 6c 65 2c 20 77 65    20 61 64 76 61 6e 63 65 20 6a 73 32 2d 74 73 2d  | .end-of-file,.we.advance.js2-ts- | 
| 347a0 |  63 75 72 73 6f 72 0a 3b 3b 20 74 6f 20 28 31 2b    20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 2c 20 77  | cursor.;;.to.(1+.(point-max)),.w | 
| 347c0 |  68 69 63 68 20 6c 65 74 73 20 74 68 65 20 73 63    61 6e 6e 65 72 20 74 72 65 61 74 20 65 6e 64 2d  | hich.lets.the.scanner.treat.end- | 
| 347e0 |  6f 66 2d 66 69 6c 65 20 6c 69 6b 65 0a 3b 3b 20    61 6e 79 20 6f 74 68 65 72 20 63 68 61 72 61 63  | of-file.like.;;.any.other.charac | 
| 34800 |  74 65 72 3a 20 20 77 68 65 6e 20 69 74 27 73 20    6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 65 20  | ter:..when.it's.not.part.of.the. | 
| 34820 |  63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 2c 20 77    65 0a 3b 3b 20 75 6e 67 65 74 20 69 74 2c 20 61  | current.token,.we.;;.unget.it,.a | 
| 34840 |  6c 6c 6f 77 69 6e 67 20 69 74 20 74 6f 20 62 65    20 72 65 61 64 20 61 67 61 69 6e 20 62 79 20 74  | llowing.it.to.be.read.again.by.t | 
| 34860 |  68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 61 6c    6c 2e 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32  | he.following.call..(defsubst.js2 | 
| 34880 |  2d 75 6e 67 65 74 2d 63 68 61 72 20 28 29 0a 20    20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 74 73  | -unget-char.()...(cl-decf.js2-ts | 
| 348a0 |  2d 63 75 72 73 6f 72 29 29 0a 0a 3b 3b 20 52 68    69 6e 6f 20 64 69 73 74 69 6e 67 75 69 73 68 65  | -cursor))..;;.Rhino.distinguishe | 
| 348c0 |  73 20 5c 72 20 61 6e 64 20 5c 6e 20 6c 69 6e 65    20 65 6e 64 69 6e 67 73 2e 20 20 57 65 20 64 6f  | s.\r.and.\n.line.endings...We.do | 
| 348e0 |  6e 27 74 20 6e 65 65 64 20 74 6f 0a 3b 3b 20 62    65 63 61 75 73 65 20 77 65 20 6f 6e 6c 79 20 73  | n't.need.to.;;.because.we.only.s | 
| 34900 |  63 61 6e 20 66 72 6f 6d 20 45 6d 61 63 73 20 62    75 66 66 65 72 73 2c 20 77 68 69 63 68 20 61 6c  | can.from.Emacs.buffers,.which.al | 
| 34920 |  77 61 79 73 20 75 73 65 20 5c 6e 2e 0a 28 64 65    66 75 6e 20 6a 73 32 2d 67 65 74 2d 63 68 61 72  | ways.use.\n..(defun.js2-get-char | 
| 34940 |  20 28 29 0a 20 20 22 52 65 61 64 20 61 6e 64 20    72 65 74 75 72 6e 20 74 68 65 20 6e 65 78 74 20  | .()..."Read.and.return.the.next. | 
| 34960 |  63 68 61 72 61 63 74 65 72 20 66 72 6f 6d 20 74    68 65 20 69 6e 70 75 74 20 62 75 66 66 65 72 2e  | character.from.the.input.buffer. | 
| 34980 |  0a 49 6e 63 72 65 6d 65 6e 74 73 20 60 6a 73 32    2d 74 73 2d 6c 69 6e 65 6e 6f 27 20 69 66 20 74  | .Increments.`js2-ts-lineno'.if.t | 
| 349a0 |  68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20    69 73 20 61 20 6e 65 77 6c 69 6e 65 20 63 68 61  | he.return.value.is.a.newline.cha | 
| 349c0 |  72 2e 0a 55 70 64 61 74 65 73 20 60 6a 73 32 2d    74 73 2d 63 75 72 73 6f 72 27 20 74 6f 20 74 68  | r..Updates.`js2-ts-cursor'.to.th | 
| 349e0 |  65 20 70 6f 69 6e 74 20 61 66 74 65 72 20 74 68    65 20 72 65 74 75 72 6e 65 64 20 63 68 61 72 2e  | e.point.after.the.returned.char. | 
| 34a00 |  0a 52 65 74 75 72 6e 73 20 60 6a 73 32 2d 45 4f    46 5f 43 48 41 52 27 20 69 66 20 77 65 20 68 69  | .Returns.`js2-EOF_CHAR'.if.we.hi | 
| 34a20 |  74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65    20 62 75 66 66 65 72 2e 0a 41 6c 73 6f 20 75 70  | t.the.end.of.the.buffer..Also.up | 
| 34a40 |  64 61 74 65 73 20 60 6a 73 32 2d 74 73 2d 68 69    74 2d 65 6f 66 27 20 61 6e 64 20 60 6a 73 32 2d  | dates.`js2-ts-hit-eof'.and.`js2- | 
| 34a60 |  74 73 2d 6c 69 6e 65 2d 73 74 61 72 74 27 20 61    73 20 6e 65 65 64 65 64 2e 22 0a 20 20 28 6c 65  | ts-line-start'.as.needed."...(le | 
| 34a80 |  74 20 28 63 29 0a 20 20 20 20 3b 3b 20 63 68 65    63 6b 20 66 6f 72 20 65 6e 64 20 6f 66 20 62 75  | t.(c).....;;.check.for.end.of.bu | 
| 34aa0 |  66 66 65 72 0a 20 20 20 20 28 69 66 20 28 3e 3d    20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 28  | ffer.....(if.(>=.js2-ts-cursor.( | 
| 34ac0 |  70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20    20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73  | point-max)).........(setq.js2-ts | 
| 34ae0 |  2d 68 69 74 2d 65 6f 66 20 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d  | -hit-eof.t...............js2-ts- | 
| 34b00 |  63 75 72 73 6f 72 20 28 31 2b 20 6a 73 32 2d 74    73 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20  | cursor.(1+.js2-ts-cursor)....... | 
| 34b20 |  20 20 20 20 20 20 20 20 63 20 6a 73 32 2d 45 4f    46 5f 43 48 41 52 29 20 20 3b 20 72 65 74 75 72  | ........c.js2-EOF_CHAR)..;.retur | 
| 34b40 |  6e 20 76 61 6c 75 65 0a 20 20 20 20 20 20 3b 3b    20 6f 74 68 65 72 77 69 73 65 20 72 65 61 64 20  | n.value.......;;.otherwise.read. | 
| 34b60 |  6e 65 78 74 20 63 68 61 72 0a 20 20 20 20 20 20    28 73 65 74 71 20 63 20 28 63 68 61 72 2d 62 65  | next.char.......(setq.c.(char-be | 
| 34b80 |  66 6f 72 65 20 28 63 6c 2d 69 6e 63 66 20 6a 73    32 2d 74 73 2d 63 75 72 73 6f 72 29 29 29 0a 20  | fore.(cl-incf.js2-ts-cursor))).. | 
| 34ba0 |  20 20 20 20 20 3b 3b 20 69 66 20 77 65 20 72 65    61 64 20 61 20 6e 65 77 6c 69 6e 65 2c 20 75 70  | .....;;.if.we.read.a.newline,.up | 
| 34bc0 |  64 61 74 65 20 63 6f 75 6e 74 65 72 73 0a 20 20    20 20 20 20 28 69 66 20 28 3d 20 63 20 3f 5c 6e  | date.counters.......(if.(=.c.?\n | 
| 34be0 |  29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 2d 73 74  | )...........(setq.js2-ts-line-st | 
| 34c00 |  61 72 74 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f    72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | art.js2-ts-cursor............... | 
| 34c20 |  20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 20    28 31 2b 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e  | ..js2-ts-lineno.(1+.js2-ts-linen | 
| 34c40 |  6f 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f    44 4f 3a 20 20 73 6b 69 70 20 6f 76 65 72 20 66  | o))).......;;.TODO:..skip.over.f | 
| 34c60 |  6f 72 6d 61 74 20 63 68 61 72 61 63 74 65 72 73    0a 20 20 20 20 20 20 63 29 29 29 0a 0a 28 64 65  | ormat.characters.......c)))..(de | 
| 34c80 |  66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 75 6e 69    63 6f 64 65 2d 65 73 63 61 70 65 20 28 29 0a 20  | fun.js2-read-unicode-escape.().. | 
| 34ca0 |  20 22 52 65 61 64 20 61 20 5c 5c 75 4e 4e 4e 4e    20 73 65 71 75 65 6e 63 65 20 66 72 6f 6d 20 74  | ."Read.a.\\uNNNN.sequence.from.t | 
| 34cc0 |  68 65 20 69 6e 70 75 74 2e 0a 41 73 73 75 6d 65    73 20 74 68 65 20 3f 5c 5c 20 61 6e 64 20 3f 75  | he.input..Assumes.the.?\\.and.?u | 
| 34ce0 |  20 68 61 76 65 20 61 6c 72 65 61 64 79 20 62 65    65 6e 20 72 65 61 64 2e 0a 52 65 74 75 72 6e 73  | .have.already.been.read..Returns | 
| 34d00 |  20 74 68 65 20 75 6e 69 63 6f 64 65 20 63 68 61    72 61 63 74 65 72 2c 20 6f 72 20 6e 69 6c 20 69  | .the.unicode.character,.or.nil.i | 
| 34d20 |  66 20 69 74 20 77 61 73 6e 27 74 20 61 20 76 61    6c 69 64 20 63 68 61 72 61 63 74 65 72 2e 0a 44  | f.it.wasn't.a.valid.character..D | 
| 34d40 |  6f 65 73 6e 27 74 20 63 68 61 6e 67 65 20 74 68    65 20 76 61 6c 75 65 73 20 6f 66 20 61 6e 79 20  | oesn't.change.the.values.of.any. | 
| 34d60 |  73 63 61 6e 6e 65 72 20 76 61 72 69 61 62 6c 65    73 2e 22 0a 20 20 3b 3b 20 49 20 72 65 61 6c 6c  | scanner.variables."...;;.I.reall | 
| 34d80 |  79 20 77 69 73 68 20 49 20 6b 6e 65 77 20 61 20    62 65 74 74 65 72 20 77 61 79 20 74 6f 20 64 6f  | y.wish.I.knew.a.better.way.to.do | 
| 34da0 |  20 74 68 69 73 2c 20 62 75 74 20 49 20 63 61 6e    27 74 0a 20 20 3b 3b 20 66 69 6e 64 20 74 68 65  | .this,.but.I.can't...;;.find.the | 
| 34dc0 |  20 45 6d 61 63 73 20 66 75 6e 63 74 69 6f 6e 20    74 68 61 74 20 74 61 6b 65 73 20 61 20 31 36 2d  | .Emacs.function.that.takes.a.16- | 
| 34de0 |  62 69 74 20 69 6e 74 20 61 6e 64 20 63 6f 6e 76    65 72 74 73 0a 20 20 3b 3b 20 69 74 20 74 6f 20  | bit.int.and.converts...;;.it.to. | 
| 34e00 |  61 20 55 6e 69 63 6f 64 65 2f 75 74 66 2d 38 20    63 68 61 72 61 63 74 65 72 2e 20 20 53 6f 20 49  | a.Unicode/utf-8.character...So.I | 
| 34e20 |  20 62 61 73 69 63 61 6c 6c 79 20 65 76 61 6c 20    69 74 20 77 69 74 68 20 28 72 65 61 64 29 2e 0a  | .basically.eval.it.with.(read).. | 
| 34e40 |  20 20 3b 3b 20 48 61 76 65 20 74 6f 20 66 69 72    73 74 20 63 68 65 63 6b 20 74 68 61 74 20 69 74  | ..;;.Have.to.first.check.that.it | 
| 34e60 |  27 73 20 34 20 68 65 78 20 63 68 61 72 61 63 74    65 72 73 20 6f 72 20 69 74 20 6d 61 79 20 73 74  | 's.4.hex.characters.or.it.may.st | 
| 34e80 |  6f 70 0a 20 20 3b 3b 20 74 68 65 20 72 65 61 64    20 65 61 72 6c 79 2e 0a 20 20 28 69 67 6e 6f 72  | op...;;.the.read.early....(ignor | 
| 34ea0 |  65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 6c 65    74 20 28 28 73 20 28 62 75 66 66 65 72 2d 73 75  | e-errors.....(let.((s.(buffer-su | 
| 34ec0 |  62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65    72 74 69 65 73 20 6a 73 32 2d 74 73 2d 63 75 72  | bstring-no-properties.js2-ts-cur | 
| 34ee0 |  73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | sor............................. | 
| 34f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 2b 20 34 20 6a 73 32 2d 74 73 2d 63 75 72  | .................(+.4.js2-ts-cur | 
| 34f20 |  73 6f 72 29 29 29 29 0a 20 20 20 20 20 20 28 69    66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20  | sor)))).......(if.(string-match. | 
| 34f40 |  22 5b 30 2d 39 61 2d 66 41 2d 46 5d 5c 5c 7b 34    5c 5c 7d 22 20 73 29 0a 20 20 20 20 20 20 20 20  | "[0-9a-fA-F]\\{4\\}".s)......... | 
| 34f60 |  20 20 28 72 65 61 64 20 28 63 6f 6e 63 61 74 20    22 3f 5c 5c 75 22 20 73 29 29 29 29 29 29 0a 0a  | ..(read.(concat."?\\u".s)))))).. | 
| 34f80 |  28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63 68    2d 63 68 61 72 20 28 74 65 73 74 29 0a 20 20 22  | (defun.js2-match-char.(test)..." | 
| 34fa0 |  43 6f 6e 73 75 6d 65 20 61 6e 64 20 72 65 74 75    72 6e 20 6e 65 78 74 20 63 68 61 72 61 63 74 65  | Consume.and.return.next.characte | 
| 34fc0 |  72 20 69 66 20 69 74 20 6d 61 74 63 68 65 73 20    54 45 53 54 2c 20 61 20 63 68 61 72 61 63 74 65  | r.if.it.matches.TEST,.a.characte | 
| 34fe0 |  72 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c 20 61    6e 64 20 63 6f 6e 73 75 6d 65 73 20 6e 6f 74 68  | r..Returns.nil.and.consumes.noth | 
| 35000 |  69 6e 67 20 69 66 20 54 45 53 54 20 69 73 20 6e    6f 74 20 74 68 65 20 6e 65 78 74 20 63 68 61 72  | ing.if.TEST.is.not.the.next.char | 
| 35020 |  61 63 74 65 72 2e 22 0a 20 20 28 6c 65 74 20 28    28 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72  | acter."...(let.((c.(js2-get-char | 
| 35040 |  29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20    63 20 74 65 73 74 29 0a 20 20 20 20 20 20 20 20  | ))).....(if.(eq.c.test)......... | 
| 35060 |  74 0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67    65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 6e  | t.......(js2-unget-char).......n | 
| 35080 |  69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 70 65 65 6b 2d 63 68 61 72 20 28 29 0a 20  | il)))..(defun.js2-peek-char.().. | 
| 350a0 |  20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 28 6a    73 32 2d 67 65 74 2d 63 68 61 72 29 0a 20 20 20  | .(prog1.......(js2-get-char).... | 
| 350c0 |  20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | .(js2-unget-char)))..(defun.js2- | 
| 350e0 |  69 64 65 6e 74 69 66 69 65 72 2d 73 74 61 72 74    2d 70 20 28 63 29 0a 20 20 22 49 73 20 43 20 61  | identifier-start-p.(c)..."Is.C.a | 
| 35100 |  20 76 61 6c 69 64 20 73 74 61 72 74 20 74 6f 20    61 6e 20 45 53 35 20 49 64 65 6e 74 69 66 69 65  | .valid.start.to.an.ES5.Identifie | 
| 35120 |  72 3f 0a 53 65 65 20 68 74 74 70 3a 2f 2f 65 73    35 2e 67 69 74 68 75 62 2e 69 6f 2f 23 78 37 2e  | r?.See.http://es5.github.io/#x7. | 
| 35140 |  36 22 0a 20 20 28 6f 72 0a 20 20 20 28 6d 65 6d    71 20 63 20 27 28 3f 24 20 3f 5f 29 29 0a 20 20  | 6"...(or....(memq.c.'(?$.?_))... | 
| 35160 |  20 28 6d 65 6d 71 20 28 67 65 74 2d 63 68 61 72    2d 63 6f 64 65 2d 70 72 6f 70 65 72 74 79 20 63  | .(memq.(get-char-code-property.c | 
| 35180 |  20 27 67 65 6e 65 72 61 6c 2d 63 61 74 65 67 6f    72 79 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20  | .'general-category)..........;;. | 
| 351a0 |  4c 65 74 74 65 72 73 0a 20 20 20 20 20 20 20 20    20 27 28 4c 75 20 4c 6c 20 4c 74 20 4c 6d 20 4c  | Letters..........'(Lu.Ll.Lt.Lm.L | 
| 351c0 |  6f 20 4e 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 69 64 65 6e 74 69 66 69 65 72 2d  | o.Nl))))..(defun.js2-identifier- | 
| 351e0 |  70 61 72 74 2d 70 20 28 63 29 0a 20 20 22 49 73    20 43 20 61 20 76 61 6c 69 64 20 70 61 72 74 20  | part-p.(c)..."Is.C.a.valid.part. | 
| 35200 |  6f 66 20 61 6e 20 45 53 35 20 49 64 65 6e 74 69    66 69 65 72 3f 0a 53 65 65 20 68 74 74 70 3a 2f  | of.an.ES5.Identifier?.See.http:/ | 
| 35220 |  2f 65 73 35 2e 67 69 74 68 75 62 2e 69 6f 2f 23    78 37 2e 36 22 0a 20 20 28 6f 72 0a 20 20 20 28  | /es5.github.io/#x7.6"...(or....( | 
| 35240 |  6d 65 6d 71 20 63 20 27 28 3f 24 20 3f 5f 20 3f    5c 75 32 30 30 63 20 20 3f 5c 75 32 30 30 64 29  | memq.c.'(?$.?_.?\u200c..?\u200d) | 
| 35260 |  29 0a 20 20 20 28 6d 65 6d 71 20 28 67 65 74 2d    63 68 61 72 2d 63 6f 64 65 2d 70 72 6f 70 65 72  | )....(memq.(get-char-code-proper | 
| 35280 |  74 79 20 63 20 27 67 65 6e 65 72 61 6c 2d 63 61    74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20  | ty.c.'general-category)......... | 
| 352a0 |  20 27 28 3b 3b 20 4c 65 74 74 65 72 73 0a 20 20    20 20 20 20 20 20 20 20 20 4c 75 20 4c 6c 20 4c  | .'(;;.Letters............Lu.Ll.L | 
| 352c0 |  74 20 4c 6d 20 4c 6f 20 4e 6c 0a 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 43 6f 6d 62 69 6e 69  | t.Lm.Lo.Nl............;;.Combini | 
| 352e0 |  6e 67 20 4d 61 72 6b 73 0a 20 20 20 20 20 20 20    20 20 20 20 4d 6e 20 4d 63 0a 20 20 20 20 20 20  | ng.Marks............Mn.Mc....... | 
| 35300 |  20 20 20 20 20 3b 3b 20 44 69 67 69 74 73 0a 20    20 20 20 20 20 20 20 20 20 20 4e 64 0a 20 20 20  | .....;;.Digits............Nd.... | 
| 35320 |  20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6e 6e 65    63 74 6f 72 20 50 75 6e 63 74 75 61 74 69 6f 6e  | ........;;.Connector.Punctuation | 
| 35340 |  0a 20 20 20 20 20 20 20 20 20 20 20 50 63 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61  | ............Pc))))..(defun.js2-a | 
| 35360 |  6c 70 68 61 2d 70 20 28 63 29 0a 20 20 28 63 6f    6e 64 20 28 28 61 6e 64 20 28 3c 3d 20 3f 41 20  | lpha-p.(c)...(cond.((and.(<=.?A. | 
| 35380 |  63 29 20 28 3c 3d 20 63 20 3f 5a 29 29 20 74 29    0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28  | c).(<=.c.?Z)).t).........((and.( | 
| 353a0 |  3c 3d 20 3f 61 20 63 29 20 28 3c 3d 20 63 20 3f    7a 29 29 20 74 29 0a 20 20 20 20 20 20 20 20 28  | <=.?a.c).(<=.c.?z)).t).........( | 
| 353c0 |  74 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 73 75    62 73 74 20 6a 73 32 2d 64 69 67 69 74 2d 70 20  | t.nil)))..(defsubst.js2-digit-p. | 
| 353e0 |  28 63 29 0a 20 20 28 61 6e 64 20 28 3c 3d 20 3f    30 20 63 29 20 28 3c 3d 20 63 20 3f 39 29 29 29  | (c)...(and.(<=.?0.c).(<=.c.?9))) | 
| 35400 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6a 73 2d    73 70 61 63 65 2d 70 20 28 63 29 0a 20 20 28 69  | ..(defun.js2-js-space-p.(c)...(i | 
| 35420 |  66 20 28 3c 3d 20 63 20 31 32 37 29 0a 20 20 20    20 20 20 28 6d 65 6d 71 20 63 20 27 28 23 78 32  | f.(<=.c.127).......(memq.c.'(#x2 | 
| 35440 |  30 20 23 78 39 20 23 78 42 20 23 78 43 20 23 78    44 29 29 0a 20 20 20 20 28 6f 72 0a 20 20 20 20  | 0.#x9.#xB.#xC.#xD)).....(or..... | 
| 35460 |  20 28 65 71 20 63 20 23 78 41 30 29 0a 20 20 20    20 20 3b 3b 20 54 4f 44 4f 3a 20 20 63 68 61 6e  | .(eq.c.#xA0)......;;.TODO:..chan | 
| 35480 |  67 65 20 74 68 69 73 20 6e 69 6c 20 74 6f 20 63    68 65 63 6b 20 66 6f 72 20 55 6e 69 63 6f 64 65  | ge.this.nil.to.check.for.Unicode | 
| 354a0 |  20 73 70 61 63 65 20 63 68 61 72 61 63 74 65 72    0a 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64  | .space.character......nil)))..(d | 
| 354c0 |  65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 6f 6c 2d    63 68 61 72 73 20 28 6c 69 73 74 20 6a 73 32 2d  | efconst.js2-eol-chars.(list.js2- | 
| 354e0 |  45 4f 46 5f 43 48 41 52 20 3f 5c 6e 20 3f 5c 72    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73  | EOF_CHAR.?\n.?\r))..(defun.js2-s | 
| 35500 |  6b 69 70 2d 6c 69 6e 65 20 28 29 0a 20 20 22 53    6b 69 70 20 74 6f 20 65 6e 64 20 6f 66 20 6c 69  | kip-line.()..."Skip.to.end.of.li | 
| 35520 |  6e 65 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 6e    6f 74 20 28 6d 65 6d 71 20 28 6a 73 32 2d 67 65  | ne."...(while.(not.(memq.(js2-ge | 
| 35540 |  74 2d 63 68 61 72 29 20 6a 73 32 2d 65 6f 6c 2d    63 68 61 72 73 29 29 29 0a 20 20 28 6a 73 32 2d  | t-char).js2-eol-chars)))...(js2- | 
| 35560 |  75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 28 73    65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65  | unget-char)...(setf.(js2-token-e | 
| 35580 |  6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 29 29 20 6a 73 32 2d 74 73 2d 63  | nd.(js2-current-token)).js2-ts-c | 
| 355a0 |  75 72 73 6f 72 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 69 6e 69 74 2d 73 63 61 6e 6e 65 72  | ursor))..(defun.js2-init-scanner | 
| 355c0 |  20 28 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 20    6c 69 6e 65 29 0a 20 20 22 43 72 65 61 74 65 20  | .(&optional.buf.line)..."Create. | 
| 355e0 |  74 6f 6b 65 6e 20 73 74 72 65 61 6d 20 66 6f 72    20 42 55 46 20 73 74 61 72 74 69 6e 67 20 6f 6e  | token.stream.for.BUF.starting.on | 
| 35600 |  20 4c 49 4e 45 2e 0a 42 55 46 20 64 65 66 61 75    6c 74 73 20 74 6f 20 60 63 75 72 72 65 6e 74 2d  | .LINE..BUF.defaults.to.`current- | 
| 35620 |  62 75 66 66 65 72 27 20 61 6e 64 20 4c 49 4e 45    20 64 65 66 61 75 6c 74 73 20 74 6f 20 31 2e 0a  | buffer'.and.LINE.defaults.to.1.. | 
| 35640 |  0a 41 20 62 75 66 66 65 72 20 63 61 6e 20 6f 6e    6c 79 20 68 61 76 65 20 6f 6e 65 20 73 63 61 6e  | .A.buffer.can.only.have.one.scan | 
| 35660 |  6e 65 72 20 61 63 74 69 76 65 20 61 74 20 61 20    74 69 6d 65 2c 20 77 68 69 63 68 20 79 69 65 6c  | ner.active.at.a.time,.which.yiel | 
| 35680 |  64 73 0a 64 72 61 6d 61 74 69 63 61 6c 6c 79 20    73 69 6d 70 6c 65 72 20 63 6f 64 65 20 74 68 61  | ds.dramatically.simpler.code.tha | 
| 356a0 |  6e 20 75 73 69 6e 67 20 61 20 64 65 66 73 74 72    75 63 74 2e 20 20 49 66 20 79 6f 75 20 6e 65 65  | n.using.a.defstruct...If.you.nee | 
| 356c0 |  64 20 74 6f 0a 68 61 76 65 20 73 69 6d 75 6c 74    61 6e 65 6f 75 73 20 73 63 61 6e 6e 65 72 73 20  | d.to.have.simultaneous.scanners. | 
| 356e0 |  69 6e 20 61 20 62 75 66 66 65 72 2c 20 63 6f 70    79 20 74 68 65 20 72 65 67 69 6f 6e 73 20 74 6f  | in.a.buffer,.copy.the.regions.to | 
| 35700 |  20 73 63 61 6e 0a 69 6e 74 6f 20 74 65 6d 70 20    62 75 66 66 65 72 73 2e 22 0a 20 20 28 73 61 76  | .scan.into.temp.buffers."...(sav | 
| 35720 |  65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20    28 61 6e 64 20 62 75 66 20 28 73 65 74 2d 62 75  | e-excursion.....(and.buf.(set-bu | 
| 35740 |  66 66 65 72 20 62 75 66 29 29 0a 20 20 20 20 28    67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74  | ffer.buf)).....(goto-char.(point | 
| 35760 |  2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 65 6e    20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 23 21  | -min)).....(when.(looking-at."#! | 
| 35780 |  2f 22 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61    72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20  | /").......(forward-line.1))..... | 
| 357a0 |  28 73 65 74 71 20 6a 73 32 2d 74 73 2d 64 69 72    74 79 2d 6c 69 6e 65 20 6e 69 6c 0a 20 20 20 20  | (setq.js2-ts-dirty-line.nil..... | 
| 357c0 |  20 20 20 20 20 20 6a 73 32 2d 74 73 2d 68 69 74    2d 65 6f 66 20 6e 69 6c 0a 20 20 20 20 20 20 20  | ......js2-ts-hit-eof.nil........ | 
| 357e0 |  20 20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65 2d 73    74 61 72 74 20 30 0a 20 20 20 20 20 20 20 20 20  | ...js2-ts-line-start.0.......... | 
| 35800 |  20 6a 73 32 2d 74 73 2d 6c 69 6e 65 6e 6f 20 28    6f 72 20 6c 69 6e 65 20 31 29 0a 20 20 20 20 20  | .js2-ts-lineno.(or.line.1)...... | 
| 35820 |  20 20 20 20 20 6a 73 32 2d 74 73 2d 6c 69 6e 65    2d 65 6e 64 2d 63 68 61 72 20 2d 31 0a 20 20 20  | .....js2-ts-line-end-char.-1.... | 
| 35840 |  20 20 20 20 20 20 20 6a 73 32 2d 74 73 2d 63 75    72 73 6f 72 20 28 70 6f 69 6e 74 29 0a 20 20 20  | .......js2-ts-cursor.(point).... | 
| 35860 |  20 20 20 20 20 20 20 6a 73 32 2d 74 69 2d 74 6f    6b 65 6e 73 20 28 6d 61 6b 65 2d 76 65 63 74 6f  | .......js2-ti-tokens.(make-vecto | 
| 35880 |  72 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e 73    20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20  | r.js2-ti-ntokens.nil)........... | 
| 358a0 |  6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75    72 73 6f 72 20 30 0a 20 20 20 20 20 20 20 20 20  | js2-ti-tokens-cursor.0.......... | 
| 358c0 |  20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61    64 20 30 0a 20 20 20 20 20 20 20 20 20 20 6a 73  | .js2-ti-lookahead.0...........js | 
| 358e0 |  32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74 72    69 62 75 74 65 20 6e 69 6c 0a 20 20 20 20 20 20  | 2-ts-is-xml-attribute.nil....... | 
| 35900 |  20 20 20 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69    73 2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69  | ....js2-ts-xml-is-tag-content.ni | 
| 35920 |  6c 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d    74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73  | l...........js2-ts-xml-open-tags | 
| 35940 |  2d 63 6f 75 6e 74 20 30 0a 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67  | -count.0...........js2-ts-string | 
| 35960 |  2d 62 75 66 66 65 72 20 6e 69 6c 29 29 29 0a 0a    3b 3b 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e  | -buffer.nil)))..;;.This.function | 
| 35980 |  20 75 73 65 73 20 74 68 65 20 63 61 63 68 65 64    20 6f 70 2c 20 73 74 72 69 6e 67 20 61 6e 64 20  | .uses.the.cached.op,.string.and. | 
| 359a0 |  6e 75 6d 62 65 72 20 66 69 65 6c 64 73 20 69 6e    0a 3b 3b 20 54 6f 6b 65 6e 53 74 72 65 61 6d 3b  | number.fields.in.;;.TokenStream; | 
| 359c0 |  20 69 66 20 67 65 74 54 6f 6b 65 6e 20 68 61 73    20 62 65 65 6e 20 63 61 6c 6c 65 64 20 73 69 6e  | .if.getToken.has.been.called.sin | 
| 359e0 |  63 65 20 74 68 65 20 70 61 73 73 65 64 20 74 6f    6b 65 6e 0a 3b 3b 20 77 61 73 20 73 63 61 6e 6e  | ce.the.passed.token.;;.was.scann | 
| 35a00 |  65 64 2c 20 74 68 65 20 6f 70 20 6f 72 20 73 74    72 69 6e 67 20 70 72 69 6e 74 65 64 20 6d 61 79  | ed,.the.op.or.string.printed.may | 
| 35a20 |  20 62 65 20 69 6e 63 6f 72 72 65 63 74 2e 0a 28    64 65 66 75 6e 20 6a 73 32 2d 74 6f 6b 65 6e 2d  | .be.incorrect..(defun.js2-token- | 
| 35a40 |  74 6f 2d 73 74 72 69 6e 67 20 28 74 6f 6b 65 6e    29 0a 20 20 3b 3b 20 4e 6f 74 20 73 75 72 65 20  | to-string.(token)...;;.Not.sure. | 
| 35a60 |  77 68 65 72 65 20 74 68 69 73 20 66 75 6e 63 74    69 6f 6e 20 69 73 20 75 73 65 64 20 69 6e 20 52  | where.this.function.is.used.in.R | 
| 35a80 |  68 69 6e 6f 2e 20 20 4e 6f 74 20 74 65 73 74 65    64 2e 0a 20 20 28 69 66 20 28 6e 6f 74 20 6a 73  | hino...Not.tested....(if.(not.js | 
| 35aa0 |  32 2d 64 65 62 75 67 2d 70 72 69 6e 74 2d 74 72    65 65 73 29 0a 20 20 20 20 20 20 22 22 0a 20 20  | 2-debug-print-trees).......""... | 
| 35ac0 |  20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 28 6a    73 32 2d 74 74 2d 6e 61 6d 65 20 74 6f 6b 65 6e  | ..(let.((name.(js2-tt-name.token | 
| 35ae0 |  29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 74 6f  | ))).......(cond........((memq.to | 
| 35b00 |  6b 65 6e 20 27 28 6a 73 32 2d 53 54 52 49 4e 47    20 6a 73 32 2d 52 45 47 45 58 50 20 6a 73 32 2d  | ken.'(js2-STRING.js2-REGEXP.js2- | 
| 35b20 |  4e 41 4d 45 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 54  | NAME.......................js2-T | 
| 35b40 |  45 4d 50 4c 41 54 45 5f 48 45 41 44 20 6a 73 32    2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54  | EMPLATE_HEAD.js2-NO_SUBS_TEMPLAT | 
| 35b60 |  45 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e    63 61 74 20 6e 61 6d 65 20 22 20 60 22 20 28 6a  | E)).........(concat.name.".`".(j | 
| 35b80 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 73 74 72 69 6e 67 29 20 22 27 22 29 29 0a 20  | s2-current-token-string)."'")).. | 
| 35ba0 |  20 20 20 20 20 20 28 28 65 71 20 74 6f 6b 65 6e    20 6a 73 32 2d 4e 55 4d 42 45 52 29 0a 20 20 20  | ......((eq.token.js2-NUMBER).... | 
| 35bc0 |  20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 4e 55    4d 42 45 52 20 25 67 22 20 28 6a 73 32 2d 74 6f  | .....(format."NUMBER.%g".(js2-to | 
| 35be0 |  6b 65 6e 2d 6e 75 6d 62 65 72 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29 29  | ken-number.(js2-current-token))) | 
| 35c00 |  29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20    20 20 20 20 6e 61 6d 65 29 29 29 29 29 0a 0a 28  | )........(t.........name)))))..( | 
| 35c20 |  64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6b 65 79    77 6f 72 64 73 0a 20 20 27 28 62 72 65 61 6b 0a  | defconst.js2-keywords...'(break. | 
| 35c40 |  20 20 20 20 63 61 73 65 20 63 61 74 63 68 20 63    6c 61 73 73 20 63 6f 6e 73 74 20 63 6f 6e 74 69  | ....case.catch.class.const.conti | 
| 35c60 |  6e 75 65 0a 20 20 20 20 64 65 62 75 67 67 65 72    20 64 65 66 61 75 6c 74 20 64 65 6c 65 74 65 20  | nue.....debugger.default.delete. | 
| 35c80 |  64 6f 0a 20 20 20 20 65 6c 73 65 20 65 78 74 65    6e 64 73 20 65 78 70 6f 72 74 0a 20 20 20 20 66  | do.....else.extends.export.....f | 
| 35ca0 |  61 6c 73 65 20 66 69 6e 61 6c 6c 79 20 66 6f 72    20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 69 66  | alse.finally.for.function.....if | 
| 35cc0 |  20 69 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 69    6d 70 6f 72 74 0a 20 20 20 20 6c 65 74 0a 20 20  | .in.instanceof.import.....let... | 
| 35ce0 |  20 20 6e 65 77 20 6e 75 6c 6c 0a 20 20 20 20 72    65 74 75 72 6e 0a 20 20 20 20 73 75 70 65 72 20  | ..new.null.....return.....super. | 
| 35d00 |  73 77 69 74 63 68 0a 20 20 20 20 74 68 69 73 20    74 68 72 6f 77 20 74 72 75 65 20 74 72 79 20 74  | switch.....this.throw.true.try.t | 
| 35d20 |  79 70 65 6f 66 0a 20 20 20 20 76 61 72 20 76 6f    69 64 0a 20 20 20 20 77 68 69 6c 65 20 77 69 74  | ypeof.....var.void.....while.wit | 
| 35d40 |  68 0a 20 20 20 20 79 69 65 6c 64 29 29 0a 0a 3b    3b 20 54 6f 6b 65 6e 20 6e 61 6d 65 73 20 61 72  | h.....yield))..;;.Token.names.ar | 
| 35d60 |  65 6e 27 74 20 65 78 61 63 74 6c 79 20 74 68 65    20 73 61 6d 65 20 61 73 20 74 68 65 20 6b 65 79  | en't.exactly.the.same.as.the.key | 
| 35d80 |  77 6f 72 64 73 2c 20 75 6e 66 6f 72 74 75 6e 61    74 65 6c 79 2e 0a 3b 3b 20 45 2e 67 2e 20 64 65  | words,.unfortunately..;;.E.g..de | 
| 35da0 |  6c 65 74 65 20 69 73 20 6a 73 32 2d 44 45 4c 50    52 4f 50 2e 0a 28 64 65 66 63 6f 6e 73 74 20 6a  | lete.is.js2-DELPROP..(defconst.j | 
| 35dc0 |  73 32 2d 6b 77 64 2d 74 6f 6b 65 6e 73 0a 20 20    28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d 61  | s2-kwd-tokens...(let.((table.(ma | 
| 35de0 |  6b 65 2d 76 65 63 74 6f 72 20 6a 73 32 2d 6e 75    6d 2d 74 6f 6b 65 6e 73 20 6e 69 6c 29 29 0a 20  | ke-vector.js2-num-tokens.nil)).. | 
| 35e00 |  20 20 20 20 20 20 20 28 74 6f 6b 65 6e 73 0a 20    20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6a 73  | .......(tokens..........(list.js | 
| 35e20 |  32 2d 42 52 45 41 4b 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6a 73 32 2d 43 41 53 45 20  | 2-BREAK................js2-CASE. | 
| 35e40 |  6a 73 32 2d 43 41 54 43 48 20 6a 73 32 2d 43 4c    41 53 53 20 6a 73 32 2d 43 4f 4e 53 54 20 6a 73  | js2-CATCH.js2-CLASS.js2-CONST.js | 
| 35e60 |  32 2d 43 4f 4e 54 49 4e 55 45 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 45  | 2-CONTINUE................js2-DE | 
| 35e80 |  42 55 47 47 45 52 20 6a 73 32 2d 44 45 46 41 55    4c 54 20 6a 73 32 2d 44 45 4c 50 52 4f 50 20 6a  | BUGGER.js2-DEFAULT.js2-DELPROP.j | 
| 35ea0 |  73 32 2d 44 4f 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 45 4c 53 45 20 6a 73  | s2-DO................js2-ELSE.js | 
| 35ec0 |  32 2d 45 58 50 4f 52 54 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6a 73 32 2d 45 4c 53 45  | 2-EXPORT................js2-ELSE | 
| 35ee0 |  20 6a 73 32 2d 45 58 54 45 4e 44 53 20 6a 73 32    2d 45 58 50 4f 52 54 0a 20 20 20 20 20 20 20 20  | .js2-EXTENDS.js2-EXPORT......... | 
| 35f00 |  20 20 20 20 20 20 20 6a 73 32 2d 46 41 4c 53 45    20 6a 73 32 2d 46 49 4e 41 4c 4c 59 20 6a 73 32  | .......js2-FALSE.js2-FINALLY.js2 | 
| 35f20 |  2d 46 4f 52 20 6a 73 32 2d 46 55 4e 43 54 49 4f    4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -FOR.js2-FUNCTION............... | 
| 35f40 |  20 6a 73 32 2d 49 46 20 6a 73 32 2d 49 4e 20 6a    73 32 2d 49 4e 53 54 41 4e 43 45 4f 46 20 6a 73  | .js2-IF.js2-IN.js2-INSTANCEOF.js | 
| 35f60 |  32 2d 49 4d 50 4f 52 54 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54 0a  | 2-IMPORT................js2-LET. | 
| 35f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 4e 45 57 20 6a 73 32 2d 4e 55 4c 4c 0a  | ...............js2-NEW.js2-NULL. | 
| 35fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 52 45 54 55 52 4e 0a 20 20 20 20 20 20  | ...............js2-RETURN....... | 
| 35fc0 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 53 55 50    45 52 20 6a 73 32 2d 53 57 49 54 43 48 0a 20 20  | .........js2-SUPER.js2-SWITCH... | 
| 35fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 54 48 49 53 20 6a 73 32 2d 54 48 52 4f 57 20  | .............js2-THIS.js2-THROW. | 
| 36000 |  6a 73 32 2d 54 52 55 45 20 6a 73 32 2d 54 52 59    20 6a 73 32 2d 54 59 50 45 4f 46 0a 20 20 20 20  | js2-TRUE.js2-TRY.js2-TYPEOF..... | 
| 36020 |  20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 56    41 52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........js2-VAR.............. | 
| 36040 |  20 20 6a 73 32 2d 57 48 49 4c 45 20 6a 73 32 2d    57 49 54 48 0a 20 20 20 20 20 20 20 20 20 20 20  | ..js2-WHILE.js2-WITH............ | 
| 36060 |  20 20 20 20 6a 73 32 2d 59 49 45 4c 44 29 29 29    0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 20  | ....js2-YIELD))).....(dolist.(i. | 
| 36080 |  74 6f 6b 65 6e 73 29 0a 20 20 20 20 20 20 28 61    73 65 74 20 74 61 62 6c 65 20 69 20 27 66 6f 6e  | tokens).......(aset.table.i.'fon | 
| 360a0 |  74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66    61 63 65 29 29 0a 20 20 20 20 28 61 73 65 74 20  | t-lock-keyword-face)).....(aset. | 
| 360c0 |  74 61 62 6c 65 20 6a 73 32 2d 53 54 52 49 4e 47    20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69  | table.js2-STRING.'font-lock-stri | 
| 360e0 |  6e 67 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73    65 74 20 74 61 62 6c 65 20 6a 73 32 2d 52 45 47  | ng-face).....(aset.table.js2-REG | 
| 36100 |  45 58 50 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73    74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20  | EXP.'font-lock-string-face)..... | 
| 36120 |  28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d    4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54 45  | (aset.table.js2-NO_SUBS_TEMPLATE | 
| 36140 |  20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69    6e 67 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73  | .'font-lock-string-face).....(as | 
| 36160 |  65 74 20 74 61 62 6c 65 20 6a 73 32 2d 54 45 4d    50 4c 41 54 45 5f 48 45 41 44 20 27 66 6f 6e 74  | et.table.js2-TEMPLATE_HEAD.'font | 
| 36180 |  2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63    65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62  | -lock-string-face).....(aset.tab | 
| 361a0 |  6c 65 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 20 27    66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e  | le.js2-COMMENT.'font-lock-commen | 
| 361c0 |  74 2d 66 61 63 65 29 0a 20 20 20 20 28 61 73 65    74 20 74 61 62 6c 65 20 6a 73 32 2d 54 48 49 53  | t-face).....(aset.table.js2-THIS | 
| 361e0 |  20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c    74 69 6e 2d 66 61 63 65 29 0a 20 20 20 20 28 61  | .'font-lock-builtin-face).....(a | 
| 36200 |  73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 53 55    50 45 52 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62  | set.table.js2-SUPER.'font-lock-b | 
| 36220 |  75 69 6c 74 69 6e 2d 66 61 63 65 29 0a 20 20 20    20 28 61 73 65 74 20 74 61 62 6c 65 20 6a 73 32  | uiltin-face).....(aset.table.js2 | 
| 36240 |  2d 56 4f 49 44 20 27 66 6f 6e 74 2d 6c 6f 63 6b    2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a  | -VOID.'font-lock-constant-face). | 
| 36260 |  20 20 20 20 28 61 73 65 74 20 74 61 62 6c 65 20    6a 73 32 2d 4e 55 4c 4c 20 27 66 6f 6e 74 2d 6c  | ....(aset.table.js2-NULL.'font-l | 
| 36280 |  6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63    65 29 0a 20 20 20 20 28 61 73 65 74 20 74 61 62  | ock-constant-face).....(aset.tab | 
| 362a0 |  6c 65 20 6a 73 32 2d 54 52 55 45 20 27 66 6f 6e    74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d  | le.js2-TRUE.'font-lock-constant- | 
| 362c0 |  66 61 63 65 29 0a 20 20 20 20 28 61 73 65 74 20    74 61 62 6c 65 20 6a 73 32 2d 46 41 4c 53 45 20  | face).....(aset.table.js2-FALSE. | 
| 362e0 |  27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74    61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 28 61  | 'font-lock-constant-face).....(a | 
| 36300 |  73 65 74 20 74 61 62 6c 65 20 6a 73 32 2d 4e 4f    54 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6e 65 67  | set.table.js2-NOT.'font-lock-neg | 
| 36320 |  61 74 69 6f 6e 2d 63 68 61 72 2d 66 61 63 65 29    0a 20 20 20 20 74 61 62 6c 65 29 0a 20 20 22 56  | ation-char-face).....table)..."V | 
| 36340 |  65 63 74 6f 72 20 77 68 6f 73 65 20 76 61 6c 75    65 73 20 61 72 65 20 6e 6f 6e 2d 6e 69 6c 20 66  | ector.whose.values.are.non-nil.f | 
| 36360 |  6f 72 20 74 6f 6b 65 6e 73 20 74 68 61 74 20 61    72 65 20 6b 65 79 77 6f 72 64 73 2e 0a 54 68 65  | or.tokens.that.are.keywords..The | 
| 36380 |  20 76 61 6c 75 65 73 20 61 72 65 20 64 65 66 61    75 6c 74 20 66 61 63 65 73 20 74 6f 20 75 73 65  | .values.are.default.faces.to.use | 
| 363a0 |  20 66 6f 72 20 68 69 67 68 6c 69 67 68 74 69 6e    67 20 74 68 65 20 6b 65 79 77 6f 72 64 73 2e 22  | .for.highlighting.the.keywords." | 
| 363c0 |  29 0a 0a 3b 3b 20 46 49 58 4d 45 3a 20 53 75 70    70 6f 72 74 20 73 74 72 69 63 74 20 6d 6f 64 65  | )..;;.FIXME:.Support.strict.mode | 
| 363e0 |  2d 6f 6e 6c 79 20 66 75 74 75 72 65 20 72 65 73    65 72 76 65 64 20 77 6f 72 64 73 2c 20 61 66 74  | -only.future.reserved.words,.aft | 
| 36400 |  65 72 20 77 65 20 6b 6e 6f 77 0a 3b 3b 20 77 68    69 63 68 20 70 61 72 74 73 20 73 63 6f 70 65 73  | er.we.know.;;.which.parts.scopes | 
| 36420 |  20 61 72 65 20 69 6e 20 73 74 72 69 63 74 20 6d    6f 64 65 2c 20 61 6e 64 20 77 68 69 63 68 20 61  | .are.in.strict.mode,.and.which.a | 
| 36440 |  72 65 20 6e 6f 74 2e 0a 28 64 65 66 63 6f 6e 73    74 20 6a 73 32 2d 72 65 73 65 72 76 65 64 2d 77  | re.not..(defconst.js2-reserved-w | 
| 36460 |  6f 72 64 73 20 27 28 63 6c 61 73 73 20 65 6e 75    6d 20 65 78 70 6f 72 74 20 65 78 74 65 6e 64 73  | ords.'(class.enum.export.extends | 
| 36480 |  20 69 6d 70 6f 72 74 20 73 74 61 74 69 63 20 73    75 70 65 72 29 0a 20 20 22 46 75 74 75 72 65 20  | .import.static.super)..."Future. | 
| 364a0 |  72 65 73 65 72 76 65 64 20 6b 65 79 77 6f 72 64    73 20 69 6e 20 45 43 4d 41 53 63 72 69 70 74 20  | reserved.keywords.in.ECMAScript. | 
| 364c0 |  35 2e 31 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73    74 20 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 61  | 5.1.")..(defconst.js2-keyword-na | 
| 364e0 |  6d 65 73 0a 20 20 28 6c 65 74 20 28 28 74 61 62    6c 65 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61  | mes...(let.((table.(make-hash-ta | 
| 36500 |  62 6c 65 20 3a 74 65 73 74 20 27 65 71 75 61 6c    29 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70  | ble.:test.'equal))).....(cl-loop | 
| 36520 |  20 66 6f 72 20 6b 20 69 6e 20 6a 73 32 2d 6b 65    79 77 6f 72 64 73 0a 20 20 20 20 20 20 20 20 20  | .for.k.in.js2-keywords.......... | 
| 36540 |  20 20 20 20 64 6f 20 28 70 75 74 68 61 73 68 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....do.(puthash................. | 
| 36560 |  20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 29    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(symbol-name.k)................ | 
| 36580 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 6e    73 74 61 6e 63 65 6f 66 0a 20 20 20 20 20 20 20  | ............;.instanceof........ | 
| 365a0 |  20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72    6e 20 28 63 6f 6e 63 61 74 20 22 6a 73 32 2d 22  | ..........(intern.(concat."js2-" | 
| 365c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 365e0 |  20 20 28 75 70 63 61 73 65 20 28 73 79 6d 62 6f    6c 2d 6e 61 6d 65 20 6b 29 29 29 29 20 3b 20 6a  | ..(upcase.(symbol-name.k)))).;.j | 
| 36600 |  73 32 2d 49 4e 53 54 41 4e 43 45 4f 46 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74  | s2-INSTANCEOF..................t | 
| 36620 |  61 62 6c 65 29 29 0a 20 20 20 20 74 61 62 6c 65    29 0a 20 20 22 4a 61 76 61 53 63 72 69 70 74 20  | able)).....table)..."JavaScript. | 
| 36640 |  6b 65 79 77 6f 72 64 73 20 62 79 20 6e 61 6d 65    2c 20 6d 61 70 70 65 64 20 74 6f 20 74 68 65 69  | keywords.by.name,.mapped.to.thei | 
| 36660 |  72 20 73 79 6d 62 6f 6c 73 2e 22 29 0a 0a 28 64    65 66 63 6f 6e 73 74 20 6a 73 32 2d 72 65 73 65  | r.symbols.")..(defconst.js2-rese | 
| 36680 |  72 76 65 64 2d 77 6f 72 64 2d 6e 61 6d 65 73 0a    20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28  | rved-word-names...(let.((table.( | 
| 366a0 |  6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20    3a 74 65 73 74 20 27 65 71 75 61 6c 29 29 29 0a  | make-hash-table.:test.'equal))). | 
| 366c0 |  20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72    20 6b 20 69 6e 20 6a 73 32 2d 72 65 73 65 72 76  | ....(cl-loop.for.k.in.js2-reserv | 
| 366e0 |  65 64 2d 77 6f 72 64 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20  | ed-words..............do........ | 
| 36700 |  20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 28    73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 29 20 27  | ......(puthash.(symbol-name.k).' | 
| 36720 |  6a 73 32 2d 52 45 53 45 52 56 45 44 20 74 61 62    6c 65 29 29 0a 20 20 20 20 74 61 62 6c 65 29 0a  | js2-RESERVED.table)).....table). | 
| 36740 |  20 20 22 4a 61 76 61 53 63 72 69 70 74 20 72 65    73 65 72 76 65 64 20 77 6f 72 64 73 20 62 79 20  | .."JavaScript.reserved.words.by. | 
| 36760 |  6e 61 6d 65 2c 20 6d 61 70 70 65 64 20 74 6f 20    60 6a 73 32 2d 52 45 53 45 52 56 45 44 27 2e 22  | name,.mapped.to.`js2-RESERVED'." | 
| 36780 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f    6c 6c 65 63 74 2d 73 74 72 69 6e 67 20 28 62 75  | )..(defun.js2-collect-string.(bu | 
| 367a0 |  66 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 42 55    46 2c 20 61 20 6c 69 73 74 20 6f 66 20 63 68 61  | f)..."Convert.BUF,.a.list.of.cha | 
| 367c0 |  72 73 2c 20 74 6f 20 61 20 73 74 72 69 6e 67 2e    0a 52 65 76 65 72 73 65 73 20 42 55 46 20 62 65  | rs,.to.a.string..Reverses.BUF.be | 
| 367e0 |  66 6f 72 65 20 63 6f 6e 76 65 72 74 69 6e 67 2e    22 0a 20 20 28 69 66 20 62 75 66 0a 20 20 20 20  | fore.converting."...(if.buf..... | 
| 36800 |  20 20 28 61 70 70 6c 79 20 23 27 73 74 72 69 6e    67 20 28 6e 72 65 76 65 72 73 65 20 62 75 66 29  | ..(apply.#'string.(nreverse.buf) | 
| 36820 |  29 0a 20 20 20 20 22 22 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 73 74 72 69 6e 67 2d 74 6f  | ).....""))..(defun.js2-string-to | 
| 36840 |  2d 6b 65 79 77 6f 72 64 20 28 73 29 0a 20 20 22    52 65 74 75 72 6e 20 74 6f 6b 65 6e 20 66 6f 72  | -keyword.(s)..."Return.token.for | 
| 36860 |  20 53 2c 20 61 20 73 74 72 69 6e 67 2c 20 69 66    20 53 20 69 73 20 61 20 6b 65 79 77 6f 72 64 20  | .S,.a.string,.if.S.is.a.keyword. | 
| 36880 |  6f 72 20 72 65 73 65 72 76 65 64 20 77 6f 72 64    2e 0a 52 65 74 75 72 6e 73 20 61 20 73 79 6d 62  | or.reserved.word..Returns.a.symb | 
| 368a0 |  6f 6c 20 73 75 63 68 20 61 73 20 60 6a 73 32 2d    42 52 45 41 4b 27 2c 20 6f 72 20 6e 69 6c 20 69  | ol.such.as.`js2-BREAK',.or.nil.i | 
| 368c0 |  66 20 6e 6f 74 20 6b 65 79 77 6f 72 64 2f 72 65    73 65 72 76 65 64 2e 22 0a 20 20 28 6f 72 20 28  | f.not.keyword/reserved."...(or.( | 
| 368e0 |  67 65 74 68 61 73 68 20 73 20 6a 73 32 2d 6b 65    79 77 6f 72 64 2d 6e 61 6d 65 73 29 0a 20 20 20  | gethash.s.js2-keyword-names).... | 
| 36900 |  20 20 20 28 67 65 74 68 61 73 68 20 73 20 6a 73    32 2d 72 65 73 65 72 76 65 64 2d 77 6f 72 64 2d  | ...(gethash.s.js2-reserved-word- | 
| 36920 |  6e 61 6d 65 73 29 29 29 0a 0a 28 64 65 66 73 75    62 73 74 20 6a 73 32 2d 74 73 2d 73 65 74 2d 63  | names)))..(defsubst.js2-ts-set-c | 
| 36940 |  68 61 72 2d 74 6f 6b 65 6e 2d 62 6f 75 6e 64 73    20 28 74 6f 6b 65 6e 29 0a 20 20 22 55 73 65 64  | har-token-bounds.(token)..."Used | 
| 36960 |  20 77 68 65 6e 20 6e 65 78 74 20 74 6f 6b 65 6e    20 69 73 20 6f 6e 65 20 63 68 61 72 61 63 74 65  | .when.next.token.is.one.characte | 
| 36980 |  72 2e 22 0a 20 20 28 73 65 74 66 20 28 6a 73 32    2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e  | r."...(setf.(js2-token-beg.token | 
| 369a0 |  29 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63 75 72    73 6f 72 29 0a 20 20 20 20 20 20 20 20 28 6a 73  | ).(1-.js2-ts-cursor).........(js | 
| 369c0 |  32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65    6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72  | 2-token-end.token).js2-ts-cursor | 
| 369e0 |  29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73    32 2d 74 73 2d 72 65 74 75 72 6e 20 28 74 6f 6b  | ))..(defsubst.js2-ts-return.(tok | 
| 36a00 |  65 6e 20 74 79 70 65 29 0a 20 20 22 55 70 64 61    74 65 20 74 68 65 20 60 65 6e 64 27 20 61 6e 64  | en.type)..."Update.the.`end'.and | 
| 36a20 |  20 60 74 79 70 65 27 20 73 6c 6f 74 73 20 6f 66    20 54 4f 4b 45 4e 2c 0a 74 68 65 6e 20 74 68 72  | .`type'.slots.of.TOKEN,.then.thr | 
| 36a40 |  6f 77 20 60 72 65 74 75 72 6e 27 20 77 69 74 68    20 76 61 6c 75 65 20 54 59 50 45 2e 22 0a 20 20  | ow.`return'.with.value.TYPE."... | 
| 36a60 |  28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e    2d 65 6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d  | (setf.(js2-token-end.token).js2- | 
| 36a80 |  74 73 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20    20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79 70  | ts-cursor.........(js2-token-typ | 
| 36aa0 |  65 20 74 6f 6b 65 6e 29 20 74 79 70 65 29 0a 20    20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20  | e.token).type)...(throw.'return. | 
| 36ac0 |  74 79 70 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e  | type))..(defun.js2-x-digit-to-in | 
| 36ae0 |  74 20 28 63 20 61 63 63 75 6d 75 6c 61 74 6f 72    29 0a 20 20 22 42 75 69 6c 64 20 75 70 20 61 20  | t.(c.accumulator)..."Build.up.a. | 
| 36b00 |  68 65 78 20 6e 75 6d 62 65 72 2e 0a 49 66 20 43    20 69 73 20 61 20 68 65 78 61 64 65 63 69 6d 61  | hex.number..If.C.is.a.hexadecima | 
| 36b20 |  6c 20 64 69 67 69 74 2c 20 72 65 74 75 72 6e 20    41 43 43 55 4d 55 4c 41 54 4f 52 20 2a 20 31 36  | l.digit,.return.ACCUMULATOR.*.16 | 
| 36b40 |  20 70 6c 75 73 0a 63 6f 72 72 65 73 70 6f 6e 64    69 6e 67 20 6e 75 6d 62 65 72 2e 20 20 4f 74 68  | .plus.corresponding.number...Oth | 
| 36b60 |  65 72 77 69 73 65 20 72 65 74 75 72 6e 20 2d 31    2e 22 0a 20 20 28 63 61 74 63 68 20 27 72 65 74  | erwise.return.-1."...(catch.'ret | 
| 36b80 |  75 72 6e 0a 20 20 20 20 28 63 61 74 63 68 20 27    63 68 65 63 6b 0a 20 20 20 20 20 20 3b 3b 20 55  | urn.....(catch.'check.......;;.U | 
| 36ba0 |  73 65 20 30 2e 2e 39 20 3c 20 41 2e 2e 5a 20 3c    20 61 2e 2e 7a 0a 20 20 20 20 20 20 28 63 6f 6e  | se.0..9.<.A..Z.<.a..z.......(con | 
| 36bc0 |  64 0a 20 20 20 20 20 20 20 28 28 3c 3d 20 63 20    3f 39 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d  | d........((<=.c.?9).........(cl- | 
| 36be0 |  64 65 63 66 20 63 20 3f 30 29 0a 20 20 20 20 20    20 20 20 28 69 66 20 28 3c 3d 20 30 20 63 29 0a  | decf.c.?0).........(if.(<=.0.c). | 
| 36c00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 63 68 65 63 6b 20 6e 69 6c 29 29 29  | ............(throw.'check.nil))) | 
| 36c20 |  0a 20 20 20 20 20 20 20 28 28 3c 3d 20 63 20 3f    46 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e  | ........((<=.c.?F).........(when | 
| 36c40 |  20 28 3c 3d 20 3f 41 20 63 29 0a 20 20 20 20 20    20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 63 20  | .(<=.?A.c)...........(cl-decf.c. | 
| 36c60 |  28 2d 20 3f 41 20 31 30 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 74 68 72 6f 77 20 27 63 68 65  | (-.?A.10))...........(throw.'che | 
| 36c80 |  63 6b 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20    20 28 28 3c 3d 20 63 20 3f 66 29 0a 20 20 20 20  | ck.nil)))........((<=.c.?f)..... | 
| 36ca0 |  20 20 20 20 28 77 68 65 6e 20 28 3c 3d 20 3f 61    20 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 63  | ....(when.(<=.?a.c)...........(c | 
| 36cc0 |  6c 2d 64 65 63 66 20 63 20 28 2d 20 3f 61 20 31    30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74  | l-decf.c.(-.?a.10))...........(t | 
| 36ce0 |  68 72 6f 77 20 27 63 68 65 63 6b 20 6e 69 6c 29    29 29 29 0a 20 20 20 20 20 20 28 74 68 72 6f 77  | hrow.'check.nil)))).......(throw | 
| 36d00 |  20 27 72 65 74 75 72 6e 20 2d 31 29 29 0a 20 20    20 20 28 6c 6f 67 69 6f 72 20 63 20 28 6c 73 68  | .'return.-1)).....(logior.c.(lsh | 
| 36d20 |  20 61 63 63 75 6d 75 6c 61 74 6f 72 20 34 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67  | .accumulator.4))))..(defun.js2-g | 
| 36d40 |  65 74 2d 74 6f 6b 65 6e 20 28 26 6f 70 74 69 6f    6e 61 6c 20 6d 6f 64 69 66 69 65 72 29 0a 20 20  | et-token.(&optional.modifier)... | 
| 36d60 |  22 49 66 20 60 6a 73 32 2d 74 69 2d 6c 6f 6f 6b    61 68 65 61 64 27 20 69 73 20 7a 65 72 6f 2c 20  | "If.`js2-ti-lookahead'.is.zero,. | 
| 36d80 |  63 61 6c 6c 20 73 63 61 6e 6e 65 72 20 74 6f 20    67 65 74 20 6e 65 77 20 74 6f 6b 65 6e 2e 0a 4f  | call.scanner.to.get.new.token..O | 
| 36da0 |  74 68 65 72 77 69 73 65 2c 20 6d 6f 76 65 20 60    6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75  | therwise,.move.`js2-ti-tokens-cu | 
| 36dc0 |  72 73 6f 72 27 20 61 6e 64 20 72 65 74 75 72 6e    20 74 68 65 20 74 79 70 65 20 6f 66 0a 6e 65 78  | rsor'.and.return.the.type.of.nex | 
| 36de0 |  74 20 73 61 76 65 64 20 74 6f 6b 65 6e 2e 0a 0a    54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 77 69  | t.saved.token...This.function.wi | 
| 36e00 |  6c 6c 20 6e 6f 74 20 72 65 74 75 72 6e 20 61 20    6e 65 77 6c 69 6e 65 20 28 6a 73 32 2d 45 4f 4c  | ll.not.return.a.newline.(js2-EOL | 
| 36e20 |  29 20 2d 20 69 6e 73 74 65 61 64 2c 20 69 74 0a    67 6f 62 62 6c 65 73 20 6e 65 77 6c 69 6e 65 73  | ).-.instead,.it.gobbles.newlines | 
| 36e40 |  20 75 6e 74 69 6c 20 69 74 20 66 69 6e 64 73 20    61 20 6e 6f 6e 2d 6e 65 77 6c 69 6e 65 20 74 6f  | .until.it.finds.a.non-newline.to | 
| 36e60 |  6b 65 6e 2e 20 20 43 61 6c 6c 0a 60 6a 73 32 2d    70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f  | ken...Call.`js2-peek-token-or-eo | 
| 36e80 |  6c 27 20 77 68 65 6e 20 79 6f 75 20 63 61 72 65    20 61 62 6f 75 74 20 6e 65 77 6c 69 6e 65 73 2e  | l'.when.you.care.about.newlines. | 
| 36ea0 |  0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20    77 69 6c 6c 20 61 6c 73 6f 20 6e 6f 74 20 72 65  | ..This.function.will.also.not.re | 
| 36ec0 |  74 75 72 6e 20 61 20 6a 73 32 2d 43 4f 4d 4d 45    4e 54 2e 20 20 49 6e 73 74 65 61 64 2c 20 69 74  | turn.a.js2-COMMENT...Instead,.it | 
| 36ee0 |  0a 72 65 63 6f 72 64 73 20 63 6f 6d 6d 65 6e 74    73 20 66 6f 75 6e 64 20 69 6e 20 60 6a 73 32 2d  | .records.comments.found.in.`js2- | 
| 36f00 |  73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73    27 2e 20 20 49 66 20 74 68 65 20 74 6f 6b 65 6e  | scanned-comments'...If.the.token | 
| 36f20 |  0a 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 69    73 20 66 75 6e 63 74 69 6f 6e 20 69 6d 6d 65 64  | .returned.by.this.function.immed | 
| 36f40 |  69 61 74 65 6c 79 20 66 6f 6c 6c 6f 77 73 20 61    20 6a 73 64 6f 63 20 63 6f 6d 6d 65 6e 74 2c 0a  | iately.follows.a.jsdoc.comment,. | 
| 36f60 |  74 68 65 20 74 6f 6b 65 6e 20 69 73 20 66 6c 61    67 67 65 64 20 61 73 20 73 75 63 68 2e 22 0a 20  | the.token.is.flagged.as.such.".. | 
| 36f80 |  20 28 69 66 20 28 7a 65 72 6f 70 20 6a 73 32 2d    74 69 2d 6c 6f 6f 6b 61 68 65 61 64 29 0a 20 20  | .(if.(zerop.js2-ti-lookahead)... | 
| 36fa0 |  20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b    65 6e 2d 69 6e 74 65 72 6e 61 6c 20 6d 6f 64 69  | ....(js2-get-token-internal.modi | 
| 36fc0 |  66 69 65 72 29 0a 20 20 20 20 28 63 6c 2d 64 65    63 66 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68  | fier).....(cl-decf.js2-ti-lookah | 
| 36fe0 |  65 61 64 29 0a 20 20 20 20 28 73 65 74 71 20 6a    73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72  | ead).....(setq.js2-ti-tokens-cur | 
| 37000 |  73 6f 72 20 28 6d 6f 64 20 28 31 2b 20 6a 73 32    2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f  | sor.(mod.(1+.js2-ti-tokens-curso | 
| 37020 |  72 29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e    73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74  | r).js2-ti-ntokens)).....(let.((t | 
| 37040 |  74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 74 79 70 65 29 29 29 0a 20 20 20  | t.(js2-current-token-type))).... | 
| 37060 |  20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e    6f 74 20 28 3d 20 74 74 20 6a 73 32 2d 45 4f 4c  | ...(cl-assert.(not.(=.tt.js2-EOL | 
| 37080 |  29 29 29 0a 20 20 20 20 20 20 74 74 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 75 6e 67 65  | ))).......tt)))..(defun.js2-unge | 
| 370a0 |  74 2d 74 6f 6b 65 6e 20 28 29 0a 20 20 28 63 6c    2d 61 73 73 65 72 74 20 28 3c 20 6a 73 32 2d 74  | t-token.()...(cl-assert.(<.js2-t | 
| 370c0 |  69 2d 6c 6f 6f 6b 61 68 65 61 64 20 6a 73 32 2d    74 69 2d 6d 61 78 2d 6c 6f 6f 6b 61 68 65 61 64  | i-lookahead.js2-ti-max-lookahead | 
| 370e0 |  29 29 0a 20 20 28 63 6c 2d 69 6e 63 66 20 6a 73    32 2d 74 69 2d 6c 6f 6f 6b 61 68 65 61 64 29 0a  | ))...(cl-incf.js2-ti-lookahead). | 
| 37100 |  20 20 28 73 65 74 71 20 6a 73 32 2d 74 69 2d 74    6f 6b 65 6e 73 2d 63 75 72 73 6f 72 20 28 6d 6f  | ..(setq.js2-ti-tokens-cursor.(mo | 
| 37120 |  64 20 28 31 2d 20 6a 73 32 2d 74 69 2d 74 6f 6b    65 6e 73 2d 63 75 72 73 6f 72 29 20 6a 73 32 2d  | d.(1-.js2-ti-tokens-cursor).js2- | 
| 37140 |  74 69 2d 6e 74 6f 6b 65 6e 73 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 74 6f  | ti-ntokens)))..(defun.js2-get-to | 
| 37160 |  6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 20 28 6d 6f    64 69 66 69 65 72 29 0a 20 20 28 6c 65 74 2a 20  | ken-internal.(modifier)...(let*. | 
| 37180 |  28 28 74 6f 6b 65 6e 20 28 6a 73 32 2d 67 65 74    2d 74 6f 6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 2d  | ((token.(js2-get-token-internal- | 
| 371a0 |  31 20 6d 6f 64 69 66 69 65 72 29 29 20 3b 20 63    61 6c 6c 20 73 63 61 6e 6e 65 72 0a 20 20 20 20  | 1.modifier)).;.call.scanner..... | 
| 371c0 |  20 20 20 20 20 28 74 74 20 28 6a 73 32 2d 74 6f    6b 65 6e 2d 74 79 70 65 20 74 6f 6b 65 6e 29 29  | .....(tt.(js2-token-type.token)) | 
| 371e0 |  0a 20 20 20 20 20 20 20 20 20 73 61 77 2d 65 6f    6c 0a 20 20 20 20 20 20 20 20 20 66 61 63 65 29  | ..........saw-eol..........face) | 
| 37200 |  0a 20 20 20 20 3b 3b 20 70 72 6f 63 65 73 73 20    63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 28 77 68  | .....;;.process.comments.....(wh | 
| 37220 |  69 6c 65 20 28 6f 72 20 28 3d 20 74 74 20 6a 73    32 2d 45 4f 4c 29 20 28 3d 20 74 74 20 6a 73 32  | ile.(or.(=.tt.js2-EOL).(=.tt.js2 | 
| 37240 |  2d 43 4f 4d 4d 45 4e 54 29 29 0a 20 20 20 20 20    20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 45  | -COMMENT)).......(if.(=.tt.js2-E | 
| 37260 |  4f 4c 29 0a 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 73 61 77 2d 65 6f 6c 20 74 29 0a 20  | OL)...........(setq.saw-eol.t).. | 
| 37280 |  20 20 20 20 20 20 20 28 73 65 74 71 20 73 61 77    2d 65 6f 6c 20 6e 69 6c 29 0a 20 20 20 20 20 20  | .......(setq.saw-eol.nil)....... | 
| 372a0 |  20 20 28 77 68 65 6e 20 6a 73 32 2d 72 65 63 6f    72 64 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20  | ..(when.js2-record-comments..... | 
| 372c0 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72    64 2d 63 6f 6d 6d 65 6e 74 20 74 6f 6b 65 6e 29  | ......(js2-record-comment.token) | 
| 372e0 |  29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a    73 32 2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72  | )).......(setq.js2-ti-tokens-cur | 
| 37300 |  73 6f 72 20 28 6d 6f 64 20 28 31 2d 20 6a 73 32    2d 74 69 2d 74 6f 6b 65 6e 73 2d 63 75 72 73 6f  | sor.(mod.(1-.js2-ti-tokens-curso | 
| 37320 |  72 29 20 6a 73 32 2d 74 69 2d 6e 74 6f 6b 65 6e    73 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20  | r).js2-ti-ntokens)).......(setq. | 
| 37340 |  74 6f 6b 65 6e 20 28 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 2d 69 6e 74 65 72 6e 61 6c 2d 31 20  | token.(js2-get-token-internal-1. | 
| 37360 |  6d 6f 64 69 66 69 65 72 29 20 3b 20 63 61 6c 6c    20 73 63 61 6e 6e 65 72 20 61 67 61 69 6e 0a 20  | modifier).;.call.scanner.again.. | 
| 37380 |  20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a    73 32 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 74 6f  | ...........tt.(js2-token-type.to | 
| 373a0 |  6b 65 6e 29 29 29 0a 0a 20 20 20 20 28 77 68 65    6e 20 73 61 77 2d 65 6f 6c 0a 20 20 20 20 20 20  | ken)))......(when.saw-eol....... | 
| 373c0 |  28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e    2d 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 2d 70 20 74  | (setf.(js2-token-follows-eol-p.t | 
| 373e0 |  6f 6b 65 6e 29 20 74 29 29 0a 0a 20 20 20 20 3b    3b 20 70 65 72 66 6f 72 6d 20 6c 65 78 69 63 61  | oken).t))......;;.perform.lexica | 
| 37400 |  6c 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20    61 73 20 73 6f 6f 6e 20 61 73 20 74 6f 6b 65 6e  | l.fontification.as.soon.as.token | 
| 37420 |  20 69 73 20 73 63 61 6e 6e 65 64 0a 20 20 20 20    28 77 68 65 6e 20 6a 73 32 2d 70 61 72 73 65 2d  | .is.scanned.....(when.js2-parse- | 
| 37440 |  69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28    63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 63 6c  | ide-mode.......(cond........((cl | 
| 37460 |  2d 6d 69 6e 75 73 70 20 74 74 29 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d  | -minusp.tt).........(js2-record- | 
| 37480 |  66 61 63 65 20 27 6a 73 32 2d 65 72 72 6f 72 20    74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 28  | face.'js2-error.token))........( | 
| 374a0 |  28 73 65 74 71 20 66 61 63 65 20 28 61 72 65 66    20 6a 73 32 2d 6b 77 64 2d 74 6f 6b 65 6e 73 20  | (setq.face.(aref.js2-kwd-tokens. | 
| 374c0 |  74 74 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73    32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 66 61  | tt)).........(js2-record-face.fa | 
| 374e0 |  63 65 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20    20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a 73  | ce.token))........((and.(=.tt.js | 
| 37500 |  32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 65 71 75 61 6c 20 28 6a 73 32  | 2-NAME)..............(equal.(js2 | 
| 37520 |  2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20 74 6f    6b 65 6e 29 20 22 75 6e 64 65 66 69 6e 65 64 22  | -token-string.token)."undefined" | 
| 37540 |  29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d    72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e  | )).........(js2-record-face.'fon | 
| 37560 |  74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d    66 61 63 65 20 74 6f 6b 65 6e 29 29 29 29 0a 20  | t-lock-constant-face.token)))).. | 
| 37580 |  20 20 20 74 74 29 29 0a 0a 28 64 65 66 73 75 62    73 74 20 6a 73 32 2d 73 74 72 69 6e 67 2d 74 6f  | ...tt))..(defsubst.js2-string-to | 
| 375a0 |  2d 6e 75 6d 62 65 72 20 28 73 74 72 20 62 61 73    65 29 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 20 4d  | -number.(str.base)...;;.TODO:..M | 
| 375c0 |  61 79 62 65 20 70 6f 72 74 20 53 63 72 69 70 74    52 75 6e 74 69 6d 65 2e 73 74 72 69 6e 67 54 6f  | aybe.port.ScriptRuntime.stringTo | 
| 375e0 |  4e 75 6d 62 65 72 2e 0a 20 20 28 63 6f 6e 64 69    74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20  | Number....(condition-case.nil... | 
| 37600 |  20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e    75 6d 62 65 72 20 73 74 72 20 62 61 73 65 29 0a  | ....(string-to-number.str.base). | 
| 37620 |  20 20 20 20 28 6f 76 65 72 66 6c 6f 77 2d 65 72    72 6f 72 20 2d 31 29 29 29 0a 0a 28 64 65 66 75  | ....(overflow-error.-1)))..(defu | 
| 37640 |  6e 20 6a 73 32 2d 68 61 6e 64 6c 65 2d 6e 75 6d    65 72 69 63 2d 73 65 70 61 72 61 74 6f 72 20 28  | n.js2-handle-numeric-separator.( | 
| 37660 |  29 0a 20 20 22 44 65 74 65 63 74 20 61 6e 64 20    68 61 6e 64 6c 65 20 6e 75 6d 65 72 69 63 20 73  | )..."Detect.and.handle.numeric.s | 
| 37680 |  65 70 61 72 61 74 6f 72 20 3f 5f 2e 22 0a 20 20    28 6c 65 74 20 28 28 62 75 66 66 65 72 20 28 6e  | eparator.?_."...(let.((buffer.(n | 
| 376a0 |  72 65 76 65 72 73 65 20 6a 73 32 2d 74 73 2d 73    74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 0a 20  | reverse.js2-ts-string-buffer)).. | 
| 376c0 |  20 20 20 20 20 20 20 28 72 65 73 20 6e 69 6c 29    29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20  | .......(res.nil)).....(while.(>. | 
| 376e0 |  28 6c 65 6e 67 74 68 20 62 75 66 66 65 72 29 20    30 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28  | (length.buffer).0).......(let.(( | 
| 37700 |  63 75 72 72 65 6e 74 2d 63 20 28 63 61 72 20 62    75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20  | current-c.(car.buffer))......... | 
| 37720 |  20 20 20 20 28 6e 65 78 74 2d 63 20 28 63 61 64    72 20 62 75 66 66 65 72 29 29 29 0a 20 20 20 20  | ....(next-c.(cadr.buffer)))..... | 
| 37740 |  20 20 20 20 28 69 66 20 28 65 71 20 63 75 72 72    65 6e 74 2d 63 20 3f 5f 29 0a 20 20 20 20 20 20  | ....(if.(eq.current-c.?_)....... | 
| 37760 |  20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 3d    20 28 6c 65 6e 67 74 68 20 62 75 66 66 65 72 29  | ......(if.(or.(=.(length.buffer) | 
| 37780 |  20 31 29 20 28 6d 65 6d 71 20 6e 65 78 74 2d 63    20 27 28 3f 2e 20 3f 65 20 3f 45 29 29 29 0a 20  | .1).(memq.next-c.'(?..?e.?E))).. | 
| 377a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d  | ...............(js2-report-scan- | 
| 377c0 |  65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 74 72    61 69 6c 69 6e 67 2e 6e 75 6d 65 72 69 63 2e 6c  | error."msg.no.trailing.numeric.l | 
| 377e0 |  69 74 65 72 61 6c 22 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20  | iteral")...............(when.(=. | 
| 37800 |  28 63 61 64 72 20 62 75 66 66 65 72 29 20 3f 5f    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (cadr.buffer).?_)............... | 
| 37820 |  20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63    61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f  | ..(js2-report-scan-error."msg.no | 
| 37840 |  2e 63 6f 6e 73 65 63 75 74 69 76 65 2e 6e 75 6d    65 72 69 63 2e 6c 69 74 65 72 61 6c 22 29 29 29  | .consecutive.numeric.literal"))) | 
| 37860 |  0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68    20 28 63 61 72 20 62 75 66 66 65 72 29 20 72 65  | ...........(push.(car.buffer).re | 
| 37880 |  73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71    20 62 75 66 66 65 72 20 28 63 64 72 20 62 75 66  | s))).......(setq.buffer.(cdr.buf | 
| 378a0 |  66 65 72 29 29 29 0a 20 20 20 20 28 73 65 74 71    20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62  | fer))).....(setq.js2-ts-string-b | 
| 378c0 |  75 66 66 65 72 20 72 65 73 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 74 6f 6b  | uffer.res)))..(defun.js2-get-tok | 
| 378e0 |  65 6e 2d 69 6e 74 65 72 6e 61 6c 2d 31 20 28 6d    6f 64 69 66 69 65 72 29 0a 20 20 22 52 65 74 75  | en-internal-1.(modifier)..."Retu | 
| 37900 |  72 6e 20 6e 65 78 74 20 4a 61 76 61 53 63 72 69    70 74 20 74 6f 6b 65 6e 20 74 79 70 65 2c 20 61  | rn.next.JavaScript.token.type,.a | 
| 37920 |  6e 20 69 6e 74 20 73 75 63 68 20 61 73 20 6a 73    32 2d 52 45 54 55 52 4e 2e 0a 44 75 72 69 6e 67  | n.int.such.as.js2-RETURN..During | 
| 37940 |  20 6f 70 65 72 61 74 69 6f 6e 2c 20 63 72 65 61    74 65 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20  | .operation,.creates.an.instance. | 
| 37960 |  6f 66 20 60 6a 73 32 2d 74 6f 6b 65 6e 27 20 73    74 72 75 63 74 2c 20 73 65 74 73 0a 69 74 73 20  | of.`js2-token'.struct,.sets.its. | 
| 37980 |  72 65 6c 65 76 61 6e 74 20 66 69 65 6c 64 73 20    61 6e 64 20 70 75 74 73 20 69 74 20 69 6e 74 6f  | relevant.fields.and.puts.it.into | 
| 379a0 |  20 60 6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 27    2e 22 0a 20 20 28 6c 65 74 20 28 69 64 65 6e 74  | .`js2-ti-tokens'."...(let.(ident | 
| 379c0 |  69 66 69 65 72 2d 73 74 61 72 74 0a 20 20 20 20    20 20 20 20 69 64 65 6e 74 69 66 69 65 72 2d 70  | ifier-start.........identifier-p | 
| 379e0 |  72 69 76 61 74 65 0a 20 20 20 20 20 20 20 20 69    73 2d 75 6e 69 63 6f 64 65 2d 65 73 63 61 70 65  | rivate.........is-unicode-escape | 
| 37a00 |  2d 73 74 61 72 74 20 63 0a 20 20 20 20 20 20 20    20 63 6f 6e 74 61 69 6e 73 2d 65 73 63 61 70 65  | -start.c.........contains-escape | 
| 37a20 |  20 65 73 63 61 70 65 2d 76 61 6c 20 73 74 72 20    72 65 73 75 6c 74 20 62 61 73 65 0a 20 20 20 20  | .escape-val.str.result.base..... | 
| 37a40 |  20 20 20 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61    73 68 20 63 6f 6e 74 69 6e 75 65 20 74 74 20 6c  | ....look-for-slash.continue.tt.l | 
| 37a60 |  65 67 61 63 79 2d 6f 63 74 61 6c 0a 20 20 20 20    20 20 20 20 28 74 6f 6b 65 6e 20 28 6a 73 32 2d  | egacy-octal.........(token.(js2- | 
| 37a80 |  6e 65 77 2d 74 6f 6b 65 6e 20 30 29 29 29 0a 20    20 20 20 28 73 65 74 71 0a 20 20 20 20 20 74 74  | new-token.0))).....(setq......tt | 
| 37aa0 |  0a 20 20 20 20 20 28 63 61 74 63 68 20 27 72 65    74 75 72 6e 0a 20 20 20 20 20 20 20 28 77 68 65  | ......(catch.'return........(whe | 
| 37ac0 |  6e 20 28 65 71 20 6d 6f 64 69 66 69 65 72 20 27    54 45 4d 50 4c 41 54 45 5f 54 41 49 4c 29 0a 20  | n.(eq.modifier.'TEMPLATE_TAIL).. | 
| 37ae0 |  20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a    73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b  | ........(setf.(js2-token-beg.tok | 
| 37b00 |  65 6e 29 20 28 31 2d 20 6a 73 32 2d 74 73 2d 63    75 72 73 6f 72 29 29 0a 20 20 20 20 20 20 20 20  | en).(1-.js2-ts-cursor))......... | 
| 37b20 |  20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20    28 6a 73 32 2d 67 65 74 2d 73 74 72 69 6e 67 2d  | .(throw.'return.(js2-get-string- | 
| 37b40 |  6f 72 2d 74 65 6d 70 6c 61 74 65 2d 74 6f 6b 65    6e 20 3f 60 20 74 6f 6b 65 6e 29 29 29 0a 20 20  | or-template-token.?`.token)))... | 
| 37b60 |  20 20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20    20 20 20 20 20 20 20 3b 3b 20 45 61 74 20 77 68  | .....(while.t..........;;.Eat.wh | 
| 37b80 |  69 74 65 73 70 61 63 65 2c 20 70 6f 73 73 69 62    6c 79 20 73 65 6e 73 69 74 69 76 65 20 74 6f 20  | itespace,.possibly.sensitive.to. | 
| 37ba0 |  6e 65 77 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75  | newlines...........(setq.continu | 
| 37bc0 |  65 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 77    68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20  | e.t)..........(while.continue... | 
| 37be0 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29  | .........(setq.c.(js2-get-char)) | 
| 37c00 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28  | ............(cond.............(( | 
| 37c20 |  65 71 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41    52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | eq.c.js2-EOF_CHAR).............. | 
| 37c40 |  28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61 72 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | (js2-unget-char)..............(j | 
| 37c60 |  73 32 2d 74 73 2d 73 65 74 2d 63 68 61 72 2d 74    6f 6b 65 6e 2d 62 6f 75 6e 64 73 20 74 6f 6b 65  | s2-ts-set-char-token-bounds.toke | 
| 37c80 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a  | n)..............(throw.'return.j | 
| 37ca0 |  73 32 2d 45 4f 46 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 28 65 71 20 63 20 3f 5c 6e 29  | s2-EOF)).............((eq.c.?\n) | 
| 37cc0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 74 73 2d 73 65 74 2d 63 68 61 72 2d 74  | ..............(js2-ts-set-char-t | 
| 37ce0 |  6f 6b 65 6e 2d 62 6f 75 6e 64 73 20 74 6f 6b 65    6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | oken-bounds.token).............. | 
| 37d00 |  28 73 65 74 71 20 6a 73 32 2d 74 73 2d 64 69 72    74 79 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 20  | (setq.js2-ts-dirty-line.nil).... | 
| 37d20 |  20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77    20 27 72 65 74 75 72 6e 20 6a 73 32 2d 45 4f 4c  | ..........(throw.'return.js2-EOL | 
| 37d40 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28    28 6e 6f 74 20 28 6a 73 32 2d 6a 73 2d 73 70 61  | )).............((not.(js2-js-spa | 
| 37d60 |  63 65 2d 70 20 63 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 63 20  | ce-p.c))..............(if.(/=.c. | 
| 37d80 |  3f 2d 29 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3b 20 69 6e 20 63 61 73 65 20 65 6e 64 20 6f  | ?-)..............;.in.case.end.o | 
| 37da0 |  66 20 48 54 4d 4c 20 63 6f 6d 6d 65 6e 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | f.HTML.comment.................. | 
| 37dc0 |  28 73 65 74 71 20 6a 73 32 2d 74 73 2d 64 69 72    74 79 2d 6c 69 6e 65 20 74 29 29 0a 20 20 20 20  | (setq.js2-ts-dirty-line.t))..... | 
| 37de0 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a  | .........(setq.continue.nil)))). | 
| 37e00 |  20 20 20 20 20 20 20 20 20 3b 3b 20 41 73 73 75    6d 65 20 74 68 65 20 74 6f 6b 65 6e 20 77 69 6c  | .........;;.Assume.the.token.wil | 
| 37e20 |  6c 20 62 65 20 31 20 63 68 61 72 20 2d 20 66 69    78 65 64 20 75 70 20 62 65 6c 6f 77 2e 0a 20 20  | l.be.1.char.-.fixed.up.below.... | 
| 37e40 |  20 20 20 20 20 20 20 28 6a 73 32 2d 74 73 2d 73    65 74 2d 63 68 61 72 2d 74 6f 6b 65 6e 2d 62 6f  | .......(js2-ts-set-char-token-bo | 
| 37e60 |  75 6e 64 73 20 74 6f 6b 65 6e 29 0a 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 63  | unds.token)..........(when.(eq.c | 
| 37e80 |  20 3f 40 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a  | .?@)............(throw.'return.j | 
| 37ea0 |  73 32 2d 58 4d 4c 41 54 54 52 29 29 0a 20 20 20    20 20 20 20 20 20 3b 3b 20 69 64 65 6e 74 69 66  | s2-XMLATTR))..........;;.identif | 
| 37ec0 |  69 65 72 2f 6b 65 79 77 6f 72 64 2f 69 6e 73 74    61 6e 63 65 6f 66 3f 0a 20 20 20 20 20 20 20 20  | ier/keyword/instanceof?......... | 
| 37ee0 |  20 3b 3b 20 77 61 74 63 68 20 6f 75 74 20 66 6f    72 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20  | .;;.watch.out.for.starting.with. | 
| 37f00 |  61 20 3c 62 61 63 6b 73 6c 61 73 68 3e 0a 20 20    20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20  | a.<backslash>..........(cond.... | 
| 37f20 |  20 20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5c    5c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | .......((eq.c.?\\)............(s | 
| 37f40 |  65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63    68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20  | etq.c.(js2-get-char))........... | 
| 37f60 |  20 28 69 66 20 28 65 71 20 63 20 3f 75 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | .(if.(eq.c.?u)................(s | 
| 37f80 |  65 74 71 20 69 64 65 6e 74 69 66 69 65 72 2d 73    74 61 72 74 20 74 0a 20 20 20 20 20 20 20 20 20  | etq.identifier-start.t.......... | 
| 37fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 69 73 2d 75    6e 69 63 6f 64 65 2d 65 73 63 61 70 65 2d 73 74  | ............is-unicode-escape-st | 
| 37fc0 |  61 72 74 20 74 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 74  | art.t......................js2-t | 
| 37fe0 |  73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72 20    6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20  | s-string-buffer.nil)............ | 
| 38000 |  20 20 28 73 65 74 71 20 69 64 65 6e 74 69 66 69    65 72 2d 73 74 61 72 74 20 6e 69 6c 29 0a 20 20  | ..(setq.identifier-start.nil)... | 
| 38020 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20  | ...........(js2-unget-char)..... | 
| 38040 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    20 3f 5c 5c 29 29 29 0a 20 20 20 20 20 20 20 20  | .........(setq.c.?\\)))......... | 
| 38060 |  20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 28 73 65 74 71 20 69 64 65 6e  | ..(t............(when.(setq.iden | 
| 38080 |  74 69 66 69 65 72 2d 73 74 61 72 74 20 28 6f 72    20 28 6a 73 32 2d 69 64 65 6e 74 69 66 69 65 72  | tifier-start.(or.(js2-identifier | 
| 380a0 |  2d 73 74 61 72 74 2d 70 20 63 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -start-p.c)..................... | 
| 380c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20  | ........................(and.... | 
| 380e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 38100 |  20 20 20 20 20 20 20 20 20 20 28 65 71 20 63 20    3f 23 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..........(eq.c.?#)............. | 
| 38120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 38140 |  20 28 73 65 74 71 20 69 64 65 6e 74 69 66 69 65    72 2d 70 72 69 76 61 74 65 20 74 29 29 29 29 0a  | .(setq.identifier-private.t)))). | 
| 38160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67  | .............(setq.js2-ts-string | 
| 38180 |  2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61  | -buffer.nil)..............(js2-a | 
| 381a0 |  64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65  | dd-to-string.c))))..........(whe | 
| 381c0 |  6e 20 69 64 65 6e 74 69 66 69 65 72 2d 73 74 61    72 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | n.identifier-start............(s | 
| 381e0 |  65 74 71 20 63 6f 6e 74 61 69 6e 73 2d 65 73 63    61 70 65 20 69 73 2d 75 6e 69 63 6f 64 65 2d 65  | etq.contains-escape.is-unicode-e | 
| 38200 |  73 63 61 70 65 2d 73 74 61 72 74 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 27  | scape-start)............(catch.' | 
| 38220 |  62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20 20  | break..............(while.t..... | 
| 38240 |  20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69    73 2d 75 6e 69 63 6f 64 65 2d 65 73 63 61 70 65  | ...........(if.is-unicode-escape | 
| 38260 |  2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 72  | -start....................;;.str | 
| 38280 |  69 63 74 6c 79 20 73 70 65 61 6b 69 6e 67 20 77    65 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c  | ictly.speaking.we.should.probabl | 
| 382a0 |  79 20 70 75 73 68 2d 62 61 63 6b 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b  | y.push-back....................; | 
| 382c0 |  3b 20 61 6c 6c 20 74 68 65 20 62 61 64 20 63 68    61 72 61 63 74 65 72 73 20 69 66 20 74 68 65 20  | ;.all.the.bad.characters.if.the. | 
| 382e0 |  3c 62 61 63 6b 73 6c 61 73 68 3e 75 58 58 58 58    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | <backslash>uXXXX................ | 
| 38300 |  20 20 20 20 3b 3b 20 73 65 71 75 65 6e 63 65 20    69 73 20 6d 61 6c 66 6f 72 6d 65 64 2e 20 42 75  | ....;;.sequence.is.malformed..Bu | 
| 38320 |  74 20 73 69 6e 63 65 20 74 68 65 72 65 20 69 73    6e 27 74 20 61 0a 20 20 20 20 20 20 20 20 20 20  | t.since.there.isn't.a........... | 
| 38340 |  20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 72 72    65 63 74 20 63 6f 6e 74 65 78 74 28 69 73 20 74  | .........;;.correct.context(is.t | 
| 38360 |  68 65 72 65 3f 29 20 66 6f 72 20 61 20 62 61 64    20 55 6e 69 63 6f 64 65 0a 20 20 20 20 20 20 20  | here?).for.a.bad.Unicode........ | 
| 38380 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65    73 63 61 70 65 20 73 65 71 75 65 6e 63 65 20 69  | ............;;.escape.sequence.i | 
| 383a0 |  6e 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 2c    20 77 65 20 63 61 6e 20 72 65 70 6f 72 74 0a 20  | n.an.identifier,.we.can.report.. | 
| 383c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3b 3b 20 61 6e 20 65 72 72 6f 72 20 68 65  | ..................;;.an.error.he | 
| 383e0 |  72 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20  | re.....................(progn... | 
| 38400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 65 73 63 61 70 65 2d  | ...................(setq.escape- | 
| 38420 |  76 61 6c 20 30 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 74  | val.0)......................(dot | 
| 38440 |  69 6d 65 73 20 28 5f 20 34 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | imes.(_.4)...................... | 
| 38460 |  20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67    65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20  | ..(setq.c.(js2-get-char)........ | 
| 38480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 65 73 63 61 70 65 2d 76 61 6c  | ......................escape-val | 
| 384a0 |  20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f    2d 69 6e 74 20 63 20 65 73 63 61 70 65 2d 76 61  | .(js2-x-digit-to-int.c.escape-va | 
| 384c0 |  6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 65  | l))........................;;.Ne | 
| 384e0 |  78 74 20 63 68 65 63 6b 20 74 61 6b 65 73 20 63    61 72 65 20 6f 66 20 63 20 3c 20 30 20 61 6e 64  | xt.check.takes.care.of.c.<.0.and | 
| 38500 |  20 62 61 64 20 65 73 63 61 70 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .bad.escape..................... | 
| 38520 |  20 20 20 28 69 66 20 28 63 6c 2d 6d 69 6e 75 73    70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20  | ...(if.(cl-minusp.escape-val)... | 
| 38540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20  | .........................(throw. | 
| 38560 |  27 62 72 65 61 6b 20 6e 69 6c 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 'break.nil)))................... | 
| 38580 |  20 20 20 28 69 66 20 28 63 6c 2d 6d 69 6e 75 73    70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20  | ...(if.(cl-minusp.escape-val)... | 
| 385a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | .......................(js2-repo | 
| 385c0 |  72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d    73 67 2e 69 6e 76 61 6c 69 64 2e 65 73 63 61 70  | rt-scan-error."msg.invalid.escap | 
| 385e0 |  65 22 20 74 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | e".t))......................(js2 | 
| 38600 |  2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 65    73 63 61 70 65 2d 76 61 6c 29 0a 20 20 20 20 20  | -add-to-string.escape-val)...... | 
| 38620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 69 73 2d 75 6e 69 63 6f 64 65  | ................(setq.is-unicode | 
| 38640 |  2d 65 73 63 61 70 65 2d 73 74 61 72 74 20 6e 69    6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -escape-start.nil))............. | 
| 38660 |  20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73    32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20  | .....(setq.c.(js2-get-char)).... | 
| 38680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..............(cond............. | 
| 386a0 |  20 20 20 20 20 20 28 28 65 71 20 63 20 3f 5c 5c    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......((eq.c.?\\)............... | 
| 386c0 |  20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73    32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20 20 20  | .....(setq.c.(js2-get-char)).... | 
| 386e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 65 71 20 63 20 3f 75 29 0a 20 20  | ................(if.(eq.c.?u)... | 
| 38700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 69 73 2d 75 6e  | .....................(setq.is-un | 
| 38720 |  69 63 6f 64 65 2d 65 73 63 61 70 65 2d 73 74 61    72 74 20 74 0a 20 20 20 20 20 20 20 20 20 20 20  | icode-escape-start.t............ | 
| 38740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 63 6f 6e 74 61 69 6e 73 2d 65 73 63 61 70  | ..................contains-escap | 
| 38760 |  65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72  | e.t)......................(js2-r | 
| 38780 |  65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72    20 22 6d 73 67 2e 69 6c 6c 65 67 61 6c 2e 63 68  | eport-scan-error."msg.illegal.ch | 
| 387a0 |  61 72 61 63 74 65 72 22 20 74 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | aracter".t)))................... | 
| 387c0 |  28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 65  | (t....................(if.(or.(e | 
| 387e0 |  71 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | q.c.js2-EOF_CHAR)............... | 
| 38800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f    74 20 28 6a 73 32 2d 69 64 65 6e 74 69 66 69 65  | .............(not.(js2-identifie | 
| 38820 |  72 2d 70 61 72 74 2d 70 20 63 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r-part-p.c)))................... | 
| 38840 |  20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65    61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20  | .....(throw.'break.nil))........ | 
| 38860 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63  | ............(js2-add-to-string.c | 
| 38880 |  29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61  | ))))))............(js2-unget-cha | 
| 388a0 |  72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 66 20 73 74 72 20 28 6a 73 32 2d 63 6f 6c  | r)............(setf.str.(js2-col | 
| 388c0 |  6c 65 63 74 2d 73 74 72 69 6e 67 20 6a 73 32 2d    74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72  | lect-string.js2-ts-string-buffer | 
| 388e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e  | )..................(js2-token-en | 
| 38900 |  64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73 2d    63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20  | d.token).js2-ts-cursor)......... | 
| 38920 |  20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 49 6e 76    61 6c 69 64 20 69 6e 20 45 53 35 20 61 6e 64 20  | ...;;.FIXME:.Invalid.in.ES5.and. | 
| 38940 |  45 53 36 2c 20 73 65 65 0a 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 62  | ES6,.see............;;.https://b | 
| 38960 |  75 67 7a 69 6c 6c 61 2e 6d 6f 7a 69 6c 6c 61 2e    6f 72 67 2f 73 68 6f 77 5f 62 75 67 2e 63 67 69  | ugzilla.mozilla.org/show_bug.cgi | 
| 38980 |  3f 69 64 3d 36 39 34 33 36 30 0a 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 50 72 6f 62 61 62 6c  | ?id=694360............;;.Probabl | 
| 389a0 |  79 20 73 68 6f 75 6c 64 20 6a 75 73 74 20 64 72    6f 70 20 74 68 69 73 20 63 6f 6e 64 69 74 69 6f  | y.should.just.drop.this.conditio | 
| 389c0 |  6e 61 6c 2e 0a 20 20 20 20 20 20 20 20 20 20 20    28 75 6e 6c 65 73 73 20 63 6f 6e 74 61 69 6e 73  | nal.............(unless.contains | 
| 389e0 |  2d 65 73 63 61 70 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 4f 50 54 20 77 65 20 73  | -escape..............;;.OPT.we.s | 
| 38a00 |  68 6f 75 6c 64 6e 27 74 20 68 61 76 65 20 74 6f    20 6d 61 6b 65 20 61 20 73 74 72 69 6e 67 20 28  | houldn't.have.to.make.a.string.( | 
| 38a20 |  6f 62 6a 65 63 74 21 29 20 74 6f 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 65 63  | object!).to..............;;.chec | 
| 38a40 |  6b 20 69 66 20 69 74 27 73 20 61 20 6b 65 79 77    6f 72 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20  | k.if.it's.a.keyword............. | 
| 38a60 |  20 20 3b 3b 20 52 65 74 75 72 6e 20 74 68 65 20    63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f  | ..;;.Return.the.corresponding.to | 
| 38a80 |  6b 65 6e 20 69 66 20 69 74 27 73 20 61 20 6b 65    79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20  | ken.if.it's.a.keyword........... | 
| 38aa0 |  20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e    6f 74 20 28 65 71 20 6d 6f 64 69 66 69 65 72 20  | ...(when.(and.(not.(eq.modifier. | 
| 38ac0 |  27 4b 45 59 57 4f 52 44 5f 49 53 5f 4e 41 4d 45    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | 'KEYWORD_IS_NAME)).............. | 
| 38ae0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 72 65 73 75 6c 74 20 28 6a 73 32 2d 73 74 72  | ...........(setq.result.(js2-str | 
| 38b00 |  69 6e 67 2d 74 6f 2d 6b 65 79 77 6f 72 64 20 73    74 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ing-to-keyword.str)))........... | 
| 38b20 |  20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3c    20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65  | .....(if.(and.(<.js2-language-ve | 
| 38b40 |  72 73 69 6f 6e 20 31 37 30 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rsion.170)...................... | 
| 38b60 |  20 20 20 28 6d 65 6d 71 20 72 65 73 75 6c 74 20    27 28 6a 73 32 2d 4c 45 54 20 6a 73 32 2d 59 49  | ...(memq.result.'(js2-LET.js2-YI | 
| 38b80 |  45 4c 44 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 45 54  | ELD)))....................;;.LET | 
| 38ba0 |  20 61 6e 64 20 59 49 45 4c 44 20 61 72 65 20 74    6f 6b 65 6e 73 20 6f 6e 6c 79 20 69 6e 20 31 2e  | .and.YIELD.are.tokens.only.in.1. | 
| 38bc0 |  37 20 61 6e 64 20 6c 61 74 65 72 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | 7.and.later....................( | 
| 38be0 |  73 65 74 71 20 72 65 73 75 6c 74 20 27 6a 73 32    2d 4e 41 4d 45 29 29 0a 20 20 20 20 20 20 20 20  | setq.result.'js2-NAME))......... | 
| 38c00 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71    20 72 65 73 75 6c 74 20 27 6a 73 32 2d 52 45 53  | .......(when.(eq.result.'js2-RES | 
| 38c20 |  45 52 56 45 44 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a  | ERVED)..................(setf.(j | 
| 38c40 |  73 32 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 20    74 6f 6b 65 6e 29 20 73 74 72 29 29 0a 20 20 20  | s2-token-string.token).str)).... | 
| 38c60 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 72 65 74 75 72 6e 20 28 6a 73 32 2d  | ............(throw.'return.(js2- | 
| 38c80 |  74 74 2d 63 6f 64 65 20 72 65 73 75 6c 74 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | tt-code.result))))............;; | 
| 38ca0 |  20 49 66 20 77 65 20 77 61 6e 74 20 74 6f 20 69    6e 74 65 72 6e 20 74 68 65 73 65 20 61 73 20 52  | .If.we.want.to.intern.these.as.R | 
| 38cc0 |  68 69 6e 6f 20 64 6f 65 73 2c 20 6a 75 73 74 20    75 73 65 20 28 69 6e 74 65 72 6e 20 73 74 72 29  | hino.does,.just.use.(intern.str) | 
| 38ce0 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74    66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 72  | ............(setf.(js2-token-str | 
| 38d00 |  69 6e 67 20 74 6f 6b 65 6e 29 20 73 74 72 29 0a    20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f  | ing.token).str)............(thro | 
| 38d20 |  77 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20  | w.'return...................(if. | 
| 38d40 |  69 64 65 6e 74 69 66 69 65 72 2d 70 72 69 76 61    74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | identifier-private.............. | 
| 38d60 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 50 52 49    56 41 54 45 5f 4e 41 4d 45 0a 20 20 20 20 20 20  | .........js2-PRIVATE_NAME....... | 
| 38d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73    32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20  | ..............js2-NAME)......... | 
| 38da0 |  20 20 20 20 20 20 20 20 20 20 29 29 20 20 20 20    3b 20 65 6e 64 20 69 64 65 6e 74 69 66 69 65 72  | ..........))....;.end.identifier | 
| 38dc0 |  2f 6b 77 64 20 63 68 65 63 6b 0a 20 20 20 20 20    20 20 20 20 3b 3b 20 69 73 20 69 74 20 61 20 6e  | /kwd.check..........;;.is.it.a.n | 
| 38de0 |  75 6d 62 65 72 3f 0a 20 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 28 6f 72 20 28 6a 73 32 2d 64  | umber?..........(when.(or.(js2-d | 
| 38e00 |  69 67 69 74 2d 70 20 63 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e  | igit-p.c)....................(an | 
| 38e20 |  64 20 28 65 71 20 63 20 3f 2e 29 20 28 6a 73 32    2d 64 69 67 69 74 2d 70 20 28 6a 73 32 2d 70 65  | d.(eq.c.?.).(js2-digit-p.(js2-pe | 
| 38e40 |  65 6b 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32  | ek-char))))............(setq.js2 | 
| 38e60 |  2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65    72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20  | -ts-string-buffer.nil........... | 
| 38e80 |  20 20 20 20 20 20 20 62 61 73 65 20 31 30 29 0a    20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e  | .......base.10)............(when | 
| 38ea0 |  20 28 65 71 20 63 20 3f 30 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20  | .(eq.c.?0)..............(setq.c. | 
| 38ec0 |  28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f  | (js2-get-char))..............(co | 
| 38ee0 |  6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 65 71 20 63 20 3f 5f 29 20 28 6a 73 32  | nd...............((eq.c.?_).(js2 | 
| 38f00 |  2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72    6f 72 20 22 6d 73 67 2e 6e 6f 2e 6e 75 6d 65 72  | -report-scan-error."msg.no.numer | 
| 38f20 |  69 63 2e 73 65 70 61 72 61 74 6f 72 2e 61 66 74    65 72 2e 6c 65 61 64 69 6e 67 2e 7a 65 72 6f 22  | ic.separator.after.leading.zero" | 
| 38f40 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 6f 72 20 28 65 71 20 63 20 3f 78 29 20  | ))...............((or.(eq.c.?x). | 
| 38f60 |  28 65 71 20 63 20 3f 58 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | (eq.c.?X))................(setq. | 
| 38f80 |  62 61 73 65 20 31 36 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20  | base.16)................(setq.c. | 
| 38fa0 |  28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | (js2-get-char)))...............( | 
| 38fc0 |  28 61 6e 64 20 28 6f 72 20 28 65 71 20 63 20 3f    62 29 20 28 65 71 20 63 20 3f 42 29 29 0a 20 20  | (and.(or.(eq.c.?b).(eq.c.?B))... | 
| 38fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61  | ..................(>=.js2-langua | 
| 39000 |  67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ge-version.200))................ | 
| 39020 |  28 73 65 74 71 20 62 61 73 65 20 32 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | (setq.base.2)................(se | 
| 39040 |  74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68    61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | tq.c.(js2-get-char)))........... | 
| 39060 |  20 20 20 20 28 28 61 6e 64 20 28 6f 72 20 28 65    71 20 63 20 3f 6f 29 20 28 65 71 20 63 20 3f 4f  | ....((and.(or.(eq.c.?o).(eq.c.?O | 
| 39080 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c  | )).....................(>=.js2-l | 
| 390a0 |  61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20    32 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20  | anguage-version.200))........... | 
| 390c0 |  20 20 20 20 20 28 73 65 74 71 20 62 61 73 65 20    38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....(setq.base.8).............. | 
| 390e0 |  20 20 28 73 65 74 71 20 6c 65 67 61 63 79 2d 6f    63 74 61 6c 20 6e 69 6c 29 0a 20 20 20 20 20 20  | ..(setq.legacy-octal.nil)....... | 
| 39100 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29  | .........(setq.c.(js2-get-char)) | 
| 39120 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 28 6a 73 32 2d 64 69 67 69 74 2d 70 20 63 29  | )...............((js2-digit-p.c) | 
| 39140 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 62 61 73 65 20 27 6d 61 79 62  | ................(setq.base.'mayb | 
| 39160 |  65 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20  | e-8))...............(t.......... | 
| 39180 |  20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74    6f 2d 73 74 72 69 6e 67 20 3f 30 29 29 29 29 0a  | ......(js2-add-to-string.?0)))). | 
| 391a0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65  | ...........(cond.............((e | 
| 391c0 |  71 20 62 61 73 65 20 31 36 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 30  | q.base.16)..............(if.(>.0 | 
| 391e0 |  20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d 74 6f    2d 69 6e 74 20 63 20 30 29 29 0a 20 20 20 20 20  | .(js2-x-digit-to-int.c.0))...... | 
| 39200 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72  | ............(js2-report-scan-err | 
| 39220 |  6f 72 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e    68 65 78 2e 64 69 67 69 74 73 22 29 0a 20 20 20  | or."msg.missing.hex.digits").... | 
| 39240 |  20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69    6c 65 20 28 6f 72 20 28 3c 3d 20 30 20 28 6a 73  | ............(while.(or.(<=.0.(js | 
| 39260 |  32 2d 78 2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74    20 63 20 30 29 29 20 28 3d 20 63 20 3f 5f 29 29  | 2-x-digit-to-int.c.0)).(=.c.?_)) | 
| 39280 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74  | ..................(js2-add-to-st | 
| 392a0 |  72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63  | ring.c)..................(setq.c | 
| 392c0 |  20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .(js2-get-char)))))............. | 
| 392e0 |  28 28 65 71 20 62 61 73 65 20 32 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e  | ((eq.base.2)..............(if.(n | 
| 39300 |  6f 74 20 28 6d 65 6d 71 20 63 20 27 28 3f 30 20    3f 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ot.(memq.c.'(?0.?1)))........... | 
| 39320 |  20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f    72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20 22 6d  | .......(js2-report-scan-error."m | 
| 39340 |  73 67 2e 6d 69 73 73 69 6e 67 2e 62 69 6e 61 72    79 2e 64 69 67 69 74 73 22 29 0a 20 20 20 20 20  | sg.missing.binary.digits")...... | 
| 39360 |  20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65    20 28 6d 65 6d 71 20 63 20 27 28 3f 30 20 3f 31  | ..........(while.(memq.c.'(?0.?1 | 
| 39380 |  20 3f 5f 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d  | .?_))..................(js2-add- | 
| 393a0 |  74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | to-string.c)..................(s | 
| 393c0 |  65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63    68 61 72 29 29 29 29 29 0a 20 20 20 20 20 20 20  | etq.c.(js2-get-char)))))........ | 
| 393e0 |  20 20 20 20 20 28 28 65 71 20 62 61 73 65 20 38    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .....((eq.base.8)..............( | 
| 39400 |  69 66 20 28 6f 72 20 28 3e 20 3f 30 20 63 29 20    28 3c 20 3f 37 20 63 29 29 0a 20 20 20 20 20 20  | if.(or.(>.?0.c).(<.?7.c))....... | 
| 39420 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    72 65 70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f  | ...........(js2-report-scan-erro | 
| 39440 |  72 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 6f    63 74 61 6c 2e 64 69 67 69 74 73 22 29 0a 20 20  | r."msg.missing.octal.digits")... | 
| 39460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68    69 6c 65 20 28 6f 72 20 28 61 6e 64 20 28 3c 3d  | .............(while.(or.(and.(<= | 
| 39480 |  20 3f 30 20 63 29 20 28 3e 3d 20 3f 37 20 63 29    29 20 28 3d 20 63 20 3f 5f 29 29 0a 20 20 20 20  | .?0.c).(>=.?7.c)).(=.c.?_))..... | 
| 394a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20  | .............(js2-add-to-string. | 
| 394c0 |  63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32  | c)..................(setq.c.(js2 | 
| 394e0 |  2d 67 65 74 2d 63 68 61 72 29 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20  | -get-char))))).............(t... | 
| 39500 |  20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c    65 20 28 6f 72 20 28 61 6e 64 20 28 3c 3d 20 3f  | ...........(while.(or.(and.(<=.? | 
| 39520 |  30 20 63 29 20 28 3c 3d 20 63 20 3f 39 29 29 20    28 3d 20 63 20 3f 5f 29 29 0a 20 20 20 20 20 20  | 0.c).(<=.c.?9)).(=.c.?_))....... | 
| 39540 |  20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 70    65 72 6d 69 74 20 30 38 20 61 6e 64 20 30 39 20  | .........;;.We.permit.08.and.09. | 
| 39560 |  61 73 20 64 65 63 69 6d 61 6c 20 6e 75 6d 62 65    72 73 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20  | as.decimal.numbers,.which....... | 
| 39580 |  20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65    73 20 6f 75 72 20 62 65 68 61 76 69 6f 72 20 61  | .........;;.makes.our.behavior.a | 
| 395a0 |  20 73 75 70 65 72 73 65 74 20 6f 66 20 74 68 65    20 45 43 4d 41 0a 20 20 20 20 20 20 20 20 20 20  | .superset.of.the.ECMA........... | 
| 395c0 |  20 20 20 20 20 3b 3b 20 6e 75 6d 65 72 69 63 20    67 72 61 6d 6d 61 72 2e 20 20 57 65 20 6d 69 67  | .....;;.numeric.grammar...We.mig | 
| 395e0 |  68 74 20 6e 6f 74 20 61 6c 77 61 79 73 20 62 65    20 73 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ht.not.always.be.so............. | 
| 39600 |  20 20 20 3b 3b 20 70 65 72 6d 69 73 73 69 76 65    2c 20 73 6f 20 77 65 20 77 61 72 6e 20 61 62 6f  | ...;;.permissive,.so.we.warn.abo | 
| 39620 |  75 74 20 69 74 2e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | ut.it.................(when.(and | 
| 39640 |  20 28 65 71 20 62 61 73 65 20 27 6d 61 79 62 65    2d 38 29 20 28 3e 3d 20 63 20 3f 38 29 29 0a 20  | .(eq.base.'maybe-8).(>=.c.?8)).. | 
| 39660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 72 65 70 6f 72 74 2d 77 61 72 6e  | ................(js2-report-warn | 
| 39680 |  69 6e 67 20 22 6d 73 67 2e 62 61 64 2e 6f 63 74    61 6c 2e 6c 69 74 65 72 61 6c 22 0a 20 20 20 20  | ing."msg.bad.octal.literal"..... | 
| 396a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 396c0 |  20 28 69 66 20 28 65 71 20 63 20 3f 38 29 20 22    38 22 20 22 39 22 29 29 0a 20 20 20 20 20 20 20  | .(if.(eq.c.?8)."8"."9"))........ | 
| 396e0 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    62 61 73 65 20 31 30 29 29 0a 20 20 20 20 20 20  | ..........(setq.base.10))....... | 
| 39700 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64    64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20  | .........(js2-add-to-string.c).. | 
| 39720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63  | ..............(setq.c.(js2-get-c | 
| 39740 |  68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 65 71 20 62 61  | har)))..............(when.(eq.ba | 
| 39760 |  73 65 20 27 6d 61 79 62 65 2d 38 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | se.'maybe-8)................(set | 
| 39780 |  71 20 62 61 73 65 20 38 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65  | q.base.8......................le | 
| 397a0 |  67 61 63 79 2d 6f 63 74 61 6c 20 74 29 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65  | gacy-octal.t))))............(whe | 
| 397c0 |  6e 20 28 61 6e 64 20 28 65 71 20 62 61 73 65 20    31 30 29 20 28 6d 65 6d 71 20 63 20 27 28 3f 2e  | n.(and.(eq.base.10).(memq.c.'(?. | 
| 397e0 |  20 3f 65 20 3f 45 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71  | .?e.?E)))..............(when.(eq | 
| 39800 |  20 63 20 3f 2e 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 64  | .c.?.)................(cl-loop.d | 
| 39820 |  6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61  | o.........................(js2-a | 
| 39840 |  64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | dd-to-string.c)................. | 
| 39860 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20    28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a  | ........(setq.c.(js2-get-char)). | 
| 39880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6f  | ........................while.(o | 
| 398a0 |  72 20 28 6a 73 32 2d 64 69 67 69 74 2d 70 20 63    29 20 28 3d 20 63 20 3f 5f 29 29 29 29 0a 20 20  | r.(js2-digit-p.c).(=.c.?_))))... | 
| 398c0 |  20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e    20 28 6d 65 6d 71 20 63 20 27 28 3f 65 20 3f 45  | ...........(when.(memq.c.'(?e.?E | 
| 398e0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74  | ))................(js2-add-to-st | 
| 39900 |  72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28  | ring.c)................(setq.c.( | 
| 39920 |  6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77  | js2-get-char))................(w | 
| 39940 |  68 65 6e 20 28 6d 65 6d 71 20 63 20 27 28 3f 2b    20 3f 2d 29 29 0a 20 20 20 20 20 20 20 20 20 20  | hen.(memq.c.'(?+.?-))........... | 
| 39960 |  20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d    74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20  | .......(js2-add-to-string.c).... | 
| 39980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63  | ..............(setq.c.(js2-get-c | 
| 399a0 |  68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a  | har)))................(unless.(j | 
| 399c0 |  73 32 2d 64 69 67 69 74 2d 70 20 63 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | s2-digit-p.c)..................( | 
| 399e0 |  6a 73 32 2d 72 65 70 6f 72 74 2d 73 63 61 6e 2d    65 72 72 6f 72 20 22 6d 73 67 2e 6d 69 73 73 69  | js2-report-scan-error."msg.missi | 
| 39a00 |  6e 67 2e 65 78 70 6f 6e 65 6e 74 22 20 74 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ng.exponent".t))................ | 
| 39a20 |  28 63 6c 2d 6c 6f 6f 70 20 64 6f 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (cl-loop.do..................... | 
| 39a40 |  20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d    73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20  | ....(js2-add-to-string.c)....... | 
| 39a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67  | ..................(setq.c.(js2-g | 
| 39a80 |  65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | et-char))....................... | 
| 39aa0 |  20 20 77 68 69 6c 65 20 28 6f 72 20 28 6a 73 32    2d 64 69 67 69 74 2d 70 20 63 29 20 28 3d 20 63  | ..while.(or.(js2-digit-p.c).(=.c | 
| 39ac0 |  20 3f 5f 29 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63  | .?_)))))............(js2-unget-c | 
| 39ae0 |  68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 68 61 6e 64 6c 65 2d 6e 75 6d 65  | har)............(js2-handle-nume | 
| 39b00 |  72 69 63 2d 73 65 70 61 72 61 74 6f 72 29 0a 20    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28  | ric-separator)............(let.( | 
| 39b20 |  28 73 74 72 69 6e 67 20 6a 73 32 2d 74 73 2d 73    74 72 69 6e 67 2d 62 75 66 66 65 72 29 29 0a 20  | (string.js2-ts-string-buffer)).. | 
| 39b40 |  20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69    6c 65 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 74  | ............(while.(>.(length.st | 
| 39b60 |  72 69 6e 67 29 20 30 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61  | ring).0)................(when.(a | 
| 39b80 |  6e 64 20 28 65 71 20 28 63 61 72 20 73 74 72 69    6e 67 29 20 3f 5f 29 29 0a 20 20 20 20 20 20 20  | nd.(eq.(car.string).?_))........ | 
| 39ba0 |  20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d    20 28 6c 65 6e 67 74 68 20 73 74 72 69 6e 67 29  | ..........(if.(=.(length.string) | 
| 39bc0 |  20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65  | .1)......................(js2-re | 
| 39be0 |  70 6f 72 74 2d 73 63 61 6e 2d 65 72 72 6f 72 20    22 6d 73 67 2e 6e 6f 2e 74 72 61 69 6c 69 6e 67  | port-scan-error."msg.no.trailing | 
| 39c00 |  2e 6e 75 6d 65 72 69 63 2e 6c 69 74 65 72 61 6c    22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .numeric.literal")))............ | 
| 39c20 |  20 20 20 20 28 73 65 74 71 20 73 74 72 69 6e 67    20 28 63 64 72 20 73 74 72 69 6e 67 29 29 29 29  | ....(setq.string.(cdr.string)))) | 
| 39c40 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74    20 28 28 73 74 72 20 28 6a 73 32 2d 73 65 74 2d  | ............(let.((str.(js2-set- | 
| 39c60 |  73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66    65 72 20 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20  | string-from-buffer.token)))..... | 
| 39c80 |  20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28    6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62 65 72  | .........(setf.(js2-token-number | 
| 39ca0 |  20 74 6f 6b 65 6e 29 20 28 6a 73 32 2d 73 74 72    69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 73 74  | .token).(js2-string-to-number.st | 
| 39cc0 |  72 20 62 61 73 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | r.base)....................(js2- | 
| 39ce0 |  74 6f 6b 65 6e 2d 6e 75 6d 62 65 72 2d 62 61 73    65 20 74 6f 6b 65 6e 29 20 62 61 73 65 0a 20 20  | token-number-base.token).base... | 
| 39d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 6e 75 6d 62  | .................(js2-token-numb | 
| 39d20 |  65 72 2d 6c 65 67 61 63 79 2d 6f 63 74 61 6c 2d    70 20 74 6f 6b 65 6e 29 20 28 61 6e 64 20 28 3d  | er-legacy-octal-p.token).(and.(= | 
| 39d40 |  20 62 61 73 65 20 38 29 20 6c 65 67 61 63 79 2d    6f 63 74 61 6c 29 29 29 0a 20 20 20 20 20 20 20  | .base.8).legacy-octal)))........ | 
| 39d60 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 4e 55 4d 42 45 52 29 29 0a  | ....(throw.'return.js2-NUMBER)). | 
| 39d80 |  20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20 69    74 20 61 20 73 74 72 69 6e 67 3f 0a 20 20 20 20  | .........;;.is.it.a.string?..... | 
| 39da0 |  20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28    6d 65 6d 71 20 63 20 27 28 3f 5c 22 20 3f 5c 27  | .....(when.(or.(memq.c.'(?\".?\' | 
| 39dc0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 6a  | ))....................(and.(>=.j | 
| 39de0 |  73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73    69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20  | s2-language-version.200)........ | 
| 39e00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3d 20 63 20 3f 60 29 29 29 0a 20 20 20 20  | .................(=.c.?`)))..... | 
| 39e20 |  20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72    65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20  | .......(throw.'return........... | 
| 39e40 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74    2d 73 74 72 69 6e 67 2d 6f 72 2d 74 65 6d 70 6c  | ........(js2-get-string-or-templ | 
| 39e60 |  61 74 65 2d 74 6f 6b 65 6e 20 63 20 74 6f 6b 65    6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6a  | ate-token.c.token)))..........(j | 
| 39e80 |  73 32 2d 74 73 2d 72 65 74 75 72 6e 20 74 6f 6b    65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-ts-return.token.............. | 
| 39ea0 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63    61 73 65 20 63 0a 20 20 20 20 20 20 20 20 20 20  | ...........(cl-case.c........... | 
| 39ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3f 5c 3b 0a 20 20 20 20 20 20 20 20 20 20 20  | ................(?\;............ | 
| 39ee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a  | ................(throw.'return.j | 
| 39f00 |  73 32 2d 53 45 4d 49 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-SEMI))....................... | 
| 39f20 |  20 20 20 20 28 3f 5c 5b 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(?\[........................ | 
| 39f40 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 4c 42 29 29 0a 20 20 20 20  | ....(throw.'return.js2-LB))..... | 
| 39f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3f 5c 5d 0a 20 20 20 20 20  | ......................(?\]...... | 
| 39f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65  | ......................(throw.'re | 
| 39fa0 |  74 75 72 6e 20 6a 73 32 2d 52 42 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | turn.js2-RB))................... | 
| 39fc0 |  20 20 20 20 20 20 20 20 28 3f 7b 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........(?{..................... | 
| 39fe0 |  20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72    65 74 75 72 6e 20 6a 73 32 2d 4c 43 29 29 0a 20  | .......(throw.'return.js2-LC)).. | 
| 3a000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3f 7d 0a 20 20 20  | .........................(?}.... | 
| 3a020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27  | ........................(throw.' | 
| 3a040 |  72 65 74 75 72 6e 20 6a 73 32 2d 52 43 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | return.js2-RC))................. | 
| 3a060 |  20 20 20 20 20 20 20 20 20 20 28 3f 5c 28 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..........(?\(.................. | 
| 3a080 |  20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77    20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4c 50 29  | ..........(throw.'return.js2-LP) | 
| 3a0a0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3f 5c 29  | )...........................(?\) | 
| 3a0c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72  | ............................(thr | 
| 3a0e0 |  6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 52    50 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ow.'return.js2-RP))............. | 
| 3a100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f    2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..............(?,............... | 
| 3a120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68    72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d  | .............(throw.'return.js2- | 
| 3a140 |  43 4f 4d 4d 41 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | COMMA))......................... | 
| 3a160 |  20 20 28 3f 3f 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..(??........................... | 
| 3a180 |  20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d    63 68 61 72 20 3f 3f 29 0a 20 20 20 20 20 20 20  | .(if.(js2-match-char.??)........ | 
| 3a1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32  | ........................(if.(js2 | 
| 3a1c0 |  2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -match-char.?=)................. | 
| 3a1e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4e 55  | ...................js2-ASSIGN_NU | 
| 3a200 |  4c 4c 49 53 48 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | LLISH........................... | 
| 3a220 |  20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72    65 74 75 72 6e 20 6a 73 32 2d 4e 55 4c 4c 49 53  | .......(throw.'return.js2-NULLIS | 
| 3a240 |  48 2d 43 4f 41 4c 45 53 43 49 4e 47 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | H-COALESCING)).................. | 
| 3a260 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20  | ............(if.(js2-match-char. | 
| 3a280 |  3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ?.)............................. | 
| 3a2a0 |  20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74    75 72 6e 20 6a 73 32 2d 4f 50 54 49 4f 4e 41 4c  | .....(throw.'return.js2-OPTIONAL | 
| 3a2c0 |  2d 43 48 41 49 4e 49 4e 47 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -CHAINING)...................... | 
| 3a2e0 |  20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77    20 27 72 65 74 75 72 6e 20 6a 73 32 2d 48 4f 4f  | ..........(throw.'return.js2-HOO | 
| 3a300 |  4b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | K))))........................... | 
| 3a320 |  28 3f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | (?:............................( | 
| 3a340 |  69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68    61 72 20 3f 3a 29 0a 20 20 20 20 20 20 20 20 20  | if.(js2-match-char.?:).......... | 
| 3a360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 43 4f 4c 4f 4e 43  | ......................js2-COLONC | 
| 3a380 |  4f 4c 4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | OLON............................ | 
| 3a3a0 |  20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e    20 6a 73 32 2d 43 4f 4c 4f 4e 29 29 29 0a 20 20  | ..(throw.'return.js2-COLON)))... | 
| 3a3c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3f 2e 0a 20 20 20 20  | ........................(?...... | 
| 3a3e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d  | .......................(if.(js2- | 
| 3a400 |  6d 61 74 63 68 2d 63 68 61 72 20 3f 2e 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | match-char.?.).................. | 
| 3a420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69    66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61  | ..............(if.(js2-match-cha | 
| 3a440 |  72 20 3f 2e 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.?.)........................... | 
| 3a460 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 54 52 49    50 4c 45 44 4f 54 20 6a 73 32 2d 44 4f 54 44 4f  | .........js2-TRIPLEDOT.js2-DOTDO | 
| 3a480 |  54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | T).............................. | 
| 3a4a0 |  28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63    68 61 72 20 3f 5c 28 29 0a 20 20 20 20 20 20 20  | (if.(js2-match-char.?\()........ | 
| 3a4c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 44 4f  | ..........................js2-DO | 
| 3a4e0 |  54 51 55 45 52 59 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | TQUERY.......................... | 
| 3a500 |  20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65    74 75 72 6e 20 6a 73 32 2d 44 4f 54 29 29 29 29  | ......(throw.'return.js2-DOT)))) | 
| 3a520 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3f 7c 0a 20  | ...........................(?|.. | 
| 3a540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a  | ..........................(if.(j | 
| 3a560 |  73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 7c    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-match-char.?|)............... | 
| 3a580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d  | .................(if.(js2-match- | 
| 3a5a0 |  63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | char.?=)........................ | 
| 3a5c0 |  20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d    41 53 53 49 47 4e 5f 4f 52 0a 20 20 20 20 20 20  | ............js2-ASSIGN_OR....... | 
| 3a5e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f  | ...........................(thro | 
| 3a600 |  77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4f 52    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | w.'return.js2-OR)).............. | 
| 3a620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63  | ................(if.(js2-match-c | 
| 3a640 |  68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | har.?=)......................... | 
| 3a660 |  20 20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53    49 47 4e 5f 42 49 54 4f 52 0a 20 20 20 20 20 20  | .........js2-ASSIGN_BITOR....... | 
| 3a680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20  | .........................(throw. | 
| 3a6a0 |  27 72 65 74 75 72 6e 20 6a 73 32 2d 42 49 54 4f    52 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | 'return.js2-BITOR))))........... | 
| 3a6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3f 5e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ................(?^............. | 
| 3a6e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68  | ...............(if.(js2-match-ch | 
| 3a700 |  61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ar.?=).......................... | 
| 3a720 |  20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e    5f 42 49 54 4f 52 0a 20 20 20 20 20 20 20 20 20  | ......js2-ASSIGN_BITOR.......... | 
| 3a740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75  | ....................(throw.'retu | 
| 3a760 |  72 6e 20 6a 73 32 2d 42 49 54 58 4f 52 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rn.js2-BITXOR)))................ | 
| 3a780 |  20 20 20 20 20 20 20 20 20 20 20 28 3f 26 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........(?&.................. | 
| 3a7a0 |  20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a    73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 26  | ..........(if.(js2-match-char.?& | 
| 3a7c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 3a7e0 |  20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d    63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20  | .(if.(js2-match-char.?=)........ | 
| 3a800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d  | ............................js2- | 
| 3a820 |  41 53 53 49 47 4e 5f 41 4e 44 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ASSIGN_AND...................... | 
| 3a840 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 41  | ............(throw.'return.js2-A | 
| 3a860 |  4e 44 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ND))............................ | 
| 3a880 |  20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68    2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20  | ..(if.(js2-match-char.?=)....... | 
| 3a8a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 41  | ...........................js2-A | 
| 3a8c0 |  53 53 49 47 4e 5f 42 49 54 41 4e 44 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | SSIGN_BITAND.................... | 
| 3a8e0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 42  | ............(throw.'return.js2-B | 
| 3a900 |  49 54 41 4e 44 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ITAND))))....................... | 
| 3a920 |  20 20 20 20 28 3f 3d 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(?=......................... | 
| 3a940 |  20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63    68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20  | ...(if.(js2-match-char.?=)...... | 
| 3a960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a  | ..........................(if.(j | 
| 3a980 |  73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-match-char.?=)............... | 
| 3a9a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 53 48 45 51 0a 20 20  | .....................js2-SHEQ... | 
| 3a9c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 3a9e0 |  74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73    32 2d 45 51 29 29 0a 20 20 20 20 20 20 20 20 20  | throw.'return.js2-EQ)).......... | 
| 3aa00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74  | ....................(if.(js2-mat | 
| 3aa20 |  63 68 2d 63 68 61 72 20 3f 3e 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ch-char.?>)..................... | 
| 3aa40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 74 73 2d 72 65 74 75 72 6e 20 74 6f 6b 65  | .............(js2-ts-return.toke | 
| 3aa60 |  6e 20 6a 73 32 2d 41 52 52 4f 57 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n.js2-ARROW).................... | 
| 3aa80 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 41  | ............(throw.'return.js2-A | 
| 3aaa0 |  53 53 49 47 4e 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | SSIGN))))....................... | 
| 3aac0 |  20 20 20 20 28 3f 21 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(?!......................... | 
| 3aae0 |  20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63    68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20  | ...(if.(js2-match-char.?=)...... | 
| 3ab00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a  | ..........................(if.(j | 
| 3ab20 |  73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 3d    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-match-char.?=)............... | 
| 3ab40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 53 48 4e 45 0a 20 20  | .....................js2-SHNE... | 
| 3ab60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | ...............................j | 
| 3ab80 |  73 32 2d 4e 45 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-NE).......................... | 
| 3aba0 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 4e 4f 54 29 29 29 0a 20 20  | ....(throw.'return.js2-NOT)))... | 
| 3abc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3f 3c 0a 20 20 20 20  | ........................(?<..... | 
| 3abe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 4e 42 3a 74 72 65  | .......................;;.NB:tre | 
| 3ac00 |  61 74 20 48 54 4d 4c 20 62 65 67 69 6e 2d 63 6f    6d 6d 65 6e 74 20 61 73 20 63 6f 6d 6d 65 6e 74  | at.HTML.begin-comment.as.comment | 
| 3ac20 |  2d 74 69 6c 6c 2d 65 6f 6c 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -till-eol....................... | 
| 3ac40 |  20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d    6d 61 74 63 68 2d 63 68 61 72 20 3f 21 29 0a 20  | .....(when.(js2-match-char.?!).. | 
| 3ac60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65  | ............................(whe | 
| 3ac80 |  6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61    72 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20  | n.(js2-match-char.?-)........... | 
| 3aca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d  | .....................(when.(js2- | 
| 3acc0 |  6d 61 74 63 68 2d 63 68 61 72 20 3f 2d 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | match-char.?-).................. | 
| 3ace0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 73 6b 69 70 2d 6c 69 6e 65 29 0a  | ................(js2-skip-line). | 
| 3ad00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3ad20 |  20 28 73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65    6e 2d 63 6f 6d 6d 65 6e 74 2d 74 79 70 65 20 28  | .(setf.(js2-token-comment-type.( | 
| 3ad40 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 29 29 20 27 68 74 6d 6c 29 0a 20 20 20 20 20  | js2-current-token)).'html)...... | 
| 3ad60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72  | ............................(thr | 
| 3ad80 |  6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 43    4f 4d 4d 45 4e 54 29 29 29 0a 20 20 20 20 20 20  | ow.'return.js2-COMMENT)))....... | 
| 3ada0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65  | .......................(js2-unge | 
| 3adc0 |  74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t-char))........................ | 
| 3ade0 |  20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74    63 68 2d 63 68 61 72 20 3f 3c 29 0a 20 20 20 20  | ....(if.(js2-match-char.?<)..... | 
| 3ae00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28  | ...........................(if.( | 
| 3ae20 |  6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f    3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-match-char.?=).............. | 
| 3ae40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 41 53 53 49 47 4e  | ......................js2-ASSIGN | 
| 3ae60 |  5f 4c 53 48 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | _LSH............................ | 
| 3ae80 |  20 20 20 20 20 20 6a 73 32 2d 4c 53 48 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......js2-LSH).................. | 
| 3aea0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20  | ............(if.(js2-match-char. | 
| 3aec0 |  3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ?=)............................. | 
| 3aee0 |  20 20 20 20 20 6a 73 32 2d 4c 45 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....js2-LE..................... | 
| 3af00 |  20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f    77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 4c 54  | ...........(throw.'return.js2-LT | 
| 3af20 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ))))...........................( | 
| 3af40 |  3f 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69  | ?>............................(i | 
| 3af60 |  66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61    72 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20  | f.(js2-match-char.?>)........... | 
| 3af80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61  | .....................(if.(js2-ma | 
| 3afa0 |  74 63 68 2d 63 68 61 72 20 3f 3e 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tch-char.?>).................... | 
| 3afc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63  | ................(if.(js2-match-c | 
| 3afe0 |  68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | har.?=)......................... | 
| 3b000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 41 53 53 49 47 4e 5f 55 52 53 48 0a 20  | ...............js2-ASSIGN_URSH.. | 
| 3b020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b040 |  20 20 20 20 6a 73 32 2d 55 52 53 48 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....js2-URSH)................... | 
| 3b060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68  | ...............(if.(js2-match-ch | 
| 3b080 |  61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ar.?=).......................... | 
| 3b0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d    41 53 53 49 47 4e 5f 52 53 48 0a 20 20 20 20 20  | ............js2-ASSIGN_RSH...... | 
| 3b0c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73  | ..............................js | 
| 3b0e0 |  32 2d 52 53 48 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-RSH))......................... | 
| 3b100 |  20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61    74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20  | .....(if.(js2-match-char.?=).... | 
| 3b120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73  | ..............................js | 
| 3b140 |  32 2d 47 45 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-GE............................ | 
| 3b160 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 47 54 29 29 29 29 0a 20 20  | ....(throw.'return.js2-GT))))... | 
| 3b180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3f 2a 0a 20 20 20 20  | ........................(?*..... | 
| 3b1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d  | .......................(if.(js2- | 
| 3b1c0 |  6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | match-char.?=).................. | 
| 3b1e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73    32 2d 41 53 53 49 47 4e 5f 4d 55 4c 0a 20 20 20  | ..............js2-ASSIGN_MUL.... | 
| 3b200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a  | ..........................(if.(j | 
| 3b220 |  73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 2a    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-match-char.?*)............... | 
| 3b240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63  | ...................(if.(js2-matc | 
| 3b260 |  68 2d 63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | h-char.?=)...................... | 
| 3b280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6a 73 32 2d 41 53 53 49 47 4e 5f 45 58 50 4f 4e  | ................js2-ASSIGN_EXPON | 
| 3b2a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b2c0 |  20 20 20 20 6a 73 32 2d 45 58 50 4f 4e 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....js2-EXPON).................. | 
| 3b2e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74    68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32  | ..............(throw.'return.js2 | 
| 3b300 |  2d 4d 55 4c 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -MUL))))........................ | 
| 3b320 |  20 20 20 28 3f 2f 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(?/.......................... | 
| 3b340 |  20 20 3b 3b 20 69 73 20 69 74 20 61 20 2f 2f 20    63 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20  | ..;;.is.it.a.//.comment?........ | 
| 3b360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d  | ....................(when.(js2-m | 
| 3b380 |  61 74 63 68 2d 63 68 61 72 20 3f 2f 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | atch-char.?/)................... | 
| 3b3a0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66    20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67 20  | ...........(setf.(js2-token-beg. | 
| 3b3c0 |  74 6f 6b 65 6e 29 20 28 2d 20 6a 73 32 2d 74 73    2d 63 75 72 73 6f 72 20 32 29 29 0a 20 20 20 20  | token).(-.js2-ts-cursor.2))..... | 
| 3b3e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 6b  | .........................(js2-sk | 
| 3b400 |  69 70 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ip-line)........................ | 
| 3b420 |  20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32    2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e 74 2d 74  | ......(setf.(js2-token-comment-t | 
| 3b440 |  79 70 65 20 74 6f 6b 65 6e 29 20 27 6c 69 6e 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ype.token).'line)............... | 
| 3b460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 69 6e 63 6c 75 64 65 20 6e 65 77 6c 69 6e  | ...............;;.include.newlin | 
| 3b480 |  65 20 73 6f 20 68 69 67 68 6c 69 67 68 74 69 6e    67 20 67 6f 65 73 20 74 6f 20 65 6e 64 20 6f 66  | e.so.highlighting.goes.to.end.of | 
| 3b4a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | ..............................;; | 
| 3b4c0 |  20 77 69 6e 64 6f 77 2c 20 69 66 20 74 68 65 72    65 20 61 63 74 75 61 6c 6c 79 20 69 73 20 61 20  | .window,.if.there.actually.is.a. | 
| 3b4e0 |  6e 65 77 6c 69 6e 65 3b 20 69 66 20 77 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | newline;.if.we.................. | 
| 3b500 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68    69 74 20 65 6f 66 2c 20 74 68 65 6e 20 69 6d 70  | ............;;.hit.eof,.then.imp | 
| 3b520 |  6c 69 63 69 74 6c 79 20 74 68 65 72 65 20 69 73    6e 27 74 0a 20 20 20 20 20 20 20 20 20 20 20 20  | licitly.there.isn't............. | 
| 3b540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 74 73 2d  | .................(unless.js2-ts- | 
| 3b560 |  68 69 74 2d 65 6f 66 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | hit-eof......................... | 
| 3b580 |  20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20    28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74  | .......(cl-incf.(js2-token-end.t | 
| 3b5a0 |  6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oken)))......................... | 
| 3b5c0 |  20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74    75 72 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29  | .....(throw.'return.js2-COMMENT) | 
| 3b5e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | )............................;;. | 
| 3b600 |  69 73 20 69 74 20 61 20 2f 2a 20 63 6f 6d 6d 65    6e 74 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20  | is.it.a./*.comment?............. | 
| 3b620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d  | ...............(when.(js2-match- | 
| 3b640 |  63 68 61 72 20 3f 2a 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | char.?*)........................ | 
| 3b660 |  20 20 20 20 20 20 28 73 65 74 66 20 6c 6f 6f 6b    2d 66 6f 72 2d 73 6c 61 73 68 20 6e 69 6c 0a 20  | ......(setf.look-for-slash.nil.. | 
| 3b680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b6a0 |  20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 62 65 67    20 74 6f 6b 65 6e 29 20 28 2d 20 6a 73 32 2d 74  | ..(js2-token-beg.token).(-.js2-t | 
| 3b6c0 |  73 2d 63 75 72 73 6f 72 20 32 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s-cursor.2)..................... | 
| 3b6e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e  | ...............(js2-token-commen | 
| 3b700 |  74 2d 74 79 70 65 20 74 6f 6b 65 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t-type.token)................... | 
| 3b720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d  | .................(if.(js2-match- | 
| 3b740 |  63 68 61 72 20 3f 2a 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | char.?*)........................ | 
| 3b760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20  | ................(progn.......... | 
| 3b780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b7a0 |  28 73 65 74 71 20 6c 6f 6f 6b 2d 66 6f 72 2d 73    6c 61 73 68 20 74 29 0a 20 20 20 20 20 20 20 20  | (setq.look-for-slash.t)......... | 
| 3b7c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b7e0 |  20 27 6a 73 64 6f 63 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .'jsdoc)........................ | 
| 3b800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62    6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20  | ..............'block)).......... | 
| 3b820 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 69 6c 65 20 74 0a 20 20 20  | ....................(while.t.... | 
| 3b840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | ............................(set | 
| 3b860 |  71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61    72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | q.c.(js2-get-char))............. | 
| 3b880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20  | ...................(cond........ | 
| 3b8a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 28 65 71 20 63 20  | .........................((eq.c. | 
| 3b8c0 |  6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-EOF_CHAR)................... | 
| 3b8e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d  | ...............(setf.(js2-token- | 
| 3b900 |  65 6e 64 20 74 6f 6b 65 6e 29 20 28 31 2d 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 29 29 0a 20  | end.token).(1-.js2-ts-cursor)).. | 
| 3b920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3b940 |  28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f    72 20 22 6d 73 67 2e 75 6e 74 65 72 6d 69 6e 61  | (js2-report-error."msg.untermina | 
| 3b960 |  74 65 64 2e 63 6f 6d 6d 65 6e 74 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ted.comment")................... | 
| 3b980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73  | ...............(throw.'return.js | 
| 3b9a0 |  32 2d 43 4f 4d 4d 45 4e 54 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-COMMENT))..................... | 
| 3b9c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71    20 63 20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20  | ............((eq.c.?*).......... | 
| 3b9e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 6f  | ........................(setq.lo | 
| 3ba00 |  6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 20 74 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ok-for-slash.t))................ | 
| 3ba20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 65 71 20 63 20 3f 2f 29 0a 20 20 20 20  | .................((eq.c.?/)..... | 
| 3ba40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66  | .............................(if | 
| 3ba60 |  20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73 68 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .look-for-slash................. | 
| 3ba80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 74 73 2d 72 65 74  | .....................(js2-ts-ret | 
| 3baa0 |  75 72 6e 20 74 6f 6b 65 6e 20 6a 73 32 2d 43 4f    4d 4d 45 4e 54 29 29 29 0a 20 20 20 20 20 20 20  | urn.token.js2-COMMENT)))........ | 
| 3bac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20  | .........................(t..... | 
| 3bae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | .............................(se | 
| 3bb00 |  74 66 20 6c 6f 6f 6b 2d 66 6f 72 2d 73 6c 61 73    68 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20  | tf.look-for-slash.nil........... | 
| 3bb20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | .............................(js | 
| 3bb40 |  32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b 65    6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72  | 2-token-end.token).js2-ts-cursor | 
| 3bb60 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )))))........................... | 
| 3bb80 |  20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d    63 68 61 72 20 3f 3d 29 0a 20 20 20 20 20 20 20  | .(if.(js2-match-char.?=)........ | 
| 3bba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6a 73 32 2d 41 53 53 49  | ........................js2-ASSI | 
| 3bbc0 |  47 4e 5f 44 49 56 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | GN_DIV.......................... | 
| 3bbe0 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 44 49 56 29 29 29 0a 20 20  | ....(throw.'return.js2-DIV)))... | 
| 3bc00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3f 23 0a 20 20 20 20  | ........................(?#..... | 
| 3bc20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32  | .......................(when.js2 | 
| 3bc40 |  2d 73 6b 69 70 2d 70 72 65 70 72 6f 63 65 73 73    6f 72 2d 64 69 72 65 63 74 69 76 65 73 0a 20 20  | -skip-preprocessor-directives... | 
| 3bc60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...........................(js2- | 
| 3bc80 |  73 6b 69 70 2d 6c 69 6e 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | skip-line)...................... | 
| 3bca0 |  20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a    73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e 74  | ........(setf.(js2-token-comment | 
| 3bcc0 |  2d 74 79 70 65 20 74 6f 6b 65 6e 29 20 27 70 72    65 70 72 6f 63 65 73 73 6f 72 0a 20 20 20 20 20  | -type.token).'preprocessor...... | 
| 3bce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ..............................(j | 
| 3bd00 |  73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20 74 6f 6b    65 6e 29 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f  | s2-token-end.token).js2-ts-curso | 
| 3bd20 |  72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r).............................. | 
| 3bd40 |  28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a    73 32 2d 43 4f 4d 4d 45 4e 54 29 29 0a 20 20 20  | (throw.'return.js2-COMMENT)).... | 
| 3bd60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27  | ........................(throw.' | 
| 3bd80 |  72 65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | return.js2-ERROR)).............. | 
| 3bda0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 25    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .............(?%................ | 
| 3bdc0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20  | ............(if.(js2-match-char. | 
| 3bde0 |  3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ?=)............................. | 
| 3be00 |  20 20 20 6a 73 32 2d 41 53 53 49 47 4e 5f 4d 4f    44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...js2-ASSIGN_MOD............... | 
| 3be20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73  | ...............(throw.'return.js | 
| 3be40 |  32 2d 4d 4f 44 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-MOD)))........................ | 
| 3be60 |  20 20 20 28 3f 7e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(?~.......................... | 
| 3be80 |  20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e    20 6a 73 32 2d 42 49 54 4e 4f 54 29 29 0a 20 20  | ..(throw.'return.js2-BITNOT))... | 
| 3bea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 3f 2b 0a 20 20 20 20  | ........................(?+..... | 
| 3bec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d  | .......................(if.(js2- | 
| 3bee0 |  6d 61 74 63 68 2d 63 68 61 72 20 3f 3d 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | match-char.?=).................. | 
| 3bf00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73    32 2d 41 53 53 49 47 4e 5f 41 44 44 0a 20 20 20  | ..............js2-ASSIGN_ADD.... | 
| 3bf20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6a  | ..........................(if.(j | 
| 3bf40 |  73 32 2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 2b    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-match-char.?+)............... | 
| 3bf60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 49 4e 43 0a 20 20 20 20 20  | ...................js2-INC...... | 
| 3bf80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77  | ..........................(throw | 
| 3bfa0 |  20 27 72 65 74 75 72 6e 20 6a 73 32 2d 41 44 44    29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .'return.js2-ADD))))............ | 
| 3bfc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    3f 2d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...............(?-.............. | 
| 3bfe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..............(cond............. | 
| 3c000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72  | ................((js2-match-char | 
| 3c020 |  20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .?=)............................ | 
| 3c040 |  20 20 28 73 65 74 71 20 63 20 6a 73 32 2d 41 53    53 49 47 4e 5f 53 55 42 29 29 0a 20 20 20 20 20  | ..(setq.c.js2-ASSIGN_SUB))...... | 
| 3c060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74  | .......................((js2-mat | 
| 3c080 |  63 68 2d 63 68 61 72 20 3f 2d 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ch-char.?-)..................... | 
| 3c0a0 |  20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73    20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69  | .........(unless.js2-ts-dirty-li | 
| 3c0c0 |  6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ne.............................. | 
| 3c0e0 |  20 20 3b 3b 20 74 72 65 61 74 20 48 54 4d 4c 20    65 6e 64 2d 63 6f 6d 6d 65 6e 74 20 61 66 74 65  | ..;;.treat.HTML.end-comment.afte | 
| 3c100 |  72 20 70 6f 73 73 69 62 6c 65 20 77 68 69 74 65    73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20 20  | r.possible.whitespace........... | 
| 3c120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 61 66 74 65 72 20 6c 69  | .....................;;.after.li | 
| 3c140 |  6e 65 20 73 74 61 72 74 20 61 73 20 63 6f 6d 6d    65 6e 74 2d 75 6e 74 69 6c 2d 65 6f 6c 0a 20 20  | ne.start.as.comment-until-eol... | 
| 3c160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68  | .............................(wh | 
| 3c180 |  65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68    61 72 20 3f 3e 29 0a 20 20 20 20 20 20 20 20 20  | en.(js2-match-char.?>).......... | 
| 3c1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 6b 69  | ........................(js2-ski | 
| 3c1c0 |  70 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p-line)......................... | 
| 3c1e0 |  20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28    6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65 6e  | .........(setf.(js2-token-commen | 
| 3c200 |  74 2d 74 79 70 65 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 29 29 20 27 68 74 6d  | t-type.(js2-current-token)).'htm | 
| 3c220 |  6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | l).............................. | 
| 3c240 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 43 4f 4d 4d 45 4e 54 29 29  | ....(throw.'return.js2-COMMENT)) | 
| 3c260 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | )..............................( | 
| 3c280 |  73 65 74 71 20 63 20 6a 73 32 2d 44 45 43 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | setq.c.js2-DEC))................ | 
| 3c2a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .............(t................. | 
| 3c2c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 63 20 6a 73 32 2d 53 55 42 29 29 29 0a  | .............(setq.c.js2-SUB))). | 
| 3c2e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | ...........................(setq | 
| 3c300 |  20 6a 73 32 2d 74 73 2d 64 69 72 74 79 2d 6c 69    6e 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20  | .js2-ts-dirty-line.t)........... | 
| 3c320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .................c)............. | 
| 3c340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f    74 68 65 72 77 69 73 65 0a 20 20 20 20 20 20 20  | ..............(otherwise........ | 
| 3c360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | ....................(js2-report- | 
| 3c380 |  73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e    69 6c 6c 65 67 61 6c 2e 63 68 61 72 61 63 74 65  | scan-error."msg.illegal.characte | 
| 3c3a0 |  72 22 29 29 29 29 29 29 29 0a 20 20 20 20 28 73    65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74  | r"))))))).....(setf.(js2-token-t | 
| 3c3c0 |  79 70 65 20 74 6f 6b 65 6e 29 20 74 74 29 0a 20    20 20 20 74 6f 6b 65 6e 29 29 0a 0a 28 64 65 66  | ype.token).tt).....token))..(def | 
| 3c3e0 |  75 6e 20 6a 73 32 2d 67 65 74 2d 73 74 72 69 6e    67 2d 6f 72 2d 74 65 6d 70 6c 61 74 65 2d 74 6f  | un.js2-get-string-or-template-to | 
| 3c400 |  6b 65 6e 20 28 71 75 6f 74 65 2d 63 68 61 72 20    74 6f 6b 65 6e 29 0a 20 20 3b 3b 20 57 65 20 61  | ken.(quote-char.token)...;;.We.a | 
| 3c420 |  74 74 65 6d 70 74 20 74 6f 20 61 63 63 75 6d 75    6c 61 74 65 20 61 20 73 74 72 69 6e 67 20 74 68  | ttempt.to.accumulate.a.string.th | 
| 3c440 |  65 20 66 61 73 74 20 77 61 79 2c 20 62 79 0a 20    20 3b 3b 20 62 75 69 6c 64 69 6e 67 20 69 74 20  | e.fast.way,.by...;;.building.it. | 
| 3c460 |  64 69 72 65 63 74 6c 79 20 6f 75 74 20 6f 66 20    74 68 65 20 72 65 61 64 65 72 2e 20 20 42 75 74  | directly.out.of.the.reader...But | 
| 3c480 |  20 69 66 20 74 68 65 72 65 0a 20 20 3b 3b 20 61    72 65 20 61 6e 79 20 65 73 63 61 70 65 64 20 63  | .if.there...;;.are.any.escaped.c | 
| 3c4a0 |  68 61 72 61 63 74 65 72 73 20 69 6e 20 74 68 65    20 73 74 72 69 6e 67 2c 20 77 65 20 72 65 76 65  | haracters.in.the.string,.we.reve | 
| 3c4c0 |  72 74 20 74 6f 0a 20 20 3b 3b 20 62 75 69 6c 64    69 6e 67 20 69 74 20 6f 75 74 20 6f 66 20 61 20  | rt.to...;;.building.it.out.of.a. | 
| 3c4e0 |  73 74 72 69 6e 67 20 62 75 66 66 65 72 2e 0a 20    20 28 6c 65 74 20 28 28 63 20 28 6a 73 32 2d 67  | string.buffer....(let.((c.(js2-g | 
| 3c500 |  65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d  | et-char)).........js2-ts-string- | 
| 3c520 |  62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 6e    63 20 63 31 20 76 61 6c 20 65 73 63 61 70 65 2d  | buffer.........nc.c1.val.escape- | 
| 3c540 |  76 61 6c 29 0a 20 20 20 20 28 63 61 74 63 68 20    27 62 72 65 61 6b 0a 20 20 20 20 20 20 28 77 68  | val).....(catch.'break.......(wh | 
| 3c560 |  69 6c 65 20 28 2f 3d 20 63 20 71 75 6f 74 65 2d    63 68 61 72 29 0a 20 20 20 20 20 20 20 20 28 63  | ile.(/=.c.quote-char).........(c | 
| 3c580 |  61 74 63 68 20 27 63 6f 6e 74 69 6e 75 65 0a 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20  | atch.'continue...........(cond.. | 
| 3c5a0 |  20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 63    20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20  | ..........((eq.c.js2-EOF_CHAR).. | 
| 3c5c0 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20  | ...........(js2-unget-char)..... | 
| 3c5e0 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70    6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 75  | ........(js2-report-error."msg.u | 
| 3c600 |  6e 74 65 72 6d 69 6e 61 74 65 64 2e 73 74 72 69    6e 67 2e 6c 69 74 22 29 0a 20 20 20 20 20 20 20  | nterminated.string.lit")........ | 
| 3c620 |  20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65    61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20  | .....(throw.'break.nil))........ | 
| 3c640 |  20 20 20 20 28 28 61 6e 64 20 28 65 71 20 63 20    3f 5c 6e 29 20 28 6e 6f 74 20 28 65 71 20 71 75  | ....((and.(eq.c.?\n).(not.(eq.qu | 
| 3c660 |  6f 74 65 2d 63 68 61 72 20 3f 60 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ote-char.?`))).............(js2- | 
| 3c680 |  75 6e 67 65 74 2d 63 68 61 72 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70  | unget-char).............(js2-rep | 
| 3c6a0 |  6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 75    6e 74 65 72 6d 69 6e 61 74 65 64 2e 73 74 72 69  | ort-error."msg.unterminated.stri | 
| 3c6c0 |  6e 67 2e 6c 69 74 22 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72 65  | ng.lit").............(throw.'bre | 
| 3c6e0 |  61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 28 28 65 71 20 63 20 3f 5c 5c 29 0a  | ak.nil))............((eq.c.?\\). | 
| 3c700 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57    65 27 76 65 20 68 69 74 20 61 6e 20 65 73 63 61  | ............;;.We've.hit.an.esca | 
| 3c720 |  70 65 64 20 63 68 61 72 61 63 74 65 72 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | ped.character.............(setq. | 
| 3c740 |  63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63  | c.(js2-get-char)).............(c | 
| 3c760 |  6c 2d 63 61 73 65 20 63 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 62 20 28 73 65 74 71  | l-case.c...............(?b.(setq | 
| 3c780 |  20 63 20 3f 5c 62 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 66 20 28 73 65 74 71  | .c.?\b))...............(?f.(setq | 
| 3c7a0 |  20 63 20 3f 5c 66 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 6e 20 28 73 65 74 71  | .c.?\f))...............(?n.(setq | 
| 3c7c0 |  20 63 20 3f 5c 6e 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 72 20 28 73 65 74 71  | .c.?\n))...............(?r.(setq | 
| 3c7e0 |  20 63 20 3f 5c 72 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 74 20 28 73 65 74 71  | .c.?\r))...............(?t.(setq | 
| 3c800 |  20 63 20 3f 5c 74 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 76 20 28 73 65 74 71  | .c.?\t))...............(?v.(setq | 
| 3c820 |  20 63 20 3f 5c 76 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3f 75 0a 20 20 20 20 20  | .c.?\v))...............(?u...... | 
| 3c840 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    63 31 20 28 6a 73 32 2d 72 65 61 64 2d 75 6e 69  | ..........(setq.c1.(js2-read-uni | 
| 3c860 |  63 6f 64 65 2d 65 73 63 61 70 65 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66  | code-escape))................(if | 
| 3c880 |  20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d 6d    6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-parse-ide-mode............. | 
| 3c8a0 |  20 20 20 20 20 20 20 28 69 66 20 63 31 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......(if.c1................... | 
| 3c8c0 |  20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....(progn..................... | 
| 3c8e0 |  20 20 20 20 20 3b 3b 20 6a 75 73 74 20 63 6f 70    79 20 74 68 65 20 73 74 72 69 6e 67 20 69 6e 20  | .....;;.just.copy.the.string.in. | 
| 3c900 |  49 44 45 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | IDE-mode........................ | 
| 3c920 |  20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74    72 69 6e 67 20 3f 5c 5c 29 0a 20 20 20 20 20 20  | ..(js2-add-to-string.?\\)....... | 
| 3c940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73  | ...................(js2-add-to-s | 
| 3c960 |  74 72 69 6e 67 20 3f 75 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tring.?u)....................... | 
| 3c980 |  20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 33    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(dotimes.(_.3)............... | 
| 3c9a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20  | .............(js2-add-to-string. | 
| 3c9c0 |  28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-get-char)))................ | 
| 3c9e0 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29  | ..........(setq.c.(js2-get-char) | 
| 3ca00 |  29 29 20 3b 20 61 64 64 65 64 20 61 74 20 65 6e    64 20 6f 66 20 6c 6f 6f 70 0a 20 20 20 20 20 20  | )).;.added.at.end.of.loop....... | 
| 3ca20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 66 6c 61 67 20 69 74 20 61 73 20 61 6e 20  | ...............;;.flag.it.as.an. | 
| 3ca40 |  69 6e 76 61 6c 69 64 20 65 73 63 61 70 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | invalid.escape.................. | 
| 3ca60 |  20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d    77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 69 6e 76  | ....(js2-report-warning."msg.inv | 
| 3ca80 |  61 6c 69 64 2e 65 73 63 61 70 65 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | alid.escape".................... | 
| 3caa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6e 69 6c 20 28 2d 20 6a 73 32  | ......................nil.(-.js2 | 
| 3cac0 |  2d 74 73 2d 63 75 72 73 6f 72 20 32 29 20 36 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -ts-cursor.2).6))............... | 
| 3cae0 |  20 20 20 3b 3b 20 47 65 74 20 34 20 68 65 78 20    64 69 67 69 74 73 3b 20 69 66 20 74 68 65 20 75  | ...;;.Get.4.hex.digits;.if.the.u | 
| 3cb00 |  20 65 73 63 61 70 65 20 69 73 20 6e 6f 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .escape.is.not.................. | 
| 3cb20 |  3b 3b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 34    20 68 65 78 20 64 69 67 69 74 73 2c 20 75 73 65  | ;;.followed.by.4.hex.digits,.use | 
| 3cb40 |  20 27 75 27 20 2b 20 74 68 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c  | .'u'.+.the..................;;.l | 
| 3cb60 |  69 74 65 72 61 6c 20 63 68 61 72 61 63 74 65 72    20 73 65 71 75 65 6e 63 65 20 74 68 61 74 20 66  | iteral.character.sequence.that.f | 
| 3cb80 |  6f 6c 6c 6f 77 73 2e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64  | ollows...................(js2-ad | 
| 3cba0 |  64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 75 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d-to-string.?u)................. | 
| 3cbc0 |  20 28 73 65 74 71 20 65 73 63 61 70 65 2d 76 61    6c 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .(setq.escape-val.0)............ | 
| 3cbe0 |  20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28    5f 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ......(dotimes.(_.4)............ | 
| 3cc00 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20    28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 0a 20  | ........(setq.c.(js2-get-char).. | 
| 3cc20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 65 73 63 61 70 65 2d 76  | ........................escape-v | 
| 3cc40 |  61 6c 20 28 6a 73 32 2d 78 2d 64 69 67 69 74 2d    74 6f 2d 69 6e 74 20 63 20 65 73 63 61 70 65 2d  | al.(js2-x-digit-to-int.c.escape- | 
| 3cc60 |  76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6c  | val))....................(if.(cl | 
| 3cc80 |  2d 6d 69 6e 75 73 70 20 65 73 63 61 70 65 2d 76    61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -minusp.escape-val)............. | 
| 3cca0 |  20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f    77 20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29  | ...........(throw.'continue.nil) | 
| 3ccc0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f  | )....................(js2-add-to | 
| 3cce0 |  2d 73 74 72 69 6e 67 20 63 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | -string.c))..................;;. | 
| 3cd00 |  70 72 65 70 61 72 65 20 66 6f 72 20 72 65 70 6c    61 63 65 20 6f 66 20 73 74 6f 72 65 64 20 27 75  | prepare.for.replace.of.stored.'u | 
| 3cd20 |  27 20 73 65 71 75 65 6e 63 65 20 62 79 20 65 73    63 61 70 65 20 76 61 6c 75 65 0a 20 20 20 20 20  | '.sequence.by.escape.value...... | 
| 3cd40 |  20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d  | ............(setq.js2-ts-string- | 
| 3cd60 |  62 75 66 66 65 72 20 28 6e 74 68 63 64 72 20 35    20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67 2d 62  | buffer.(nthcdr.5.js2-ts-string-b | 
| 3cd80 |  75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20  | uffer)........................c. | 
| 3cda0 |  65 73 63 61 70 65 2d 76 61 6c 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3f 78 0a  | escape-val)))...............(?x. | 
| 3cdc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 47 65 74 20 32 20 68 65 78 20 64 69 67 69  | ...............;;.Get.2.hex.digi | 
| 3cde0 |  74 73 2c 20 64 65 66 61 75 6c 74 69 6e 67 20 74    6f 20 27 78 27 2b 6c 69 74 65 72 61 6c 0a 20 20  | ts,.defaulting.to.'x'+literal... | 
| 3ce00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    73 65 71 75 65 6e 63 65 2c 20 61 73 20 61 62 6f  | .............;;.sequence,.as.abo | 
| 3ce20 |  76 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d  | ve.................(setq.c.(js2- | 
| 3ce40 |  67 65 74 2d 63 68 61 72 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65  | get-char)......................e | 
| 3ce60 |  73 63 61 70 65 2d 76 61 6c 20 28 6a 73 32 2d 78    2d 64 69 67 69 74 2d 74 6f 2d 69 6e 74 20 63 20  | scape-val.(js2-x-digit-to-int.c. | 
| 3ce80 |  30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 28 63 6c 2d 6d 69 6e 75 73  | 0))................(if.(cl-minus | 
| 3cea0 |  70 20 65 73 63 61 70 65 2d 76 61 6c 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p.escape-val)................... | 
| 3cec0 |  20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | .(progn......................(js | 
| 3cee0 |  32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20    3f 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | 2-add-to-string.?x)............. | 
| 3cf00 |  20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20    27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a  | .........(throw.'continue.nil)). | 
| 3cf20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 63 31 20 63 0a 20 20 20 20  | .................(setq.c1.c..... | 
| 3cf40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68  | ...................c.(js2-get-ch | 
| 3cf60 |  61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 65 73 63 61 70  | ar)........................escap | 
| 3cf80 |  65 2d 76 61 6c 20 28 6a 73 32 2d 78 2d 64 69 67    69 74 2d 74 6f 2d 69 6e 74 20 63 20 65 73 63 61  | e-val.(js2-x-digit-to-int.c.esca | 
| 3cfa0 |  70 65 2d 76 61 6c 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63  | pe-val))..................(if.(c | 
| 3cfc0 |  6c 2d 6d 69 6e 75 73 70 20 65 73 63 61 70 65 2d    76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20  | l-minusp.escape-val)............ | 
| 3cfe0 |  20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..........(progn................ | 
| 3d000 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64    2d 74 6f 2d 73 74 72 69 6e 67 20 3f 78 29 0a 20  | ........(js2-add-to-string.?x).. | 
| 3d020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74  | ......................(js2-add-t | 
| 3d040 |  6f 2d 73 74 72 69 6e 67 20 63 31 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | o-string.c1).................... | 
| 3d060 |  20 20 20 20 28 74 68 72 6f 77 20 27 63 6f 6e 74    69 6e 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 20  | ....(throw.'continue.nil))...... | 
| 3d080 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b    20 67 6f 74 20 32 20 68 65 78 20 64 69 67 69 74  | ..............;;.got.2.hex.digit | 
| 3d0a0 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 63 20 65 73 63  | s....................(setq.c.esc | 
| 3d0c0 |  61 70 65 2d 76 61 6c 29 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3f 5c 6e 0a 20  | ape-val))))...............(?\n.. | 
| 3d0e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b    20 52 65 6d 6f 76 65 20 6c 69 6e 65 20 74 65 72  | ..............;;.Remove.line.ter | 
| 3d100 |  6d 69 6e 61 74 6f 72 20 61 66 74 65 72 20 65 73    63 61 70 65 20 74 6f 20 66 6f 6c 6c 6f 77 0a 20  | minator.after.escape.to.follow.. | 
| 3d120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b    20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 61 6e  | ..............;;.SpiderMonkey.an | 
| 3d140 |  64 20 43 2f 43 2b 2b 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28  | d.C/C++................(setq.c.( | 
| 3d160 |  6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74  | js2-get-char))................(t | 
| 3d180 |  68 72 6f 77 20 27 63 6f 6e 74 69 6e 75 65 20 6e    69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | hrow.'continue.nil))............ | 
| 3d1a0 |  20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20  | ...(t................(when.(and. | 
| 3d1c0 |  28 3c 3d 20 3f 30 20 63 29 20 28 3c 20 63 20 3f    38 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (<=.?0.c).(<.c.?8))............. | 
| 3d1e0 |  20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28    2d 20 63 20 3f 30 29 0a 20 20 20 20 20 20 20 20  | .....(setq.val.(-.c.?0)......... | 
| 3d200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63    20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29  | ...............c.(js2-get-char)) | 
| 3d220 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3c 3d  | ..................(when.(and.(<= | 
| 3d240 |  20 3f 30 20 63 29 20 28 3c 20 63 20 3f 38 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .?0.c).(<.c.?8))................ | 
| 3d260 |  20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 2d    20 28 2b 20 28 2a 20 38 20 76 61 6c 29 20 63 29  | ....(setq.val.(-.(+.(*.8.val).c) | 
| 3d280 |  20 3f 30 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20  | .?0)..........................c. | 
| 3d2a0 |  28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-get-char))................. | 
| 3d2c0 |  20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3c    3d 20 3f 30 20 63 29 0a 20 20 20 20 20 20 20 20  | ...(when.(and.(<=.?0.c)......... | 
| 3d2e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3c 20 63 20 3f 38 29 0a 20  | ......................(<.c.?8).. | 
| 3d300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20  | .............................(<. | 
| 3d320 |  76 61 6c 20 23 6f 33 37 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | val.#o37))...................... | 
| 3d340 |  3b 3b 20 63 20 69 73 20 33 72 64 20 63 68 61 72    20 6f 66 20 6f 63 74 61 6c 20 73 65 71 75 65 6e  | ;;.c.is.3rd.char.of.octal.sequen | 
| 3d360 |  63 65 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | ce.only......................;;. | 
| 3d380 |  69 66 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67    20 76 61 6c 20 3c 3d 20 30 33 37 37 0a 20 20 20  | if.the.resulting.val.<=.0377.... | 
| 3d3a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 76 61 6c 20 28 2d 20 28  | ..................(setq.val.(-.( | 
| 3d3c0 |  2b 20 28 2a 20 38 20 76 61 6c 29 20 63 29 20 3f    30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | +.(*.8.val).c).?0).............. | 
| 3d3e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20    28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29  | ..............c.(js2-get-char))) | 
| 3d400 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68  | )..................(js2-unget-ch | 
| 3d420 |  61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 63 20 76 61 6c  | ar)..................(setq.c.val | 
| 3d440 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 28 28 61 6e 64 20 28 65 71 20 71 75 6f 74 65  | )))))............((and.(eq.quote | 
| 3d460 |  2d 63 68 61 72 20 3f 60 29 20 28 65 71 20 63 20    3f 24 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -char.?`).(eq.c.?$))............ | 
| 3d480 |  20 28 77 68 65 6e 20 28 65 71 20 28 73 65 74 71    20 6e 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61  | .(when.(eq.(setq.nc.(js2-get-cha | 
| 3d4a0 |  72 29 29 20 3f 5c 7b 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62  | r)).?\{)...............(throw.'b | 
| 3d4c0 |  72 65 61 6b 20 6e 69 6c 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65  | reak.nil)).............(js2-unge | 
| 3d4e0 |  74 2d 63 68 61 72 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d  | t-char)))...........(js2-add-to- | 
| 3d500 |  73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73 32  | string.c)...........(setq.c.(js2 | 
| 3d520 |  2d 67 65 74 2d 63 68 61 72 29 29 29 29 29 0a 20    20 20 20 28 6a 73 32 2d 73 65 74 2d 73 74 72 69  | -get-char))))).....(js2-set-stri | 
| 3d540 |  6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65 72 20 74    6f 6b 65 6e 29 0a 20 20 20 20 28 69 66 20 28 6e  | ng-from-buffer.token).....(if.(n | 
| 3d560 |  6f 74 20 28 65 71 20 71 75 6f 74 65 2d 63 68 61    72 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 6a  | ot.(eq.quote-char.?`)).........j | 
| 3d580 |  73 32 2d 53 54 52 49 4e 47 0a 20 20 20 20 20 20    28 69 66 20 28 61 6e 64 20 28 65 71 20 63 20 3f  | s2-STRING.......(if.(and.(eq.c.? | 
| 3d5a0 |  24 29 20 28 65 71 20 6e 63 20 3f 5c 7b 29 29 0a    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 54 45  | $).(eq.nc.?\{))...........js2-TE | 
| 3d5c0 |  4d 50 4c 41 54 45 5f 48 45 41 44 0a 20 20 20 20    20 20 20 20 6a 73 32 2d 4e 4f 5f 53 55 42 53 5f  | MPLATE_HEAD.........js2-NO_SUBS_ | 
| 3d5e0 |  54 45 4d 50 4c 41 54 45 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 72 65  | TEMPLATE))))..(defun.js2-read-re | 
| 3d600 |  67 65 78 70 20 28 73 74 61 72 74 2d 74 74 20 73    74 61 72 74 2d 70 6f 73 29 0a 20 20 22 43 61 6c  | gexp.(start-tt.start-pos)..."Cal | 
| 3d620 |  6c 65 64 20 62 79 20 70 61 72 73 65 72 20 77 68    65 6e 20 69 74 20 67 65 74 73 20 2f 20 6f 72 20  | led.by.parser.when.it.gets./.or. | 
| 3d640 |  2f 3d 20 69 6e 20 6c 69 74 65 72 61 6c 20 63 6f    6e 74 65 78 74 2e 22 0a 20 20 28 6c 65 74 20 28  | /=.in.literal.context."...(let.( | 
| 3d660 |  63 20 65 72 72 0a 20 20 20 20 20 20 20 20 69 6e    2d 63 6c 61 73 73 20 20 3b 20 69 6e 73 69 64 65  | c.err.........in-class..;.inside | 
| 3d680 |  20 61 20 27 5b 27 20 2e 2e 20 27 5d 27 20 63 68    61 72 61 63 74 65 72 2d 63 6c 61 73 73 0a 20 20  | .a.'['....']'.character-class... | 
| 3d6a0 |  20 20 20 20 20 20 66 6c 61 67 73 0a 20 20 20 20    20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29  | ......flags.........(continue.t) | 
| 3d6c0 |  0a 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 20    28 6a 73 32 2d 6e 65 77 2d 74 6f 6b 65 6e 20 30  | .........(token.(js2-new-token.0 | 
| 3d6e0 |  29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6a 73    32 2d 6d 6f 64 65 2d 63 68 61 6e 67 65 2d 73 79  | ))).....(when.js2-mode-change-sy | 
| 3d700 |  6e 74 61 78 2d 70 0a 20 20 20 20 20 20 28 6a 73    32 2d 72 65 63 6f 72 64 2d 74 65 78 74 2d 70 72  | ntax-p.......(js2-record-text-pr | 
| 3d720 |  6f 70 65 72 74 79 20 73 74 61 72 74 2d 70 6f 73    20 28 31 2b 20 73 74 61 72 74 2d 70 6f 73 29 0a  | operty.start-pos.(1+.start-pos). | 
| 3d740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3d760 |  27 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 28 73    74 72 69 6e 67 2d 74 6f 2d 73 79 6e 74 61 78 20  | 'syntax-table.(string-to-syntax. | 
| 3d780 |  22 5c 22 2f 22 29 29 29 0a 20 20 20 20 28 73 65    74 71 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67  | "\"/"))).....(setq.js2-ts-string | 
| 3d7a0 |  2d 62 75 66 66 65 72 20 6e 69 6c 29 0a 20 20 20    20 28 69 66 20 28 65 71 20 73 74 61 72 74 2d 74  | -buffer.nil).....(if.(eq.start-t | 
| 3d7c0 |  74 20 6a 73 32 2d 41 53 53 49 47 4e 5f 44 49 56    29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 69 73  | t.js2-ASSIGN_DIV).........;;.mis | 
| 3d7e0 |  2d 73 63 61 6e 6e 65 64 20 2f 3d 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d  | -scanned./=.........(js2-add-to- | 
| 3d800 |  73 74 72 69 6e 67 20 3f 3d 29 0a 20 20 20 20 20    20 28 69 66 20 28 6e 6f 74 20 28 65 71 20 73 74  | string.?=).......(if.(not.(eq.st | 
| 3d820 |  61 72 74 2d 74 74 20 6a 73 32 2d 44 49 56 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f  | art-tt.js2-DIV))...........(erro | 
| 3d840 |  72 20 22 66 61 69 6c 65 64 20 61 73 73 65 72 74    69 6f 6e 22 29 29 29 0a 20 20 20 20 28 77 68 69  | r."failed.assertion"))).....(whi | 
| 3d860 |  6c 65 20 28 61 6e 64 20 28 6e 6f 74 20 65 72 72    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | le.(and.(not.err)............... | 
| 3d880 |  20 20 28 6f 72 20 28 2f 3d 20 28 73 65 74 71 20    63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29  | ..(or.(/=.(setq.c.(js2-get-char) | 
| 3d8a0 |  29 20 3f 2f 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 69 6e 2d 63 6c 61  | ).?/).....................in-cla | 
| 3d8c0 |  73 73 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64    0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d 20  | ss)).......(cond........((or.(=. | 
| 3d8e0 |  63 20 3f 5c 6e 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 3d 20 63 20 6a 73 32 2d 45 4f 46 5f  | c.?\n).............(=.c.js2-EOF_ | 
| 3d900 |  43 48 41 52 29 29 0a 20 20 20 20 20 20 20 20 28    73 65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d  | CHAR)).........(setf.(js2-token- | 
| 3d920 |  65 6e 64 20 74 6f 6b 65 6e 29 20 28 31 2d 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20 20  | end.token).(1-.js2-ts-cursor)... | 
| 3d940 |  20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 20    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............err.t............... | 
| 3d960 |  28 6a 73 32 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e    67 20 74 6f 6b 65 6e 29 20 28 6a 73 32 2d 63 6f  | (js2-token-string.token).(js2-co | 
| 3d980 |  6c 6c 65 63 74 2d 73 74 72 69 6e 67 20 6a 73 32    2d 74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65  | llect-string.js2-ts-string-buffe | 
| 3d9a0 |  72 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d  | r)).........(js2-report-error."m | 
| 3d9c0 |  73 67 2e 75 6e 74 65 72 6d 69 6e 61 74 65 64 2e    72 65 2e 6c 69 74 22 29 29 0a 20 20 20 20 20 20  | sg.unterminated.re.lit"))....... | 
| 3d9e0 |  20 28 74 20 28 63 6f 6e 64 0a 20 20 20 20 20 20    20 20 20 20 20 28 28 3d 20 63 20 3f 5c 5c 29 0a  | .(t.(cond............((=.c.?\\). | 
| 3da00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63  | ............(js2-add-to-string.c | 
| 3da20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63  | ).............(setq.c.(js2-get-c | 
| 3da40 |  68 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 28 28 3d 20 63 20 3f 5c 5b 29 0a 20 20 20  | har)))............((=.c.?\[).... | 
| 3da60 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69    6e 2d 63 6c 61 73 73 20 74 29 29 0a 20 20 20 20  | .........(setq.in-class.t))..... | 
| 3da80 |  20 20 20 20 20 20 20 28 28 3d 20 63 20 3f 5c 5d    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | .......((=.c.?\]).............(s | 
| 3daa0 |  65 74 71 20 69 6e 2d 63 6c 61 73 73 20 6e 69 6c    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a  | etq.in-class.nil)))...........(j | 
| 3dac0 |  73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67    20 63 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65  | s2-add-to-string.c)))).....(unle | 
| 3dae0 |  73 73 20 65 72 72 0a 20 20 20 20 20 20 28 77 68    65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e  | ss.err.......(when.js2-mode-chan | 
| 3db00 |  67 65 2d 73 79 6e 74 61 78 2d 70 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d  | ge-syntax-p.........(js2-record- | 
| 3db20 |  74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31    2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29  | text-property.(1-.js2-ts-cursor) | 
| 3db40 |  20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-ts-cursor.................. | 
| 3db60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 27 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 28  | .................'syntax-table.( | 
| 3db80 |  73 74 72 69 6e 67 2d 74 6f 2d 73 79 6e 74 61 78    20 22 5c 22 2f 22 29 29 29 0a 20 20 20 20 20 20  | string-to-syntax."\"/")))....... | 
| 3dba0 |  28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a    20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20  | (while.continue.........(cond... | 
| 3dbc0 |  20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74    63 68 2d 63 68 61 72 20 3f 64 29 0a 20 20 20 20  | .......((js2-match-char.?d)..... | 
| 3dbe0 |  20 20 20 20 20 20 28 70 75 73 68 20 3f 64 20 66    6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20  | ......(push.?d.flags)).......... | 
| 3dc00 |  28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68 61 72    20 3f 67 29 0a 20 20 20 20 20 20 20 20 20 20 28  | ((js2-match-char.?g)...........( | 
| 3dc20 |  70 75 73 68 20 3f 67 20 66 6c 61 67 73 29 29 0a    20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6d  | push.?g.flags))..........((js2-m | 
| 3dc40 |  61 74 63 68 2d 63 68 61 72 20 3f 69 29 0a 20 20    20 20 20 20 20 20 20 20 28 70 75 73 68 20 3f 69  | atch-char.?i)...........(push.?i | 
| 3dc60 |  20 66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20    20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 68  | .flags))..........((js2-match-ch | 
| 3dc80 |  61 72 20 3f 6d 29 0a 20 20 20 20 20 20 20 20 20    20 28 70 75 73 68 20 3f 6d 20 66 6c 61 67 73 29  | ar.?m)...........(push.?m.flags) | 
| 3dca0 |  29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32    2d 6d 61 74 63 68 2d 63 68 61 72 20 3f 73 29 0a  | )..........((js2-match-char.?s). | 
| 3dcc0 |  20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20    3f 73 20 66 6c 61 67 73 29 29 0a 20 20 20 20 20  | ..........(push.?s.flags))...... | 
| 3dce0 |  20 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 6d    61 74 63 68 2d 63 68 61 72 20 3f 75 29 0a 20 20  | ....((and.(js2-match-char.?u)... | 
| 3dd00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d    20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65  | .............(>=.js2-language-ve | 
| 3dd20 |  72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20    20 20 20 20 20 20 28 70 75 73 68 20 3f 75 20 66  | rsion.200))...........(push.?u.f | 
| 3dd40 |  6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20 20    28 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68  | lags))..........((and.(js2-match | 
| 3dd60 |  2d 63 68 61 72 20 3f 79 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32  | -char.?y)................(>=.js2 | 
| 3dd80 |  2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f    6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 20 20  | -language-version.200))......... | 
| 3dda0 |  20 20 28 70 75 73 68 20 3f 79 20 66 6c 61 67 73    29 29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20  | ..(push.?y.flags))..........(t.. | 
| 3ddc0 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29 0a  | .........(setq.continue.nil)))). | 
| 3dde0 |  20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 61    6c 70 68 61 2d 70 20 28 6a 73 32 2d 70 65 65 6b  | ......(if.(js2-alpha-p.(js2-peek | 
| 3de00 |  2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 73 63  | -char))...........(js2-report-sc | 
| 3de20 |  61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e 69 6e    76 61 6c 69 64 2e 72 65 2e 66 6c 61 67 22 20 74  | an-error."msg.invalid.re.flag".t | 
| 3de40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3de60 |  20 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20    31 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 73  | ..js2-ts-cursor.1)).......(js2-s | 
| 3de80 |  65 74 2d 73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62    75 66 66 65 72 20 74 6f 6b 65 6e 29 29 0a 20 20  | et-string-from-buffer.token))... | 
| 3dea0 |  20 20 28 6a 73 32 2d 63 6f 6c 6c 65 63 74 2d 73    74 72 69 6e 67 20 66 6c 61 67 73 29 29 29 0a 0a  | ..(js2-collect-string.flags))).. | 
| 3dec0 |  28 64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 66    69 72 73 74 2d 78 6d 6c 2d 74 6f 6b 65 6e 20 28  | (defun.js2-get-first-xml-token.( | 
| 3dee0 |  29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 74 73    2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63  | )...(setq.js2-ts-xml-open-tags-c | 
| 3df00 |  6f 75 6e 74 20 30 0a 20 20 20 20 20 20 20 20 6a    73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74  | ount.0.........js2-ts-is-xml-att | 
| 3df20 |  72 69 62 75 74 65 20 6e 69 6c 0a 20 20 20 20 20    20 20 20 6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73  | ribute.nil.........js2-ts-xml-is | 
| 3df40 |  2d 74 61 67 2d 63 6f 6e 74 65 6e 74 20 6e 69 6c    29 0a 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63  | -tag-content.nil)...(js2-unget-c | 
| 3df60 |  68 61 72 29 0a 20 20 28 6a 73 32 2d 67 65 74 2d    6e 65 78 74 2d 78 6d 6c 2d 74 6f 6b 65 6e 29 29  | har)...(js2-get-next-xml-token)) | 
| 3df80 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 78 6d 6c    2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 20  | ..(defun.js2-xml-discard-string. | 
| 3dfa0 |  28 74 6f 6b 65 6e 29 0a 20 20 22 54 68 72 6f 77    20 61 77 61 79 20 74 68 65 20 73 74 72 69 6e 67  | (token)..."Throw.away.the.string | 
| 3dfc0 |  20 69 6e 20 70 72 6f 67 72 65 73 73 20 61 6e 64    20 66 6c 61 67 20 61 6e 20 58 4d 4c 20 70 61 72  | .in.progress.and.flag.an.XML.par | 
| 3dfe0 |  73 65 20 65 72 72 6f 72 2e 22 0a 20 20 28 73 65    74 66 20 6a 73 32 2d 74 73 2d 73 74 72 69 6e 67  | se.error."...(setf.js2-ts-string | 
| 3e000 |  2d 62 75 66 66 65 72 20 6e 69 6c 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73  | -buffer.nil.........(js2-token-s | 
| 3e020 |  74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 6e 69 6c    29 0a 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | tring.token).nil)...(js2-report- | 
| 3e040 |  73 63 61 6e 2d 65 72 72 6f 72 20 22 6d 73 67 2e    58 4d 4c 2e 62 61 64 2e 66 6f 72 6d 22 20 74 29  | scan-error."msg.XML.bad.form".t) | 
| 3e060 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65    74 2d 6e 65 78 74 2d 78 6d 6c 2d 74 6f 6b 65 6e  | )..(defun.js2-get-next-xml-token | 
| 3e080 |  20 28 29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d    74 73 2d 73 74 72 69 6e 67 2d 62 75 66 66 65 72  | .()...(setq.js2-ts-string-buffer | 
| 3e0a0 |  20 6e 69 6c 29 20 20 3b 20 66 6f 72 20 72 65 63    6f 72 64 69 6e 67 20 74 68 65 20 58 4d 4c 0a 20  | .nil)..;.for.recording.the.XML.. | 
| 3e0c0 |  20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 6a    73 32 2d 6e 65 77 2d 74 6f 6b 65 6e 20 30 29 29  | .(let.((token.(js2-new-token.0)) | 
| 3e0e0 |  0a 20 20 20 20 20 20 20 20 63 20 72 65 73 75 6c    74 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73  | .........c.result).....(setq.res | 
| 3e100 |  75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 28 63    61 74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20  | ult...........(catch.'return.... | 
| 3e120 |  20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........(while.t............... | 
| 3e140 |  28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65 74    2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20  | (setq.c.(js2-get-char))......... | 
| 3e160 |  20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 63  | ......(cond................((=.c | 
| 3e180 |  20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .js2-EOF_CHAR).................( | 
| 3e1a0 |  74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73    32 2d 45 52 52 4f 52 29 29 0a 20 20 20 20 20 20  | throw.'return.js2-ERROR))....... | 
| 3e1c0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 74 73    2d 78 6d 6c 2d 69 73 2d 74 61 67 2d 63 6f 6e 74  | .........(js2-ts-xml-is-tag-cont | 
| 3e1e0 |  65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6c 2d 63 61 73 65 20 63 0a 20  | ent.................(cl-case.c.. | 
| 3e200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3f 3e 0a 20 20 20 20 20 20 20 20 20 20 20  | .................(?>............ | 
| 3e220 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64    2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20  | ........(js2-add-to-string.c)... | 
| 3e240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 78 6d  | .................(setq.js2-ts-xm | 
| 3e260 |  6c 2d 69 73 2d 74 61 67 2d 63 6f 6e 74 65 6e 74    20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20  | l-is-tag-content.nil............ | 
| 3e280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73    32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61 74 74 72  | ..............js2-ts-is-xml-attr | 
| 3e2a0 |  69 62 75 74 65 20 6e 69 6c 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f  | ibute.nil))...................(? | 
| 3e2c0 |  2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f  | /....................(js2-add-to | 
| 3e2e0 |  2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77  | -string.c)....................(w | 
| 3e300 |  68 65 6e 20 28 65 71 20 3f 3e 20 28 6a 73 32 2d    70 65 65 6b 2d 63 68 61 72 29 29 0a 20 20 20 20  | hen.(eq.?>.(js2-peek-char))..... | 
| 3e320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67 65  | .................(setq.c.(js2-ge | 
| 3e340 |  74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | t-char))......................(j | 
| 3e360 |  73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67    20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | s2-add-to-string.c)............. | 
| 3e380 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a    73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67  | .........(setq.js2-ts-xml-is-tag | 
| 3e3a0 |  2d 63 6f 6e 74 65 6e 74 20 6e 69 6c 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -content.nil)................... | 
| 3e3c0 |  20 20 20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d    74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73  | ...(cl-decf.js2-ts-xml-open-tags | 
| 3e3e0 |  2d 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3f 7b 0a  | -count)))...................(?{. | 
| 3e400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68  | ...................(js2-unget-ch | 
| 3e420 |  61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d  | ar)....................(js2-set- | 
| 3e440 |  73 74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66    65 72 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20  | string-from-buffer.token)....... | 
| 3e460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68    72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d  | .............(throw.'return.js2- | 
| 3e480 |  58 4d 4c 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 28 3f 5c 27 20 3f 5c  | XML))...................((?\'.?\ | 
| 3e4a0 |  22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74  | ")....................(js2-add-t | 
| 3e4c0 |  6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | o-string.c)....................( | 
| 3e4e0 |  75 6e 6c 65 73 73 20 28 6a 73 32 2d 72 65 61 64    2d 71 75 6f 74 65 64 2d 73 74 72 69 6e 67 20 63  | unless.(js2-read-quoted-string.c | 
| 3e500 |  20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68  | .token)......................(th | 
| 3e520 |  72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d    45 52 52 4f 52 29 29 29 0a 20 20 20 20 20 20 20  | row.'return.js2-ERROR)))........ | 
| 3e540 |  20 20 20 20 20 20 20 20 20 20 20 28 3f 3d 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........(?=.................. | 
| 3e560 |  20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74    72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20  | ..(js2-add-to-string.c)......... | 
| 3e580 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 6a 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61  | ...........(setq.js2-ts-is-xml-a | 
| 3e5a0 |  74 74 72 69 62 75 74 65 20 74 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ttribute.t))...................( | 
| 3e5c0 |  28 3f 20 3f 5c 74 20 3f 5c 72 20 3f 5c 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (?.?\t.?\r.?\n)................. | 
| 3e5e0 |  20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73    74 72 69 6e 67 20 63 29 29 0a 20 20 20 20 20 20  | ...(js2-add-to-string.c))....... | 
| 3e600 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............(t.................. | 
| 3e620 |  20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74    72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20  | ..(js2-add-to-string.c)......... | 
| 3e640 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 6a 73 32 2d 74 73 2d 69 73 2d 78 6d 6c 2d 61  | ...........(setq.js2-ts-is-xml-a | 
| 3e660 |  74 74 72 69 62 75 74 65 20 6e 69 6c 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ttribute.nil)))................. | 
| 3e680 |  28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20    6a 73 32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61  | (when.(and.(not.js2-ts-xml-is-ta | 
| 3e6a0 |  67 2d 63 6f 6e 74 65 6e 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | g-content)...................... | 
| 3e6c0 |  20 20 20 20 20 20 28 7a 65 72 6f 70 20 6a 73 32    2d 74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67  | ......(zerop.js2-ts-xml-open-tag | 
| 3e6e0 |  73 2d 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | s-count))...................(js2 | 
| 3e700 |  2d 73 65 74 2d 73 74 72 69 6e 67 2d 66 72 6f 6d    2d 62 75 66 66 65 72 20 74 6f 6b 65 6e 29 0a 20  | -set-string-from-buffer.token).. | 
| 3e720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e 20  | .................(throw.'return. | 
| 3e740 |  6a 73 32 2d 58 4d 4c 45 4e 44 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a  | js2-XMLEND)))................(t. | 
| 3e760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 65 6c 73 65 20 6e 6f 74 20 74 61 67 20  | ................;;.else.not.tag. | 
| 3e780 |  63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73 65  | content.................(cl-case | 
| 3e7a0 |  20 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3f 3c 0a 20 20 20 20 20 20 20  | .c...................(?<........ | 
| 3e7c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63  | ............(js2-add-to-string.c | 
| 3e7e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 63 20 28 6a 73  | )....................(setq.c.(js | 
| 3e800 |  32 2d 70 65 65 6b 2d 63 68 61 72 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-peek-char))................... | 
| 3e820 |  20 28 63 6c 2d 63 61 73 65 20 63 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(cl-case.c..................... | 
| 3e840 |  20 28 3f 21 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | .(?!.......................(setq | 
| 3e860 |  20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72    29 29 20 3b 3b 20 73 6b 69 70 20 21 0a 20 20 20  | .c.(js2-get-char)).;;.skip.!.... | 
| 3e880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73  | ...................(js2-add-to-s | 
| 3e8a0 |  74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | tring.c).......................( | 
| 3e8c0 |  73 65 74 71 20 63 20 28 6a 73 32 2d 70 65 65 6b    2d 63 68 61 72 29 29 0a 20 20 20 20 20 20 20 20  | setq.c.(js2-peek-char))......... | 
| 3e8e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6c 2d 63 61 73 65 20 63 0a 20 20 20 20 20 20 20  | ..............(cl-case.c........ | 
| 3e900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3f 2d 0a 20 20 20 20 20 20 20 20 20 20 20  | .................(?-............ | 
| 3e920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63  | ..............(setq.c.(js2-get-c | 
| 3e940 |  68 61 72 29 29 20 3b 3b 20 73 6b 69 70 20 2d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | har)).;;.skip.-................. | 
| 3e960 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64    64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20  | .........(js2-add-to-string.c).. | 
| 3e980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20  | ........................(if.(eq. | 
| 3e9a0 |  63 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | c.?-)........................... | 
| 3e9c0 |  20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(progn....................... | 
| 3e9e0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64    64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20  | .........(js2-add-to-string.c).. | 
| 3ea00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75  | ..............................(u | 
| 3ea20 |  6e 6c 65 73 73 20 28 6a 73 32 2d 72 65 61 64 2d    78 6d 6c 2d 63 6f 6d 6d 65 6e 74 20 74 6f 6b 65  | nless.(js2-read-xml-comment.toke | 
| 3ea40 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n).............................. | 
| 3ea60 |  20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75    72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a  | ....(throw.'return.js2-ERROR))). | 
| 3ea80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...........................(js2- | 
| 3eaa0 |  78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69    6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20  | xml-discard-string.token)....... | 
| 3eac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74  | .....................(throw.'ret | 
| 3eae0 |  75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | urn.js2-ERROR)))................ | 
| 3eb00 |  20 20 20 20 20 20 20 20 20 28 3f 5c 5b 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........(?\[................... | 
| 3eb20 |  20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28    6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b  | .......(setq.c.(js2-get-char)).; | 
| 3eb40 |  3b 20 73 6b 69 70 20 5b 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ;.skip.[........................ | 
| 3eb60 |  20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74    72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20  | ..(js2-add-to-string.c)......... | 
| 3eb80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 28 61 6e 64 20 28 3d 20 28 6a 73  | .................(if.(and.(=.(js | 
| 3eba0 |  32 2d 67 65 74 2d 63 68 61 72 29 20 3f 43 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-get-char).?C)................. | 
| 3ebc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68  | ..................(=.(js2-get-ch | 
| 3ebe0 |  61 72 29 20 3f 44 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ar).?D)......................... | 
| 3ec00 |  20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73    32 2d 67 65 74 2d 63 68 61 72 29 20 3f 41 29 0a  | ..........(=.(js2-get-char).?A). | 
| 3ec20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 3ec40 |  20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68    61 72 29 20 3f 54 29 0a 20 20 20 20 20 20 20 20  | ..(=.(js2-get-char).?T)......... | 
| 3ec60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 3d 20 28 6a 73  | ..........................(=.(js | 
| 3ec80 |  32 2d 67 65 74 2d 63 68 61 72 29 20 3f 41 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-get-char).?A)................. | 
| 3eca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3d 20 28 6a 73 32 2d 67 65 74 2d 63 68  | ..................(=.(js2-get-ch | 
| 3ecc0 |  61 72 29 20 3f 5c 5b 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ar).?\[))....................... | 
| 3ece0 |  20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......(progn................... | 
| 3ed00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20  | .............(js2-add-to-string. | 
| 3ed20 |  3f 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ?C)............................. | 
| 3ed40 |  20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73    74 72 69 6e 67 20 3f 44 29 0a 20 20 20 20 20 20  | ...(js2-add-to-string.?D)....... | 
| 3ed60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64  | .........................(js2-ad | 
| 3ed80 |  64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 41 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d-to-string.?A)................. | 
| 3eda0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e  | ...............(js2-add-to-strin | 
| 3edc0 |  67 20 3f 54 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | g.?T)........................... | 
| 3ede0 |  20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f    2d 73 74 72 69 6e 67 20 3f 41 29 0a 20 20 20 20  | .....(js2-add-to-string.?A)..... | 
| 3ee00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...........................(js2- | 
| 3ee20 |  61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 3f 5c    5b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | add-to-string.?\[).............. | 
| 3ee40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 72  | ..................(unless.(js2-r | 
| 3ee60 |  65 61 64 2d 63 64 61 74 61 20 74 6f 6b 65 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ead-cdata.token)................ | 
| 3ee80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72 6e  | ..................(throw.'return | 
| 3eea0 |  20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-ERROR)))................... | 
| 3eec0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 78 6d    6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67  | .........(js2-xml-discard-string | 
| 3eee0 |  20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .token)......................... | 
| 3ef00 |  20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75 72    6e 20 6a 73 32 2d 45 52 52 4f 52 29 29 29 0a 20  | ...(throw.'return.js2-ERROR))).. | 
| 3ef20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20  | .......................(t....... | 
| 3ef40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d  | ...................(unless.(js2- | 
| 3ef60 |  72 65 61 64 2d 65 6e 74 69 74 79 20 74 6f 6b 65    6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | read-entity.token).............. | 
| 3ef80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74    68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32  | ..............(throw.'return.js2 | 
| 3efa0 |  2d 45 52 52 4f 52 29 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -ERROR))))...................... | 
| 3efc0 |  20 3b 3b 20 41 6c 6c 6f 77 20 62 61 72 65 20 43    44 41 54 41 20 73 65 63 74 69 6f 6e 2c 20 65 2e  | .;;.Allow.bare.CDATA.section,.e. | 
| 3efe0 |  67 2e 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 6c  | g.:.......................;;...l | 
| 3f000 |  65 74 20 78 6d 6c 20 3d 20 3c 21 5b 43 44 41 54    41 5b 20 66 6f 6f 20 62 61 72 20 62 61 7a 20 5d  | et.xml.=.<![CDATA[.foo.bar.baz.] | 
| 3f020 |  5d 3e 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | ]>;.......................(when. | 
| 3f040 |  28 7a 65 72 6f 70 20 6a 73 32 2d 74 73 2d 78 6d    6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63 6f 75 6e  | (zerop.js2-ts-xml-open-tags-coun | 
| 3f060 |  74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f  | t).........................(thro | 
| 3f080 |  77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 58 4d    4c 45 4e 44 29 29 29 0a 20 20 20 20 20 20 20 20  | w.'return.js2-XMLEND)))......... | 
| 3f0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3f    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .............(??................ | 
| 3f0c0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 63 20 28    6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 20 3b  | .......(setq.c.(js2-get-char)).; | 
| 3f0e0 |  3b 20 73 6b 69 70 20 3f 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ;.skip.?.......................( | 
| 3f100 |  6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e    67 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20  | js2-add-to-string.c)............ | 
| 3f120 |  20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65    73 73 20 28 6a 73 32 2d 72 65 61 64 2d 50 49 20  | ...........(unless.(js2-read-PI. | 
| 3f140 |  74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | token).........................( | 
| 3f160 |  74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 6a 73    32 2d 45 52 52 4f 52 29 29 29 0a 20 20 20 20 20  | throw.'return.js2-ERROR)))...... | 
| 3f180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ................(?/............. | 
| 3f1a0 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 6e 64    20 74 61 67 0a 20 20 20 20 20 20 20 20 20 20 20  | ..........;;.end.tag............ | 
| 3f1c0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72  | ...........(setq.c.(js2-get-char | 
| 3f1e0 |  29 29 20 3b 3b 20 73 6b 69 70 20 2f 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )).;;.skip./.................... | 
| 3f200 |  20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73    74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20  | ...(js2-add-to-string.c)........ | 
| 3f220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 7a 65 72 6f 70 20 6a 73 32 2d  | ...............(when.(zerop.js2- | 
| 3f240 |  74 73 2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73    2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20  | ts-xml-open-tags-count)......... | 
| 3f260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64  | ................(js2-xml-discard | 
| 3f280 |  2d 73 74 72 69 6e 67 20 74 6f 6b 65 6e 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -string.token).................. | 
| 3f2a0 |  20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 72    65 74 75 72 6e 20 6a 73 32 2d 45 52 52 4f 52 29  | .......(throw.'return.js2-ERROR) | 
| 3f2c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73  | ).......................(setq.js | 
| 3f2e0 |  32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 2d    63 6f 6e 74 65 6e 74 20 74 29 0a 20 20 20 20 20  | 2-ts-xml-is-tag-content.t)...... | 
| 3f300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6c 2d 64 65 63 66 20 6a 73 32 2d 74 73  | .................(cl-decf.js2-ts | 
| 3f320 |  2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63    6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20  | -xml-open-tags-count)).......... | 
| 3f340 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............(t.................. | 
| 3f360 |  20 20 20 20 20 3b 3b 20 73 74 61 72 74 20 74 61    67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....;;.start.tag............... | 
| 3f380 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 6a 73    32 2d 74 73 2d 78 6d 6c 2d 69 73 2d 74 61 67 2d  | ........(setq.js2-ts-xml-is-tag- | 
| 3f3a0 |  63 6f 6e 74 65 6e 74 20 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | content.t)...................... | 
| 3f3c0 |  20 28 63 6c 2d 69 6e 63 66 20 6a 73 32 2d 74 73    2d 78 6d 6c 2d 6f 70 65 6e 2d 74 61 67 73 2d 63  | .(cl-incf.js2-ts-xml-open-tags-c | 
| 3f3e0 |  6f 75 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 3f 7b 0a 20  | ount))))...................(?{.. | 
| 3f400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 63 68 61  | ..................(js2-unget-cha | 
| 3f420 |  72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 73  | r)....................(js2-set-s | 
| 3f440 |  74 72 69 6e 67 2d 66 72 6f 6d 2d 62 75 66 66 65    72 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20  | tring-from-buffer.token)........ | 
| 3f460 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 72 65 74 75 72 6e 20 6a 73 32 2d 58  | ............(throw.'return.js2-X | 
| 3f480 |  4d 4c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20  | ML))...................(t....... | 
| 3f4a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20  | .............(js2-add-to-string. | 
| 3f4c0 |  63 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 73    65 74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65  | c)))))))).....(setf.(js2-token-e | 
| 3f4e0 |  6e 64 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 74 73    2d 63 75 72 73 6f 72 29 0a 20 20 20 20 28 73 65  | nd.token).js2-ts-cursor).....(se | 
| 3f500 |  74 66 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79    70 65 20 74 6f 6b 65 6e 29 20 72 65 73 75 6c 74  | tf.(js2-token-type.token).result | 
| 3f520 |  29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 72 65 61 64 2d  | ).....result))..(defun.js2-read- | 
| 3f540 |  71 75 6f 74 65 64 2d 73 74 72 69 6e 67 20 28 71    75 6f 74 65 20 74 6f 6b 65 6e 29 0a 20 20 28 6c  | quoted-string.(quote.token)...(l | 
| 3f560 |  65 74 20 28 63 29 0a 20 20 20 20 28 63 61 74 63    68 20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20  | et.(c).....(catch.'return....... | 
| 3f580 |  28 77 68 69 6c 65 20 28 2f 3d 20 28 73 65 74 71    20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72  | (while.(/=.(setq.c.(js2-get-char | 
| 3f5a0 |  29 29 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29    0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64  | )).js2-EOF_CHAR).........(js2-ad | 
| 3f5c0 |  64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20    20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 63  | d-to-string.c).........(if.(eq.c | 
| 3f5e0 |  20 71 75 6f 74 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74 75  | .quote).............(throw.'retu | 
| 3f600 |  72 6e 20 74 29 29 29 0a 20 20 20 20 20 20 28 6a    73 32 2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73  | rn.t))).......(js2-xml-discard-s | 
| 3f620 |  74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 20 3b 3b    20 74 68 72 6f 77 20 61 77 61 79 20 73 74 72 69  | tring.token)..;;.throw.away.stri | 
| 3f640 |  6e 67 20 69 6e 20 70 72 6f 67 72 65 73 73 0a 20    20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65  | ng.in.progress.......nil)))..(de | 
| 3f660 |  66 75 6e 20 6a 73 32 2d 72 65 61 64 2d 78 6d 6c    2d 63 6f 6d 6d 65 6e 74 20 28 74 6f 6b 65 6e 29  | fun.js2-read-xml-comment.(token) | 
| 3f680 |  0a 20 20 28 6c 65 74 20 28 28 63 20 28 6a 73 32    2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20 20 20  | ...(let.((c.(js2-get-char))).... | 
| 3f6a0 |  20 28 63 61 74 63 68 20 27 72 65 74 75 72 6e 0a    20 20 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d  | .(catch.'return.......(while.(/= | 
| 3f6c0 |  20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41 52 29    0a 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20  | .c.js2-EOF_CHAR).........(catch. | 
| 3f6e0 |  27 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d  | 'continue...........(js2-add-to- | 
| 3f700 |  73 74 72 69 6e 67 20 63 29 0a 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28  | string.c)...........(when.(and.( | 
| 3f720 |  65 71 20 63 20 3f 2d 29 20 28 65 71 20 3f 2d 20    28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 29  | eq.c.?-).(eq.?-.(js2-peek-char)) | 
| 3f740 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63  | ).............(setq.c.(js2-get-c | 
| 3f760 |  68 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74  | har)).............(js2-add-to-st | 
| 3f780 |  72 69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 65 71 20 28 6a 73 32  | ring.c).............(if.(eq.(js2 | 
| 3f7a0 |  2d 70 65 65 6b 2d 63 68 61 72 29 20 3f 3e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -peek-char).?>)................. | 
| 3f7c0 |  28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63  | (progn...................(setq.c | 
| 3f7e0 |  20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29    20 3b 3b 20 73 6b 69 70 20 3e 0a 20 20 20 20 20  | .(js2-get-char)).;;.skip.>...... | 
| 3f800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20  | .............(js2-add-to-string. | 
| 3f820 |  63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 74 68 72 6f 77 20 27 72 65 74  | c)...................(throw.'ret | 
| 3f840 |  75 72 6e 20 74 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 74 68 72 6f 77 20 27 63 6f  | urn.t))...............(throw.'co | 
| 3f860 |  6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 20  | ntinue.nil)))...........(setq.c. | 
| 3f880 |  28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29    29 0a 20 20 20 20 20 20 28 6a 73 32 2d 78 6d 6c  | (js2-get-char)))).......(js2-xml | 
| 3f8a0 |  2d 64 69 73 63 61 72 64 2d 73 74 72 69 6e 67 20    74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 6e 69 6c  | -discard-string.token).......nil | 
| 3f8c0 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    72 65 61 64 2d 63 64 61 74 61 20 28 74 6f 6b 65  | )))..(defun.js2-read-cdata.(toke | 
| 3f8e0 |  6e 29 0a 20 20 28 6c 65 74 20 28 28 63 20 28 6a    73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a 20  | n)...(let.((c.(js2-get-char))).. | 
| 3f900 |  20 20 20 28 63 61 74 63 68 20 27 72 65 74 75 72    6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28  | ...(catch.'return.......(while.( | 
| 3f920 |  2f 3d 20 63 20 6a 73 32 2d 45 4f 46 5f 43 48 41    52 29 0a 20 20 20 20 20 20 20 20 28 63 61 74 63  | /=.c.js2-EOF_CHAR).........(catc | 
| 3f940 |  68 20 27 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74  | h.'continue...........(js2-add-t | 
| 3f960 |  6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20    20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | o-string.c)...........(when.(and | 
| 3f980 |  20 28 65 71 20 63 20 3f 5c 5d 29 20 28 65 71 20    28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 20  | .(eq.c.?\]).(eq.(js2-peek-char). | 
| 3f9a0 |  3f 5c 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 63 20 28 6a 73 32 2d 67  | ?\])).............(setq.c.(js2-g | 
| 3f9c0 |  65 74 2d 63 68 61 72 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d 74  | et-char)).............(js2-add-t | 
| 3f9e0 |  6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20  | o-string.c).............(if.(eq. | 
| 3fa00 |  28 6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 20    3f 3e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-peek-char).?>)............. | 
| 3fa20 |  20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | ....(progn...................(se | 
| 3fa40 |  74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68    61 72 29 29 20 3b 3b 20 53 6b 69 70 20 3e 0a 20  | tq.c.(js2-get-char)).;;.Skip.>.. | 
| 3fa60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 61 64 64 2d 74 6f 2d 73 74 72  | .................(js2-add-to-str | 
| 3fa80 |  69 6e 67 20 63 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20  | ing.c)...................(throw. | 
| 3faa0 |  27 72 65 74 75 72 6e 20 74 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77  | 'return.t))...............(throw | 
| 3fac0 |  20 27 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | .'continue.nil)))...........(set | 
| 3fae0 |  71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61    72 29 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32  | q.c.(js2-get-char)))).......(js2 | 
| 3fb00 |  2d 78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72    69 6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20  | -xml-discard-string.token)...... | 
| 3fb20 |  20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 72 65 61 64 2d 65 6e 74 69 74 79 20  | .nil)))..(defun.js2-read-entity. | 
| 3fb40 |  28 74 6f 6b 65 6e 29 0a 20 20 28 6c 65 74 20 28    28 64 65 63 6c 2d 74 61 67 73 20 31 29 0a 20 20  | (token)...(let.((decl-tags.1)... | 
| 3fb60 |  20 20 20 20 20 20 63 29 0a 20 20 20 20 28 63 61    74 63 68 20 27 72 65 74 75 72 6e 0a 20 20 20 20  | ......c).....(catch.'return..... | 
| 3fb80 |  20 20 28 77 68 69 6c 65 20 28 2f 3d 20 6a 73 32    2d 45 4f 46 5f 43 48 41 52 20 28 73 65 74 71 20  | ..(while.(/=.js2-EOF_CHAR.(setq. | 
| 3fba0 |  63 20 28 6a 73 32 2d 67 65 74 2d 63 68 61 72 29    29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | c.(js2-get-char))).........(js2- | 
| 3fbc0 |  61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29    0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 73  | add-to-string.c).........(cl-cas | 
| 3fbe0 |  65 20 63 0a 20 20 20 20 20 20 20 20 20 20 28 3f    3c 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c  | e.c...........(?<............(cl | 
| 3fc00 |  2d 69 6e 63 66 20 64 65 63 6c 2d 74 61 67 73 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 3f 3e 0a  | -incf.decl-tags))...........(?>. | 
| 3fc20 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64    65 63 66 20 64 65 63 6c 2d 74 61 67 73 29 0a 20  | ...........(cl-decf.decl-tags).. | 
| 3fc40 |  20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 7a    65 72 6f 70 20 64 65 63 6c 2d 74 61 67 73 29 0a  | ..........(if.(zerop.decl-tags). | 
| 3fc60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    74 68 72 6f 77 20 27 72 65 74 75 72 6e 20 74 29  | ...............(throw.'return.t) | 
| 3fc80 |  29 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d    78 6d 6c 2d 64 69 73 63 61 72 64 2d 73 74 72 69  | )))).......(js2-xml-discard-stri | 
| 3fca0 |  6e 67 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20    6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | ng.token).......nil)))..(defun.j | 
| 3fcc0 |  73 32 2d 72 65 61 64 2d 50 49 20 28 74 6f 6b 65    6e 29 0a 20 20 22 53 63 61 6e 20 61 6e 20 58 4d  | s2-read-PI.(token)..."Scan.an.XM | 
| 3fce0 |  4c 20 70 72 6f 63 65 73 73 69 6e 67 20 69 6e 73    74 72 75 63 74 69 6f 6e 2e 22 0a 20 20 28 6c 65  | L.processing.instruction."...(le | 
| 3fd00 |  74 20 28 63 29 0a 20 20 20 20 28 63 61 74 63 68    20 27 72 65 74 75 72 6e 0a 20 20 20 20 20 20 28  | t.(c).....(catch.'return.......( | 
| 3fd20 |  77 68 69 6c 65 20 28 2f 3d 20 6a 73 32 2d 45 4f    46 5f 43 48 41 52 20 28 73 65 74 71 20 63 20 28  | while.(/=.js2-EOF_CHAR.(setq.c.( | 
| 3fd40 |  6a 73 32 2d 67 65 74 2d 63 68 61 72 29 29 29 0a    20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64  | js2-get-char))).........(js2-add | 
| 3fd60 |  2d 74 6f 2d 73 74 72 69 6e 67 20 63 29 0a 20 20    20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | -to-string.c).........(when.(and | 
| 3fd80 |  20 28 65 71 20 63 20 3f 3f 29 20 28 65 71 20 28    6a 73 32 2d 70 65 65 6b 2d 63 68 61 72 29 20 3f  | .(eq.c.??).(eq.(js2-peek-char).? | 
| 3fda0 |  3e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 63 20 28 6a 73 32 2d 67 65 74 2d 63  | >))...........(setq.c.(js2-get-c | 
| 3fdc0 |  68 61 72 29 29 20 20 3b 3b 20 53 6b 69 70 20 3e    0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | har))..;;.Skip.>...........(js2- | 
| 3fde0 |  61 64 64 2d 74 6f 2d 73 74 72 69 6e 67 20 63 29    0a 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f  | add-to-string.c)...........(thro | 
| 3fe00 |  77 20 27 72 65 74 75 72 6e 20 74 29 29 29 0a 20    20 20 20 20 20 28 6a 73 32 2d 78 6d 6c 2d 64 69  | w.'return.t))).......(js2-xml-di | 
| 3fe20 |  73 63 61 72 64 2d 73 74 72 69 6e 67 20 74 6f 6b    65 6e 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 29  | scard-string.token).......nil))) | 
| 3fe40 |  0a 0a 3b 3b 3b 20 48 69 67 68 6c 69 67 68 74 69    6e 67 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73  | ..;;;.Highlighting..(defun.js2-s | 
| 3fe60 |  65 74 2d 66 61 63 65 20 28 62 65 67 20 65 6e 64    20 66 61 63 65 20 26 6f 70 74 69 6f 6e 61 6c 20  | et-face.(beg.end.face.&optional. | 
| 3fe80 |  72 65 63 6f 72 64 29 0a 20 20 22 46 6f 6e 74 69    66 79 20 61 20 72 65 67 69 6f 6e 2e 20 20 49 66  | record)..."Fontify.a.region...If | 
| 3fea0 |  20 52 45 43 4f 52 44 20 69 73 20 6e 6f 6e 2d 6e    69 6c 2c 20 72 65 63 6f 72 64 20 66 6f 72 20 6c  | .RECORD.is.non-nil,.record.for.l | 
| 3fec0 |  61 74 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 28    63 6c 2d 70 6c 75 73 70 20 6a 73 32 2d 68 69 67  | ater."...(when.(cl-plusp.js2-hig | 
| 3fee0 |  68 6c 69 67 68 74 2d 6c 65 76 65 6c 29 0a 20 20    20 20 28 73 65 74 71 20 62 65 67 20 28 6d 69 6e  | hlight-level).....(setq.beg.(min | 
| 3ff00 |  20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 62 65 67    29 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 20  | .(point-max).beg)...........beg. | 
| 3ff20 |  28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29    20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20  | (max.(point-min).beg)........... | 
| 3ff40 |  65 6e 64 20 28 6d 69 6e 20 28 70 6f 69 6e 74 2d    6d 61 78 29 20 65 6e 64 29 0a 20 20 20 20 20 20  | end.(min.(point-max).end)....... | 
| 3ff60 |  20 20 20 20 65 6e 64 20 28 6d 61 78 20 28 70 6f    69 6e 74 2d 6d 69 6e 29 20 65 6e 64 29 29 0a 20  | ....end.(max.(point-min).end)).. | 
| 3ff80 |  20 20 20 28 69 66 20 72 65 63 6f 72 64 0a 20 20    20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73  | ...(if.record.........(push.(lis | 
| 3ffa0 |  74 20 62 65 67 20 65 6e 64 20 66 61 63 65 29 20    6a 73 32 2d 6d 6f 64 65 2d 66 6f 6e 74 69 66 69  | t.beg.end.face).js2-mode-fontifi | 
| 3ffc0 |  63 61 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 28    70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74  | cations).......(put-text-propert | 
| 3ffe0 |  79 20 62 65 67 20 65 6e 64 20 27 66 6f 6e 74 2d    6c 6f 63 6b 2d 66 61 63 65 20 66 61 63 65 29 29  | y.beg.end.'font-lock-face.face)) | 
| 40000 |  29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73    32 2d 63 6c 65 61 72 2d 66 61 63 65 20 28 62 65  | ))..(defsubst.js2-clear-face.(be | 
| 40020 |  67 20 65 6e 64 29 0a 20 20 28 72 65 6d 6f 76 65    2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73  | g.end)...(remove-text-properties | 
| 40040 |  20 62 65 67 20 65 6e 64 20 27 28 66 6f 6e 74 2d    6c 6f 63 6b 2d 66 61 63 65 20 6e 69 6c 0a 20 20  | .beg.end.'(font-lock-face.nil... | 
| 40060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 40080 |  20 20 68 65 6c 70 2d 65 63 68 6f 20 6e 69 6c 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..help-echo.nil................. | 
| 400a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 70 6f 69 6e 74 2d 65 6e 74 65 72 65  | ....................point-entere | 
| 400c0 |  64 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d.nil........................... | 
| 400e0 |  20 20 20 20 20 20 20 20 20 20 63 75 72 73 6f 72    2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e  | ..........cursor-sensor-function | 
| 40100 |  73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.nil........................... | 
| 40120 |  20 20 20 20 20 20 20 20 20 20 63 2d 69 6e 2d 73    77 73 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63  | ..........c-in-sws.nil)))..(defc | 
| 40140 |  6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 67 6c    6f 62 61 6c 2d 70 72 6f 70 73 0a 20 20 28 63 6f  | onst.js2-ecma-global-props...(co | 
| 40160 |  6e 63 61 74 20 22 5e 22 0a 20 20 20 20 20 20 20    20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20  | ncat."^"...........(regexp-opt.. | 
| 40180 |  20 20 20 20 20 20 20 20 20 20 27 28 22 49 6e 66    69 6e 69 74 79 22 20 22 4e 61 4e 22 20 22 75 6e  | ..........'("Infinity"."NaN"."un | 
| 401a0 |  64 65 66 69 6e 65 64 22 20 22 61 72 67 75 6d 65    6e 74 73 22 29 20 74 29 0a 20 20 20 20 20 20 20  | defined"."arguments").t)........ | 
| 401c0 |  20 20 20 22 24 22 29 0a 20 20 22 56 61 6c 75 65    20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74  | ..."$")..."Value.properties.of.t | 
| 401e0 |  68 65 20 45 63 6d 61 2d 32 36 32 20 47 6c 6f 62    61 6c 20 4f 62 6a 65 63 74 2e 0a 53 68 6f 77 6e  | he.Ecma-262.Global.Object..Shown | 
| 40200 |  20 61 74 20 6f 72 20 61 62 6f 76 65 20 60 6a 73    32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65 76 65  | .at.or.above.`js2-highlight-leve | 
| 40220 |  6c 27 20 32 2e 22 29 0a 0a 3b 3b 20 6d 69 67 68    74 20 77 61 6e 74 20 74 6f 20 61 64 64 20 74 68  | l'.2.")..;;.might.want.to.add.th | 
| 40240 |  65 20 6e 61 6d 65 20 22 61 72 67 75 6d 65 6e 74    73 22 20 74 6f 20 74 68 69 73 20 6c 69 73 74 3f  | e.name."arguments".to.this.list? | 
| 40260 |  0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65    63 6d 61 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 73  | .(defconst.js2-ecma-object-props | 
| 40280 |  0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20    20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70  | ...(concat."^"...........(regexp | 
| 402a0 |  2d 6f 70 74 0a 20 20 20 20 20 20 20 20 20 20 20    27 28 22 70 72 6f 74 6f 74 79 70 65 22 20 22 5f  | -opt............'("prototype"."_ | 
| 402c0 |  5f 70 72 6f 74 6f 5f 5f 22 20 22 5f 5f 70 61 72    65 6e 74 5f 5f 22 29 20 74 29 0a 20 20 20 20 20  | _proto__"."__parent__").t)...... | 
| 402e0 |  20 20 20 20 20 22 24 22 29 0a 20 20 22 56 61 6c    75 65 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66  | ....."$")..."Value.properties.of | 
| 40300 |  20 74 68 65 20 45 63 6d 61 2d 32 36 32 20 4f 62    6a 65 63 74 20 63 6f 6e 73 74 72 75 63 74 6f 72  | .the.Ecma-262.Object.constructor | 
| 40320 |  2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62    6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67  | ..Shown.at.or.above.`js2-highlig | 
| 40340 |  68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a    28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63  | ht-level'.2.")..(defconst.js2-ec | 
| 40360 |  6d 61 2d 67 6c 6f 62 61 6c 2d 66 75 6e 63 73 0a    20 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 5e 22  | ma-global-funcs...(concat...."^" | 
| 40380 |  0a 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a    20 20 20 20 27 28 22 64 65 63 6f 64 65 55 52 49  | ....(regexp-opt.....'("decodeURI | 
| 403a0 |  22 20 22 64 65 63 6f 64 65 55 52 49 43 6f 6d 70    6f 6e 65 6e 74 22 20 22 65 6e 63 6f 64 65 55 52  | "."decodeURIComponent"."encodeUR | 
| 403c0 |  49 22 20 22 65 6e 63 6f 64 65 55 52 49 43 6f 6d    70 6f 6e 65 6e 74 22 0a 20 20 20 20 20 20 22 65  | I"."encodeURIComponent"......."e | 
| 403e0 |  76 61 6c 22 20 22 69 73 46 69 6e 69 74 65 22 20    22 69 73 4e 61 4e 22 20 22 70 61 72 73 65 46 6c  | val"."isFinite"."isNaN"."parseFl | 
| 40400 |  6f 61 74 22 20 22 70 61 72 73 65 49 6e 74 22 29    20 74 29 0a 20 20 20 22 24 22 29 0a 20 20 22 46  | oat"."parseInt").t)...."$")..."F | 
| 40420 |  75 6e 63 74 69 6f 6e 20 70 72 6f 70 65 72 74 69    65 73 20 6f 66 20 74 68 65 20 45 63 6d 61 2d 32  | unction.properties.of.the.Ecma-2 | 
| 40440 |  36 32 20 47 6c 6f 62 61 6c 20 6f 62 6a 65 63 74    2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62  | 62.Global.object..Shown.at.or.ab | 
| 40460 |  6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67    68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a  | ove.`js2-highlight-level'.2.").. | 
| 40480 |  28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63    6d 61 2d 6e 75 6d 62 65 72 2d 70 72 6f 70 73 0a  | (defconst.js2-ecma-number-props. | 
| 404a0 |  20 20 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20    20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d  | ..(concat."^"...........(regexp- | 
| 404c0 |  6f 70 74 20 27 28 22 4d 41 58 5f 56 41 4c 55 45    22 20 22 4d 49 4e 5f 56 41 4c 55 45 22 20 22 4e  | opt.'("MAX_VALUE"."MIN_VALUE"."N | 
| 404e0 |  61 4e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 22 4e 45 47  | aN"........................."NEG | 
| 40500 |  41 54 49 56 45 5f 49 4e 46 49 4e 49 54 59 22 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ATIVE_INFINITY"................. | 
| 40520 |  20 20 20 20 20 20 20 20 22 50 4f 53 49 54 49 56    45 5f 49 4e 46 49 4e 49 54 59 22 29 20 74 29 0a  | ........"POSITIVE_INFINITY").t). | 
| 40540 |  20 20 20 20 20 20 20 20 20 20 22 24 22 29 0a 20    20 22 50 72 6f 70 65 72 74 69 65 73 20 6f 66 20  | .........."$")..."Properties.of. | 
| 40560 |  74 68 65 20 45 63 6d 61 2d 32 36 32 20 4e 75 6d    62 65 72 20 63 6f 6e 73 74 72 75 63 74 6f 72 2e  | the.Ecma-262.Number.constructor. | 
| 40580 |  0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62 6f    76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67 68  | .Shown.at.or.above.`js2-highligh | 
| 405a0 |  74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a 28    64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63 6d  | t-level'.2.")..(defconst.js2-ecm | 
| 405c0 |  61 2d 64 61 74 65 2d 70 72 6f 70 73 20 22 5e 5c    5c 28 70 61 72 73 65 5c 5c 7c 55 54 43 5c 5c 29  | a-date-props."^\\(parse\\|UTC\\) | 
| 405e0 |  24 22 0a 20 20 22 50 72 6f 70 65 72 74 69 65 73    20 6f 66 20 74 68 65 20 45 63 6d 61 2d 32 36 32  | $"..."Properties.of.the.Ecma-262 | 
| 40600 |  20 44 61 74 65 20 63 6f 6e 73 74 72 75 63 74 6f    72 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61  | .Date.constructor..Shown.at.or.a | 
| 40620 |  62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69    67 68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a  | bove.`js2-highlight-level'.2."). | 
| 40640 |  0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65    63 6d 61 2d 6d 61 74 68 2d 70 72 6f 70 73 0a 20  | .(defconst.js2-ecma-math-props.. | 
| 40660 |  20 28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20 20    20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f  | .(concat."^"...........(regexp-o | 
| 40680 |  70 74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28    22 45 22 20 22 4c 4e 31 30 22 20 22 4c 4e 32 22  | pt............'("E"."LN10"."LN2" | 
| 406a0 |  20 22 4c 4f 47 32 45 22 20 22 4c 4f 47 31 30 45    22 20 22 50 49 22 20 22 53 51 52 54 31 5f 32 22  | ."LOG2E"."LOG10E"."PI"."SQRT1_2" | 
| 406c0 |  20 22 53 51 52 54 32 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 20  | ."SQRT2")............t)......... | 
| 406e0 |  20 20 22 24 22 29 0a 20 20 22 50 72 6f 70 65 72    74 69 65 73 20 6f 66 20 74 68 65 20 45 63 6d 61  | .."$")..."Properties.of.the.Ecma | 
| 40700 |  2d 32 36 32 20 4d 61 74 68 20 6f 62 6a 65 63 74    2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61 62  | -262.Math.object..Shown.at.or.ab | 
| 40720 |  6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69 67    68 74 2d 6c 65 76 65 6c 27 20 32 2e 22 29 0a 0a  | ove.`js2-highlight-level'.2.").. | 
| 40740 |  28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 65 63    6d 61 2d 6d 61 74 68 2d 66 75 6e 63 73 0a 20 20  | (defconst.js2-ecma-math-funcs... | 
| 40760 |  28 63 6f 6e 63 61 74 20 22 5e 22 0a 20 20 20 20    20 20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70  | (concat."^"...........(regexp-op | 
| 40780 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 22    61 62 73 22 20 22 61 63 6f 73 22 20 22 61 73 69  | t............'("abs"."acos"."asi | 
| 407a0 |  6e 22 20 22 61 74 61 6e 22 20 22 61 74 61 6e 32    22 20 22 63 65 69 6c 22 20 22 63 6f 73 22 20 22  | n"."atan"."atan2"."ceil"."cos"." | 
| 407c0 |  65 78 70 22 20 22 66 6c 6f 6f 72 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 22 6c 6f 67 22 20  | exp"."floor".............."log". | 
| 407e0 |  22 6d 61 78 22 20 22 6d 69 6e 22 20 22 70 6f 77    22 20 22 72 61 6e 64 6f 6d 22 20 22 72 6f 75 6e  | "max"."min"."pow"."random"."roun | 
| 40800 |  64 22 20 22 73 69 6e 22 20 22 73 71 72 74 22 20    22 74 61 6e 22 29 20 74 29 0a 20 20 20 20 20 20  | d"."sin"."sqrt"."tan").t)....... | 
| 40820 |  20 20 20 20 22 24 22 29 0a 20 20 22 46 75 6e 63    74 69 6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20  | ...."$")..."Function.properties. | 
| 40840 |  6f 66 20 74 68 65 20 45 63 6d 61 2d 32 36 32 20    4d 61 74 68 20 6f 62 6a 65 63 74 2e 0a 53 68 6f  | of.the.Ecma-262.Math.object..Sho | 
| 40860 |  77 6e 20 61 74 20 6f 72 20 61 62 6f 76 65 20 60    6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65  | wn.at.or.above.`js2-highlight-le | 
| 40880 |  76 65 6c 27 20 32 2e 22 29 0a 0a 28 64 65 66 63    6f 6e 73 74 20 6a 73 32 2d 65 63 6d 61 2d 66 75  | vel'.2.")..(defconst.js2-ecma-fu | 
| 408a0 |  6e 63 74 69 6f 6e 2d 70 72 6f 70 73 0a 20 20 28    63 6f 6e 63 61 74 0a 20 20 20 22 5e 22 0a 20 20  | nction-props...(concat...."^"... | 
| 408c0 |  20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20    20 27 28 3b 3b 20 70 72 6f 70 65 72 74 69 65 73  | .(regexp-opt.....'(;;.properties | 
| 408e0 |  20 6f 66 20 74 68 65 20 4f 62 6a 65 63 74 20 70    72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a  | .of.the.Object.prototype.object. | 
| 40900 |  20 20 20 20 20 20 22 68 61 73 4f 77 6e 50 72 6f    70 65 72 74 79 22 20 22 69 73 50 72 6f 74 6f 74  | ......"hasOwnProperty"."isProtot | 
| 40920 |  79 70 65 4f 66 22 20 22 70 72 6f 70 65 72 74 79    49 73 45 6e 75 6d 65 72 61 62 6c 65 22 0a 20 20  | ypeOf"."propertyIsEnumerable"... | 
| 40940 |  20 20 20 20 22 74 6f 4c 6f 63 61 6c 65 53 74 72    69 6e 67 22 20 22 74 6f 53 74 72 69 6e 67 22 20  | ...."toLocaleString"."toString". | 
| 40960 |  22 76 61 6c 75 65 4f 66 22 0a 20 20 20 20 20 20    3b 3b 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66  | "valueOf".......;;.properties.of | 
| 40980 |  20 74 68 65 20 46 75 6e 63 74 69 6f 6e 20 70 72    6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a 20  | .the.Function.prototype.object.. | 
| 409a0 |  20 20 20 20 20 22 61 70 70 6c 79 22 20 22 63 61    6c 6c 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f  | ....."apply"."call".......;;.pro | 
| 409c0 |  70 65 72 74 69 65 73 20 6f 66 20 74 68 65 20 41    72 72 61 79 20 70 72 6f 74 6f 74 79 70 65 20 6f  | perties.of.the.Array.prototype.o | 
| 409e0 |  62 6a 65 63 74 0a 20 20 20 20 20 20 22 63 6f 6e    63 61 74 22 20 22 6a 6f 69 6e 22 20 22 70 6f 70  | bject......."concat"."join"."pop | 
| 40a00 |  22 20 22 70 75 73 68 22 20 22 72 65 76 65 72 73    65 22 20 22 73 68 69 66 74 22 20 22 73 6c 69 63  | "."push"."reverse"."shift"."slic | 
| 40a20 |  65 22 20 22 73 6f 72 74 22 0a 20 20 20 20 20 20    22 73 70 6c 69 63 65 22 20 22 75 6e 73 68 69 66  | e"."sort"......."splice"."unshif | 
| 40a40 |  74 22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70    65 72 74 69 65 73 20 6f 66 20 74 68 65 20 53 74  | t".......;;.properties.of.the.St | 
| 40a60 |  72 69 6e 67 20 70 72 6f 74 6f 74 79 70 65 20 6f    62 6a 65 63 74 0a 20 20 20 20 20 20 22 63 68 61  | ring.prototype.object......."cha | 
| 40a80 |  72 41 74 22 20 22 63 68 61 72 43 6f 64 65 41 74    22 20 22 66 72 6f 6d 43 68 61 72 43 6f 64 65 22  | rAt"."charCodeAt"."fromCharCode" | 
| 40aa0 |  20 22 69 6e 64 65 78 4f 66 22 20 22 6c 61 73 74    49 6e 64 65 78 4f 66 22 0a 20 20 20 20 20 20 22  | ."indexOf"."lastIndexOf"......." | 
| 40ac0 |  6c 6f 63 61 6c 65 43 6f 6d 70 61 72 65 22 20 22    6d 61 74 63 68 22 20 22 72 65 70 6c 61 63 65 22  | localeCompare"."match"."replace" | 
| 40ae0 |  20 22 73 65 61 72 63 68 22 20 22 73 70 6c 69 74    22 20 22 73 75 62 73 74 72 69 6e 67 22 0a 20 20  | ."search"."split"."substring"... | 
| 40b00 |  20 20 20 20 22 74 6f 4c 6f 63 61 6c 65 4c 6f 77    65 72 43 61 73 65 22 20 22 74 6f 4c 6f 63 61 6c  | ...."toLocaleLowerCase"."toLocal | 
| 40b20 |  65 55 70 70 65 72 43 61 73 65 22 20 22 74 6f 4c    6f 77 65 72 43 61 73 65 22 0a 20 20 20 20 20 20  | eUpperCase"."toLowerCase"....... | 
| 40b40 |  22 74 6f 55 70 70 65 72 43 61 73 65 22 0a 20 20    20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 65  | "toUpperCase".......;;.propertie | 
| 40b60 |  73 20 6f 66 20 74 68 65 20 4e 75 6d 62 65 72 20    70 72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74  | s.of.the.Number.prototype.object | 
| 40b80 |  0a 20 20 20 20 20 20 22 74 6f 45 78 70 6f 6e 65    6e 74 69 61 6c 22 20 22 74 6f 46 69 78 65 64 22  | ......."toExponential"."toFixed" | 
| 40ba0 |  20 22 74 6f 50 72 65 63 69 73 69 6f 6e 22 0a 20    20 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69  | ."toPrecision".......;;.properti | 
| 40bc0 |  65 73 20 6f 66 20 74 68 65 20 44 61 74 65 20 70    72 6f 74 6f 74 79 70 65 20 6f 62 6a 65 63 74 0a  | es.of.the.Date.prototype.object. | 
| 40be0 |  20 20 20 20 20 20 22 67 65 74 44 61 74 65 22 20    22 67 65 74 44 61 79 22 20 22 67 65 74 46 75 6c  | ......"getDate"."getDay"."getFul | 
| 40c00 |  6c 59 65 61 72 22 20 22 67 65 74 48 6f 75 72 73    22 20 22 67 65 74 4d 69 6c 6c 69 73 65 63 6f 6e  | lYear"."getHours"."getMillisecon | 
| 40c20 |  64 73 22 0a 20 20 20 20 20 20 22 67 65 74 4d 69    6e 75 74 65 73 22 20 22 67 65 74 4d 6f 6e 74 68  | ds"......."getMinutes"."getMonth | 
| 40c40 |  22 20 22 67 65 74 53 65 63 6f 6e 64 73 22 20 22    67 65 74 54 69 6d 65 22 0a 20 20 20 20 20 20 22  | "."getSeconds"."getTime"......." | 
| 40c60 |  67 65 74 54 69 6d 65 7a 6f 6e 65 4f 66 66 73 65    74 22 20 22 67 65 74 55 54 43 44 61 74 65 22 20  | getTimezoneOffset"."getUTCDate". | 
| 40c80 |  22 67 65 74 55 54 43 44 61 79 22 20 22 67 65 74    55 54 43 46 75 6c 6c 59 65 61 72 22 0a 20 20 20  | "getUTCDay"."getUTCFullYear".... | 
| 40ca0 |  20 20 20 22 67 65 74 55 54 43 48 6f 75 72 73 22    20 22 67 65 74 55 54 43 4d 69 6c 6c 69 73 65 63  | ..."getUTCHours"."getUTCMillisec | 
| 40cc0 |  6f 6e 64 73 22 20 22 67 65 74 55 54 43 4d 69 6e    75 74 65 73 22 20 22 67 65 74 55 54 43 4d 6f 6e  | onds"."getUTCMinutes"."getUTCMon | 
| 40ce0 |  74 68 22 0a 20 20 20 20 20 20 22 67 65 74 55 54    43 53 65 63 6f 6e 64 73 22 20 22 73 65 74 44 61  | th"......."getUTCSeconds"."setDa | 
| 40d00 |  74 65 22 20 22 73 65 74 46 75 6c 6c 59 65 61 72    22 20 22 73 65 74 48 6f 75 72 73 22 0a 20 20 20  | te"."setFullYear"."setHours".... | 
| 40d20 |  20 20 20 22 73 65 74 4d 69 6c 6c 69 73 65 63 6f    6e 64 73 22 20 22 73 65 74 4d 69 6e 75 74 65 73  | ..."setMilliseconds"."setMinutes | 
| 40d40 |  22 20 22 73 65 74 4d 6f 6e 74 68 22 20 22 73 65    74 53 65 63 6f 6e 64 73 22 20 22 73 65 74 54 69  | "."setMonth"."setSeconds"."setTi | 
| 40d60 |  6d 65 22 0a 20 20 20 20 20 20 22 73 65 74 55 54    43 44 61 74 65 22 20 22 73 65 74 55 54 43 46 75  | me"......."setUTCDate"."setUTCFu | 
| 40d80 |  6c 6c 59 65 61 72 22 20 22 73 65 74 55 54 43 48    6f 75 72 73 22 20 22 73 65 74 55 54 43 4d 69 6c  | llYear"."setUTCHours"."setUTCMil | 
| 40da0 |  6c 69 73 65 63 6f 6e 64 73 22 0a 20 20 20 20 20    20 22 73 65 74 55 54 43 4d 69 6e 75 74 65 73 22  | liseconds"......."setUTCMinutes" | 
| 40dc0 |  20 22 73 65 74 55 54 43 4d 6f 6e 74 68 22 20 22    73 65 74 55 54 43 53 65 63 6f 6e 64 73 22 20 22  | ."setUTCMonth"."setUTCSeconds"." | 
| 40de0 |  74 6f 44 61 74 65 53 74 72 69 6e 67 22 0a 20 20    20 20 20 20 22 74 6f 4c 6f 63 61 6c 65 44 61 74  | toDateString"......."toLocaleDat | 
| 40e00 |  65 53 74 72 69 6e 67 22 20 22 74 6f 4c 6f 63 61    6c 65 53 74 72 69 6e 67 22 20 22 74 6f 4c 6f 63  | eString"."toLocaleString"."toLoc | 
| 40e20 |  61 6c 65 54 69 6d 65 53 74 72 69 6e 67 22 0a 20    20 20 20 20 20 22 74 6f 54 69 6d 65 53 74 72 69  | aleTimeString"......."toTimeStri | 
| 40e40 |  6e 67 22 20 22 74 6f 55 54 43 53 74 72 69 6e 67    22 0a 20 20 20 20 20 20 3b 3b 20 70 72 6f 70 65  | ng"."toUTCString".......;;.prope | 
| 40e60 |  72 74 69 65 73 20 6f 66 20 74 68 65 20 52 65 67    45 78 70 20 70 72 6f 74 6f 74 79 70 65 20 6f 62  | rties.of.the.RegExp.prototype.ob | 
| 40e80 |  6a 65 63 74 0a 20 20 20 20 20 20 22 65 78 65 63    22 20 22 74 65 73 74 22 0a 20 20 20 20 20 20 3b  | ject......."exec"."test".......; | 
| 40ea0 |  3b 20 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20    74 68 65 20 4a 53 4f 4e 20 70 72 6f 74 6f 74 79  | ;.properties.of.the.JSON.prototy | 
| 40ec0 |  70 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20    22 70 61 72 73 65 22 20 22 73 74 72 69 6e 67 69  | pe.object......."parse"."stringi | 
| 40ee0 |  66 79 22 0a 20 20 20 20 20 20 3b 3b 20 53 70 69    64 65 72 4d 6f 6e 6b 65 79 2f 52 68 69 6e 6f 20  | fy".......;;.SpiderMonkey/Rhino. | 
| 40f00 |  65 78 74 65 6e 73 69 6f 6e 73 2c 20 76 65 72 73    69 6f 6e 73 20 31 2e 35 2b 0a 20 20 20 20 20 20  | extensions,.versions.1.5+....... | 
| 40f20 |  22 74 6f 53 6f 75 72 63 65 22 20 22 5f 5f 64 65    66 69 6e 65 47 65 74 74 65 72 5f 5f 22 20 22 5f  | "toSource"."__defineGetter__"."_ | 
| 40f40 |  5f 64 65 66 69 6e 65 53 65 74 74 65 72 5f 5f 22    0a 20 20 20 20 20 20 22 5f 5f 6c 6f 6f 6b 75 70  | _defineSetter__"......."__lookup | 
| 40f60 |  47 65 74 74 65 72 5f 5f 22 20 22 5f 5f 6c 6f 6f    6b 75 70 53 65 74 74 65 72 5f 5f 22 20 22 5f 5f  | Getter__"."__lookupSetter__"."__ | 
| 40f80 |  6e 6f 53 75 63 68 4d 65 74 68 6f 64 5f 5f 22 0a    20 20 20 20 20 20 22 65 76 65 72 79 22 20 22 66  | noSuchMethod__"......."every"."f | 
| 40fa0 |  69 6c 74 65 72 22 20 22 66 6f 72 45 61 63 68 22    20 22 6c 61 73 74 49 6e 64 65 78 4f 66 22 20 22  | ilter"."forEach"."lastIndexOf"." | 
| 40fc0 |  6d 61 70 22 20 22 73 6f 6d 65 22 29 0a 20 20 20    20 74 29 0a 20 20 20 22 24 22 29 0a 20 20 22 42  | map"."some").....t)...."$")..."B | 
| 40fe0 |  75 69 6c 74 2d 69 6e 20 66 75 6e 63 74 69 6f 6e    73 20 64 65 66 69 6e 65 64 20 62 79 20 45 63 6d  | uilt-in.functions.defined.by.Ecm | 
| 41000 |  61 2d 32 36 32 20 61 6e 64 20 53 70 69 64 65 72    4d 6f 6e 6b 65 79 20 65 78 74 65 6e 73 69 6f 6e  | a-262.and.SpiderMonkey.extension | 
| 41020 |  73 2e 0a 53 68 6f 77 6e 20 61 74 20 6f 72 20 61    62 6f 76 65 20 60 6a 73 32 2d 68 69 67 68 6c 69  | s..Shown.at.or.above.`js2-highli | 
| 41040 |  67 68 74 2d 6c 65 76 65 6c 27 20 33 2e 22 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73  | ght-level'.3.")..(defun.js2-pars | 
| 41060 |  65 2d 68 69 67 68 6c 69 67 68 74 2d 70 72 6f 70    2d 67 65 74 20 28 70 61 72 65 6e 74 20 74 61 72  | e-highlight-prop-get.(parent.tar | 
| 41080 |  67 65 74 20 70 72 6f 70 20 63 61 6c 6c 2d 70 29    0a 20 20 28 6c 65 74 20 28 28 74 61 72 67 65 74  | get.prop.call-p)...(let.((target | 
| 410a0 |  2d 6e 61 6d 65 20 28 61 6e 64 20 74 61 72 67 65    74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -name.(and.target............... | 
| 410c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 74 61 72  | ............(js2-name-node-p.tar | 
| 410e0 |  67 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | get)...........................( | 
| 41100 |  6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61    6d 65 20 74 61 72 67 65 74 29 29 29 0a 20 20 20  | js2-name-node-name.target))).... | 
| 41120 |  20 20 20 20 20 28 70 72 6f 70 2d 6e 61 6d 65 20    28 69 66 20 70 72 6f 70 20 28 6a 73 32 2d 6e 61  | .....(prop-name.(if.prop.(js2-na | 
| 41140 |  6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 72 6f    70 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65  | me-node-name.prop))).........(le | 
| 41160 |  76 65 6c 32 20 28 3e 3d 20 6a 73 32 2d 68 69 67    68 6c 69 67 68 74 2d 6c 65 76 65 6c 20 32 29 29  | vel2.(>=.js2-highlight-level.2)) | 
| 41180 |  0a 20 20 20 20 20 20 20 20 28 6c 65 76 65 6c 33    20 28 3e 3d 20 6a 73 32 2d 68 69 67 68 6c 69 67  | .........(level3.(>=.js2-highlig | 
| 411a0 |  68 74 2d 6c 65 76 65 6c 20 33 29 29 29 0a 20 20    20 20 28 77 68 65 6e 20 6c 65 76 65 6c 32 0a 20  | ht-level.3))).....(when.level2.. | 
| 411c0 |  20 20 20 20 20 28 6c 65 74 20 28 28 66 61 63 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69  | .....(let.((face..............(i | 
| 411e0 |  66 20 63 61 6c 6c 2d 70 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a  | f.call-p..................(cond. | 
| 41200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 28 61 6e 64 20 74 61 72 67 65 74 20 70  | ..................((and.target.p | 
| 41220 |  72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20  | rop)....................(cond... | 
| 41240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 28 61 6e 64 20 6c 65 76 65 6c 33 20 28  | ..................((and.level3.( | 
| 41260 |  73 74 72 69 6e 67 2d 6d 61 74 63 68 20 6a 73 32    2d 65 63 6d 61 2d 66 75 6e 63 74 69 6f 6e 2d 70  | string-match.js2-ecma-function-p | 
| 41280 |  72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d 65 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rops.prop-name))................ | 
| 412a0 |  20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b    2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 0a 20  | ......'font-lock-builtin-face).. | 
| 412c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 28 61 6e 64 20 74 61 72 67 65 74 2d  | ...................((and.target- | 
| 412e0 |  6e 61 6d 65 20 70 72 6f 70 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | name.prop)...................... | 
| 41300 |  28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74  | (cond.......................((st | 
| 41320 |  72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61 6d    65 20 22 44 61 74 65 22 29 0a 20 20 20 20 20 20  | ring=.target-name."Date")....... | 
| 41340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74  | .................(if.(string-mat | 
| 41360 |  63 68 20 6a 73 32 2d 65 63 6d 61 2d 64 61 74 65    2d 70 72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d 65  | ch.js2-ecma-date-props.prop-name | 
| 41380 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f  | )............................'fo | 
| 413a0 |  6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d    66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20  | nt-lock-builtin-face)).......... | 
| 413c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73    74 72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61  | .............((string=.target-na | 
| 413e0 |  6d 65 20 22 4d 61 74 68 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | me."Math")...................... | 
| 41400 |  20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61    74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 6d 61 74  | ..(if.(string-match.js2-ecma-mat | 
| 41420 |  68 2d 66 75 6e 63 73 20 70 72 6f 70 2d 6e 61 6d    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | h-funcs.prop-name).............. | 
| 41440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66    6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e  | ..............'font-lock-builtin | 
| 41460 |  2d 66 61 63 65 29 29 29 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70  | -face))))))...................(p | 
| 41480 |  72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69  | rop....................(if.(stri | 
| 414a0 |  6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63 6d    61 2d 67 6c 6f 62 61 6c 2d 66 75 6e 63 73 20 70  | ng-match.js2-ecma-global-funcs.p | 
| 414c0 |  72 6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rop-name)....................... | 
| 414e0 |  20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c    74 69 6e 2d 66 61 63 65 29 29 29 0a 20 20 20 20  | .'font-lock-builtin-face)))..... | 
| 41500 |  20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........(cond................ | 
| 41520 |  20 28 28 61 6e 64 20 74 61 72 67 65 74 20 70 72    6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .((and.target.prop)............. | 
| 41540 |  20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73  | .....(cond...................((s | 
| 41560 |  74 72 69 6e 67 3d 20 74 61 72 67 65 74 2d 6e 61    6d 65 20 22 4e 75 6d 62 65 72 22 29 0a 20 20 20  | tring=.target-name."Number").... | 
| 41580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63  | ................(if.(string-matc | 
| 415a0 |  68 20 6a 73 32 2d 65 63 6d 61 2d 6e 75 6d 62 65    72 2d 70 72 6f 70 73 20 70 72 6f 70 2d 6e 61 6d  | h.js2-ecma-number-props.prop-nam | 
| 415c0 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d  | e)........................'font- | 
| 415e0 |  6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61    63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | lock-constant-face))............ | 
| 41600 |  20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d    20 74 61 72 67 65 74 2d 6e 61 6d 65 20 22 4d 61  | .......((string=.target-name."Ma | 
| 41620 |  74 68 22 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72  | th")....................(if.(str | 
| 41640 |  69 6e 67 2d 6d 61 74 63 68 20 6a 73 32 2d 65 63    6d 61 2d 6d 61 74 68 2d 70 72 6f 70 73 20 70 72  | ing-match.js2-ecma-math-props.pr | 
| 41660 |  6f 70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | op-name)........................ | 
| 41680 |  27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74    61 6e 74 2d 66 61 63 65 29 29 29 29 0a 20 20 20  | 'font-lock-constant-face)))).... | 
| 416a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72    6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .............(prop.............. | 
| 416c0 |  20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d    6d 61 74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 6f  | ....(if.(string-match.js2-ecma-o | 
| 416e0 |  62 6a 65 63 74 2d 70 72 6f 70 73 20 70 72 6f 70    2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20  | bject-props.prop-name).......... | 
| 41700 |  20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e    74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d  | ............'font-lock-constant- | 
| 41720 |  66 61 63 65 29 29 29 29 29 29 0a 20 20 20 20 20    20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e  | face)))))).........(when.(and.(n | 
| 41740 |  6f 74 20 66 61 63 65 29 20 74 61 72 67 65 74 20    28 6e 6f 74 20 63 61 6c 6c 2d 70 29 20 70 72 6f  | ot.face).target.(not.call-p).pro | 
| 41760 |  70 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 66 61 63 65 20 27 6a 73  | p-name)...........(setq.face.'js | 
| 41780 |  32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74    79 2d 61 63 63 65 73 73 29 29 0a 20 20 20 20 20  | 2-object-property-access))...... | 
| 417a0 |  20 20 20 28 77 68 65 6e 20 66 61 63 65 0a 20 20    20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70  | ...(when.face...........(let.((p | 
| 417c0 |  6f 73 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d    70 6f 73 20 70 61 72 65 6e 74 29 20 20 3b 20 61  | os.(+.(js2-node-pos.parent)..;.a | 
| 417e0 |  62 73 6f 6c 75 74 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bsolute......................... | 
| 41800 |  28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 72    6f 70 29 29 29 29 20 3b 20 72 65 6c 61 74 69 76  | (js2-node-pos.prop)))).;.relativ | 
| 41820 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 73 65 74 2d 66 61 63 65 20 70 6f 73 0a  | e.............(js2-set-face.pos. | 
| 41840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 2b 20 70 6f 73  | ..........................(+.pos | 
| 41860 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70    72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .(js2-node-len.prop))........... | 
| 41880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    66 61 63 65 20 27 72 65 63 6f 72 64 29 29 29 29  | ................face.'record)))) | 
| 418a0 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 61 72 73 65 2d 68 69 67 68 6c 69 67 68 74 2d  | )))..(defun.js2-parse-highlight- | 
| 418c0 |  6d 65 6d 62 65 72 2d 65 78 70 72 2d 6e 6f 64 65    20 28 6e 6f 64 65 29 0a 20 20 22 50 65 72 66 6f  | member-expr-node.(node)..."Perfo | 
| 418e0 |  72 6d 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69    67 68 74 69 6e 67 20 6f 66 20 45 63 6d 61 53 63  | rm.syntax.highlighting.of.EcmaSc | 
| 41900 |  72 69 70 74 20 62 75 69 6c 74 2d 69 6e 20 70 72    6f 70 65 72 74 69 65 73 2e 0a 54 68 65 20 76 61  | ript.built-in.properties..The.va | 
| 41920 |  72 69 61 62 6c 65 20 60 6a 73 32 2d 68 69 67 68    6c 69 67 68 74 2d 6c 65 76 65 6c 27 20 67 6f 76  | riable.`js2-highlight-level'.gov | 
| 41940 |  65 72 6e 73 20 74 68 69 73 20 68 69 67 68 6c 69    67 68 74 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20  | erns.this.highlighting."...(let. | 
| 41960 |  28 66 61 63 65 20 74 61 72 67 65 74 20 70 72 6f    70 20 6e 61 6d 65 20 70 6f 73 20 65 6e 64 20 70  | (face.target.prop.name.pos.end.p | 
| 41980 |  61 72 65 6e 74 20 63 61 6c 6c 2d 70 20 63 61 6c    6c 65 65 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20  | arent.call-p.callee).....(cond.. | 
| 419a0 |  20 20 20 20 3b 3b 20 63 61 73 65 20 31 3a 20 20    73 69 6d 70 6c 65 20 6e 61 6d 65 2c 20 65 2e 67  | ....;;.case.1:..simple.name,.e.g | 
| 419c0 |  2e 20 66 6f 6f 0a 20 20 20 20 20 28 28 6a 73 32    2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64  | ..foo......((js2-name-node-p.nod | 
| 419e0 |  65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e    61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f  | e).......(setq.name.(js2-name-no | 
| 41a00 |  64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 3b 3b 20 70 6f 73 73 69 62 6c 65  | de-name.node)).......;;.possible | 
| 41a20 |  20 66 6f 72 20 6e 61 6d 65 20 74 6f 20 62 65 20    6e 69 6c 20 69 6e 20 72 61 72 65 20 63 61 73 65  | .for.name.to.be.nil.in.rare.case | 
| 41a40 |  73 20 2d 20 73 61 77 20 69 74 20 77 68 65 6e 0a    20 20 20 20 20 20 3b 3b 20 72 75 6e 6e 69 6e 67  | s.-.saw.it.when.......;;.running | 
| 41a60 |  20 6a 73 32 2d 6d 6f 64 65 20 6f 6e 20 61 6e 20    65 6c 69 73 70 20 62 75 66 66 65 72 2e 20 20 4d  | .js2-mode.on.an.elisp.buffer...M | 
| 41a80 |  69 67 68 74 20 61 73 20 77 65 6c 6c 20 74 72 79    20 74 6f 0a 20 20 20 20 20 20 3b 3b 20 6d 61 6b  | ight.as.well.try.to.......;;.mak | 
| 41aa0 |  65 20 69 74 20 73 6f 20 6a 73 32 2d 6d 6f 64 65    20 6e 65 76 65 72 20 62 61 72 66 73 2e 0a 20 20  | e.it.so.js2-mode.never.barfs.... | 
| 41ac0 |  20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65 0a 20    20 20 20 20 20 20 20 28 73 65 74 71 20 66 61 63  | ....(when.name.........(setq.fac | 
| 41ae0 |  65 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61    74 63 68 20 6a 73 32 2d 65 63 6d 61 2d 67 6c 6f  | e.(if.(string-match.js2-ecma-glo | 
| 41b00 |  62 61 6c 2d 70 72 6f 70 73 20 6e 61 6d 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bal-props.name)................. | 
| 41b20 |  20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63    6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29  | .......'font-lock-constant-face) | 
| 41b40 |  29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28  | ).........(when.face...........( | 
| 41b60 |  73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 6e 6f 64 65 29 0a 20 20 20  | setq.pos.(js2-node-pos.node).... | 
| 41b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64    20 28 2b 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64  | .............end.(+.pos.(js2-nod | 
| 41ba0 |  65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74  | e-len.node)))...........(js2-set | 
| 41bc0 |  2d 66 61 63 65 20 70 6f 73 20 65 6e 64 20 66 61    63 65 20 27 72 65 63 6f 72 64 29 29 29 29 0a 20  | -face.pos.end.face.'record)))).. | 
| 41be0 |  20 20 20 20 3b 3b 20 63 61 73 65 20 32 3a 20 20    70 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 20  | ....;;.case.2:..property.access. | 
| 41c00 |  6f 72 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c    0a 20 20 20 20 20 28 28 6f 72 20 28 6a 73 32 2d  | or.function.call......((or.(js2- | 
| 41c20 |  70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20    6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  | prop-get-node-p.node)........... | 
| 41c40 |  3b 3b 20 68 69 67 68 6c 69 67 68 74 20 66 75 6e    63 74 69 6f 6e 20 63 61 6c 6c 20 69 66 20 65 78  | ;;.highlight.function.call.if.ex | 
| 41c60 |  70 72 20 69 73 20 61 20 70 72 6f 70 2d 67 65 74    20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20  | pr.is.a.prop-get.node........... | 
| 41c80 |  3b 3b 20 6f 72 20 61 20 70 6c 61 69 6e 20 6e 61    6d 65 20 28 69 2e 65 2e 20 75 6e 71 75 61 6c 69  | ;;.or.a.plain.name.(i.e..unquali | 
| 41ca0 |  66 69 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61    6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 61  | fied.function.call)...........(a | 
| 41cc0 |  6e 64 20 28 73 65 74 71 20 63 61 6c 6c 2d 70 20    28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70  | nd.(setq.call-p.(js2-call-node-p | 
| 41ce0 |  20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 63 61 6c  | .node))................(setq.cal | 
| 41d00 |  6c 65 65 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f    64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65 29 29  | lee.(js2-call-node-target.node)) | 
| 41d20 |  20 3b 20 73 65 70 61 72 61 74 65 20 73 65 74 71    21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .;.separate.setq!............... | 
| 41d40 |  20 28 6f 72 20 28 6a 73 32 2d 70 72 6f 70 2d 67    65 74 2d 6e 6f 64 65 2d 70 20 63 61 6c 6c 65 65  | .(or.(js2-prop-get-node-p.callee | 
| 41d60 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e  | )....................(js2-name-n | 
| 41d80 |  6f 64 65 2d 70 20 63 61 6c 6c 65 65 29 29 29 29    0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72  | ode-p.callee)))).......(setq.par | 
| 41da0 |  65 6e 74 20 6e 6f 64 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 6e 6f 64 65 20 28 69 66 20 63 61  | ent.node.............node.(if.ca | 
| 41dc0 |  6c 6c 2d 70 20 63 61 6c 6c 65 65 20 6e 6f 64 65    29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e  | ll-p.callee.node)).......(if.(an | 
| 41de0 |  64 20 63 61 6c 6c 2d 70 20 28 6a 73 32 2d 6e 61    6d 65 2d 6e 6f 64 65 2d 70 20 63 61 6c 6c 65 65  | d.call-p.(js2-name-node-p.callee | 
| 41e00 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 70 72 6f 70 20 63 61 6c 6c 65 65 29 0a  | ))...........(setq.prop.callee). | 
| 41e20 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61    72 67 65 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67  | ........(setq.target.(js2-prop-g | 
| 41e40 |  65 74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | et-node-left.node).............. | 
| 41e60 |  20 70 72 6f 70 20 28 6a 73 32 2d 70 72 6f 70 2d    67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e  | .prop.(js2-prop-get-node-right.n | 
| 41e80 |  6f 64 65 29 29 29 0a 20 20 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d  | ode))).......(cond........((js2- | 
| 41ea0 |  6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 70 72 6f 70    29 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73  | name-node-p.prop).........;;.cas | 
| 41ec0 |  65 20 32 28 61 26 63 29 3a 20 20 73 69 6d 70 6c    65 20 6f 72 20 63 6f 6d 70 6c 65 78 20 74 61 72  | e.2(a&c):..simple.or.complex.tar | 
| 41ee0 |  67 65 74 2c 20 73 69 6d 70 6c 65 20 6e 61 6d 65    2c 20 65 2e 67 2e 20 78 5b 79 5d 2e 62 61 72 0a  | get,.simple.name,.e.g..x[y].bar. | 
| 41f00 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72    73 65 2d 68 69 67 68 6c 69 67 68 74 2d 70 72 6f  | ........(js2-parse-highlight-pro | 
| 41f20 |  70 2d 67 65 74 20 70 61 72 65 6e 74 20 74 61 72    67 65 74 20 70 72 6f 70 20 63 61 6c 6c 2d 70 29  | p-get.parent.target.prop.call-p) | 
| 41f40 |  29 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6e    61 6d 65 2d 6e 6f 64 65 2d 70 20 74 61 72 67 65  | )........((js2-name-node-p.targe | 
| 41f60 |  74 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 61    73 65 20 32 62 3a 20 20 73 69 6d 70 6c 65 20 74  | t).........;;.case.2b:..simple.t | 
| 41f80 |  61 72 67 65 74 2c 20 63 6f 6d 70 6c 65 78 20 6e    61 6d 65 2c 20 65 2e 67 2e 20 66 6f 6f 2e 78 5b  | arget,.complex.name,.e.g..foo.x[ | 
| 41fa0 |  79 5d 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d    70 61 72 73 65 2d 68 69 67 68 6c 69 67 68 74 2d  | y].........(js2-parse-highlight- | 
| 41fc0 |  70 72 6f 70 2d 67 65 74 20 70 61 72 65 6e 74 20    74 61 72 67 65 74 20 6e 69 6c 20 63 61 6c 6c 2d  | prop-get.parent.target.nil.call- | 
| 41fe0 |  70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 68 69 67 68 6c  | p)))))))..(defun.js2-parse-highl | 
| 42000 |  69 67 68 74 2d 6d 65 6d 62 65 72 2d 65 78 70 72    2d 66 6e 2d 6e 61 6d 65 20 28 65 78 70 72 29 0a  | ight-member-expr-fn-name.(expr). | 
| 42020 |  20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65    20 60 62 61 7a 27 20 69 6e 20 66 75 6e 63 74 69  | .."Highlight.the.`baz'.in.functi | 
| 42040 |  6f 6e 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 28 61    72 67 73 29 20 7b 2e 2e 2e 7d 2e 0a 54 68 69 73  | on.foo.bar.baz(args).{...}..This | 
| 42060 |  20 69 73 20 65 78 70 65 72 69 6d 65 6e 74 61 6c    20 52 68 69 6e 6f 20 73 79 6e 74 61 78 2e 20 20  | .is.experimental.Rhino.syntax... | 
| 42080 |  45 58 50 52 20 69 73 20 74 68 65 20 66 6f 6f 2e    62 61 72 2e 62 61 7a 20 6d 65 6d 62 65 72 20 65  | EXPR.is.the.foo.bar.baz.member.e | 
| 420a0 |  78 70 72 2e 0a 57 65 20 63 75 72 72 65 6e 74 6c    79 20 6f 6e 6c 79 20 68 61 6e 64 6c 65 20 74 68  | xpr..We.currently.only.handle.th | 
| 420c0 |  65 20 63 61 73 65 20 77 68 65 72 65 20 74 68 65    20 6c 61 73 74 20 63 6f 6d 70 6f 6e 65 6e 74 20  | e.case.where.the.last.component. | 
| 420e0 |  69 73 20 61 20 70 72 6f 70 2d 67 65 74 0a 6f 66    20 61 20 73 69 6d 70 6c 65 20 6e 61 6d 65 2e 20  | is.a.prop-get.of.a.simple.name.. | 
| 42100 |  20 43 61 6c 6c 65 64 20 62 65 66 6f 72 65 20 45    58 50 52 20 68 61 73 20 61 20 70 61 72 65 6e 74  | .Called.before.EXPR.has.a.parent | 
| 42120 |  20 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28    70 6f 73 0a 20 20 20 20 20 20 20 20 28 6e 61 6d  | .node."...(let.(pos.........(nam | 
| 42140 |  65 20 28 61 6e 64 20 28 6a 73 32 2d 70 72 6f 70    2d 67 65 74 2d 6e 6f 64 65 2d 70 20 65 78 70 72  | e.(and.(js2-prop-get-node-p.expr | 
| 42160 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 70 72 6f 70 2d 67  | )....................(js2-prop-g | 
| 42180 |  65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 65 78    70 72 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e  | et-node-right.expr)))).....(when | 
| 421a0 |  20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d    70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 6a  | .(js2-name-node-p.name).......(j | 
| 421c0 |  73 32 2d 73 65 74 2d 66 61 63 65 20 28 73 65 74    71 20 70 6f 73 20 28 2b 20 28 6a 73 32 2d 6e 6f  | s2-set-face.(setq.pos.(+.(js2-no | 
| 421e0 |  64 65 2d 70 6f 73 20 65 78 70 72 29 20 20 3b 20    70 61 72 65 6e 74 20 69 73 20 61 62 73 6f 6c 75  | de-pos.expr)..;.parent.is.absolu | 
| 42200 |  74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | te.............................. | 
| 42220 |  20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f    73 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20  | ....(js2-node-pos.name)))....... | 
| 42240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b    20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c  | ..............(+.pos.(js2-node-l | 
| 42260 |  65 6e 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66  | en.name)).....................'f | 
| 42280 |  6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f    6e 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 20 20  | ont-lock-function-name-face..... | 
| 422a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    27 72 65 63 6f 72 64 29 29 29 29 0a 0a 3b 3b 20  | ................'record))))..;;. | 
| 422c0 |  73 6f 75 72 63 65 3a 20 20 68 74 74 70 3a 2f 2f    6a 73 64 6f 63 2e 73 6f 75 72 63 65 66 6f 72 67  | source:..http://jsdoc.sourceforg | 
| 422e0 |  65 2e 6e 65 74 2f 0a 3b 3b 20 4e 6f 74 65 20 2d    20 74 68 69 73 20 73 79 6e 74 61 78 20 69 73 20  | e.net/.;;.Note.-.this.syntax.is. | 
| 42300 |  66 6f 72 20 47 6f 6f 67 6c 65 27 73 20 65 6e 68    61 6e 63 65 64 20 6a 73 64 6f 63 20 70 61 72 73  | for.Google's.enhanced.jsdoc.pars | 
| 42320 |  65 72 20 74 68 61 74 0a 3b 3b 20 61 6c 6c 6f 77    73 20 74 79 70 65 20 73 70 65 63 69 66 69 63 61  | er.that.;;.allows.type.specifica | 
| 42340 |  74 69 6f 6e 73 2c 20 61 6e 64 20 6e 65 65 64 73    20 77 6f 72 6b 20 62 65 66 6f 72 65 20 65 6e 74  | tions,.and.needs.work.before.ent | 
| 42360 |  65 72 69 6e 67 20 74 68 65 20 77 69 6c 64 2e 0a    0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a  | ering.the.wild...(defconst.js2-j | 
| 42380 |  73 64 6f 63 2d 70 61 72 61 6d 2d 74 61 67 2d 72    65 67 65 78 70 0a 20 20 28 63 6f 6e 63 61 74 20  | sdoc-param-tag-regexp...(concat. | 
| 423a0 |  22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a    5c 5c 28 40 22 0a 20 20 20 20 20 20 20 20 20 20  | "^\\s-*\\*+\\s-*\\(@"........... | 
| 423c0 |  28 72 65 67 65 78 70 2d 6f 70 74 20 27 28 22 70    61 72 61 6d 22 20 22 61 72 67 22 20 22 61 72 67  | (regexp-opt.'("param"."arg"."arg | 
| 423e0 |  75 6d 65 6e 74 22 20 22 70 72 6f 70 22 20 22 70    72 6f 70 65 72 74 79 22 20 22 74 79 70 65 64 65  | ument"."prop"."property"."typede | 
| 42400 |  66 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 22    5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 22  | f"))..........."\\)"..........." | 
| 42420 |  5c 5c 73 2d 2a 5c 5c 28 7b 5b 5e 7d 5d 2b 7d 5c    5c 29 3f 22 20 20 20 20 20 20 20 20 20 3b 20 6f  | \\s-*\\({[^}]+}\\)?".........;.o | 
| 42440 |  70 74 69 6f 6e 61 6c 20 74 79 70 65 0a 20 20 20    20 20 20 20 20 20 20 22 5c 5c 73 2d 2a 5c 5c 5b  | ptional.type..........."\\s-*\\[ | 
| 42460 |  3f 5c 5c 28 5b 5b 3a 61 6c 6e 75 6d 3a 5d 5f 24    5c 2e 5d 2b 5c 5c 29 3f 5c 5c 5d 3f 22 20 20 3b  | ?\\([[:alnum:]_$\.]+\\)?\\]?"..; | 
| 42480 |  20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20    22 5c 5c 5f 3e 22 29 0a 20 20 22 4d 61 74 63 68  | .name..........."\\_>")..."Match | 
| 424a0 |  65 73 20 6a 73 64 6f 63 20 74 61 67 73 20 77 69    74 68 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65  | es.jsdoc.tags.with.optional.type | 
| 424c0 |  20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 70 61    72 61 6d 20 6e 61 6d 65 2e 22 29 0a 0a 28 64 65  | .and.optional.param.name.")..(de | 
| 424e0 |  66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63    2d 74 79 70 65 64 2d 74 61 67 2d 72 65 67 65 78  | fconst.js2-jsdoc-typed-tag-regex | 
| 42500 |  70 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 5c 5c    73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a 5c 5c 28 40  | p...(concat."^\\s-*\\*+\\s-*\\(@ | 
| 42520 |  5c 5c 28 3f 3a 22 0a 20 20 20 20 20 20 20 20 20    20 28 72 65 67 65 78 70 2d 6f 70 74 0a 20 20 20  | \\(?:"...........(regexp-opt.... | 
| 42540 |  20 20 20 20 20 20 20 20 27 28 22 65 6e 75 6d 22    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65  | ........'("enum".............."e | 
| 42560 |  78 74 65 6e 64 73 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 66 69 65 6c 64 22 0a 20 20 20  | xtends".............."field".... | 
| 42580 |  20 20 20 20 20 20 20 20 20 20 22 69 64 22 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 22 69 6d 70  | .........."id".............."imp | 
| 425a0 |  6c 65 6d 65 6e 74 73 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 22 6c 65 6e 64 73 22 0a 20 20  | lements".............."lends"... | 
| 425c0 |  20 20 20 20 20 20 20 20 20 20 20 22 6d 6f 64 73    22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | ..........."mods".............." | 
| 425e0 |  72 65 71 75 69 72 65 73 22 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 22 72 65 74 75 72 6e 22 0a  | requires".............."return". | 
| 42600 |  20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65    74 75 72 6e 73 22 0a 20 20 20 20 20 20 20 20 20  | ............."returns".......... | 
| 42620 |  20 20 20 20 22 79 69 65 6c 64 22 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 22 79 69 65 6c 64 73  | ...."yield".............."yields | 
| 42640 |  22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22    74 79 70 65 22 0a 20 20 20 20 20 20 20 20 20 20  | ".............."type"........... | 
| 42660 |  20 20 20 22 74 68 72 6f 77 22 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 22 74 68 72 6f 77 73 22  | ..."throw".............."throws" | 
| 42680 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c    29 5c 5c 29 5c 5c 73 2d 2a 5c 5c 28 7b 5b 5e 7d  | ))..........."\\)\\)\\s-*\\({[^} | 
| 426a0 |  5d 2b 7d 5c 5c 29 3f 22 29 0a 20 20 22 4d 61 74    63 68 65 73 20 6a 73 64 6f 63 20 74 61 67 73 20  | ]+}\\)?")..."Matches.jsdoc.tags. | 
| 426c0 |  77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 20 74 79    70 65 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74  | with.optional.type.")..(defconst | 
| 426e0 |  20 6a 73 32 2d 6a 73 64 6f 63 2d 61 72 67 2d 74    61 67 2d 72 65 67 65 78 70 0a 20 20 28 63 6f 6e  | .js2-jsdoc-arg-tag-regexp...(con | 
| 42700 |  63 61 74 20 22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c    5c 73 2d 2a 5c 5c 28 40 5c 5c 28 3f 3a 22 0a 20  | cat."^\\s-*\\*+\\s-*\\(@\\(?:".. | 
| 42720 |  20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70    2d 6f 70 74 0a 20 20 20 20 20 20 20 20 20 20 20  | .........(regexp-opt............ | 
| 42740 |  27 28 22 61 6c 69 61 73 22 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 22 61 75 67 6d 65 6e 74 73  | '("alias".............."augments | 
| 42760 |  22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22    62 6f 72 72 6f 77 73 22 0a 20 20 20 20 20 20 20  | ".............."borrows"........ | 
| 42780 |  20 20 20 20 20 20 22 63 61 6c 6c 62 61 63 6b 22    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62  | ......"callback".............."b | 
| 427a0 |  75 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 22 62 61 73 65 22 0a 20 20 20 20 20 20 20 20  | ug".............."base"......... | 
| 427c0 |  20 20 20 20 20 22 63 6f 6e 66 69 67 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 22 64 65 66 61  | ....."config".............."defa | 
| 427e0 |  75 6c 74 22 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 22 64 65 66 69 6e 65 22 0a 20 20 20 20 20  | ult".............."define"...... | 
| 42800 |  20 20 20 20 20 20 20 20 22 65 78 63 65 70 74 69    6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ........"exception"............. | 
| 42820 |  20 22 66 75 6e 63 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 66 75 6e 63 74 69 6f 6e 22 0a  | ."func".............."function". | 
| 42840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 22 6d 65    6d 62 65 72 22 0a 20 20 20 20 20 20 20 20 20 20  | ............."member"........... | 
| 42860 |  20 20 20 22 6d 65 6d 62 65 72 4f 66 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 22 6d 65 74 68  | ..."memberOf".............."meth | 
| 42880 |  6f 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 22 6d 6f 64 75 6c 65 22 0a 20 20 20 20 20 20  | od".............."module"....... | 
| 428a0 |  20 20 20 20 20 20 20 22 6e 61 6d 65 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65  | ......."name".............."name | 
| 428c0 |  73 70 61 63 65 22 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 22 73 69 6e 63 65 22 0a 20 20 20 20  | space".............."since"..... | 
| 428e0 |  20 20 20 20 20 20 20 20 20 22 73 75 70 70 72 65    73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ........."suppress"............. | 
| 42900 |  20 22 74 68 69 73 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 74 68 72 6f 77 73 22 0a 20 20  | ."this".............."throws"... | 
| 42920 |  20 20 20 20 20 20 20 20 20 20 20 22 76 65 72 73    69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20  | ..........."version")).......... | 
| 42940 |  20 22 5c 5c 29 5c 5c 29 5c 5c 73 2d 2b 5c 5c 28    5b 5e 20 5c 74 5c 6e 5d 2b 5c 5c 29 22 29 0a 20  | ."\\)\\)\\s-+\\([^.\t\n]+\\)").. | 
| 42960 |  20 22 4d 61 74 63 68 65 73 20 6a 73 64 6f 63 20    74 61 67 73 20 77 69 74 68 20 61 20 73 69 6e 67  | ."Matches.jsdoc.tags.with.a.sing | 
| 42980 |  6c 65 20 61 72 67 75 6d 65 6e 74 2e 22 29 0a 0a    28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 6a 73  | le.argument.")..(defconst.js2-js | 
| 429a0 |  64 6f 63 2d 65 6d 70 74 79 2d 74 61 67 2d 72 65    67 65 78 70 0a 20 20 28 63 6f 6e 63 61 74 20 22  | doc-empty-tag-regexp...(concat." | 
| 429c0 |  5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d 2a 5c    5c 28 40 5c 5c 28 3f 3a 22 0a 20 20 20 20 20 20  | ^\\s-*\\*+\\s-*\\(@\\(?:"....... | 
| 429e0 |  20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74 0a    20 20 20 20 20 20 20 20 20 20 20 27 28 22 61 62  | ....(regexp-opt............'("ab | 
| 42a00 |  73 74 72 61 63 74 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 61 64 64 6f 6e 22 0a 20 20 20  | stract".............."addon".... | 
| 42a20 |  20 20 20 20 20 20 20 20 20 20 22 61 75 74 68 6f    72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........."author".............. | 
| 42a40 |  22 63 6c 61 73 73 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 63 6f 6e 73 74 22 0a 20 20 20  | "class".............."const".... | 
| 42a60 |  20 20 20 20 20 20 20 20 20 20 22 63 6f 6e 73 74    61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20  | .........."constant"............ | 
| 42a80 |  20 20 22 63 6f 6e 73 74 72 75 63 74 6f 72 22 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6f  | .."constructor".............."co | 
| 42aa0 |  6e 73 74 72 75 63 74 73 22 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 22 64 65 70 72 65 63 61 74  | nstructs".............."deprecat | 
| 42ac0 |  65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 22 64 65 73 63 22 0a 20 20 20 20 20 20 20 20  | ed".............."desc"......... | 
| 42ae0 |  20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f    6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....."description".............. | 
| 42b00 |  22 65 76 65 6e 74 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 65 78 61 6d 70 6c 65 22 0a 20  | "event".............."example".. | 
| 42b20 |  20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 65    63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............"exec".............. | 
| 42b40 |  22 65 78 70 6f 72 74 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 22 66 69 6c 65 6f 76 65 72 76  | "export".............."fileoverv | 
| 42b60 |  69 65 77 22 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 22 66 69 6e 61 6c 22 0a 20 20 20 20 20 20  | iew".............."final"....... | 
| 42b80 |  20 20 20 20 20 20 20 22 66 75 6e 63 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 22 66 75 6e 63  | ......."func".............."func | 
| 42ba0 |  74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 22 68 69 64 64 65 6e 22 0a 20 20 20 20  | tion".............."hidden"..... | 
| 42bc0 |  20 20 20 20 20 20 20 20 20 22 69 67 6e 6f 72 65    22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | ........."ignore".............." | 
| 42be0 |  69 6d 70 6c 69 63 69 74 43 61 73 74 22 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 22 69 6e 68 65  | implicitCast".............."inhe | 
| 42c00 |  72 69 74 44 6f 63 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 22 69 6e 6e 65 72 22 0a 20 20 20  | ritDoc".............."inner".... | 
| 42c20 |  20 20 20 20 20 20 20 20 20 20 22 69 6e 74 65 72    66 61 63 65 22 0a 20 20 20 20 20 20 20 20 20 20  | .........."interface"........... | 
| 42c40 |  20 20 20 22 6c 69 63 65 6e 73 65 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 22 6d 65 74 68 6f  | ..."license".............."metho | 
| 42c60 |  64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    22 6e 6f 61 6c 69 61 73 22 0a 20 20 20 20 20 20  | d".............."noalias"....... | 
| 42c80 |  20 20 20 20 20 20 20 22 6e 6f 73 68 61 64 6f 77    22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | ......."noshadow".............." | 
| 42ca0 |  6e 6f 74 79 70 65 63 68 65 63 6b 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 22 6f 76 65 72 72  | notypecheck".............."overr | 
| 42cc0 |  69 64 65 22 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 22 6f 77 6e 65 72 22 0a 20 20 20 20 20 20  | ide".............."owner"....... | 
| 42ce0 |  20 20 20 20 20 20 20 22 70 72 65 73 65 72 76 65    22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | ......."preserve".............." | 
| 42d00 |  70 72 65 73 65 72 76 65 54 72 79 22 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 22 70 72 69 76 61  | preserveTry".............."priva | 
| 42d20 |  74 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 22 70 72 6f 74 65 63 74 65 64 22 0a 20 20 20  | te".............."protected".... | 
| 42d40 |  20 20 20 20 20 20 20 20 20 20 22 70 75 62 6c 69    63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........."public".............. | 
| 42d60 |  22 73 74 61 74 69 63 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 22 73 75 70 70 6f 72 74 65 64  | "static".............."supported | 
| 42d80 |  22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22    76 69 72 74 75 61 6c 22 0a 20 20 20 20 20 20 20  | ".............."virtual"........ | 
| 42da0 |  20 20 20 20 20 20 29 29 0a 20 20 20 20 20 20 20    20 20 20 22 5c 5c 29 5c 5c 29 5c 5c 73 2d 2a 22  | ......))..........."\\)\\)\\s-*" | 
| 42dc0 |  29 0a 20 20 22 4d 61 74 63 68 65 73 20 65 6d 70    74 79 20 6a 73 64 6f 63 20 74 61 67 73 2e 22 29  | )..."Matches.empty.jsdoc.tags.") | 
| 42de0 |  0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d    6a 73 64 6f 63 2d 6c 69 6e 6b 2d 74 61 67 2d 72  | ..(defconst.js2-jsdoc-link-tag-r | 
| 42e00 |  65 67 65 78 70 0a 20 20 22 7b 5c 5c 28 40 5c 5c    28 3f 3a 6c 69 6e 6b 5c 5c 7c 63 6f 64 65 5c 5c  | egexp..."{\\(@\\(?:link\\|code\\ | 
| 42e20 |  29 5c 5c 29 5c 5c 73 2d 2b 5c 5c 28 5b 5e 23 7d    5c 6e 5d 2b 5c 5c 29 5c 5c 28 23 2e 2b 5c 5c 29  | )\\)\\s-+\\([^#}\n]+\\)\\(#.+\\) | 
| 42e40 |  3f 7d 22 0a 20 20 22 4d 61 74 63 68 65 73 20 61    20 6a 73 64 6f 63 20 6c 69 6e 6b 20 6f 72 20 63  | ?}"..."Matches.a.jsdoc.link.or.c | 
| 42e60 |  6f 64 65 20 74 61 67 2e 22 29 0a 0a 28 64 65 66    63 6f 6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d  | ode.tag.")..(defconst.js2-jsdoc- | 
| 42e80 |  73 65 65 2d 74 61 67 2d 72 65 67 65 78 70 0a 20    20 22 5e 5c 5c 73 2d 2a 5c 5c 2a 2b 5c 5c 73 2d  | see-tag-regexp..."^\\s-*\\*+\\s- | 
| 42ea0 |  2a 5c 5c 28 40 73 65 65 5c 5c 29 5c 5c 73 2d 2b    5c 5c 28 5b 5e 23 7d 5c 6e 5d 2b 5c 5c 29 5c 5c  | *\\(@see\\)\\s-+\\([^#}\n]+\\)\\ | 
| 42ec0 |  28 23 2e 2b 5c 5c 29 3f 22 0a 20 20 22 4d 61 74    63 68 65 73 20 61 20 6a 73 64 6f 63 20 40 73 65  | (#.+\\)?"..."Matches.a.jsdoc.@se | 
| 42ee0 |  65 20 74 61 67 2e 22 29 0a 0a 28 64 65 66 63 6f    6e 73 74 20 6a 73 32 2d 6a 73 64 6f 63 2d 68 74  | e.tag.")..(defconst.js2-jsdoc-ht | 
| 42f00 |  6d 6c 2d 74 61 67 2d 72 65 67 65 78 70 0a 20 20    22 5c 5c 28 3c 2f 3f 5c 5c 29 5c 5c 28 5b 5b 3a  | ml-tag-regexp..."\\(</?\\)\\([[: | 
| 42f20 |  61 6c 70 68 61 3a 5d 5d 2b 5c 5c 29 5c 5c 73 2d    2a 5c 5c 28 2f 3f 3e 5c 5c 29 22 0a 20 20 22 4d  | alpha:]]+\\)\\s-*\\(/?>\\)"..."M | 
| 42f40 |  61 74 63 68 65 73 20 61 20 73 69 6d 70 6c 65 20    28 6e 6f 20 61 74 74 72 69 62 75 74 65 73 29 20  | atches.a.simple.(no.attributes). | 
| 42f60 |  68 74 6d 6c 20 73 74 61 72 74 2d 20 6f 72 20 65    6e 64 2d 74 61 67 2e 22 29 0a 0a 28 64 65 66 75  | html.start-.or.end-tag.")..(defu | 
| 42f80 |  6e 20 6a 73 32 2d 6a 73 64 6f 63 2d 68 69 67 68    6c 69 67 68 74 2d 68 65 6c 70 65 72 20 28 29 0a  | n.js2-jsdoc-highlight-helper.(). | 
| 42fa0 |  20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20    28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67  | ..(js2-set-face.(match-beginning | 
| 42fc0 |  20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 31  | .1).................(match-end.1 | 
| 42fe0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 27 6a 73 32 2d 6a 73 64 6f 63 2d 74 61 67  | ).................'js2-jsdoc-tag | 
| 43000 |  29 0a 20 20 28 69 66 20 28 6d 61 74 63 68 2d 62    65 67 69 6e 6e 69 6e 67 20 32 29 0a 20 20 20 20  | )...(if.(match-beginning.2)..... | 
| 43020 |  20 20 28 69 66 20 28 73 61 76 65 2d 65 78 63 75    72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20  | ..(if.(save-excursion........... | 
| 43040 |  20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61    74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29  | ..(goto-char.(match-beginning.2) | 
| 43060 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3d    20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 7b  | ).............(=.(char-after).?{ | 
| 43080 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 73 65 74 2d 66 61 63 65 20 28 31 2b 20 28  | ))...........(js2-set-face.(1+.( | 
| 430a0 |  6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20    32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | match-beginning.2))............. | 
| 430c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20    28 6d 61 74 63 68 2d 65 6e 64 20 32 29 29 0a 20  | ............(1-.(match-end.2)).. | 
| 430e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64 6f  | .......................'js2-jsdo | 
| 43100 |  63 2d 74 79 70 65 29 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d  | c-type).........(js2-set-face.(m | 
| 43120 |  61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | atch-beginning.2)............... | 
| 43140 |  20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65    6e 64 20 32 29 0a 20 20 20 20 20 20 20 20 20 20  | ........(match-end.2)........... | 
| 43160 |  20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32    2d 6a 73 64 6f 63 2d 76 61 6c 75 65 29 29 29 0a  | ............'js2-jsdoc-value))). | 
| 43180 |  20 20 28 69 66 20 28 6d 61 74 63 68 2d 62 65 67    69 6e 6e 69 6e 67 20 33 29 0a 20 20 20 20 20 20  | ..(if.(match-beginning.3)....... | 
| 431a0 |  28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 6d    61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 33  | (js2-set-face.(match-beginning.3 | 
| 431c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64  | ).....................(match-end | 
| 431e0 |  20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a 73 64  | .3).....................'js2-jsd | 
| 43200 |  6f 63 2d 76 61 6c 75 65 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 68 69 67 68 6c 69 67 68  | oc-value)))..(defun.js2-highligh | 
| 43220 |  74 2d 6a 73 64 6f 63 20 28 61 73 74 29 0a 20 20    22 48 69 67 68 6c 69 67 68 74 20 64 6f 63 20 63  | t-jsdoc.(ast)..."Highlight.doc.c | 
| 43240 |  6f 6d 6d 65 6e 74 20 74 61 67 73 2e 22 0a 20 20    28 6c 65 74 20 28 28 63 6f 6d 6d 65 6e 74 73 20  | omment.tags."...(let.((comments. | 
| 43260 |  28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f    6d 6d 65 6e 74 73 20 61 73 74 29 29 0a 20 20 20  | (js2-ast-root-comments.ast)).... | 
| 43280 |  20 20 20 20 20 62 65 67 20 65 6e 64 29 0a 20 20    20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f  | .....beg.end).....(save-excursio | 
| 432a0 |  6e 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20    28 6e 6f 64 65 20 63 6f 6d 6d 65 6e 74 73 29 0a  | n.......(dolist.(node.comments). | 
| 432c0 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65    71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e  | ........(when.(eq.(js2-comment-n | 
| 432e0 |  6f 64 65 2d 66 6f 72 6d 61 74 20 6e 6f 64 65 29    20 27 6a 73 64 6f 63 29 0a 20 20 20 20 20 20 20  | ode-format.node).'jsdoc)........ | 
| 43300 |  20 20 20 3b 3b 20 53 6c 69 63 65 20 6f 66 66 20    74 68 65 20 6c 65 61 64 69 6e 67 20 2f 2a 20 61  | ...;;.Slice.off.the.leading./*.a | 
| 43320 |  6e 64 20 74 72 61 69 6c 69 6e 67 20 2a 2f 20 69    6e 20 63 61 73 65 20 74 68 65 72 65 0a 20 20 20  | nd.trailing.*/.in.case.there.... | 
| 43340 |  20 20 20 20 20 20 20 3b 3b 20 61 72 65 20 74 61    67 73 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20  | .......;;.are.tags.on.the.first. | 
| 43360 |  6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 62 65 67 20 28 2b 20 32 20 28 6a  | line...........(setq.beg.(+.2.(j | 
| 43380 |  73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20    6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20  | s2-node-abs-pos.node)).......... | 
| 433a0 |  20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 62 65    67 20 2d 34 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c  | .......end.(+.beg.-4.(js2-node-l | 
| 433c0 |  65 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72  | en.node)))...........(save-restr | 
| 433e0 |  69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65  | iction.............(narrow-to-re | 
| 43400 |  67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73  | gion.beg.end).............(dolis | 
| 43420 |  74 20 28 72 65 20 28 6c 69 73 74 20 6a 73 32 2d    6a 73 64 6f 63 2d 70 61 72 61 6d 2d 74 61 67 2d  | t.(re.(list.js2-jsdoc-param-tag- | 
| 43440 |  72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | regexp.......................... | 
| 43460 |  20 20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 74    79 70 65 64 2d 74 61 67 2d 72 65 67 65 78 70 0a  | .....js2-jsdoc-typed-tag-regexp. | 
| 43480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73  | ..............................js | 
| 434a0 |  32 2d 6a 73 64 6f 63 2d 61 72 67 2d 74 61 67 2d    72 65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20  | 2-jsdoc-arg-tag-regexp.......... | 
| 434c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 6c  | .....................js2-jsdoc-l | 
| 434e0 |  69 6e 6b 2d 74 61 67 2d 72 65 67 65 78 70 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ink-tag-regexp.................. | 
| 43500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 6a 73 64 6f 63 2d 73 65 65 2d 74 61 67 2d 72  | .............js2-jsdoc-see-tag-r | 
| 43520 |  65 67 65 78 70 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | egexp........................... | 
| 43540 |  20 20 20 20 6a 73 32 2d 6a 73 64 6f 63 2d 65 6d    70 74 79 2d 74 61 67 2d 72 65 67 65 78 70 29 29  | ....js2-jsdoc-empty-tag-regexp)) | 
| 43560 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20  | ...............(goto-char.beg).. | 
| 43580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68    69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66  | .............(while.(re-search-f | 
| 435a0 |  6f 72 77 61 72 64 20 72 65 20 6e 69 6c 20 74 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | orward.re.nil.t)................ | 
| 435c0 |  20 28 6a 73 32 2d 6a 73 64 6f 63 2d 68 69 67 68    6c 69 67 68 74 2d 68 65 6c 70 65 72 29 29 29 0a  | .(js2-jsdoc-highlight-helper))). | 
| 435e0 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73    69 6d 70 6c 65 20 68 69 67 68 6c 69 67 68 74 69  | ............;;.simple.highlighti | 
| 43600 |  6e 67 20 66 6f 72 20 68 74 6d 6c 20 74 61 67 73    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f  | ng.for.html.tags.............(go | 
| 43620 |  74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20  | to-char.beg).............(while. | 
| 43640 |  28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61    72 64 20 6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d  | (re-search-forward.js2-jsdoc-htm | 
| 43660 |  6c 2d 74 61 67 2d 72 65 67 65 78 70 20 6e 69 6c    20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | l-tag-regexp.nil.t)............. | 
| 43680 |  20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20    28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67  | ..(js2-set-face.(match-beginning | 
| 436a0 |  20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .1)............................. | 
| 436c0 |  28 6d 61 74 63 68 2d 65 6e 64 20 31 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (match-end.1)................... | 
| 436e0 |  20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 6a    73 64 6f 63 2d 68 74 6d 6c 2d 74 61 67 2d 64 65  | ..........'js2-jsdoc-html-tag-de | 
| 43700 |  6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d  | limiter)...............(js2-set- | 
| 43720 |  66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69    6e 6e 69 6e 67 20 32 29 0a 20 20 20 20 20 20 20  | face.(match-beginning.2)........ | 
| 43740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20  | .....................(match-end. | 
| 43760 |  32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27  | 2).............................' | 
| 43780 |  6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74    61 67 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20  | js2-jsdoc-html-tag-name)........ | 
| 437a0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d    66 61 63 65 20 28 6d 61 74 63 68 2d 62 65 67 69  | .......(js2-set-face.(match-begi | 
| 437c0 |  6e 6e 69 6e 67 20 33 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nning.3)........................ | 
| 437e0 |  20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20    33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....(match-end.3).............. | 
| 43800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27    6a 73 32 2d 6a 73 64 6f 63 2d 68 74 6d 6c 2d 74  | ...............'js2-jsdoc-html-t | 
| 43820 |  61 67 2d 64 65 6c 69 6d 69 74 65 72 29 29 29 29    29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | ag-delimiter))))))))..(defun.js2 | 
| 43840 |  2d 68 69 67 68 6c 69 67 68 74 2d 61 73 73 69 67    6e 2d 74 61 72 67 65 74 73 20 28 5f 6e 6f 64 65  | -highlight-assign-targets.(_node | 
| 43860 |  20 6c 65 66 74 20 72 69 67 68 74 29 0a 20 20 22    48 69 67 68 6c 69 67 68 74 20 66 75 6e 63 74 69  | .left.right)..."Highlight.functi | 
| 43880 |  6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e    64 20 65 78 74 65 72 6e 61 6c 20 76 61 72 69 61  | on.properties.and.external.varia | 
| 438a0 |  62 6c 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 6c    65 66 74 70 6f 73 20 6e 61 6d 65 29 0a 20 20 20  | bles."...(let.(leftpos.name).... | 
| 438c0 |  20 3b 3b 20 68 69 67 68 6c 69 67 68 74 20 76 61    72 73 20 61 6e 64 20 70 72 6f 70 73 20 61 73 73  | .;;.highlight.vars.and.props.ass | 
| 438e0 |  69 67 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 76    61 6c 75 65 73 0a 20 20 20 20 28 77 68 65 6e 20  | igned.function.values.....(when. | 
| 43900 |  28 6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f    6e 2d 6e 6f 64 65 2d 70 20 72 69 67 68 74 29 0a  | (or.(js2-function-node-p.right). | 
| 43920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 63 6c 61 73 73 2d 6e 6f 64 65 2d 70 20  | ..............(js2-class-node-p. | 
| 43940 |  72 69 67 68 74 29 29 0a 20 20 20 20 20 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 76 61  | right)).......(cond........;;.va | 
| 43960 |  72 20 66 6f 6f 20 3d 20 66 75 6e 63 74 69 6f 6e    28 29 20 7b 2e 2e 2e 7d 0a 20 20 20 20 20 20 20  | r.foo.=.function().{...}........ | 
| 43980 |  28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d    70 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20  | ((js2-name-node-p.left)......... | 
| 439a0 |  28 73 65 74 71 20 6e 61 6d 65 20 6c 65 66 74 29    29 0a 20 20 20 20 20 20 20 3b 3b 20 66 6f 6f 2e  | (setq.name.left))........;;.foo. | 
| 439c0 |  62 61 72 2e 62 61 7a 20 3d 20 66 75 6e 63 74 69    6f 6e 28 29 20 7b 2e 2e 2e 7d 0a 20 20 20 20 20  | bar.baz.=.function().{...}...... | 
| 439e0 |  20 20 28 28 61 6e 64 20 28 6a 73 32 2d 70 72 6f    70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6c 65 66  | ..((and.(js2-prop-get-node-p.lef | 
| 43a00 |  74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70  | t)..............(js2-name-node-p | 
| 43a20 |  20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e    6f 64 65 2d 72 69 67 68 74 20 6c 65 66 74 29 29  | .(js2-prop-get-node-right.left)) | 
| 43a40 |  29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20    6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d 67  | ).........(setq.name.(js2-prop-g | 
| 43a60 |  65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6c 65    66 74 29 29 29 29 0a 20 20 20 20 20 20 28 77 68  | et-node-right.left)))).......(wh | 
| 43a80 |  65 6e 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28 73  | en.name.........(js2-set-face.(s | 
| 43aa0 |  65 74 71 20 6c 65 66 74 70 6f 73 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 61  | etq.leftpos.(js2-node-abs-pos.na | 
| 43ac0 |  6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 2b 20 6c 65  | me)).......................(+.le | 
| 43ae0 |  66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d    6c 65 6e 20 6e 61 6d 65 29 29 0a 20 20 20 20 20  | ftpos.(js2-node-len.name))...... | 
| 43b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63  | .................'font-lock-func | 
| 43b20 |  74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tion-name-face.................. | 
| 43b40 |  20 20 20 20 20 27 72 65 63 6f 72 64 29 29 29 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65  | .....'record)))))..(defun.js2-re | 
| 43b60 |  63 6f 72 64 2d 6e 61 6d 65 2d 6e 6f 64 65 20 28    6e 6f 64 65 29 0a 20 20 22 53 61 76 65 73 20 4e  | cord-name-node.(node)..."Saves.N | 
| 43b80 |  4f 44 45 20 74 6f 20 60 6a 73 32 2d 72 65 63 6f    72 64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73  | ODE.to.`js2-recorded-identifiers | 
| 43ba0 |  27 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 75    6e 64 65 63 6c 61 72 65 64 20 76 61 72 69 61 62  | '.to.check.for.undeclared.variab | 
| 43bc0 |  6c 65 73 0a 6c 61 74 65 72 2e 20 4e 4f 44 45 20    6d 75 73 74 20 62 65 20 61 20 6e 61 6d 65 20 6e  | les.later..NODE.must.be.a.name.n | 
| 43be0 |  6f 64 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c    65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65  | ode."...(let.((leftpos.(js2-node | 
| 43c00 |  2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29    0a 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74  | -abs-pos.node))).....(push.(list | 
| 43c20 |  20 6e 6f 64 65 20 6a 73 32 2d 63 75 72 72 65 6e    74 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20  | .node.js2-current-scope......... | 
| 43c40 |  20 20 20 20 20 20 20 20 6c 65 66 74 70 6f 73 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........leftpos................. | 
| 43c60 |  28 2b 20 6c 65 66 74 70 6f 73 20 28 6a 73 32 2d    6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29  | (+.leftpos.(js2-node-len.node))) | 
| 43c80 |  0a 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 72    65 63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69  | ...........js2-recorded-identifi | 
| 43ca0 |  65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 64  | ers)))..(defun.js2-highlight-und | 
| 43cc0 |  65 63 6c 61 72 65 64 2d 76 61 72 73 20 28 29 0a    20 20 22 41 66 74 65 72 20 65 6e 74 69 72 65 20  | eclared-vars.()..."After.entire. | 
| 43ce0 |  70 61 72 73 65 20 69 73 20 66 69 6e 69 73 68 65    64 2c 20 6c 6f 6f 6b 20 66 6f 72 20 75 6e 64 65  | parse.is.finished,.look.for.unde | 
| 43d00 |  63 6c 61 72 65 64 20 76 61 72 69 61 62 6c 65 20    72 65 66 65 72 65 6e 63 65 73 2e 0a 57 65 20 68  | clared.variable.references..We.h | 
| 43d20 |  61 76 65 20 74 6f 20 77 61 69 74 20 75 6e 74 69    6c 20 65 6e 74 69 72 65 20 62 75 66 66 65 72 20  | ave.to.wait.until.entire.buffer. | 
| 43d40 |  69 73 20 70 61 72 73 65 64 2c 20 73 69 6e 63 65    20 4a 61 76 61 53 63 72 69 70 74 20 70 65 72 6d  | is.parsed,.since.JavaScript.perm | 
| 43d60 |  69 74 73 20 76 61 72 0a 64 65 63 6c 61 72 61 74    69 6f 6e 73 20 74 6f 20 6f 63 63 75 72 20 61 66  | its.var.declarations.to.occur.af | 
| 43d80 |  74 65 72 20 74 68 65 79 27 72 65 20 75 73 65 64    2e 0a 0a 53 6f 6d 65 20 69 64 65 6e 74 69 66 69  | ter.they're.used...Some.identifi | 
| 43da0 |  65 72 73 20 6d 61 79 20 62 65 20 61 73 73 75 6d    65 64 20 74 6f 20 62 65 20 65 78 74 65 72 6e 61  | ers.may.be.assumed.to.be.externa | 
| 43dc0 |  6c 6c 79 20 64 65 66 69 6e 65 64 2e 0a 54 68 65    73 65 20 65 78 74 65 72 6e 73 20 61 72 65 20 6e  | lly.defined..These.externs.are.n | 
| 43de0 |  6f 74 20 68 69 67 68 6c 69 67 68 74 65 64 2c 20    65 76 65 6e 20 69 66 20 74 68 65 72 65 20 69 73  | ot.highlighted,.even.if.there.is | 
| 43e00 |  20 6e 6f 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a    66 6f 72 20 74 68 65 6d 20 69 6e 20 74 68 65 20  | .no.declaration.for.them.in.the. | 
| 43e20 |  73 6f 75 72 63 65 20 63 6f 64 65 20 28 69 6e 20    74 68 65 20 63 75 72 72 65 6e 74 20 66 69 6c 65  | source.code.(in.the.current.file | 
| 43e40 |  29 2e 0a 0a 54 68 65 20 6c 69 73 74 20 6f 66 20    65 78 74 65 72 6e 73 20 63 6f 6e 73 69 73 74 73  | )...The.list.of.externs.consists | 
| 43e60 |  20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e    67 3a 0a 0a 20 20 2d 20 60 6a 73 32 2d 65 63 6d  | .of.the.following:....-.`js2-ecm | 
| 43e80 |  61 32 36 32 2d 65 78 74 65 72 6e 73 27 20 66 6f    72 20 62 61 73 69 63 20 6e 61 6d 65 73 20 66 72  | a262-externs'.for.basic.names.fr | 
| 43ea0 |  6f 6d 20 74 68 65 20 45 43 4d 41 53 63 72 69 70    74 20 6c 61 6e 67 75 61 67 65 20 73 74 61 6e 64  | om.the.ECMAScript.language.stand | 
| 43ec0 |  61 72 64 2e 0a 20 20 2d 20 44 65 70 65 6e 64 69    6e 67 20 6f 6e 20 74 68 65 20 62 75 66 66 65 72  | ard....-.Depending.on.the.buffer | 
| 43ee0 |  2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73    20 60 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 2a 2d  | -local.variables.`js2-include-*- | 
| 43f00 |  65 78 74 65 72 6e 73 27 0a 20 20 20 20 74 68 65    20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 60  | externs'.....the.corresponding.` | 
| 43f20 |  6a 73 32 2d 2a 2d 65 78 74 65 72 6e 73 27 20 74    6f 20 61 64 64 20 6e 61 6d 65 73 20 66 6f 72 20  | js2-*-externs'.to.add.names.for. | 
| 43f40 |  63 65 72 74 61 69 6e 20 65 6e 76 69 72 6f 6e 6d    65 6e 74 73 0a 20 20 20 20 6c 69 6b 65 20 74 68  | certain.environments.....like.th | 
| 43f60 |  65 20 62 72 6f 77 73 65 72 2c 20 4e 6f 64 65 20    6f 72 20 52 68 69 6e 6f 2e 0a 20 20 2d 20 54 77  | e.browser,.Node.or.Rhino....-.Tw | 
| 43f80 |  6f 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 6c    69 73 74 73 20 60 6a 73 32 2d 67 6c 6f 62 61 6c  | o.customizable.lists.`js2-global | 
| 43fa0 |  2d 65 78 74 65 72 6e 73 27 20 61 6e 64 20 60 6a    73 32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78  | -externs'.and.`js2-additional-ex | 
| 43fc0 |  74 65 72 6e 73 27 2c 0a 20 20 20 20 74 68 65 20    6c 61 74 74 65 72 20 6f 66 20 77 68 69 63 68 20  | terns',.....the.latter.of.which. | 
| 43fe0 |  73 68 6f 75 6c 64 20 62 65 20 73 65 74 20 70 65    72 2d 62 75 66 66 65 72 2e 0a 0a 53 65 65 20 65  | should.be.set.per-buffer...See.e | 
| 44000 |  73 70 65 63 69 61 6c 6c 79 20 60 6a 73 32 2d 61    64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72 6e  | specially.`js2-additional-extern | 
| 44020 |  73 27 20 66 6f 72 20 66 75 72 74 68 65 72 20 64    65 74 61 69 6c 73 20 61 62 6f 75 74 20 65 78 74  | s'.for.further.details.about.ext | 
| 44040 |  65 72 6e 73 2e 22 0a 20 20 28 6c 65 74 20 28 28    64 65 66 61 75 6c 74 2d 65 78 74 65 72 6e 73 0a  | erns."...(let.((default-externs. | 
| 44060 |  20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e    64 20 6a 73 32 2d 65 63 6d 61 2d 32 36 32 2d 65  | ..........(append.js2-ecma-262-e | 
| 44080 |  78 74 65 72 6e 73 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e  | xterns...................(if.(an | 
| 440a0 |  64 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 62 72    6f 77 73 65 72 2d 65 78 74 65 72 6e 73 0a 20 20  | d.js2-include-browser-externs... | 
| 440c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32  | .........................(>=.js2 | 
| 440e0 |  2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f    6e 20 32 30 30 29 29 20 6a 73 32 2d 68 61 72 6d  | -language-version.200)).js2-harm | 
| 44100 |  6f 6e 79 2d 65 78 74 65 72 6e 73 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ony-externs)...................( | 
| 44120 |  69 66 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 72    68 69 6e 6f 2d 65 78 74 65 72 6e 73 20 6a 73 32  | if.js2-include-rhino-externs.js2 | 
| 44140 |  2d 72 68 69 6e 6f 2d 65 78 74 65 72 6e 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -rhino-externs)................. | 
| 44160 |  20 20 28 69 66 20 6a 73 32 2d 69 6e 63 6c 75 64    65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 20 6a  | ..(if.js2-include-node-externs.j | 
| 44180 |  73 32 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-node-externs)................ | 
| 441a0 |  20 20 20 28 69 66 20 28 6f 72 20 6a 73 32 2d 69    6e 63 6c 75 64 65 2d 62 72 6f 77 73 65 72 2d 65  | ...(if.(or.js2-include-browser-e | 
| 441c0 |  78 74 65 72 6e 73 20 6a 73 32 2d 69 6e 63 6c 75    64 65 2d 6e 6f 64 65 2d 65 78 74 65 72 6e 73 29  | xterns.js2-include-node-externs) | 
| 441e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6a 73 32 2d 74 79 70 65 64  | .......................js2-typed | 
| 44200 |  2d 61 72 72 61 79 2d 65 78 74 65 72 6e 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -array-externs)................. | 
| 44220 |  20 20 28 69 66 20 6a 73 32 2d 69 6e 63 6c 75 64    65 2d 62 72 6f 77 73 65 72 2d 65 78 74 65 72 6e  | ..(if.js2-include-browser-extern | 
| 44240 |  73 20 6a 73 32 2d 62 72 6f 77 73 65 72 2d 65 78    74 65 72 6e 73 29 29 29 0a 20 20 20 20 20 20 20  | s.js2-browser-externs)))........ | 
| 44260 |  20 6e 61 6d 65 29 0a 20 20 20 20 28 64 6f 6c 69    73 74 20 28 65 6e 74 72 79 20 6a 73 32 2d 72 65  | .name).....(dolist.(entry.js2-re | 
| 44280 |  63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65    72 73 29 0a 20 20 20 20 20 20 28 63 6c 2d 64 65  | corded-identifiers).......(cl-de | 
| 442a0 |  73 74 72 75 63 74 75 72 69 6e 67 2d 62 69 6e 64    20 28 6e 61 6d 65 2d 6e 6f 64 65 20 73 63 6f 70  | structuring-bind.(name-node.scop | 
| 442c0 |  65 20 70 6f 73 20 65 6e 64 29 20 65 6e 74 72 79    0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e  | e.pos.end).entry.........(setq.n | 
| 442e0 |  61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f    64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64  | ame.(js2-name-node-name.name-nod | 
| 44300 |  65 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c    65 73 73 20 28 6f 72 20 28 6d 65 6d 62 65 72 20  | e)).........(unless.(or.(member. | 
| 44320 |  6e 61 6d 65 20 6a 73 32 2d 67 6c 6f 62 61 6c 2d    65 78 74 65 72 6e 73 29 0a 20 20 20 20 20 20 20  | name.js2-global-externs)........ | 
| 44340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65    6d 62 65 72 20 6e 61 6d 65 20 64 65 66 61 75 6c  | .............(member.name.defaul | 
| 44360 |  74 2d 65 78 74 65 72 6e 73 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | t-externs).....................( | 
| 44380 |  6d 65 6d 62 65 72 20 6e 61 6d 65 20 6a 73 32 2d    61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72  | member.name.js2-additional-exter | 
| 443a0 |  6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74  | ns).....................(js2-get | 
| 443c0 |  2d 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20    73 63 6f 70 65 20 6e 61 6d 65 20 70 6f 73 29 29  | -defining-scope.scope.name.pos)) | 
| 443e0 |  0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22  | ...........(js2-report-warning." | 
| 44400 |  6d 73 67 2e 75 6e 64 65 63 6c 61 72 65 64 2e 76    61 72 69 61 62 6c 65 22 20 6e 61 6d 65 20 70 6f  | msg.undeclared.variable".name.po | 
| 44420 |  73 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.(-.end.pos)................... | 
| 44440 |  20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32    2d 65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62  | ............'js2-external-variab | 
| 44460 |  6c 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 2d 61 64 64 2d 6f 72 2d 75 70 64  | le))))))..(defun.js2--add-or-upd | 
| 44480 |  61 74 65 2d 73 79 6d 62 6f 6c 20 28 73 79 6d 62    6f 6c 20 69 6e 69 74 69 6f 6e 20 75 73 65 64 20  | ate-symbol.(symbol.inition.used. | 
| 444a0 |  76 61 72 73 29 0a 20 20 22 41 64 64 20 6f 72 20    75 70 64 61 74 65 20 53 59 4d 42 4f 4c 20 65 6e  | vars)..."Add.or.update.SYMBOL.en | 
| 444c0 |  74 72 79 20 69 6e 20 56 41 52 53 2c 20 61 6e 20    68 61 73 68 20 74 61 62 6c 65 2e 0a 53 59 4d 42  | try.in.VARS,.an.hash.table..SYMB | 
| 444e0 |  4f 4c 20 69 73 20 61 20 6a 73 32 2d 6e 61 6d 65    2d 6e 6f 64 65 2c 20 49 4e 49 54 49 4f 4e 20 65  | OL.is.a.js2-name-node,.INITION.e | 
| 44500 |  69 74 68 65 72 20 6e 69 6c 2c 20 74 2c 20 6f 72    20 3f 50 2c 0a 72 65 73 70 65 63 74 69 76 65 6c  | ither.nil,.t,.or.?P,.respectivel | 
| 44520 |  79 20 6d 65 61 6e 69 6e 67 20 74 68 61 74 20 53    59 4d 42 4f 4c 20 69 73 20 61 20 6d 65 72 65 20  | y.meaning.that.SYMBOL.is.a.mere. | 
| 44540 |  64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 61 6e 0a    61 73 73 69 67 6e 6d 65 6e 74 20 6f 72 20 61 20  | declaration,.an.assignment.or.a. | 
| 44560 |  66 75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74    65 72 3b 20 77 68 65 6e 20 55 53 45 44 20 69 73  | function.parameter;.when.USED.is | 
| 44580 |  20 74 2c 20 74 68 65 20 73 79 6d 62 6f 6c 0a 6e    6f 64 65 20 69 73 20 61 73 73 75 6d 65 64 20 74  | .t,.the.symbol.node.is.assumed.t | 
| 445a0 |  6f 20 62 65 20 61 6e 20 75 73 61 67 65 20 61 6e    64 20 74 68 75 73 20 61 64 64 65 64 20 74 6f 20  | o.be.an.usage.and.thus.added.to. | 
| 445c0 |  74 68 65 20 6c 69 73 74 20 73 74 6f 72 65 64 0a    69 6e 20 74 68 65 20 63 64 72 20 6f 66 20 74 68  | the.list.stored.in.the.cdr.of.th | 
| 445e0 |  65 20 65 6e 74 72 79 2e 0a 22 0a 20 20 28 6c 65    74 2a 20 28 28 6e 6d 20 28 6a 73 32 2d 6e 61 6d  | e.entry.."...(let*.((nm.(js2-nam | 
| 44600 |  65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 73 79 6d 62    6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 65  | e-node-name.symbol))..........(e | 
| 44620 |  73 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d    65 6e 63 6c 6f 73 69 6e 67 2d 73 63 6f 70 65 20  | s.(js2-node-get-enclosing-scope. | 
| 44640 |  73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20    20 20 28 64 73 20 28 6a 73 32 2d 67 65 74 2d 64  | symbol))..........(ds.(js2-get-d | 
| 44660 |  65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 65 73    20 6e 6d 29 29 29 0a 20 20 20 20 28 77 68 65 6e  | efining-scope.es.nm))).....(when | 
| 44680 |  20 28 61 6e 64 20 64 73 20 28 6e 6f 74 20 28 65    71 75 61 6c 20 6e 6d 20 22 61 72 67 75 6d 65 6e  | .(and.ds.(not.(equal.nm."argumen | 
| 446a0 |  74 73 22 29 29 29 0a 20 20 20 20 20 20 28 6c 65    74 2a 20 28 28 73 79 6d 20 28 6a 73 32 2d 73 63  | ts"))).......(let*.((sym.(js2-sc | 
| 446c0 |  6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c 20 64    73 20 6e 6d 29 29 0a 20 20 20 20 20 20 20 20 20  | ope-get-symbol.ds.nm)).......... | 
| 446e0 |  20 20 20 20 28 76 61 72 20 28 67 65 74 68 61 73    68 20 73 79 6d 20 76 61 72 73 29 29 0a 20 20 20  | ....(var.(gethash.sym.vars)).... | 
| 44700 |  20 20 20 20 20 20 20 20 20 20 28 65 72 72 2d 76    61 72 2d 70 20 28 6a 73 32 2d 63 61 74 63 68 2d  | ..........(err-var-p.(js2-catch- | 
| 44720 |  6e 6f 64 65 2d 70 20 64 73 29 29 29 0a 20 20 20    20 20 20 20 20 28 75 6e 6c 65 73 73 20 69 6e 69  | node-p.ds))).........(unless.ini | 
| 44740 |  74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 69 6e 69 74 69 6f 6e 20 65 72 72  | tion...........(setq.inition.err | 
| 44760 |  2d 76 61 72 2d 70 29 29 0a 20 20 20 20 20 20 20    20 28 69 66 20 76 61 72 0a 20 20 20 20 20 20 20  | -var-p)).........(if.var........ | 
| 44780 |  20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | .....(progn...............(when. | 
| 447a0 |  28 61 6e 64 20 69 6e 69 74 69 6f 6e 20 28 6e 6f    74 20 28 65 71 75 61 6c 20 28 63 61 72 20 76 61  | (and.inition.(not.(equal.(car.va | 
| 447c0 |  72 29 20 3f 50 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72  | r).?P))).................(setcar | 
| 447e0 |  20 76 61 72 20 69 6e 69 74 69 6f 6e 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68  | .var.inition))...............(wh | 
| 44800 |  65 6e 20 28 61 6e 64 20 75 73 65 64 20 28 6e 6f    74 20 28 6d 65 6d 71 20 73 79 6d 62 6f 6c 20 28  | en.(and.used.(not.(memq.symbol.( | 
| 44820 |  63 64 72 20 76 61 72 29 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73  | cdr.var)))).................(pus | 
| 44840 |  68 20 73 79 6d 62 6f 6c 20 28 63 64 72 20 76 61    72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | h.symbol.(cdr.var))))........... | 
| 44860 |  3b 3b 20 64 6f 20 6e 6f 74 20 63 6f 6e 73 69 64    65 72 20 74 68 65 20 64 65 63 6c 61 72 61 74 69  | ;;.do.not.consider.the.declarati | 
| 44880 |  6f 6e 20 6f 66 20 63 61 74 63 68 20 70 61 72 61    6d 65 74 65 72 20 61 73 20 61 6e 20 75 73 61 67  | on.of.catch.parameter.as.an.usag | 
| 448a0 |  65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65    6e 20 28 61 6e 64 20 65 72 72 2d 76 61 72 2d 70  | e...........(when.(and.err-var-p | 
| 448c0 |  20 75 73 65 64 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 75 73 65 64 20 6e 69  | .used).............(setq.used.ni | 
| 448e0 |  6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70    75 74 68 61 73 68 20 73 79 6d 20 28 63 6f 6e 73  | l))...........(puthash.sym.(cons | 
| 44900 |  20 69 6e 69 74 69 6f 6e 20 28 69 66 20 75 73 65    64 20 28 6c 69 73 74 20 73 79 6d 62 6f 6c 29 29  | .inition.(if.used.(list.symbol)) | 
| 44920 |  29 20 76 61 72 73 29 29 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 2d 63 6f 6c 6c 65 63  | ).vars))))))..(defun.js2--collec | 
| 44940 |  74 2d 74 61 72 67 65 74 2d 73 79 6d 62 6f 6c 73    20 28 6e 6f 64 65 20 73 74 72 69 63 74 29 0a 20  | t-target-symbols.(node.strict).. | 
| 44960 |  20 22 43 6f 6c 6c 65 63 74 20 74 68 65 20 60 6a    73 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 73 79 6d  | ."Collect.the.`js-name-node'.sym | 
| 44980 |  62 6f 6c 73 20 64 65 63 6c 61 72 65 64 20 69 6e    20 4e 4f 44 45 20 61 6e 64 20 72 65 74 75 72 6e  | bols.declared.in.NODE.and.return | 
| 449a0 |  20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 6d 2e    0a 4e 4f 44 45 20 69 73 20 65 69 74 68 65 72 20  | .a.list.of.them..NODE.is.either. | 
| 449c0 |  60 6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 27    2c 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f  | `js2-array-node',.`js2-object-no | 
| 449e0 |  64 65 27 2c 20 6f 72 20 60 6a 73 32 2d 6e 61 6d    65 2d 6e 6f 64 65 27 2e 0a 57 68 65 6e 20 53 54  | de',.or.`js2-name-node'..When.ST | 
| 44a00 |  52 49 43 54 2c 20 73 69 67 6e 61 6c 20 61 6e 20    65 72 72 6f 72 20 69 66 20 4e 4f 44 45 20 69 73  | RICT,.signal.an.error.if.NODE.is | 
| 44a20 |  20 6e 6f 74 20 6f 6e 65 20 6f 66 20 74 68 65 20    65 78 70 65 63 74 65 64 20 74 79 70 65 73 2e 22  | .not.one.of.the.expected.types." | 
| 44a40 |  0a 20 20 28 6c 65 74 20 28 74 61 72 67 65 74 73    29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20  | ...(let.(targets).....(cond..... | 
| 44a60 |  20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65    2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28  | .((js2-name-node-p.node).......( | 
| 44a80 |  70 75 73 68 20 6e 6f 64 65 20 74 61 72 67 65 74    73 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 61  | push.node.targets))......((js2-a | 
| 44aa0 |  72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65    29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20  | rray-node-p.node).......(dolist. | 
| 44ac0 |  28 65 6c 74 20 28 6a 73 32 2d 61 72 72 61 79 2d    6e 6f 64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29  | (elt.(js2-array-node-elems.node) | 
| 44ae0 |  29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 28 73  | ).........(when.elt...........(s | 
| 44b00 |  65 74 71 20 65 6c 74 20 28 63 6f 6e 64 20 28 28    6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 70  | etq.elt.(cond.((js2-infix-node-p | 
| 44b20 |  20 65 6c 74 29 20 3b 3b 20 64 65 66 61 75 6c 74    20 28 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .elt).;;.default.(=)............ | 
| 44b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d  | ................(js2-infix-node- | 
| 44b60 |  6c 65 66 74 20 65 6c 74 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | left.elt))...................... | 
| 44b80 |  20 20 20 20 20 28 28 6a 73 32 2d 75 6e 61 72 79    2d 6e 6f 64 65 2d 70 20 65 6c 74 29 20 3b 3b 20  | .....((js2-unary-node-p.elt).;;. | 
| 44ba0 |  72 65 73 74 20 28 2e 2e 2e 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rest.(...)...................... | 
| 44bc0 |  20 20 20 20 20 20 28 6a 73 32 2d 75 6e 61 72 79    2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20 65 6c  | ......(js2-unary-node-operand.el | 
| 44be0 |  74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74  | t))...........................(t | 
| 44c00 |  20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 74 61 72 67 65 74 73 20  | .elt)))...........(setq.targets. | 
| 44c20 |  28 61 70 70 65 6e 64 20 28 6a 73 32 2d 2d 63 6f    6c 6c 65 63 74 2d 74 61 72 67 65 74 2d 73 79 6d  | (append.(js2--collect-target-sym | 
| 44c40 |  62 6f 6c 73 20 65 6c 74 20 73 74 72 69 63 74 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bols.elt.strict)................ | 
| 44c60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 74 61 72 67 65 74 73 29 29 29 29 29 0a 20 20  | .................targets)))))... | 
| 44c80 |  20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d    6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20  | ...((js2-object-node-p.node).... | 
| 44ca0 |  20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 74 20    28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65  | ...(dolist.(elt.(js2-object-node | 
| 44cc0 |  2d 65 6c 65 6d 73 20 6e 6f 64 65 29 29 0a 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 73 75 62  | -elems.node)).........(let.((sub | 
| 44ce0 |  65 78 70 72 20 28 63 6f 6e 64 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | expr.(cond...................... | 
| 44d00 |  20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d 69 6e    66 69 78 2d 6e 6f 64 65 2d 70 20 65 6c 74 29 0a  | ...((and.(js2-infix-node-p.elt). | 
| 44d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d  | ..............................(= | 
| 44d40 |  20 6a 73 32 2d 41 53 53 49 47 4e 20 28 6a 73 32    2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 74 79 70 65  | .js2-ASSIGN.(js2-infix-node-type | 
| 44d60 |  20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .elt)))......................... | 
| 44d80 |  20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69 6e    67 20 77 69 74 68 20 64 65 66 61 75 6c 74 20 61  | .;;.Destructuring.with.default.a | 
| 44da0 |  72 67 75 6d 65 6e 74 2e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rgument......................... | 
| 44dc0 |  20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64    65 2d 6c 65 66 74 20 65 6c 74 29 29 0a 20 20 20  | ..(js2-infix-node-left.elt)).... | 
| 44de0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 61 6e 64 20 28 6a 73 32 2d  | .....................((and.(js2- | 
| 44e00 |  69 6e 66 69 78 2d 6e 6f 64 65 2d 70 20 65 6c 74    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | infix-node-p.elt)............... | 
| 44e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3d 20 6a 73 32 2d 43 4f 4c 4f 4e 20 28 6a 73  | ................(=.js2-COLON.(js | 
| 44e40 |  32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 74 79 70    65 20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20  | 2-infix-node-type.elt)))........ | 
| 44e60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3b 3b 20 49 6e 20 72 65 67 75 6c 61 72 20  | ..................;;.In.regular. | 
| 44e80 |  64 65 73 74 72 75 63 74 75 72 69 6e 67 20 7b 61    3a 20 61 61 2c 20 62 3a 20 62 62 7d 2c 0a 20 20  | destructuring.{a:.aa,.b:.bb},... | 
| 44ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 76 61  | .......................;;.the.va | 
| 44ec0 |  72 20 69 73 20 6f 6e 20 74 68 65 20 72 69 67 68    74 2e 20 20 49 6e 20 61 62 62 72 65 76 69 61 74  | r.is.on.the.right...In.abbreviat | 
| 44ee0 |  65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64  | ed..........................;;.d | 
| 44f00 |  65 73 74 72 75 63 74 75 72 69 6e 67 20 7b 61 2c    20 62 7d 2c 20 72 69 67 68 74 20 3d 3d 20 6c 65  | estructuring.{a,.b},.right.==.le | 
| 44f20 |  66 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | ft...........................(js | 
| 44f40 |  32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 72 69 67    68 74 20 65 6c 74 29 29 0a 20 20 20 20 20 20 20  | 2-infix-node-right.elt))........ | 
| 44f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 61 6e 64 20 28 6a 73 32 2d 75 6e 61 72  | .................((and.(js2-unar | 
| 44f80 |  79 2d 6e 6f 64 65 2d 70 20 65 6c 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | y-node-p.elt)................... | 
| 44fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 6a    73 32 2d 54 52 49 50 4c 45 44 4f 54 20 28 6a 73  | ............(=.js2-TRIPLEDOT.(js | 
| 44fc0 |  32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 74 79 70    65 20 65 6c 74 29 29 29 0a 20 20 20 20 20 20 20  | 2-unary-node-type.elt)))........ | 
| 44fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69  | ..................;;.Destructuri | 
| 45000 |  6e 67 20 77 69 74 68 20 73 70 72 65 61 64 2e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ng.with.spread.................. | 
| 45020 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e    61 72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64  | .........(js2-unary-node-operand | 
| 45040 |  20 65 6c 74 29 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 73 75 62 65 78 70  | .elt)))))...........(when.subexp | 
| 45060 |  72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 74 61 72 67 65 74 73 20 28 61 70 70  | r.............(setq.targets.(app | 
| 45080 |  65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | end............................( | 
| 450a0 |  6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61 72    67 65 74 2d 73 79 6d 62 6f 6c 73 20 73 75 62 65  | js2--collect-target-symbols.sube | 
| 450c0 |  78 70 72 20 73 74 72 69 63 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | xpr.strict)..................... | 
| 450e0 |  20 20 20 20 20 20 20 74 61 72 67 65 74 73 29 29    29 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d  | .......targets))))))......((js2- | 
| 45100 |  61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20 6e 6f    64 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20  | assign-node-p.node).......(setq. | 
| 45120 |  74 61 72 67 65 74 73 20 28 61 70 70 65 6e 64 20    28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61  | targets.(append.(js2--collect-ta | 
| 45140 |  72 67 65 74 2d 73 79 6d 62 6f 6c 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rget-symbols.................... | 
| 45160 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61    73 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20  | ..........(js2-assign-node-left. | 
| 45180 |  6e 6f 64 65 29 20 73 74 72 69 63 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | node).strict)................... | 
| 451a0 |  20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74    73 29 29 29 0a 20 20 20 20 20 28 73 74 72 69 63  | ..........targets)))......(stric | 
| 451c0 |  74 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70    6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e  | t.......(js2-report-error."msg.n | 
| 451e0 |  6f 2e 70 61 72 6d 22 20 6e 69 6c 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f  | o.parm".nil.(js2-node-abs-pos.no | 
| 45200 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | de).........................(js2 | 
| 45220 |  2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29    0a 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20  | -node-len.node)).........nil)).. | 
| 45240 |  20 20 20 74 61 72 67 65 74 73 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 2d 65 78 61 6d 69 6e  | ...targets))..(defun.js2--examin | 
| 45260 |  65 2d 76 61 72 69 61 62 6c 65 20 28 70 61 72 65    6e 74 20 6e 6f 64 65 20 76 61 72 2d 69 6e 69 74  | e-variable.(parent.node.var-init | 
| 45280 |  2d 6e 6f 64 65 29 0a 20 20 22 45 78 61 6d 69 6e    65 20 74 68 65 20 75 73 61 67 65 20 6f 66 20 74  | -node)..."Examine.the.usage.of.t | 
| 452a0 |  68 65 20 76 61 72 69 61 62 6c 65 20 4e 4f 44 45    2c 20 61 20 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64  | he.variable.NODE,.a.js2-name-nod | 
| 452c0 |  65 2e 0a 50 41 52 45 4e 54 20 69 73 20 69 74 73    20 64 69 72 65 63 74 20 61 6e 63 65 73 74 6f 72  | e..PARENT.is.its.direct.ancestor | 
| 452e0 |  20 61 6e 64 20 56 41 52 2d 49 4e 49 54 2d 4e 4f    44 45 20 69 73 20 74 68 65 20 6e 6f 64 65 20 74  | .and.VAR-INIT-NODE.is.the.node.t | 
| 45300 |  6f 20 62 65 0a 65 78 61 6d 69 6e 65 64 3a 20 72    65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20  | o.be.examined:.return.a.list.of. | 
| 45320 |  74 68 72 65 65 20 76 61 6c 75 65 73 2c 20 72 65    73 70 65 63 74 69 76 65 6c 79 20 69 66 20 74 68  | three.values,.respectively.if.th | 
| 45340 |  65 0a 76 61 72 69 61 62 6c 65 20 69 73 20 64 65    63 6c 61 72 65 64 20 61 6e 64 2f 6f 72 20 61 73  | e.variable.is.declared.and/or.as | 
| 45360 |  73 69 67 6e 65 64 20 6f 72 20 77 68 65 74 68 65    72 20 69 74 20 69 73 20 73 69 6d 70 6c 79 20 61  | signed.or.whether.it.is.simply.a | 
| 45380 |  0a 6b 65 79 20 6f 66 20 61 20 6c 69 74 65 72 61    6c 20 6f 62 6a 65 63 74 2e 22 0a 20 20 28 6c 65  | .key.of.a.literal.object."...(le | 
| 453a0 |  74 20 28 28 74 61 72 67 65 74 20 28 6a 73 32 2d    76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61  | t.((target.(js2-var-init-node-ta | 
| 453c0 |  72 67 65 74 20 76 61 72 2d 69 6e 69 74 2d 6e 6f    64 65 29 29 0a 20 20 20 20 20 20 20 20 64 65 63  | rget.var-init-node)).........dec | 
| 453e0 |  6c 61 72 65 64 20 61 73 73 69 67 6e 65 64 20 6f    62 6a 65 63 74 2d 6b 65 79 29 0a 20 20 20 20 28  | lared.assigned.object-key).....( | 
| 45400 |  73 65 74 71 20 64 65 63 6c 61 72 65 64 20 28 6d    65 6d 71 20 6e 6f 64 65 20 28 6a 73 32 2d 2d 63  | setq.declared.(memq.node.(js2--c | 
| 45420 |  6f 6c 6c 65 63 74 2d 74 61 72 67 65 74 2d 73 79    6d 62 6f 6c 73 20 74 61 72 67 65 74 20 6e 69 6c  | ollect-target-symbols.target.nil | 
| 45440 |  29 29 29 0a 20 20 20 20 3b 3b 20 49 73 20 74 68    65 72 65 20 61 6e 20 69 6e 69 74 69 61 6c 69 7a  | ))).....;;.Is.there.an.initializ | 
| 45460 |  65 72 20 66 6f 72 20 74 68 65 20 64 65 63 6c 61    72 65 64 20 76 61 72 69 61 62 6c 65 3f 0a 20 20  | er.for.the.declared.variable?... | 
| 45480 |  20 20 28 77 68 65 6e 20 28 6a 73 32 2d 76 61 72    2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69  | ..(when.(js2-var-init-node-initi | 
| 454a0 |  61 6c 69 7a 65 72 20 76 61 72 2d 69 6e 69 74 2d    6e 6f 64 65 29 0a 20 20 20 20 20 20 28 73 65 74  | alizer.var-init-node).......(set | 
| 454c0 |  71 20 61 73 73 69 67 6e 65 64 20 64 65 63 6c 61    72 65 64 29 0a 20 20 20 20 20 20 3b 3b 20 44 65  | q.assigned.declared).......;;.De | 
| 454e0 |  74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 20 6e    61 6d 65 20 69 73 20 61 63 74 75 61 6c 6c 79 20  | termine.if.the.name.is.actually. | 
| 45500 |  61 20 6c 69 74 65 72 61 6c 20 6f 62 6a 65 63 74    20 6b 65 79 20 74 68 61 74 20 77 65 20 73 68 61  | a.literal.object.key.that.we.sha | 
| 45520 |  6c 6c 0a 20 20 20 20 20 20 3b 3b 20 69 67 6e 6f    72 65 20 6c 61 74 65 72 0a 20 20 20 20 20 20 28  | ll.......;;.ignore.later.......( | 
| 45540 |  77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 64    65 63 6c 61 72 65 64 29 0a 20 20 20 20 20 20 20  | when.(and.(not.declared)........ | 
| 45560 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f    62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d  | ..........(js2-object-prop-node- | 
| 45580 |  70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 6e  | p.parent)..................(eq.n | 
| 455a0 |  6f 64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d    70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 74 20 70  | ode.(js2-object-prop-node-left.p | 
| 455c0 |  61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65  | arent))..................(not.(e | 
| 455e0 |  71 20 6e 6f 64 65 20 28 6a 73 32 2d 6f 62 6a 65    63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 72 69 67  | q.node.(js2-object-prop-node-rig | 
| 45600 |  68 74 20 70 61 72 65 6e 74 29 29 29 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 6f 62 6a 65  | ht.parent)))).........(setq.obje | 
| 45620 |  63 74 2d 6b 65 79 20 74 29 29 29 0a 20 20 20 20    3b 3b 20 4d 61 79 62 65 20 74 68 69 73 20 69 73  | ct-key.t))).....;;.Maybe.this.is | 
| 45640 |  20 61 20 66 6f 72 20 6c 6f 6f 70 20 61 6e 64 20    74 68 65 20 76 61 72 69 61 62 6c 65 20 69 73 20  | .a.for.loop.and.the.variable.is. | 
| 45660 |  6f 6e 65 20 6f 66 20 69 74 73 20 69 74 65 72 61    74 6f 72 73 3f 0a 20 20 20 20 28 75 6e 6c 65 73  | one.of.its.iterators?.....(unles | 
| 45680 |  73 20 61 73 73 69 67 6e 65 64 0a 20 20 20 20 20    20 28 6c 65 74 2a 20 28 28 67 70 20 28 6a 73 32  | s.assigned.......(let*.((gp.(js2 | 
| 456a0 |  2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70 61 72    65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20  | -node-parent.parent))........... | 
| 456c0 |  20 20 20 28 67 67 70 20 28 69 66 20 67 70 20 28    6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20  | ...(ggp.(if.gp.(js2-node-parent. | 
| 456e0 |  67 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 61 6e 64 20 67 67 70 20 28 6a  | gp)))).........(when.(and.ggp.(j | 
| 45700 |  73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65 2d 70    20 67 67 70 29 29 0a 20 20 20 20 20 20 20 20 20  | s2-for-in-node-p.ggp)).......... | 
| 45720 |  20 28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20    28 6d 65 6d 71 20 6e 6f 64 65 0a 20 20 20 20 20  | .(setq.assigned.(memq.node...... | 
| 45740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f  | ..........................(cl-lo | 
| 45760 |  6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | op.............................. | 
| 45780 |  20 20 20 66 6f 72 20 6b 69 64 20 69 6e 20 28 6a    73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f 64 65  | ...for.kid.in.(js2-var-decl-node | 
| 457a0 |  2d 6b 69 64 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -kids........................... | 
| 457c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f  | ..................(js2-for-in-no | 
| 457e0 |  64 65 2d 69 74 65 72 61 74 6f 72 20 67 67 70 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de-iterator.ggp))............... | 
| 45800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 77 69 74 68 20 73 79 6d 73 20 3d 20 27 28  | ..................with.syms.=.'( | 
| 45820 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 45840 |  20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..do............................ | 
| 45860 |  20 20 20 20 20 28 73 65 74 71 20 73 79 6d 73 20    28 61 70 70 65 6e 64 20 73 79 6d 73 0a 20 20 20  | .....(setq.syms.(append.syms.... | 
| 45880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 458a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61  | ................(js2--collect-ta | 
| 458c0 |  72 67 65 74 2d 73 79 6d 62 6f 6c 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rget-symbols.................... | 
| 458e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 45900 |  20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e    6f 64 65 2d 74 61 72 67 65 74 20 6b 69 64 29 0a  | .(js2-var-init-node-target.kid). | 
| 45920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 45940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6e 69 6c 29 29 29 0a 20 20 20 20 20  | ....................nil)))...... | 
| 45960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c  | ...........................final | 
| 45980 |  6c 79 20 72 65 74 75 72 6e 20 73 79 6d 73 29 29    29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 64  | ly.return.syms)))))).....(list.d | 
| 459a0 |  65 63 6c 61 72 65 64 20 61 73 73 69 67 6e 65 64    20 6f 62 6a 65 63 74 2d 6b 65 79 29 29 29 0a 0a  | eclared.assigned.object-key))).. | 
| 459c0 |  28 64 65 66 75 6e 20 6a 73 32 2d 2d 69 73 2d 70    61 72 61 6d 20 28 76 61 72 2d 6e 6f 64 65 20 70  | (defun.js2--is-param.(var-node.p | 
| 459e0 |  61 72 61 6d 73 29 0a 20 20 22 52 65 63 75 72 73    69 76 65 6c 79 20 64 65 74 65 72 6d 69 6e 65 20  | arams)..."Recursively.determine. | 
| 45a00 |  77 68 65 74 68 65 72 20 56 41 52 2d 4e 4f 44 45    20 69 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e  | whether.VAR-NODE.is.contained.in | 
| 45a20 |  20 50 41 52 41 4d 53 2e 22 0a 20 20 28 63 6f 6e    64 20 28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70  | .PARAMS."...(cond.((js2-object-p | 
| 45a40 |  72 6f 70 2d 6e 6f 64 65 2d 70 20 70 61 72 61 6d    73 29 0a 20 20 20 20 20 20 20 20 20 28 65 71 20  | rop-node-p.params)..........(eq. | 
| 45a60 |  76 61 72 2d 6e 6f 64 65 20 28 6a 73 32 2d 6f 62    6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c  | var-node.(js2-object-prop-node-l | 
| 45a80 |  65 66 74 20 70 61 72 61 6d 73 29 29 29 0a 20 20    20 20 20 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65  | eft.params))).........((js2-name | 
| 45aa0 |  2d 6e 6f 64 65 2d 70 20 70 61 72 61 6d 73 29 0a    20 20 20 20 20 20 20 20 20 28 65 71 20 76 61 72  | -node-p.params)..........(eq.var | 
| 45ac0 |  2d 6e 6f 64 65 20 70 61 72 61 6d 73 29 29 0a 20    20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20  | -node.params)).........(t....... | 
| 45ae0 |  20 20 20 28 6c 65 74 20 28 28 69 73 70 61 72 61    6d 20 28 69 66 20 28 6c 69 73 74 70 20 70 61 72  | ...(let.((isparam.(if.(listp.par | 
| 45b00 |  61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ams)............................ | 
| 45b20 |  20 28 6d 65 6d 71 20 76 61 72 2d 6e 6f 64 65 20    70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20 20  | .(memq.var-node.params)......... | 
| 45b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20  | ..................(cl-loop.with. | 
| 45b60 |  66 6f 75 6e 64 20 3d 20 6e 69 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | found.=.nil..................... | 
| 45b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66    6f 72 20 70 20 69 6e 20 28 6a 73 32 2d 6e 6f 64  | ...............for.p.in.(js2-nod | 
| 45ba0 |  65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70 61 72    61 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20  | e-child-list.params)............ | 
| 45bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6e  | ........................while.(n | 
| 45be0 |  75 6c 6c 20 66 6f 75 6e 64 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ull.found)...................... | 
| 45c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f    20 28 73 65 74 71 20 66 6f 75 6e 64 20 28 65 71  | ..............do.(setq.found.(eq | 
| 45c20 |  20 76 61 72 2d 6e 6f 64 65 20 70 29 29 29 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e  | .var-node.p))))))............(un | 
| 45c40 |  6c 65 73 73 20 69 73 70 61 72 61 6d 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28  | less.isparam..............(let.( | 
| 45c60 |  28 6b 69 64 73 20 28 69 66 20 28 6c 69 73 74 70    20 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20 20  | (kids.(if.(listp.params)........ | 
| 45c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 70 61 72 61 6d 73 0a 20 20 20  | ......................params.... | 
| 45ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | ........................(js2-nod | 
| 45cc0 |  65 2d 63 68 69 6c 64 2d 6c 69 73 74 20 70 61 72    61 6d 73 29 29 29 29 0a 20 20 20 20 20 20 20 20  | e-child-list.params))))......... | 
| 45ce0 |  20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20    66 6f 72 20 70 20 69 6e 20 6b 69 64 73 0a 20 20  | .......(cl-loop.for.p.in.kids... | 
| 45d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 77 68 69 6c 65 20 28 6e 75 6c  | ......................while.(nul | 
| 45d20 |  6c 20 69 73 70 61 72 61 6d 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | l.isparam)...................... | 
| 45d40 |  20 20 20 64 6f 20 28 73 65 74 71 20 69 73 70 61    72 61 6d 20 28 6a 73 32 2d 2d 69 73 2d 70 61 72  | ...do.(setq.isparam.(js2--is-par | 
| 45d60 |  61 6d 20 76 61 72 2d 6e 6f 64 65 20 70 29 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 69 73  | am.var-node.p)))))............is | 
| 45d80 |  70 61 72 61 6d 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 2d 69 73 2d 66 75 6e 63 74 69  | param))))..(defun.js2--is-functi | 
| 45da0 |  6f 6e 2d 70 61 72 61 6d 20 28 70 61 72 65 6e 74    20 76 61 72 2d 6e 6f 64 65 29 0a 20 20 22 44 65  | on-param.(parent.var-node)..."De | 
| 45dc0 |  74 65 72 6d 69 6e 65 20 77 68 65 74 68 65 72 20    56 41 52 2d 4e 4f 44 45 20 69 73 20 61 20 66 75  | termine.whether.VAR-NODE.is.a.fu | 
| 45de0 |  6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72    2e 22 0a 20 20 28 77 68 69 6c 65 20 28 61 6e 64  | nction.parameter."...(while.(and | 
| 45e00 |  20 70 61 72 65 6e 74 20 28 6e 6f 74 20 28 6a 73    32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d  | .parent.(not.(js2-function-node- | 
| 45e20 |  70 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20    28 69 66 20 28 6f 72 20 28 6a 73 32 2d 76 61 72  | p.parent))).....(if.(or.(js2-var | 
| 45e40 |  2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 70 61 72    65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -init-node-p.parent)............ | 
| 45e60 |  20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64    65 2d 70 20 70 61 72 65 6e 74 29 29 0a 20 20 20  | .(js2-assign-node-p.parent)).... | 
| 45e80 |  20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e    74 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71  | .....(setq.parent.nil).....(setq | 
| 45ea0 |  20 70 61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64    65 2d 70 61 72 65 6e 74 20 70 61 72 65 6e 74 29  | .parent.(js2-node-parent.parent) | 
| 45ec0 |  29 29 29 0a 20 20 28 77 68 65 6e 20 70 61 72 65    6e 74 0a 20 20 20 20 28 6a 73 32 2d 2d 69 73 2d  | )))...(when.parent.....(js2--is- | 
| 45ee0 |  70 61 72 61 6d 20 76 61 72 2d 6e 6f 64 65 20 28    6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64  | param.var-node.(js2-function-nod | 
| 45f00 |  65 2d 70 61 72 61 6d 73 20 70 61 72 65 6e 74 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | e-params.parent))))..(defun.js2- | 
| 45f20 |  2d 63 6c 61 73 73 69 66 79 2d 76 61 72 69 61 62    6c 65 20 28 70 61 72 65 6e 74 20 6e 6f 64 65 20  | -classify-variable.(parent.node. | 
| 45f40 |  76 61 72 73 29 0a 20 20 22 43 6c 61 73 73 69 66    79 20 74 68 65 20 73 69 6e 67 6c 65 20 76 61 72  | vars)..."Classify.the.single.var | 
| 45f60 |  69 61 62 6c 65 20 4e 4f 44 45 2c 20 61 20 6a 73    32 2d 6e 61 6d 65 2d 6e 6f 64 65 2c 20 75 70 64  | iable.NODE,.a.js2-name-node,.upd | 
| 45f80 |  61 74 69 6e 67 20 74 68 65 20 56 41 52 53 20 63    6f 6c 6c 65 63 74 69 6f 6e 2e 22 0a 20 20 28 6c  | ating.the.VARS.collection."...(l | 
| 45fa0 |  65 74 20 28 28 66 75 6e 63 74 69 6f 6e 2d 70 61    72 61 6d 20 28 6a 73 32 2d 2d 69 73 2d 66 75 6e  | et.((function-param.(js2--is-fun | 
| 45fc0 |  63 74 69 6f 6e 2d 70 61 72 61 6d 20 70 61 72 65    6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28  | ction-param.parent.node))).....( | 
| 45fe0 |  69 66 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65 74    2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a  | if.(js2-prop-get-node-p.parent). | 
| 46000 |  20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65    20 61 72 65 20 77 69 74 68 69 6e 20 61 20 70 72  | ........;;.If.we.are.within.a.pr | 
| 46020 |  6f 70 2d 67 65 74 2c 20 65 2e 67 2e 20 74 68 65    20 22 62 61 72 22 20 69 6e 20 22 66 6f 6f 2e 62  | op-get,.e.g..the."bar".in."foo.b | 
| 46040 |  61 72 22 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20    6a 75 73 74 20 6d 61 72 6b 20 22 66 6f 6f 22 20  | ar",.........;;.just.mark."foo". | 
| 46060 |  61 73 20 75 73 65 64 0a 20 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 6c 65 66 74 20 28 6a 73 32  | as.used.........(let.((left.(js2 | 
| 46080 |  2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 6c    65 66 74 20 70 61 72 65 6e 74 29 29 29 0a 20 20  | -prop-get-node-left.parent)))... | 
| 460a0 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a    73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6c  | ........(when.(js2-name-node-p.l | 
| 460c0 |  65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 2d 61 64 64 2d 6f 72 2d 75 70  | eft).............(js2--add-or-up | 
| 460e0 |  64 61 74 65 2d 73 79 6d 62 6f 6c 20 6c 65 66 74    20 6e 69 6c 20 74 20 76 61 72 73 29 29 29 0a 20  | date-symbol.left.nil.t.vars))).. | 
| 46100 |  20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 6e    6f 64 65 20 69 73 20 74 68 65 20 65 78 74 65 72  | .....;;.If.the.node.is.the.exter | 
| 46120 |  6e 61 6c 20 6e 61 6d 65 20 6f 66 20 61 6e 20 65    78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f  | nal.name.of.an.export-binding-no | 
| 46140 |  64 65 2c 20 61 6e 64 0a 20 20 20 20 20 20 3b 3b    20 69 74 20 69 73 20 64 69 66 66 65 72 65 6e 74  | de,.and.......;;.it.is.different | 
| 46160 |  20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20    6e 61 6d 65 2c 20 69 67 6e 6f 72 65 20 69 74 0a  | .from.the.local.name,.ignore.it. | 
| 46180 |  20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20    28 6e 6f 74 20 28 6a 73 32 2d 65 78 70 6f 72 74  | ......(when.(or.(not.(js2-export | 
| 461a0 |  2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 70 20    70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20  | -binding-node-p.parent))........ | 
| 461c0 |  20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 61    6e 64 20 28 65 71 20 28 6a 73 32 2d 65 78 70 6f  | .........(not.(and.(eq.(js2-expo | 
| 461e0 |  72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64 65 2d    65 78 74 65 72 6e 2d 6e 61 6d 65 20 70 61 72 65  | rt-binding-node-extern-name.pare | 
| 46200 |  6e 74 29 20 6e 6f 64 65 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt).node)....................... | 
| 46220 |  20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 6a 73    32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67  | ....(not.(eq.(js2-export-binding | 
| 46240 |  2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65    20 70 61 72 65 6e 74 29 20 6e 6f 64 65 29 29 29  | -node-local-name.parent).node))) | 
| 46260 |  29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20    28 28 67 72 61 6e 70 61 72 65 6e 74 20 70 61 72  | )).........(let.((granparent.par | 
| 46280 |  65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65  | ent)...............var-init-node | 
| 462a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61    73 73 69 67 6e 2d 6e 6f 64 65 0a 20 20 20 20 20  | ...............assign-node...... | 
| 462c0 |  20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 74 2d    6b 65 79 20 20 20 20 20 20 20 20 20 3b 20 69 73  | .........object-key.........;.is | 
| 462e0 |  20 6e 61 6d 65 20 61 63 74 75 61 6c 6c 79 20 61    6e 20 6f 62 6a 65 63 74 20 70 72 6f 70 20 6b 65  | .name.actually.an.object.prop.ke | 
| 46300 |  79 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 64 65 63 6c 61 72 65 64 20 20 20 20 20 20 20  | y?...............declared....... | 
| 46320 |  20 20 20 20 3b 20 69 73 20 69 74 20 64 65 63 6c    61 72 65 64 20 69 6e 20 6e 61 72 72 6f 77 65 73  | ....;.is.it.declared.in.narrowes | 
| 46340 |  74 20 73 63 6f 70 65 3f 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 61 73 73 69 67 6e 65 64 20  | t.scope?...............assigned. | 
| 46360 |  20 20 20 20 20 20 20 20 20 20 3b 20 64 6f 65 73    20 69 74 20 67 65 74 20 61 73 73 69 67 6e 65 64  | ..........;.does.it.get.assigned | 
| 46380 |  20 6f 72 20 69 6e 69 74 69 61 6c 69 7a 65 64 3f    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .or.initialized?...............( | 
| 463a0 |  75 73 65 64 20 28 6e 75 6c 6c 20 66 75 6e 63 74    69 6f 6e 2d 70 61 72 61 6d 29 29 29 0a 20 20 20  | used.(null.function-param))).... | 
| 463c0 |  20 20 20 20 20 20 20 3b 3b 20 44 65 74 65 72 6d    69 6e 65 20 74 68 65 20 63 6c 6f 73 65 73 74 20  | .......;;.Determine.the.closest. | 
| 463e0 |  76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 20 61 6e    64 20 61 73 73 69 67 6e 2d 6e 6f 64 65 3a 20 74  | var-init-node.and.assign-node:.t | 
| 46400 |  68 69 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b    20 69 73 20 6e 65 65 64 65 64 20 62 65 63 61 75  | his...........;;.is.needed.becau | 
| 46420 |  73 65 20 74 68 65 20 6e 61 6d 65 20 6d 61 79 20    62 65 20 77 69 74 68 69 6e 20 61 20 22 64 65 73  | se.the.name.may.be.within.a."des | 
| 46440 |  74 72 75 63 74 75 72 65 64 22 0a 20 20 20 20 20    20 20 20 20 20 3b 3b 20 64 65 63 6c 61 72 61 74  | tructured"...........;;.declarat | 
| 46460 |  69 6f 6e 2f 61 73 73 69 67 6e 6d 65 6e 74 2c 20    73 6f 20 77 65 20 63 61 6e 6e 6f 74 20 6a 75 73  | ion/assignment,.so.we.cannot.jus | 
| 46480 |  74 20 74 61 6b 65 20 69 74 73 20 70 61 72 65 6e    74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69  | t.take.its.parent...........(whi | 
| 464a0 |  6c 65 20 28 61 6e 64 20 67 72 61 6e 70 61 72 65    6e 74 20 28 6e 6f 74 20 28 6a 73 32 2d 73 63 6f  | le.(and.granparent.(not.(js2-sco | 
| 464c0 |  70 65 2d 70 20 67 72 61 6e 70 61 72 65 6e 74 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | pe-p.granparent))).............( | 
| 464e0 |  63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74  | cond..............((js2-var-init | 
| 46500 |  2d 6e 6f 64 65 2d 70 20 67 72 61 6e 70 61 72 65    6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -node-p.granparent)............. | 
| 46520 |  20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 76 61    72 2d 69 6e 69 74 2d 6e 6f 64 65 29 0a 20 20 20  | ..(when.(null.var-init-node).... | 
| 46540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65  | .............(setq.var-init-node | 
| 46560 |  20 67 72 61 6e 70 61 72 65 6e 74 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 28 28 6a 73  | .granparent)))..............((js | 
| 46580 |  32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 70 20    67 72 61 6e 70 61 72 65 6e 74 29 0a 20 20 20 20  | 2-assign-node-p.granparent)..... | 
| 465a0 |  20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    28 6e 75 6c 6c 20 61 73 73 69 67 6e 2d 6e 6f 64  | ..........(when.(null.assign-nod | 
| 465c0 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 61 73 73 69 67 6e 2d  | e).................(setq.assign- | 
| 465e0 |  6e 6f 64 65 20 67 72 61 6e 70 61 72 65 6e 74 29    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | node.granparent))))............. | 
| 46600 |  28 73 65 74 71 20 67 72 61 6e 70 61 72 65 6e 74    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e  | (setq.granparent.(js2-node-paren | 
| 46620 |  74 20 67 72 61 6e 70 61 72 65 6e 74 29 29 29 0a    0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66  | t.granparent)))............;;.If | 
| 46640 |  20 77 65 20 61 72 65 20 77 69 74 68 69 6e 20 61    20 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2c 20  | .we.are.within.a.var-init-node,. | 
| 46660 |  64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65    20 6e 61 6d 65 20 69 73 0a 20 20 20 20 20 20 20  | determine.if.the.name.is........ | 
| 46680 |  20 20 20 3b 3b 20 64 65 63 6c 61 72 65 64 20 61    6e 64 20 69 6e 69 74 69 61 6c 69 7a 65 64 0a 20  | ...;;.declared.and.initialized.. | 
| 466a0 |  20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 76    61 72 2d 69 6e 69 74 2d 6e 6f 64 65 0a 20 20 20  | .........(when.var-init-node.... | 
| 466c0 |  20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28    72 65 73 75 6c 74 20 28 6a 73 32 2d 2d 65 78 61  | .........(let.((result.(js2--exa | 
| 466e0 |  6d 69 6e 65 2d 76 61 72 69 61 62 6c 65 20 70 61    72 65 6e 74 20 6e 6f 64 65 20 76 61 72 2d 69 6e  | mine-variable.parent.node.var-in | 
| 46700 |  69 74 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64  | it-node)))...............(setq.d | 
| 46720 |  65 63 6c 61 72 65 64 20 28 63 61 72 20 72 65 73    75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20  | eclared.(car.result)............ | 
| 46740 |  20 20 20 20 20 20 20 20 20 61 73 73 69 67 6e 65    64 20 28 63 61 64 72 20 72 65 73 75 6c 74 29 0a  | .........assigned.(cadr.result). | 
| 46760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6f 62 6a 65 63 74 2d 6b 65 79 20 28  | ....................object-key.( | 
| 46780 |  63 61 72 20 28 63 64 64 72 20 72 65 73 75 6c 74    29 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20  | car.(cddr.result)))))........... | 
| 467a0 |  20 3b 3b 20 49 67 6e 6f 72 65 20 6c 69 74 65 72    61 6c 20 6f 62 6a 65 63 74 20 6b 65 79 73 2c 20  | .;;.Ignore.literal.object.keys,. | 
| 467c0 |  77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 72 65    61 6c 6c 79 20 76 61 72 69 61 62 6c 65 73 0a 20  | which.are.not.really.variables.. | 
| 467e0 |  20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73    20 6f 62 6a 65 63 74 2d 6b 65 79 0a 20 20 20 20  | .........(unless.object-key..... | 
| 46800 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 66 75    6e 63 74 69 6f 6e 2d 70 61 72 61 6d 0a 20 20 20  | ........(when.function-param.... | 
| 46820 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 61 73 73 69 67 6e 65 64 20 3f 50 29 29 0a 0a  | ...........(setq.assigned.?P)).. | 
| 46840 |  20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65    6e 20 28 6e 75 6c 6c 20 61 73 73 69 67 6e 65 64  | ............(when.(null.assigned | 
| 46860 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20  | )...............(cond........... | 
| 46880 |  20 20 20 20 20 28 28 6a 73 32 2d 66 6f 72 2d 69    6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29  | .....((js2-for-in-node-p.parent) | 
| 468a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20  | .................(setq.assigned. | 
| 468c0 |  28 65 71 20 6e 6f 64 65 20 28 6a 73 32 2d 66 6f    72 2d 69 6e 2d 6e 6f 64 65 2d 69 74 65 72 61 74  | (eq.node.(js2-for-in-node-iterat | 
| 468e0 |  6f 72 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | or.parent))..................... | 
| 46900 |  20 20 75 73 65 64 20 28 6e 6f 74 20 61 73 73 69    67 6e 65 64 29 29 29 0a 20 20 20 20 20 20 20 20  | ..used.(not.assigned)))......... | 
| 46920 |  20 20 20 20 20 20 20 28 28 6a 73 32 2d 66 75 6e    63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61 72  | .......((js2-function-node-p.par | 
| 46940 |  65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 61 73 73 69 67  | ent).................(setq.assig | 
| 46960 |  6e 65 64 20 74 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 64  | ned.t.......................used | 
| 46980 |  20 28 6a 73 32 2d 77 72 61 70 70 65 72 2d 66 75    6e 63 74 69 6f 6e 2d 70 20 70 61 72 65 6e 74 29  | .(js2-wrapper-function-p.parent) | 
| 469a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62  | ))................((js2-export-b | 
| 469c0 |  69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 70 20 70 61    72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20  | inding-node-p.parent)........... | 
| 469e0 |  20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 69    6d 70 6f 72 74 2d 63 6c 61 75 73 65 2d 6e 6f 64  | ......(if.(js2-import-clause-nod | 
| 46a00 |  65 2d 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61    72 65 6e 74 20 70 61 72 65 6e 74 29 29 0a 20 20  | e-p.(js2-node-parent.parent))... | 
| 46a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 64 65 63 6c 61 72 65 64  | ..................(setq.declared | 
| 46a40 |  20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73  | .t...........................ass | 
| 46a60 |  69 67 6e 65 64 20 74 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | igned.t)...................(setq | 
| 46a80 |  20 75 73 65 64 20 74 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d  | .used.t)))................((js2- | 
| 46aa0 |  6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f 72 74    2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29 0a  | namespace-import-node-p.parent). | 
| 46ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 61 73 73 69 67 6e 65 64 20 74  | ................(setq.assigned.t | 
| 46ae0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 75 73 65 64 20 6e 69 6c 29  | .......................used.nil) | 
| 46b00 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64  | )................((js2-class-nod | 
| 46b20 |  65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | e-p.parent).................(set | 
| 46b40 |  71 20 64 65 63 6c 61 72 65 64 20 74 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | q.declared.t.................... | 
| 46b60 |  20 20 20 61 73 73 69 67 6e 65 64 20 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...assigned.t))................( | 
| 46b80 |  61 73 73 69 67 6e 2d 6e 6f 64 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | assign-node.................(set | 
| 46ba0 |  71 20 61 73 73 69 67 6e 65 64 20 28 6d 65 6d 71    20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20  | q.assigned.(memq.node........... | 
| 46bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...........................(js2- | 
| 46be0 |  2d 63 6f 6c 6c 65 63 74 2d 74 61 72 67 65 74 2d    73 79 6d 62 6f 6c 73 0a 20 20 20 20 20 20 20 20  | -collect-target-symbols......... | 
| 46c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ..............................(j | 
| 46c20 |  73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 6c    65 66 74 20 61 73 73 69 67 6e 2d 6e 6f 64 65 29  | s2-assign-node-left.assign-node) | 
| 46c40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 46c60 |  20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......nil)).................... | 
| 46c80 |  20 20 20 75 73 65 64 20 28 6e 6f 74 20 61 73 73    69 67 6e 65 64 29 29 29 29 29 0a 0a 20 20 20 20  | ...used.(not.assigned)))))...... | 
| 46ca0 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 65    63 6c 61 72 65 64 0a 20 20 20 20 20 20 20 20 20  | ........(when.declared.......... | 
| 46cc0 |  20 20 20 20 20 28 73 65 74 71 20 75 73 65 64 20    6e 69 6c 29 29 0a 0a 20 20 20 20 20 20 20 20 20  | .....(setq.used.nil))........... | 
| 46ce0 |  20 20 20 28 6a 73 32 2d 2d 61 64 64 2d 6f 72 2d    75 70 64 61 74 65 2d 73 79 6d 62 6f 6c 20 6e 6f  | ...(js2--add-or-update-symbol.no | 
| 46d00 |  64 65 20 61 73 73 69 67 6e 65 64 20 75 73 65 64    20 76 61 72 73 29 29 29 29 29 29 29 0a 0a 28 64  | de.assigned.used.vars)))))))..(d | 
| 46d20 |  65 66 75 6e 20 6a 73 32 2d 2d 63 6c 61 73 73 69    66 79 2d 76 61 72 69 61 62 6c 65 73 20 28 29 0a  | efun.js2--classify-variables.(). | 
| 46d40 |  20 20 22 43 6f 6c 6c 65 63 74 20 61 6e 64 20 63    6c 61 73 73 69 66 79 20 76 61 72 69 61 62 6c 65  | .."Collect.and.classify.variable | 
| 46d60 |  73 20 64 65 63 6c 61 72 65 64 20 6f 72 20 75 73    65 64 20 77 69 74 68 69 6e 20 6a 73 32 2d 6d 6f  | s.declared.or.used.within.js2-mo | 
| 46d80 |  64 65 2d 61 73 74 2e 0a 54 72 61 76 65 72 73 65    20 74 68 65 20 77 68 6f 6c 65 20 61 73 74 20 74  | de-ast..Traverse.the.whole.ast.t | 
| 46da0 |  72 65 65 20 72 65 74 75 72 6e 69 6e 67 20 61 20    73 75 6d 6d 61 72 79 20 6f 66 20 74 68 65 20 76  | ree.returning.a.summary.of.the.v | 
| 46dc0 |  61 72 69 61 62 6c 65 73 0a 75 73 61 67 65 20 61    73 20 61 6e 20 68 61 73 68 2d 74 61 62 6c 65 2c  | ariables.usage.as.an.hash-table, | 
| 46de0 |  20 6b 65 79 65 64 20 62 79 20 74 68 65 69 72 20    63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 79  | .keyed.by.their.corresponding.sy | 
| 46e00 |  6d 62 6f 6c 20 74 61 62 6c 65 0a 65 6e 74 72 79    2e 0a 45 61 63 68 20 76 61 72 69 61 62 6c 65 20  | mbol.table.entry..Each.variable. | 
| 46e20 |  69 73 20 64 65 73 63 72 69 62 65 64 20 62 79 20    61 20 74 75 70 6c 65 20 77 68 65 72 65 20 74 68  | is.described.by.a.tuple.where.th | 
| 46e40 |  65 20 63 61 72 20 69 73 20 61 20 66 6c 61 67 0a    69 6e 64 69 63 61 74 69 6e 67 20 77 68 65 74 68  | e.car.is.a.flag.indicating.wheth | 
| 46e60 |  65 72 20 74 68 65 20 76 61 72 69 61 62 6c 65 20    68 61 73 20 62 65 65 6e 20 69 6e 69 74 69 61 6c  | er.the.variable.has.been.initial | 
| 46e80 |  69 7a 65 64 20 61 6e 64 20 74 68 65 20 63 64 72    0a 69 73 20 61 20 70 6f 73 73 69 62 6c 79 20 65  | ized.and.the.cdr.is.a.possibly.e | 
| 46ea0 |  6d 70 74 79 20 6c 69 73 74 20 6f 66 20 6e 61 6d    65 20 6e 6f 64 65 73 20 77 68 65 72 65 20 69 74  | mpty.list.of.name.nodes.where.it | 
| 46ec0 |  20 69 73 20 75 73 65 64 2e 20 45 78 74 65 72 6e    61 6c 0a 73 79 6d 62 6f 6c 73 2c 20 69 2e 65 2e  | .is.used..External.symbols,.i.e. | 
| 46ee0 |  20 74 68 6f 73 65 20 6e 6f 74 20 70 72 65 73 65    6e 74 20 69 6e 20 74 68 65 20 77 68 6f 6c 65 20  | .those.not.present.in.the.whole. | 
| 46f00 |  73 63 6f 70 65 73 20 68 69 65 72 61 72 63 68 79    2c 0a 61 72 65 20 69 67 6e 6f 72 65 64 2e 22 0a  | scopes.hierarchy,.are.ignored.". | 
| 46f20 |  20 20 28 6c 65 74 20 28 28 76 61 72 73 20 28 6d    61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a  | ..(let.((vars.(make-hash-table.: | 
| 46f40 |  74 65 73 74 20 23 27 65 71 20 3a 73 69 7a 65 20    31 30 30 29 29 29 0a 20 20 20 20 28 6a 73 32 2d  | test.#'eq.:size.100))).....(js2- | 
| 46f60 |  76 69 73 69 74 2d 61 73 74 0a 20 20 20 20 20 6a    73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20 20 20  | visit-ast......js2-mode-ast..... | 
| 46f80 |  20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 20 65    6e 64 2d 70 29 0a 20 20 20 20 20 20 20 28 77 68  | .(lambda.(node.end-p)........(wh | 
| 46fa0 |  65 6e 20 28 61 6e 64 20 28 6e 75 6c 6c 20 65 6e    64 2d 70 29 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e  | en.(and.(null.end-p).(js2-name-n | 
| 46fc0 |  6f 64 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72  | ode-p.node))..........(let.((par | 
| 46fe0 |  65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61    72 65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20  | ent.(js2-node-parent.node))).... | 
| 47000 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 61    72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20  | ........(when.parent............ | 
| 47020 |  20 20 28 6a 73 32 2d 2d 63 6c 61 73 73 69 66 79    2d 76 61 72 69 61 62 6c 65 20 70 61 72 65 6e 74  | ..(js2--classify-variable.parent | 
| 47040 |  20 6e 6f 64 65 20 76 61 72 73 29 29 29 29 0a 20    20 20 20 20 20 20 74 29 29 0a 20 20 20 20 76 61  | .node.vars))))........t)).....va | 
| 47060 |  72 73 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 2d 67 65 74 2d 6e 61 6d 65 2d 6e 6f 64 65 20  | rs))..(defun.js2--get-name-node. | 
| 47080 |  28 6e 6f 64 65 29 0a 20 20 28 63 6f 6e 64 0a 20    20 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64  | (node)...(cond....((js2-name-nod | 
| 470a0 |  65 2d 70 20 6e 6f 64 65 29 20 6e 6f 64 65 29 0a    20 20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f  | e-p.node).node)....((js2-functio | 
| 470c0 |  6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20    20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e  | n-node-p.node).....(js2-function | 
| 470e0 |  2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29    29 0a 20 20 20 28 28 6a 73 32 2d 63 6c 61 73 73  | -node-name.node))....((js2-class | 
| 47100 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20    20 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64  | -node-p.node).....(js2-class-nod | 
| 47120 |  65 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20    20 28 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70  | e-name.node))....((js2-comp-loop | 
| 47140 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20    20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70  | -node-p.node).....(js2-comp-loop | 
| 47160 |  2d 6e 6f 64 65 2d 69 74 65 72 61 74 6f 72 20 6e    6f 64 65 29 29 0a 20 20 20 28 74 20 6e 6f 64 65  | -node-iterator.node))....(t.node | 
| 47180 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75 73 65  | )))..(defun.js2--highlight-unuse | 
| 471a0 |  64 2d 76 61 72 69 61 62 6c 65 20 28 73 79 6d 62    6f 6c 20 69 6e 66 6f 29 0a 20 20 28 6c 65 74 20  | d-variable.(symbol.info)...(let. | 
| 471c0 |  28 28 6e 61 6d 65 20 28 6a 73 32 2d 73 79 6d 62    6f 6c 2d 6e 61 6d 65 20 73 79 6d 62 6f 6c 29 29  | ((name.(js2-symbol-name.symbol)) | 
| 471e0 |  0a 20 20 20 20 20 20 20 20 28 69 6e 69 74 65 64    20 28 63 61 72 20 69 6e 66 6f 29 29 0a 20 20 20  | .........(inited.(car.info)).... | 
| 47200 |  20 20 20 20 20 28 72 65 66 73 20 28 63 64 72 20    69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 70  | .....(refs.(cdr.info)).........p | 
| 47220 |  6f 73 20 6c 65 6e 29 0a 20 20 20 20 28 75 6e 6c    65 73 73 20 28 61 6e 64 20 69 6e 69 74 65 64 20  | os.len).....(unless.(and.inited. | 
| 47240 |  72 65 66 73 29 0a 20 20 20 20 20 20 28 69 66 20    72 65 66 73 0a 20 20 20 20 20 20 20 20 20 20 28  | refs).......(if.refs...........( | 
| 47260 |  64 6f 6c 69 73 74 20 28 72 65 66 20 72 65 66 73    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | dolist.(ref.refs).............(s | 
| 47280 |  65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 62 73 2d 70 6f 73 20 72 65 66 29 29 0a  | etq.pos.(js2-node-abs-pos.ref)). | 
| 472a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 6c 65 6e 20 28 6a 73 32 2d 6e 61 6d 65 2d  | ............(setq.len.(js2-name- | 
| 472c0 |  6e 6f 64 65 2d 6c 65 6e 20 72 65 66 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | node-len.ref)).............(js2- | 
| 472e0 |  72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67 20 22    6d 73 67 2e 75 6e 69 6e 69 74 69 61 6c 69 7a 65  | report-warning."msg.uninitialize | 
| 47300 |  64 2e 76 61 72 69 61 62 6c 65 22 20 6e 61 6d 65    20 70 6f 73 20 6c 65 6e 0a 20 20 20 20 20 20 20  | d.variable".name.pos.len........ | 
| 47320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 77 61  | .........................'js2-wa | 
| 47340 |  72 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 28 6f 72 20 6a 73 32 2d 77 61  | rning)).........(when.(or.js2-wa | 
| 47360 |  72 6e 2d 61 62 6f 75 74 2d 75 6e 75 73 65 64 2d    66 75 6e 63 74 69 6f 6e 2d 61 72 67 75 6d 65 6e  | rn-about-unused-function-argumen | 
| 47380 |  74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 69 6e  | ts...................(not.(eq.in | 
| 473a0 |  69 74 65 64 20 3f 50 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 79 6d  | ited.?P)))...........(let*.((sym | 
| 473c0 |  6e 20 28 6a 73 32 2d 73 79 6d 62 6f 6c 2d 61 73    74 2d 6e 6f 64 65 20 73 79 6d 62 6f 6c 29 29 0a  | n.(js2-symbol-ast-node.symbol)). | 
| 473e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6e 61 6d 65 6e 20 28 6a 73 32 2d 2d 67 65  | .................(namen.(js2--ge | 
| 47400 |  74 2d 6e 61 6d 65 2d 6e 6f 64 65 20 73 79 6d 6e    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | t-name-node.symn)))............. | 
| 47420 |  28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 6e 6f 64    65 2d 74 6f 70 2d 6c 65 76 65 6c 2d 64 65 63 6c  | (unless.(js2-node-top-level-decl | 
| 47440 |  2d 70 20 6e 61 6d 65 6e 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f  | -p.namen)...............(setq.po | 
| 47460 |  73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d    70 6f 73 20 6e 61 6d 65 6e 29 29 0a 20 20 20 20  | s.(js2-node-abs-pos.namen))..... | 
| 47480 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    6c 65 6e 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f  | ..........(setq.len.(js2-name-no | 
| 474a0 |  64 65 2d 6c 65 6e 20 6e 61 6d 65 6e 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | de-len.namen))...............(js | 
| 474c0 |  32 2d 72 65 70 6f 72 74 2d 77 61 72 6e 69 6e 67    20 22 6d 73 67 2e 75 6e 75 73 65 64 2e 76 61 72  | 2-report-warning."msg.unused.var | 
| 474e0 |  69 61 62 6c 65 22 20 6e 61 6d 65 20 70 6f 73 20    6c 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | iable".name.pos.len............. | 
| 47500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 27 6a 73 32 2d 77 61 72 6e 69  | ......................'js2-warni | 
| 47520 |  6e 67 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74  | ng))))))))..(defun.js2-highlight | 
| 47540 |  2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62 6c 65    73 20 28 29 0a 20 20 22 48 69 67 68 6c 69 67 68  | -unused-variables.()..."Highligh | 
| 47560 |  74 20 75 6e 75 73 65 64 20 76 61 72 69 61 62 6c    65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61  | t.unused.variables."...(let.((va | 
| 47580 |  72 73 20 28 6a 73 32 2d 2d 63 6c 61 73 73 69 66    79 2d 76 61 72 69 61 62 6c 65 73 29 29 29 0a 20  | rs.(js2--classify-variables))).. | 
| 475a0 |  20 20 20 28 6d 61 70 68 61 73 68 20 23 27 6a 73    32 2d 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75  | ...(maphash.#'js2--highlight-unu | 
| 475c0 |  73 65 64 2d 76 61 72 69 61 62 6c 65 20 76 61 72    73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f  | sed-variable.vars)))..;;;###auto | 
| 475e0 |  6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e    6f 72 2d 6d 6f 64 65 20 6a 73 32 2d 68 69 67 68  | load.(define-minor-mode.js2-high | 
| 47600 |  6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76 61 72    69 61 62 6c 65 73 2d 6d 6f 64 65 0a 20 20 22 54  | light-unused-variables-mode..."T | 
| 47620 |  6f 67 67 6c 65 20 68 69 67 68 6c 69 67 68 74 20    6f 66 20 75 6e 75 73 65 64 20 76 61 72 69 61 62  | oggle.highlight.of.unused.variab | 
| 47640 |  6c 65 73 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72    20 22 22 0a 20 20 28 69 66 20 6a 73 32 2d 68 69  | les."...:lighter.""...(if.js2-hi | 
| 47660 |  67 68 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76    61 72 69 61 62 6c 65 73 2d 6d 6f 64 65 0a 20 20  | ghlight-unused-variables-mode... | 
| 47680 |  20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a    73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61  | ....(add-hook.'js2-post-parse-ca | 
| 476a0 |  6c 6c 62 61 63 6b 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 23 27 6a 73 32 2d 68 69  | llbacks.................#'js2-hi | 
| 476c0 |  67 68 6c 69 67 68 74 2d 75 6e 75 73 65 64 2d 76    61 72 69 61 62 6c 65 73 20 6e 69 6c 20 74 29 0a  | ghlight-unused-variables.nil.t). | 
| 476e0 |  20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b    20 27 6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65  | ....(remove-hook.'js2-post-parse | 
| 47700 |  2d 63 61 6c 6c 62 61 63 6b 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73  | -callbacks..................#'js | 
| 47720 |  32 2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 75 73    65 64 2d 76 61 72 69 61 62 6c 65 73 20 74 29 29  | 2-highlight-unused-variables.t)) | 
| 47740 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 61 64    64 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74  | )..(defun.js2-add-additional-ext | 
| 47760 |  65 72 6e 73 20 28 65 78 74 65 72 6e 73 29 0a 20    20 28 73 65 74 71 20 6a 73 32 2d 61 64 64 69 74  | erns.(externs)...(setq.js2-addit | 
| 47780 |  69 6f 6e 61 6c 2d 65 78 74 65 72 6e 73 0a 20 20    20 20 20 20 20 20 28 6e 63 6f 6e 63 20 65 78 74  | ional-externs.........(nconc.ext | 
| 477a0 |  65 72 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 6a 73 32 2d 61 64 64 69 74 69 6f 6e  | erns................js2-addition | 
| 477c0 |  61 6c 2d 65 78 74 65 72 6e 73 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6a 73  | al-externs)))..(defun.js2-get-js | 
| 477e0 |  6c 69 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 69 64 65    6e 74 69 66 69 65 72 73 20 28 63 6f 6d 6d 65 6e  | lint-comment-identifiers.(commen | 
| 47800 |  74 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73    65 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f  | t)...(js2-reparse)...(cl-loop.fo | 
| 47820 |  72 20 6e 6f 64 65 20 69 6e 20 28 6a 73 32 2d 61    73 74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73  | r.node.in.(js2-ast-root-comments | 
| 47840 |  20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20    20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28  | .js2-mode-ast)............when.( | 
| 47860 |  61 6e 64 20 28 65 71 20 27 62 6c 6f 63 6b 20 28    6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d 6e 6f 64 65  | and.(eq.'block.(js2-comment-node | 
| 47880 |  2d 66 6f 72 6d 61 74 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -format.node)).................. | 
| 478a0 |  20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73    69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ....(save-excursion............. | 
| 478c0 |  20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f    2d 63 68 61 72 20 28 6a 73 32 2d 6e 6f 64 65 2d  | ...........(goto-char.(js2-node- | 
| 478e0 |  61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | abs-pos.node)).................. | 
| 47900 |  20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61    74 20 28 63 6f 6e 63 61 74 20 22 2f 5c 5c 2a 20  | ......(looking-at.(concat."/\\*. | 
| 47920 |  2a 22 20 63 6f 6d 6d 65 6e 74 20 22 5c 5c 28 3f    3a 20 5c 5c 7c 24 5c 5c 29 22 29 29 29 29 0a 20  | *".comment."\\(?:.\\|$\\)")))).. | 
| 47940 |  20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e 64    20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74  | ..........append.(js2-get-jslint | 
| 47960 |  2d 63 6f 6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66    69 65 72 73 2d 69 6e 0a 20 20 20 20 20 20 20 20  | -comment-identifiers-in......... | 
| 47980 |  20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63    68 2d 65 6e 64 20 30 29 0a 20 20 20 20 20 20 20  | ...........(match-end.0)........ | 
| 479a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64 20 6e 6f  | ............(js2-node-abs-end.no | 
| 479c0 |  64 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 63 6f  | de))))..(defun.js2-get-jslint-co | 
| 479e0 |  6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66 69 65 72    73 2d 69 6e 20 28 62 65 67 20 65 6e 64 29 0a 20  | mment-identifiers-in.(beg.end).. | 
| 47a00 |  20 28 6c 65 74 20 28 72 65 73 29 0a 20 20 20 20    28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a  | .(let.(res).....(save-excursion. | 
| 47a20 |  20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72    20 62 65 67 29 0a 20 20 20 20 20 20 28 77 68 69  | ......(goto-char.beg).......(whi | 
| 47a40 |  6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f    72 77 61 72 64 20 6a 73 32 2d 6d 6f 64 65 2d 69  | le.(re-search-forward.js2-mode-i | 
| 47a60 |  64 65 6e 74 69 66 69 65 72 2d 72 65 20 65 6e 64    20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74  | dentifier-re.end.t).........(let | 
| 47a80 |  20 28 28 6d 61 74 63 68 20 28 6d 61 74 63 68 2d    73 74 72 69 6e 67 20 30 29 29 29 0a 20 20 20 20  | .((match.(match-string.0)))..... | 
| 47aa0 |  20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d    65 6d 62 65 72 20 6d 61 74 63 68 20 27 28 22 74  | ......(unless.(member.match.'("t | 
| 47ac0 |  72 75 65 22 20 22 66 61 6c 73 65 22 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68  | rue"."false")).............(push | 
| 47ae0 |  20 6d 61 74 63 68 20 72 65 73 29 29 29 29 29 0a    20 20 20 20 28 6e 72 65 76 65 72 73 65 20 72 65  | .match.res))))).....(nreverse.re | 
| 47b00 |  73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 67 6c  | s)))..(defun.js2-apply-jslint-gl | 
| 47b20 |  6f 62 61 6c 73 20 28 29 0a 20 20 28 6a 73 32 2d    61 64 64 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65  | obals.()...(js2-add-additional-e | 
| 47b40 |  78 74 65 72 6e 73 20 28 6a 73 32 2d 67 65 74 2d    6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 29 29  | xterns.(js2-get-jslint-globals)) | 
| 47b60 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 67 65    74 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73  | )..(defun.js2-get-jslint-globals | 
| 47b80 |  20 28 29 0a 20 20 28 6a 73 32 2d 67 65 74 2d 6a    73 6c 69 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 69 64  | .()...(js2-get-jslint-comment-id | 
| 47ba0 |  65 6e 74 69 66 69 65 72 73 20 22 67 6c 6f 62 61    6c 22 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | entifiers."global"))..(defun.js2 | 
| 47bc0 |  2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74 2d 64 65    63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e  | -apply-jslint-declaration-extern | 
| 47be0 |  73 20 28 29 0a 20 20 28 6a 73 32 2d 61 64 64 2d    61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74 65 72  | s.()...(js2-add-additional-exter | 
| 47c00 |  6e 73 20 28 6a 73 32 2d 67 65 74 2d 6a 73 6c 69    6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65  | ns.(js2-get-jslint-declaration-e | 
| 47c20 |  78 74 65 72 6e 73 29 29 29 0a 0a 28 64 65 66 76    61 72 20 6a 73 32 2d 6a 73 6c 69 6e 74 2d 64 65  | xterns)))..(defvar.js2-jslint-de | 
| 47c40 |  63 6c 61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e    73 0a 20 20 60 28 28 22 62 72 6f 77 73 65 72 22  | claration-externs...`(("browser" | 
| 47c60 |  20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d    62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20  | ...,(mapcar.'symbol-name........ | 
| 47c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 27 28 41 75 64 69 6f 20 63 6c 65 61 72  | ...................'(Audio.clear | 
| 47ca0 |  49 6e 74 65 72 76 61 6c 20 63 6c 65 61 72 54 69    6d 65 6f 75 74 20 64 6f 63 75 6d 65 6e 74 0a 20  | Interval.clearTimeout.document.. | 
| 47cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 65 76 65 6e 74  | ...........................event | 
| 47ce0 |  20 68 69 73 74 6f 72 79 20 49 6d 61 67 65 20 6c    6f 63 61 74 69 6f 6e 20 6e 61 6d 65 0a 20 20 20  | .history.Image.location.name.... | 
| 47d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6e 61 76 69 67 61 74  | .........................navigat | 
| 47d20 |  6f 72 20 4f 70 74 69 6f 6e 20 73 63 72 65 65 6e    20 73 65 74 49 6e 74 65 72 76 61 6c 0a 20 20 20  | or.Option.screen.setInterval.... | 
| 47d40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 73 65 74 54 69 6d 65  | .........................setTime | 
| 47d60 |  6f 75 74 20 58 4d 4c 48 74 74 70 52 65 71 75 65    73 74 29 29 29 0a 20 20 20 20 28 22 6e 6f 64 65  | out.XMLHttpRequest))).....("node | 
| 47d80 |  22 20 2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79    6d 62 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20  | "...,(mapcar.'symbol-name....... | 
| 47da0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 27 28 42 75 66 66 65 72 20 63 6c 65 61 72 49  | .................'(Buffer.clearI | 
| 47dc0 |  6d 6d 65 64 69 61 74 65 20 63 6c 65 61 72 49 6e    74 65 72 76 61 6c 0a 20 20 20 20 20 20 20 20 20  | mmediate.clearInterval.......... | 
| 47de0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    63 6c 65 61 72 54 69 6d 65 6f 75 74 20 63 6f 6e  | ................clearTimeout.con | 
| 47e00 |  73 6f 6c 65 20 65 78 70 6f 72 74 73 20 67 6c 6f    62 61 6c 20 6d 6f 64 75 6c 65 0a 20 20 20 20 20  | sole.exports.global.module...... | 
| 47e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 70 72 6f 63 65 73 73 20 71 75 65 72  | ....................process.quer | 
| 47e40 |  79 73 74 72 69 6e 67 20 72 65 71 75 69 72 65 20    73 65 74 49 6d 6d 65 64 69 61 74 65 0a 20 20 20  | ystring.require.setImmediate.... | 
| 47e60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 73 65 74 49 6e 74 65 72 76 61  | ......................setInterva | 
| 47e80 |  6c 20 73 65 74 54 69 6d 65 6f 75 74 20 5f 5f 64    69 72 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20  | l.setTimeout.__dirname.......... | 
| 47ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    5f 5f 66 69 6c 65 6e 61 6d 65 29 29 29 0a 20 20  | ................__filename)))... | 
| 47ec0 |  20 20 28 22 65 73 36 22 20 2e 20 2c 28 6d 61 70    63 61 72 20 27 73 79 6d 62 6f 6c 2d 6e 61 6d 65  | ..("es6"...,(mapcar.'symbol-name | 
| 47ee0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 27 28 41 72 72 61 79 42 75  | .......................'(ArrayBu | 
| 47f00 |  66 66 65 72 20 44 61 74 61 56 69 65 77 20 46 6c    6f 61 74 33 32 41 72 72 61 79 0a 20 20 20 20 20  | ffer.DataView.Float32Array...... | 
| 47f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 46 6c 6f 61 74 36 34 41 72 72 61 79 20  | ...................Float64Array. | 
| 47f40 |  49 6e 74 38 41 72 72 61 79 20 49 6e 74 31 36 41    72 72 61 79 20 49 6e 74 33 32 41 72 72 61 79 0a  | Int8Array.Int16Array.Int32Array. | 
| 47f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 49 6e 74 6c 20 4d 61 70  | ........................Intl.Map | 
| 47f80 |  20 50 72 6f 6d 69 73 65 20 50 72 6f 78 79 20 52    65 66 6c 65 63 74 20 53 65 74 20 53 79 6d 62 6f  | .Promise.Proxy.Reflect.Set.Symbo | 
| 47fa0 |  6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 53 79 73 74 65 6d  | l.........................System | 
| 47fc0 |  20 55 69 6e 74 38 41 72 72 61 79 20 55 69 6e 74    38 43 6c 61 6d 70 65 64 41 72 72 61 79 0a 20 20  | .Uint8Array.Uint8ClampedArray... | 
| 47fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 55 69 6e 74 31 36 41 72 72 61  | ......................Uint16Arra | 
| 48000 |  79 20 55 69 6e 74 33 32 41 72 72 61 79 20 57 65    61 6b 4d 61 70 20 57 65 61 6b 53 65 74 29 29 29  | y.Uint32Array.WeakMap.WeakSet))) | 
| 48020 |  0a 20 20 20 20 28 22 63 6f 75 63 68 22 20 2e 20    2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62 6f 6c  | .....("couch"...,(mapcar.'symbol | 
| 48040 |  2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28  | -name.........................'( | 
| 48060 |  65 6d 69 74 20 67 65 74 52 6f 77 20 69 73 41 72    72 61 79 20 6c 6f 67 20 70 72 6f 76 69 64 65 73  | emit.getRow.isArray.log.provides | 
| 48080 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 72 65 67 69 73  | ...........................regis | 
| 480a0 |  74 65 72 54 79 70 65 20 72 65 71 75 69 72 65 20    73 65 6e 64 20 73 74 61 72 74 20 73 75 6d 0a 20  | terType.require.send.start.sum.. | 
| 480c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 74 6f 4a 53 4f 4e 29  | .........................toJSON) | 
| 480e0 |  29 29 0a 20 20 20 20 28 22 64 65 76 65 6c 22 20    2e 20 2c 28 6d 61 70 63 61 72 20 27 73 79 6d 62  | )).....("devel"...,(mapcar.'symb | 
| 48100 |  6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ol-name......................... | 
| 48120 |  27 28 61 6c 65 72 74 20 63 6f 6e 66 69 72 6d 20    63 6f 6e 73 6f 6c 65 20 44 65 62 75 67 20 6f 70  | '(alert.confirm.console.Debug.op | 
| 48140 |  65 72 61 20 70 72 6f 6d 70 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | era.prompt...................... | 
| 48160 |  20 20 20 20 20 57 53 48 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 6a 73  | .....WSH)))))..(defun.js2-get-js | 
| 48180 |  6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e    2d 65 78 74 65 72 6e 73 20 28 29 0a 20 20 28 61  | lint-declaration-externs.()...(a | 
| 481a0 |  70 70 6c 79 20 27 61 70 70 65 6e 64 0a 20 20 20    20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c  | pply.'append..........(mapcar.(l | 
| 481c0 |  61 6d 62 64 61 20 28 69 64 65 6e 74 69 66 69 65    72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ambda.(identifier).............. | 
| 481e0 |  20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f    63 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 20  | ......(cdr.(assoc.identifier.... | 
| 48200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d  | ............................js2- | 
| 48220 |  6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72 61 74 69    6f 6e 2d 65 78 74 65 72 6e 73 29 29 29 0a 20 20  | jslint-declaration-externs)))... | 
| 48240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 67 65 74 2d 6a 73 6c 69 6e 74 2d 63  | ...............(js2-get-jslint-c | 
| 48260 |  6f 6d 6d 65 6e 74 2d 69 64 65 6e 74 69 66 69 65    72 73 20 22 6a 73 6c 69 6e 74 22 29 29 29 29 0a  | omment-identifiers."jslint")))). | 
| 48280 |  0a 3b 3b 3b 20 49 4d 65 6e 75 20 73 75 70 70 6f    72 74 0a 0a 3b 3b 20 57 65 20 63 75 72 72 65 6e  | .;;;.IMenu.support..;;.We.curren | 
| 482a0 |  74 6c 79 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74    20 69 6d 65 6e 75 2c 20 62 75 74 20 65 76 65 6e  | tly.only.support.imenu,.but.even | 
| 482c0 |  74 75 61 6c 6c 79 20 73 68 6f 75 6c 64 20 73 75    70 70 6f 72 74 20 73 70 65 65 64 62 61 72 20 61  | tually.should.support.speedbar.a | 
| 482e0 |  6e 64 0a 3b 3b 20 70 6f 73 73 69 62 6c 79 20 6f    74 68 65 72 20 62 72 6f 77 73 69 6e 67 20 6d 65  | nd.;;.possibly.other.browsing.me | 
| 48300 |  63 68 61 6e 69 73 6d 73 2e 0a 0a 3b 3b 20 54 68    65 20 62 61 73 69 63 20 73 74 72 61 74 65 67 79  | chanisms...;;.The.basic.strategy | 
| 48320 |  20 69 73 20 74 6f 20 69 64 65 6e 74 69 66 79 20    66 75 6e 63 74 69 6f 6e 20 61 73 73 69 67 6e 6d  | .is.to.identify.function.assignm | 
| 48340 |  65 6e 74 20 74 61 72 67 65 74 73 20 6f 66 20 74    68 65 20 66 6f 72 6d 0a 3b 3b 20 60 66 6f 6f 2e  | ent.targets.of.the.form.;;.`foo. | 
| 48360 |  62 61 72 2e 62 61 7a 27 2c 20 63 6f 6e 76 65 72    74 20 74 68 65 6d 20 74 6f 20 28 6c 69 73 74 20  | bar.baz',.convert.them.to.(list. | 
| 48380 |  66 6e 20 66 6f 6f 20 62 61 72 20 62 61 7a 20 3c    70 6f 73 69 74 69 6f 6e 3e 29 2c 20 61 6e 64 20  | fn.foo.bar.baz.<position>),.and. | 
| 483a0 |  70 75 73 68 20 74 68 65 0a 3b 3b 20 6c 69 73 74    20 69 6e 74 6f 20 60 6a 73 32 2d 69 6d 65 6e 75  | push.the.;;.list.into.`js2-imenu | 
| 483c0 |  2d 72 65 63 6f 72 64 65 72 27 2e 20 20 54 68 65    20 6c 69 73 74 73 20 61 72 65 20 6d 65 72 67 65  | -recorder'...The.lists.are.merge | 
| 483e0 |  64 20 69 6e 74 6f 20 61 20 74 72 69 65 2d 6c 69    6b 65 20 74 72 65 65 0a 3b 3b 20 66 6f 72 20 69  | d.into.a.trie-like.tree.;;.for.i | 
| 48400 |  6d 65 6e 75 20 61 66 74 65 72 20 70 61 72 73 69    6e 67 20 69 73 20 66 69 6e 69 73 68 65 64 2e 0a  | menu.after.parsing.is.finished.. | 
| 48420 |  0a 3b 3b 20 41 20 60 66 6f 6f 2e 62 61 72 2e 62    61 7a 27 20 61 73 73 69 67 6e 6d 65 6e 74 20 74  | .;;.A.`foo.bar.baz'.assignment.t | 
| 48440 |  61 72 67 65 74 20 6d 61 79 20 62 65 20 65 78 70    72 65 73 73 65 64 20 69 6e 20 6d 61 6e 79 20 77  | arget.may.be.expressed.in.many.w | 
| 48460 |  61 79 73 20 69 6e 0a 3b 3b 20 4a 61 76 61 53 63    72 69 70 74 2c 20 61 6e 64 20 74 68 65 20 67 65  | ays.in.;;.JavaScript,.and.the.ge | 
| 48480 |  6e 65 72 61 6c 20 70 72 6f 62 6c 65 6d 20 69 73    20 75 6e 64 65 63 69 64 61 62 6c 65 2e 20 20 48  | neral.problem.is.undecidable...H | 
| 484a0 |  6f 77 65 76 65 72 2c 20 73 65 76 65 72 61 6c 20    66 6f 72 6d 73 0a 3b 3b 20 61 72 65 20 72 65 61  | owever,.several.forms.;;.are.rea | 
| 484c0 |  64 69 6c 79 20 72 65 63 6f 67 6e 69 7a 61 62 6c    65 20 61 74 20 70 61 72 73 65 2d 74 69 6d 65 3b  | dily.recognizable.at.parse-time; | 
| 484e0 |  20 74 68 65 20 66 6f 72 6d 73 20 77 65 20 61 74    74 65 6d 70 74 20 74 6f 20 72 65 63 6f 67 6e 69  | .the.forms.we.attempt.to.recogni | 
| 48500 |  7a 65 0a 3b 3b 20 69 6e 63 6c 75 64 65 3a 0a 0a    3b 3b 20 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6f  | ze.;;.include:..;;..function.foo | 
| 48520 |  28 29 20 20 2d 2d 20 66 75 6e 63 74 69 6f 6e 20    64 65 63 6c 61 72 61 74 69 6f 6e 0a 3b 3b 20 20  | ()..--.function.declaration.;;.. | 
| 48540 |  66 6f 6f 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29    20 20 2d 2d 20 66 75 6e 63 74 69 6f 6e 20 65 78  | foo.=.function()..--.function.ex | 
| 48560 |  70 72 65 73 73 69 6f 6e 20 61 73 73 69 67 6e 65    64 20 74 6f 20 76 61 72 69 61 62 6c 65 0a 3b 3b  | pression.assigned.to.variable.;; | 
| 48580 |  20 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20    66 75 6e 63 74 69 6f 6e 28 29 20 20 2d 2d 20 66  | ..foo.bar.baz.=.function()..--.f | 
| 485a0 |  75 6e 63 74 69 6f 6e 20 65 78 70 72 20 61 73 73    69 67 6e 65 64 20 74 6f 20 6e 65 73 74 65 64 20  | unction.expr.assigned.to.nested. | 
| 485c0 |  70 72 6f 70 65 72 74 79 2d 67 65 74 0a 3b 3b 20    20 66 6f 6f 20 3d 20 7b 62 61 72 3a 20 66 75 6e  | property-get.;;..foo.=.{bar:.fun | 
| 485e0 |  63 74 69 6f 6e 28 29 7d 20 20 2d 2d 20 66 75 6e    20 70 72 6f 70 20 69 6e 20 6f 62 6a 65 63 74 20  | ction()}..--.fun.prop.in.object. | 
| 48600 |  6c 69 74 65 72 61 6c 20 61 73 73 69 67 6e 65 64    20 74 6f 20 76 61 72 0a 3b 3b 20 20 66 6f 6f 20  | literal.assigned.to.var.;;..foo. | 
| 48620 |  3d 20 7b 62 61 72 3a 20 7b 62 61 7a 3a 20 66 75    6e 63 74 69 6f 6e 28 29 7d 7d 20 2d 2d 20 69 6e  | =.{bar:.{baz:.function()}}.--.in | 
| 48640 |  73 69 64 65 20 6e 65 73 74 65 64 20 6f 62 6a 65    63 74 20 6c 69 74 65 72 61 6c 0a 3b 3b 20 20 66  | side.nested.object.literal.;;..f | 
| 48660 |  6f 6f 2e 62 61 72 20 3d 20 7b 62 61 7a 3a 20 66    75 6e 63 74 69 6f 6e 28 29 7d 7d 20 2d 2d 20 6f  | oo.bar.=.{baz:.function()}}.--.o | 
| 48680 |  62 6a 20 6c 69 74 20 61 73 73 69 67 6e 65 64 20    74 6f 20 6e 65 73 74 65 64 20 70 72 6f 70 20 67  | bj.lit.assigned.to.nested.prop.g | 
| 486a0 |  65 74 0a 3b 3b 20 20 61 2e 62 20 3d 20 7b 63 3a    20 7b 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 7d  | et.;;..a.b.=.{c:.{d:.function()} | 
| 486c0 |  7d 20 2d 2d 20 6e 65 73 74 65 64 20 6f 62 6a 20    6c 69 74 20 61 73 73 69 67 6e 65 64 20 74 6f 20  | }.--.nested.obj.lit.assigned.to. | 
| 486e0 |  6e 65 73 74 65 64 20 70 72 6f 70 20 67 65 74 0a    3b 3b 20 20 66 6f 6f 20 3d 20 7b 67 65 74 20 62  | nested.prop.get.;;..foo.=.{get.b | 
| 48700 |  61 72 28 29 20 7b 2e 2e 2e 7d 7d 20 20 2d 2d 20    67 65 74 74 65 72 2f 73 65 74 74 65 72 20 69 6e  | ar().{...}}..--.getter/setter.in | 
| 48720 |  20 6f 62 6a 20 6c 69 74 65 72 61 6c 0a 3b 3b 20    20 66 75 6e 63 74 69 6f 6e 20 66 6f 6f 28 29 20  | .obj.literal.;;..function.foo(). | 
| 48740 |  7b 66 75 6e 63 74 69 6f 6e 20 62 61 72 28 29 20    7b 2e 2e 2e 7d 7d 20 20 2d 2d 20 6e 65 73 74 65  | {function.bar().{...}}..--.neste | 
| 48760 |  64 20 66 75 6e 63 74 69 6f 6e 0a 3b 3b 20 20 66    6f 6f 5b 27 61 27 5d 20 3d 20 66 75 6e 63 74 69  | d.function.;;..foo['a'].=.functi | 
| 48780 |  6f 6e 28 29 20 20 2d 2d 20 66 75 6e 20 65 78 70    72 20 61 73 73 69 67 6e 65 64 20 74 6f 20 64 65  | on()..--.fun.expr.assigned.to.de | 
| 487a0 |  74 65 72 6d 69 6e 69 73 74 69 63 20 65 6c 65 6d    65 6e 74 2d 67 65 74 0a 0a 3b 3b 20 54 68 69 73  | terministic.element-get..;;.This | 
| 487c0 |  20 6c 69 73 74 20 62 6f 69 6c 73 20 64 6f 77 6e    20 74 6f 20 61 20 66 65 77 20 66 6f 72 6d 73 20  | .list.boils.down.to.a.few.forms. | 
| 487e0 |  74 68 61 74 20 63 61 6e 20 62 65 20 63 6f 6d 62    69 6e 65 64 20 72 65 63 75 72 73 69 76 65 6c 79  | that.can.be.combined.recursively | 
| 48800 |  2e 0a 3b 3b 20 54 6f 70 2d 6c 65 76 65 6c 20 6e    61 6d 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65  | ..;;.Top-level.named.function.de | 
| 48820 |  63 6c 61 72 61 74 69 6f 6e 73 20 69 6e 63 6c 75    64 65 20 62 6f 74 68 20 74 68 65 20 6c 65 66 74  | clarations.include.both.the.left | 
| 48840 |  2d 68 61 6e 64 20 28 6e 61 6d 65 29 0a 3b 3b 20    61 6e 64 20 74 68 65 20 72 69 67 68 74 2d 68 61  | -hand.(name).;;.and.the.right-ha | 
| 48860 |  6e 64 20 28 66 75 6e 63 74 69 6f 6e 20 76 61 6c    75 65 29 20 65 78 70 72 65 73 73 69 6f 6e 73 20  | nd.(function.value).expressions. | 
| 48880 |  6e 65 65 64 65 64 20 74 6f 20 70 72 6f 64 75 63    65 20 61 6e 20 69 6d 65 6e 75 0a 3b 3b 20 65 6e  | needed.to.produce.an.imenu.;;.en | 
| 488a0 |  74 72 79 2e 20 20 54 68 65 20 6f 74 68 65 72 20    22 72 69 67 68 74 2d 68 61 6e 64 22 20 66 6f 72  | try...The.other."right-hand".for | 
| 488c0 |  6d 73 20 77 65 20 6e 65 65 64 20 74 6f 20 6c 6f    6f 6b 20 66 6f 72 20 61 72 65 3a 0a 3b 3b 20 20  | ms.we.need.to.look.for.are:.;;.. | 
| 488e0 |  2d 20 66 75 6e 63 74 69 6f 6e 73 20 64 65 63 6c    61 72 65 64 20 61 73 20 70 72 6f 70 73 2f 67 65  | -.functions.declared.as.props/ge | 
| 48900 |  74 74 65 72 73 2f 73 65 74 74 65 72 73 20 69 6e    20 6f 62 6a 65 63 74 20 6c 69 74 65 72 61 6c 73  | tters/setters.in.object.literals | 
| 48920 |  0a 3b 3b 20 20 2d 20 6e 65 73 74 65 64 20 6e 61    6d 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 63  | .;;..-.nested.named.function.dec | 
| 48940 |  6c 61 72 61 74 69 6f 6e 73 0a 3b 3b 20 54 68 65    20 22 6c 65 66 74 2d 68 61 6e 64 22 20 65 78 70  | larations.;;.The."left-hand".exp | 
| 48960 |  72 65 73 73 69 6f 6e 73 20 74 68 61 74 20 66 75    6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 61  | ressions.that.functions.can.be.a | 
| 48980 |  73 73 69 67 6e 65 64 20 74 6f 20 69 6e 63 6c 75    64 65 3a 0a 3b 3b 20 20 2d 20 6c 6f 63 61 6c 2f  | ssigned.to.include:.;;..-.local/ | 
| 489a0 |  67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 73    0a 3b 3b 20 20 2d 20 6e 65 73 74 65 64 20 70 72  | global.variables.;;..-.nested.pr | 
| 489c0 |  6f 70 65 72 74 79 2d 67 65 74 20 65 78 70 72 65    73 73 69 6f 6e 73 20 6c 69 6b 65 20 61 2e 62 2e  | operty-get.expressions.like.a.b. | 
| 489e0 |  63 2e 64 0a 3b 3b 20 20 2d 20 65 6c 65 6d 65 6e    74 20 67 65 74 73 20 6c 69 6b 65 20 66 6f 6f 5b  | c.d.;;..-.element.gets.like.foo[ | 
| 48a00 |  31 30 5d 20 6f 72 20 66 6f 6f 5b 27 62 61 72 27    5d 20 77 68 65 72 65 20 74 68 65 20 69 6e 64 65  | 10].or.foo['bar'].where.the.inde | 
| 48a20 |  78 0a 3b 3b 20 20 20 20 65 78 70 72 65 73 73 69    6f 6e 20 63 61 6e 20 62 65 20 74 72 69 76 69 61  | x.;;....expression.can.be.trivia | 
| 48a40 |  6c 6c 79 20 63 6f 6e 76 65 72 74 65 64 20 74 6f    20 61 20 70 72 6f 70 65 72 74 79 20 6e 61 6d 65  | lly.converted.to.a.property.name | 
| 48a60 |  2e 20 20 54 68 65 79 0a 3b 3b 20 20 20 20 65 66    66 65 63 74 69 76 65 6c 79 20 74 68 65 6e 20 62  | ...They.;;....effectively.then.b | 
| 48a80 |  65 63 6f 6d 65 20 70 72 6f 70 65 72 74 79 20 67    65 74 73 2e 0a 0a 3b 3b 20 41 6c 6c 20 74 68 65  | ecome.property.gets...;;.All.the | 
| 48aa0 |  20 64 69 66 66 65 72 65 6e 74 20 64 65 66 69 6e    69 74 69 6f 6e 20 74 79 70 65 73 20 61 72 65 20  | .different.definition.types.are. | 
| 48ac0 |  63 61 6e 6f 6e 69 63 61 6c 69 7a 65 64 20 69 6e    74 6f 20 74 68 65 20 66 6f 72 6d 0a 3b 3b 20 66  | canonicalized.into.the.form.;;.f | 
| 48ae0 |  6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20 70 6f 73    69 74 69 6f 6e 2d 6f 66 2d 66 75 6e 63 74 69 6f  | oo.bar.baz.=.position-of-functio | 
| 48b00 |  6e 2d 6b 65 79 77 6f 72 64 0a 0a 3b 3b 20 57 65    20 6e 65 65 64 20 74 6f 20 62 75 69 6c 64 20 61  | n-keyword..;;.We.need.to.build.a | 
| 48b20 |  20 74 72 69 65 2d 6c 69 6b 65 20 73 74 72 75 63    74 75 72 65 20 66 6f 72 20 69 6d 65 6e 75 2e 20  | .trie-like.structure.for.imenu.. | 
| 48b40 |  20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 0a    3b 3b 20 63 6f 6e 73 69 64 65 72 20 74 68 65 20  | .As.an.example,.;;.consider.the. | 
| 48b60 |  66 6f 6c 6c 6f 77 69 6e 67 20 4a 61 76 61 53 63    72 69 70 74 20 63 6f 64 65 3a 0a 0a 3b 3b 20 61  | following.JavaScript.code:..;;.a | 
| 48b80 |  20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e    2e 2e 7d 20 20 2f 2f 20 66 75 6e 63 74 69 6f 6e  | .=.function().{...}..//.function | 
| 48ba0 |  20 61 74 20 70 6f 73 69 74 69 6f 6e 20 35 0a 3b    3b 20 62 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29  | .at.position.5.;;.b.=.function() | 
| 48bc0 |  20 7b 2e 2e 2e 7d 20 20 2f 2f 20 66 75 6e 63 74    69 6f 6e 20 61 74 20 70 6f 73 69 74 69 6f 6e 20  | .{...}..//.function.at.position. | 
| 48be0 |  32 35 0a 3b 3b 20 66 6f 6f 20 3d 20 66 75 6e 63    74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d 20 2f 2f 20  | 25.;;.foo.=.function().{...}.//. | 
| 48c00 |  66 75 6e 63 74 69 6f 6e 20 61 74 20 70 6f 73 69    74 69 6f 6e 20 31 30 30 0a 3b 3b 20 66 6f 6f 2e  | function.at.position.100.;;.foo. | 
| 48c20 |  62 61 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29    20 7b 2e 2e 2e 7d 20 2f 2f 20 66 75 6e 63 74 69  | bar.=.function().{...}.//.functi | 
| 48c40 |  6f 6e 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 32    30 30 0a 3b 3b 20 66 6f 6f 2e 62 61 72 2e 62 61  | on.at.position.200.;;.foo.bar.ba | 
| 48c60 |  7a 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b    2e 2e 2e 7d 20 2f 2f 20 66 75 6e 63 74 69 6f 6e  | z.=.function().{...}.//.function | 
| 48c80 |  20 61 74 20 70 6f 73 69 74 69 6f 6e 20 33 30 30    0a 3b 3b 20 66 6f 6f 2e 62 61 72 2e 7a 61 62 20  | .at.position.300.;;.foo.bar.zab. | 
| 48ca0 |  3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e    2e 7d 20 2f 2f 20 66 75 6e 63 74 69 6f 6e 20 61  | =.function().{...}.//.function.a | 
| 48cc0 |  74 20 70 6f 73 69 74 69 6f 6e 20 34 30 30 0a 0a    3b 3b 20 44 75 72 69 6e 67 20 70 61 72 73 69 6e  | t.position.400..;;.During.parsin | 
| 48ce0 |  67 20 77 65 20 61 63 63 75 6d 75 6c 61 74 65 20    61 6e 20 65 6e 74 72 79 20 66 6f 72 20 65 61 63  | g.we.accumulate.an.entry.for.eac | 
| 48d00 |  68 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 0a    3b 3b 20 74 68 65 20 76 61 72 69 61 62 6c 65 20  | h.definition.in.;;.the.variable. | 
| 48d20 |  60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72    64 65 72 27 2c 20 6c 69 6b 65 20 73 6f 3a 0a 0a  | `js2-imenu-recorder',.like.so:.. | 
| 48d40 |  3b 3b 20 27 28 28 66 6e 20 61 20 35 29 0a 3b 3b    20 20 20 28 66 6e 20 62 20 32 35 29 0a 3b 3b 20  | ;;.'((fn.a.5).;;...(fn.b.25).;;. | 
| 48d60 |  20 20 28 66 6e 20 66 6f 6f 20 31 30 30 29 0a 3b    3b 20 20 20 28 66 6e 20 66 6f 6f 20 62 61 72 20  | ..(fn.foo.100).;;...(fn.foo.bar. | 
| 48d80 |  32 30 30 29 0a 3b 3b 20 20 20 28 66 6e 20 66 6f    6f 20 62 61 72 20 62 61 7a 20 33 30 30 29 0a 3b  | 200).;;...(fn.foo.bar.baz.300).; | 
| 48da0 |  3b 20 20 20 28 66 6e 20 66 6f 6f 20 62 61 72 20    7a 61 62 20 34 30 30 29 29 0a 0a 3b 3b 20 57 68  | ;...(fn.foo.bar.zab.400))..;;.Wh | 
| 48dc0 |  65 72 65 20 27 66 6e 27 20 69 73 20 74 68 65 20    72 65 73 70 65 63 74 69 76 65 20 66 75 6e 63 74  | ere.'fn'.is.the.respective.funct | 
| 48de0 |  69 6f 6e 20 6e 6f 64 65 2e 0a 3b 3b 20 41 66 74    65 72 20 70 61 72 73 69 6e 67 20 74 68 65 73 65  | ion.node..;;.After.parsing.these | 
| 48e00 |  20 65 6e 74 72 69 65 73 20 61 72 65 20 6d 65 72    67 65 64 20 69 6e 74 6f 20 74 68 69 73 20 61 6c  | .entries.are.merged.into.this.al | 
| 48e20 |  69 73 74 2d 74 72 69 65 3a 0a 0a 3b 3b 20 27 28    28 61 20 2e 20 31 29 0a 3b 3b 20 20 20 28 62 20  | ist-trie:..;;.'((a...1).;;...(b. | 
| 48e40 |  2e 20 32 29 0a 3b 3b 20 20 20 28 66 6f 6f 20 28    3c 64 65 66 69 6e 69 74 69 6f 6e 3e 20 2e 20 33  | ..2).;;...(foo.(<definition>...3 | 
| 48e60 |  29 0a 3b 3b 20 20 20 20 20 20 20 20 28 62 61 72    20 28 3c 64 65 66 69 6e 69 74 69 6f 6e 3e 20 2e  | ).;;........(bar.(<definition>.. | 
| 48e80 |  20 36 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20    20 20 20 28 62 61 7a 20 2e 20 31 30 30 29 0a 3b  | .6).;;.............(baz...100).; | 
| 48ea0 |  3b 20 20 20 20 20 20 20 20 20 20 20 20 20 28 7a    61 62 20 2e 20 32 30 30 29 29 29 29 0a 0a 3b 3b  | ;.............(zab...200))))..;; | 
| 48ec0 |  20 4e 6f 74 65 20 74 68 65 20 77 61 63 6b 79 20    6e 65 65 64 20 66 6f 72 20 61 20 3c 64 65 66 69  | .Note.the.wacky.need.for.a.<defi | 
| 48ee0 |  6e 69 74 69 6f 6e 3e 20 6e 61 6d 65 2e 20 20 54    68 65 20 74 6f 6b 65 6e 20 63 61 6e 20 62 65 20  | nition>.name...The.token.can.be. | 
| 48f00 |  61 6e 79 74 68 69 6e 67 0a 3b 3b 20 74 68 61 74    20 69 73 6e 27 74 20 61 20 76 61 6c 69 64 20 4a  | anything.;;.that.isn't.a.valid.J | 
| 48f20 |  61 76 61 53 63 72 69 70 74 20 69 64 65 6e 74 69    66 69 65 72 2c 20 62 65 63 61 75 73 65 20 79 6f  | avaScript.identifier,.because.yo | 
| 48f40 |  75 20 6d 69 67 68 74 20 6d 61 6b 65 20 66 6f 6f    0a 3b 3b 20 61 20 66 75 6e 63 74 69 6f 6e 20 61  | u.might.make.foo.;;.a.function.a | 
| 48f60 |  6e 64 20 74 68 65 6e 20 73 74 61 72 74 20 73 65    74 74 69 6e 67 20 70 72 6f 70 65 72 74 69 65 73  | nd.then.start.setting.properties | 
| 48f80 |  20 6f 6e 20 69 74 20 74 68 61 74 20 61 72 65 20    61 6c 73 6f 20 66 75 6e 63 74 69 6f 6e 73 2e 0a  | .on.it.that.are.also.functions.. | 
| 48fa0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 72 6f 70    2d 6e 6f 64 65 2d 6e 61 6d 65 20 28 6e 6f 64 65  | .(defun.js2-prop-node-name.(node | 
| 48fc0 |  29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20    6e 61 6d 65 20 6f 66 20 61 20 6e 6f 64 65 20 74  | )..."Return.the.name.of.a.node.t | 
| 48fe0 |  68 61 74 20 6d 61 79 20 62 65 20 61 20 70 72 6f    70 65 72 74 79 2d 67 65 74 2f 70 72 6f 70 65 72  | hat.may.be.a.property-get/proper | 
| 49000 |  74 79 2d 6e 61 6d 65 2e 0a 49 66 20 4e 4f 44 45    20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20  | ty-name..If.NODE.is.not.a.valid. | 
| 49020 |  6e 61 6d 65 2d 6e 6f 64 65 2c 20 73 74 72 69 6e    67 2d 6e 6f 64 65 20 6f 72 20 69 6e 74 65 67 72  | name-node,.string-node.or.integr | 
| 49040 |  61 6c 20 6e 75 6d 62 65 72 2d 6e 6f 64 65 2c 0a    72 65 74 75 72 6e 73 20 6e 69 6c 2e 20 20 4f 74  | al.number-node,.returns.nil...Ot | 
| 49060 |  68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20    74 68 65 20 73 74 72 69 6e 67 20 6e 61 6d 65 2f  | herwise.returns.the.string.name/ | 
| 49080 |  76 61 6c 75 65 20 6f 66 20 74 68 65 20 6e 6f 64    65 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28  | value.of.the.node."...(cond....( | 
| 490a0 |  28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70    20 6e 6f 64 65 29 0a 20 20 20 20 28 6a 73 32 2d  | (js2-name-node-p.node).....(js2- | 
| 490c0 |  6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e    6f 64 65 29 29 0a 20 20 20 28 28 6a 73 32 2d 73  | name-node-name.node))....((js2-s | 
| 490e0 |  74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6e 6f 64    65 29 0a 20 20 20 20 28 6a 73 32 2d 73 74 72 69  | tring-node-p.node).....(js2-stri | 
| 49100 |  6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 20 6e 6f    64 65 29 29 0a 20 20 20 28 28 61 6e 64 20 28 6a  | ng-node-value.node))....((and.(j | 
| 49120 |  73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 70    20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20  | s2-number-node-p.node).......... | 
| 49140 |  28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e    5b 30 2d 39 5d 2b 24 22 20 28 6a 73 32 2d 6e 75  | (string-match."^[0-9]+$".(js2-nu | 
| 49160 |  6d 62 65 72 2d 6e 6f 64 65 2d 76 61 6c 75 65 20    6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6a 73 32  | mber-node-value.node))).....(js2 | 
| 49180 |  2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d 76 61 6c    75 65 20 6e 6f 64 65 29 29 0a 20 20 20 28 28 65  | -number-node-value.node))....((e | 
| 491a0 |  71 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65    20 6e 6f 64 65 29 20 6a 73 32 2d 54 48 49 53 29  | q.(js2-node-type.node).js2-THIS) | 
| 491c0 |  0a 20 20 20 20 22 74 68 69 73 22 29 0a 20 20 20    28 28 65 71 20 28 6a 73 32 2d 6e 6f 64 65 2d 74  | ....."this")....((eq.(js2-node-t | 
| 491e0 |  79 70 65 20 6e 6f 64 65 29 20 6a 73 32 2d 53 55    50 45 52 29 0a 20 20 20 20 22 73 75 70 65 72 22  | ype.node).js2-SUPER)....."super" | 
| 49200 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    6e 6f 64 65 2d 71 6e 61 6d 65 2d 63 6f 6d 70 6f  | )))..(defun.js2-node-qname-compo | 
| 49220 |  6e 65 6e 74 20 28 6e 6f 64 65 29 0a 20 20 22 52    65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f  | nent.(node)..."Return.the.name.o | 
| 49240 |  66 20 74 68 69 73 20 6e 6f 64 65 2c 20 69 66 20    69 74 20 63 6f 6e 74 72 69 62 75 74 65 73 20 74  | f.this.node,.if.it.contributes.t | 
| 49260 |  6f 20 61 20 71 6e 61 6d 65 2e 0a 52 65 74 75 72    6e 73 20 6e 69 6c 20 69 66 20 74 68 65 20 6e 6f  | o.a.qname..Returns.nil.if.the.no | 
| 49280 |  64 65 20 64 6f 65 73 6e 27 74 20 63 6f 6e 74 72    69 62 75 74 65 2e 22 0a 20 20 28 63 6f 70 79 2d  | de.doesn't.contribute."...(copy- | 
| 492a0 |  73 65 71 75 65 6e 63 65 0a 20 20 20 28 6f 72 20    28 6a 73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e  | sequence....(or.(js2-prop-node-n | 
| 492c0 |  61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20    20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 28  | ame.node)........(cond.........( | 
| 492e0 |  28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74 69    6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a  | (and.(js2-function-node-p.node). | 
| 49300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65  | ..............(js2-function-node | 
| 49320 |  2d 6e 61 6d 65 20 6e 6f 64 65 29 29 0a 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d  | -name.node))..........(js2-name- | 
| 49340 |  6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 66    75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 6e 61 6d  | node-name.(js2-function-node-nam | 
| 49360 |  65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20    20 20 28 28 6a 73 32 2d 63 6f 6d 70 75 74 65 64  | e.node))).........((js2-computed | 
| 49380 |  2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e 6f 64 65 2d    70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20  | -prop-name-node-p.node)......... | 
| 493a0 |  20 22 5b 63 6f 6d 70 75 74 65 64 5d 22 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72  | ."[computed]")))))..(defun.js2-r | 
| 493c0 |  65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72    79 20 28 66 6e 2d 6e 6f 64 65 20 71 6e 61 6d 65  | ecord-imenu-entry.(fn-node.qname | 
| 493e0 |  20 70 6f 73 29 0a 20 20 22 41 64 64 20 61 6e 20    65 6e 74 72 79 20 74 6f 20 60 6a 73 32 2d 69 6d  | .pos)..."Add.an.entry.to.`js2-im | 
| 49400 |  65 6e 75 2d 72 65 63 6f 72 64 65 72 27 2e 0a 46    4e 2d 4e 4f 44 45 20 73 68 6f 75 6c 64 20 62 65  | enu-recorder'..FN-NODE.should.be | 
| 49420 |  20 74 68 65 20 63 75 72 72 65 6e 74 20 69 74 65    6d 27 73 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64  | .the.current.item's.function.nod | 
| 49440 |  65 2e 0a 0a 41 73 73 6f 63 69 61 74 65 20 46 4e    2d 4e 4f 44 45 20 77 69 74 68 20 69 74 73 20 51  | e...Associate.FN-NODE.with.its.Q | 
| 49460 |  4e 41 4d 45 20 66 6f 72 20 6c 61 74 65 72 20 6c    6f 6f 6b 75 70 2e 0a 54 68 69 73 20 69 73 20 75  | NAME.for.later.lookup..This.is.u | 
| 49480 |  73 65 64 20 69 6e 20 70 6f 73 74 70 72 6f 63 65    73 73 69 6e 67 20 74 68 65 20 63 68 61 69 6e 20  | sed.in.postprocessing.the.chain. | 
| 494a0 |  6c 69 73 74 2e 20 20 46 6f 72 20 65 61 63 68 20    63 68 61 69 6e 2c 20 77 65 20 66 69 6e 64 0a 74  | list...For.each.chain,.we.find.t | 
| 494c0 |  68 65 20 70 61 72 65 6e 74 20 66 75 6e 63 74 69    6f 6e 2c 20 6c 6f 6f 6b 20 75 70 20 69 74 73 20  | he.parent.function,.look.up.its. | 
| 494e0 |  71 6e 61 6d 65 2c 20 74 68 65 6e 20 70 72 65 70    65 6e 64 20 61 20 63 6f 70 79 20 6f 66 20 69 74  | qname,.then.prepend.a.copy.of.it | 
| 49500 |  20 74 6f 20 74 68 65 20 63 68 61 69 6e 2e 22 0a    20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 66 6e  | .to.the.chain."...(push.(cons.fn | 
| 49520 |  2d 6e 6f 64 65 20 28 61 70 70 65 6e 64 20 71 6e    61 6d 65 20 28 6c 69 73 74 20 70 6f 73 29 29 29  | -node.(append.qname.(list.pos))) | 
| 49540 |  20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72    64 65 72 29 0a 20 20 28 75 6e 6c 65 73 73 20 6a  | .js2-imenu-recorder)...(unless.j | 
| 49560 |  73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f    6e 2d 6d 61 70 0a 20 20 20 20 28 73 65 74 71 20  | s2-imenu-function-map.....(setq. | 
| 49580 |  6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69    6f 6e 2d 6d 61 70 20 28 6d 61 6b 65 2d 68 61 73  | js2-imenu-function-map.(make-has | 
| 495a0 |  68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 27 65    71 29 29 29 0a 20 20 28 70 75 74 68 61 73 68 20  | h-table.:test.'eq)))...(puthash. | 
| 495c0 |  66 6e 2d 6e 6f 64 65 20 71 6e 61 6d 65 20 6a 73    32 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e  | fn-node.qname.js2-imenu-function | 
| 495e0 |  2d 6d 61 70 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d  | -map))..(defun.js2-record-imenu- | 
| 49600 |  66 75 6e 63 74 69 6f 6e 73 20 28 6e 6f 64 65 20    26 6f 70 74 69 6f 6e 61 6c 20 76 61 72 29 0a 20  | functions.(node.&optional.var).. | 
| 49620 |  20 22 52 65 63 6f 72 64 20 66 75 6e 63 74 69 6f    6e 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f  | ."Record.function.definitions.fo | 
| 49640 |  72 20 69 6d 65 6e 75 2e 0a 4e 4f 44 45 20 69 73    20 61 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65  | r.imenu..NODE.is.a.function.node | 
| 49660 |  20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 6c 69    74 65 72 61 6c 2e 0a 56 41 52 2c 20 69 66 20 6e  | .or.an.object.literal..VAR,.if.n | 
| 49680 |  6f 6e 2d 6e 69 6c 2c 20 69 73 20 74 68 65 20 65    78 70 72 65 73 73 69 6f 6e 20 74 68 61 74 20 4e  | on-nil,.is.the.expression.that.N | 
| 496a0 |  4f 44 45 20 69 73 20 62 65 69 6e 67 20 61 73 73    69 67 6e 65 64 20 74 6f 2e 0a 57 68 65 6e 20 70  | ODE.is.being.assigned.to..When.p | 
| 496c0 |  61 73 73 65 64 20 61 72 67 75 6d 65 6e 74 73 20    6f 66 20 77 72 6f 6e 67 20 74 79 70 65 2c 20 64  | assed.arguments.of.wrong.type,.d | 
| 496e0 |  6f 65 73 20 6e 6f 74 68 69 6e 67 2e 22 0a 20 20    28 77 68 65 6e 20 6a 73 32 2d 70 61 72 73 65 2d  | oes.nothing."...(when.js2-parse- | 
| 49700 |  69 64 65 2d 6d 6f 64 65 0a 20 20 20 20 28 6c 65    74 20 28 28 66 75 6e 2d 70 20 28 6a 73 32 2d 66  | ide-mode.....(let.((fun-p.(js2-f | 
| 49720 |  75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e    6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | unction-node-p.node))........... | 
| 49740 |  71 6e 61 6d 65 20 66 6e 61 6d 65 2d 6e 6f 64 65    29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20  | qname.fname-node).......(cond... | 
| 49760 |  20 20 20 20 20 3b 3b 20 6e 6f 6e 2d 61 6e 6f 6e    79 6d 6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 64  | .....;;.non-anonymous.function.d | 
| 49780 |  65 63 6c 61 72 61 74 69 6f 6e 3f 0a 20 20 20 20    20 20 20 28 28 61 6e 64 20 66 75 6e 2d 70 0a 20  | eclaration?........((and.fun-p.. | 
| 497a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74    20 76 61 72 29 0a 20 20 20 20 20 20 20 20 20 20  | ............(not.var)........... | 
| 497c0 |  20 20 20 28 73 65 74 71 20 66 6e 61 6d 65 2d 6e    6f 64 65 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f  | ...(setq.fname-node.(js2-functio | 
| 497e0 |  6e 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65    29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | n-node-name.node))).........(js2 | 
| 49800 |  2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e    74 72 79 20 6e 6f 64 65 20 28 6c 69 73 74 20 66  | -record-imenu-entry.node.(list.f | 
| 49820 |  6e 61 6d 65 2d 6e 6f 64 65 29 20 28 6a 73 32 2d    6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 29  | name-node).(js2-node-pos.node))) | 
| 49840 |  0a 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 72    65 6d 61 69 6e 69 6e 67 20 66 6f 72 6d 73 2c 20  | ........;;.for.remaining.forms,. | 
| 49860 |  63 6f 6d 70 75 74 65 20 6c 65 66 74 2d 73 69 64    65 20 74 72 65 65 20 62 72 61 6e 63 68 20 66 69  | compute.left-side.tree.branch.fi | 
| 49880 |  72 73 74 0a 20 20 20 20 20 20 20 28 28 61 6e 64    20 76 61 72 20 28 73 65 74 71 20 71 6e 61 6d 65  | rst........((and.var.(setq.qname | 
| 498a0 |  20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65    73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 76 61  | .(js2-compute-nested-prop-get.va | 
| 498c0 |  72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 66  | r))).........(cond..........;;.f | 
| 498e0 |  6f 6f 2e 62 61 72 2e 62 61 7a 20 3d 20 66 75 6e    63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28  | oo.bar.baz.=.function..........( | 
| 49900 |  66 75 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e  | fun-p...........(js2-record-imen | 
| 49920 |  75 2d 65 6e 74 72 79 20 6e 6f 64 65 20 71 6e 61    6d 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73  | u-entry.node.qname.(js2-node-pos | 
| 49940 |  20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20    20 20 3b 3b 20 66 6f 6f 2e 62 61 72 2e 62 61 7a  | .node)))..........;;.foo.bar.baz | 
| 49960 |  20 3d 20 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61    6c 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 6f  | .=.object-literal..........;;.lo | 
| 49980 |  6f 6b 20 66 6f 72 20 6e 65 73 74 65 64 20 66 75    6e 63 74 69 6f 6e 73 3a 20 20 7b 61 3a 20 7b 62  | ok.for.nested.functions:..{a:.{b | 
| 499a0 |  3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e    2e 7d 20 7d 7d 0a 20 20 20 20 20 20 20 20 20 28  | :.function().{...}.}}..........( | 
| 499c0 |  28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65    2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | (js2-object-node-p.node)........ | 
| 499e0 |  20 20 20 3b 3b 20 4e 6f 64 65 20 70 6f 73 69 74    69 6f 6e 20 68 65 72 65 20 69 73 20 73 74 69 6c  | ...;;.Node.position.here.is.stil | 
| 49a00 |  6c 20 61 62 73 6f 6c 75 74 65 2c 20 73 69 6e 63    65 20 74 68 65 20 70 61 72 73 65 72 0a 20 20 20  | l.absolute,.since.the.parser.... | 
| 49a20 |  20 20 20 20 20 20 20 3b 3b 20 70 61 73 73 65 73    20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 20  | .......;;.passes.the.assignment. | 
| 49a40 |  74 61 72 67 65 74 20 61 6e 64 20 76 61 6c 75 65    20 65 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 20  | target.and.value.expressions.... | 
| 49a60 |  20 20 20 20 20 20 20 3b 3b 20 74 6f 20 75 73 20    62 65 66 6f 72 65 20 74 68 65 79 20 61 72 65 20  | .......;;.to.us.before.they.are. | 
| 49a80 |  61 64 64 65 64 20 61 73 20 63 68 69 6c 64 72 65    6e 20 6f 66 20 74 68 65 20 61 73 73 69 67 6e 6d  | added.as.children.of.the.assignm | 
| 49aa0 |  65 6e 74 20 6e 6f 64 65 2e 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d  | ent.node............(js2-record- | 
| 49ac0 |  6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 6e    6f 64 65 20 71 6e 61 6d 65 20 28 6a 73 32 2d 6e  | object-literal.node.qname.(js2-n | 
| 49ae0 |  6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 29 29    29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | ode-pos.node)))))))))..(defun.js | 
| 49b00 |  32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64    2d 70 72 6f 70 2d 67 65 74 20 28 6e 6f 64 65 29  | 2-compute-nested-prop-get.(node) | 
| 49b20 |  0a 20 20 22 49 66 20 4e 4f 44 45 20 69 73 20 6f    66 20 66 6f 72 6d 20 66 6f 6f 2e 62 61 72 2c 20  | ..."If.NODE.is.of.form.foo.bar,. | 
| 49b40 |  66 6f 6f 5b 5c 5c 3d 27 62 61 72 5c 5c 3d 27 5d    2c 20 6f 72 20 61 6e 79 20 6e 65 73 74 65 64 20  | foo[\\='bar\\='],.or.any.nested. | 
| 49b60 |  63 6f 6d 62 69 6e 61 74 69 6f 6e 2c 20 72 65 74    75 72 6e 0a 63 6f 6d 70 6f 6e 65 6e 74 20 6e 6f  | combination,.return.component.no | 
| 49b80 |  64 65 73 20 61 73 20 61 20 6c 69 73 74 2e 20 20    4f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e  | des.as.a.list...Otherwise.return | 
| 49ba0 |  20 6e 69 6c 2e 20 20 45 6c 65 6d 65 6e 74 2d 67    65 74 73 20 61 72 65 20 74 72 65 61 74 65 64 0a  | .nil...Element-gets.are.treated. | 
| 49bc0 |  61 73 20 70 72 6f 70 65 72 74 79 2d 67 65 74 73    20 69 66 20 74 68 65 20 69 6e 64 65 78 20 65 78  | as.property-gets.if.the.index.ex | 
| 49be0 |  70 72 65 73 73 69 6f 6e 20 69 73 20 61 20 73 74    72 69 6e 67 2c 20 6f 72 20 61 20 70 6f 73 69 74  | pression.is.a.string,.or.a.posit | 
| 49c00 |  69 76 65 20 69 6e 74 65 67 65 72 2e 22 0a 20 20    28 6c 65 74 20 28 6c 65 66 74 20 72 69 67 68 74  | ive.integer."...(let.(left.right | 
| 49c20 |  20 68 65 61 64 29 0a 20 20 20 20 28 63 6f 6e 64    0a 20 20 20 20 20 28 28 6f 72 20 28 6a 73 32 2d  | .head).....(cond......((or.(js2- | 
| 49c40 |  6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65    29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | name-node-p.node)...........(js2 | 
| 49c60 |  2d 74 68 69 73 2d 6f 72 2d 73 75 70 65 72 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 29 0a 20 20 20  | -this-or-super-node-p.node)).... | 
| 49c80 |  20 20 20 28 6c 69 73 74 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 3b 3b 20 66 6f 6f 2e 62 61 72 2e  | ...(list.node))......;;.foo.bar. | 
| 49ca0 |  62 61 7a 20 69 73 20 70 61 72 65 6e 74 68 65 73    69 7a 65 64 20 61 73 20 28 66 6f 6f 2e 62 61 72  | baz.is.parenthesized.as.(foo.bar | 
| 49cc0 |  29 2e 62 61 7a 20 3d 3e 20 72 69 67 68 74 20 6f    70 65 72 61 6e 64 20 69 73 20 61 20 6c 65 61 66  | ).baz.=>.right.operand.is.a.leaf | 
| 49ce0 |  0a 20 20 20 20 20 28 28 6a 73 32 2d 70 72 6f 70    2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65  | ......((js2-prop-get-node-p.node | 
| 49d00 |  29 20 20 20 20 20 20 20 20 3b 20 66 6f 6f 2e 62    61 72 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c  | )........;.foo.bar.......(setq.l | 
| 49d20 |  65 66 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65    74 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64 65  | eft.(js2-prop-get-node-left.node | 
| 49d40 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 69    67 68 74 20 28 6a 73 32 2d 70 72 6f 70 2d 67 65  | ).............right.(js2-prop-ge | 
| 49d60 |  74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64    65 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 73  | t-node-right.node)).......(if.(s | 
| 49d80 |  65 74 71 20 68 65 61 64 20 28 6a 73 32 2d 63 6f    6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f  | etq.head.(js2-compute-nested-pro | 
| 49da0 |  70 2d 67 65 74 20 6c 65 66 74 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 68 65  | p-get.left))...........(nconc.he | 
| 49dc0 |  61 64 20 28 6c 69 73 74 20 72 69 67 68 74 29 29    29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 65 6c  | ad.(list.right))))......((js2-el | 
| 49de0 |  65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 6e 6f    64 65 29 20 20 20 20 20 20 20 20 3b 20 66 6f 6f  | em-get-node-p.node)........;.foo | 
| 49e00 |  5b 27 62 61 72 27 5d 20 6f 72 20 66 6f 6f 5b 31    30 31 5d 0a 20 20 20 20 20 20 28 73 65 74 71 20  | ['bar'].or.foo[101].......(setq. | 
| 49e20 |  6c 65 66 74 20 28 6a 73 32 2d 65 6c 65 6d 2d 67    65 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e  | left.(js2-elem-get-node-target.n | 
| 49e40 |  6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 72 69 67 68 74 20 28 6a 73 32 2d 65 6c 65 6d  | ode).............right.(js2-elem | 
| 49e60 |  2d 67 65 74 2d 6e 6f 64 65 2d 65 6c 65 6d 65 6e    74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28  | -get-node-element.node)).......( | 
| 49e80 |  69 66 20 28 6f 72 20 28 6a 73 32 2d 73 74 72 69    6e 67 2d 6e 6f 64 65 2d 70 20 72 69 67 68 74 29  | if.(or.(js2-string-node-p.right) | 
| 49ea0 |  20 20 20 20 20 20 3b 20 5b 27 62 61 72 27 5d 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61  | ......;.['bar']...............(a | 
| 49ec0 |  6e 64 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e    6f 64 65 2d 70 20 72 69 67 68 74 29 20 3b 20 5b  | nd.(js2-number-node-p.right).;.[ | 
| 49ee0 |  31 30 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d  | 10]....................(string-m | 
| 49f00 |  61 74 63 68 20 22 5e 5b 30 2d 39 5d 2b 24 22 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | atch."^[0-9]+$"................. | 
| 49f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64  | .................(js2-number-nod | 
| 49f40 |  65 2d 76 61 6c 75 65 20 72 69 67 68 74 29 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20  | e-value.right))))...........(if. | 
| 49f60 |  28 73 65 74 71 20 68 65 61 64 20 28 6a 73 32 2d    63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64 2d 70  | (setq.head.(js2-compute-nested-p | 
| 49f80 |  72 6f 70 2d 67 65 74 20 6c 65 66 74 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63  | rop-get.left))...............(nc | 
| 49fa0 |  6f 6e 63 20 68 65 61 64 20 28 6c 69 73 74 20 72    69 67 68 74 29 29 29 29 29 29 29 29 0a 0a 28 64  | onc.head.(list.right))))))))..(d | 
| 49fc0 |  65 66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d    6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c 20 28  | efun.js2-record-object-literal.( | 
| 49fe0 |  6e 6f 64 65 20 71 6e 61 6d 65 20 70 6f 73 29 0a    20 20 22 52 65 63 75 72 73 69 76 65 6c 79 20 70  | node.qname.pos)..."Recursively.p | 
| 4a000 |  72 6f 63 65 73 73 20 61 6e 20 6f 62 6a 65 63 74    20 6c 69 74 65 72 61 6c 20 6c 6f 6f 6b 69 6e 67  | rocess.an.object.literal.looking | 
| 4a020 |  20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a    4e 4f 44 45 20 69 73 20 61 6e 20 6f 62 6a 65 63  | .for.functions..NODE.is.an.objec | 
| 4a040 |  74 20 6c 69 74 65 72 61 6c 20 74 68 61 74 20 69    73 20 74 68 65 20 72 69 67 68 74 2d 68 61 6e 64  | t.literal.that.is.the.right-hand | 
| 4a060 |  20 63 68 69 6c 64 20 6f 66 20 61 6e 20 61 73 73    69 67 6e 6d 65 6e 74 0a 65 78 70 72 65 73 73 69  | .child.of.an.assignment.expressi | 
| 4a080 |  6f 6e 2e 20 20 51 4e 41 4d 45 20 69 73 20 61 20    6c 69 73 74 20 6f 66 20 6e 6f 64 65 73 20 72 65  | on...QNAME.is.a.list.of.nodes.re | 
| 4a0a0 |  70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 61    73 73 69 67 6e 6d 65 6e 74 20 74 61 72 67 65 74  | presenting.the.assignment.target | 
| 4a0c0 |  2c 0a 65 2e 67 2e 20 66 6f 72 20 66 6f 6f 2e 62    61 72 2e 62 61 7a 20 3d 20 7b 2e 2e 2e 7d 2c 20  | ,.e.g..for.foo.bar.baz.=.{...},. | 
| 4a0e0 |  51 4e 41 4d 45 20 69 73 20 28 66 6f 6f 2d 6e 6f    64 65 20 62 61 72 2d 6e 6f 64 65 20 62 61 7a 2d  | QNAME.is.(foo-node.bar-node.baz- | 
| 4a100 |  6e 6f 64 65 29 2e 0a 50 4f 53 20 69 73 20 74 68    65 20 61 62 73 6f 6c 75 74 65 20 70 6f 73 69 74  | node)..POS.is.the.absolute.posit | 
| 4a120 |  69 6f 6e 20 6f 66 20 74 68 65 20 6e 6f 64 65 2e    0a 57 65 20 64 6f 20 61 20 64 65 70 74 68 2d 66  | ion.of.the.node..We.do.a.depth-f | 
| 4a140 |  69 72 73 74 20 74 72 61 76 65 72 73 61 6c 20 6f    66 20 4e 4f 44 45 2e 20 20 46 6f 72 20 61 6e 79  | irst.traversal.of.NODE...For.any | 
| 4a160 |  20 66 75 6e 63 74 69 6f 6e 73 20 77 65 20 66 69    6e 64 2c 0a 77 65 20 61 70 70 65 6e 64 20 74 68  | .functions.we.find,.we.append.th | 
| 4a180 |  65 20 70 72 6f 70 65 72 74 79 20 6e 61 6d 65 20    74 6f 20 51 4e 41 4d 45 2c 20 74 68 65 6e 20 63  | e.property.name.to.QNAME,.then.c | 
| 4a1a0 |  61 6c 6c 20 60 6a 73 32 2d 72 65 63 6f 72 64 2d    69 6d 65 6e 75 2d 65 6e 74 72 79 27 2e 22 0a 20  | all.`js2-record-imenu-entry'.".. | 
| 4a1c0 |  20 28 6c 65 74 20 28 72 69 67 68 74 29 0a 20 20    20 20 28 64 6f 6c 69 73 74 20 28 65 20 28 6a 73  | .(let.(right).....(dolist.(e.(js | 
| 4a1e0 |  32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 65 6c    65 6d 73 20 6e 6f 64 65 29 29 20 20 3b 20 65 20  | 2-object-node-elems.node))..;.e. | 
| 4a200 |  69 73 20 61 20 60 6a 73 32 2d 6f 62 6a 65 63 74    2d 70 72 6f 70 2d 6e 6f 64 65 27 0a 20 20 20 20  | is.a.`js2-object-prop-node'..... | 
| 4a220 |  20 20 28 77 68 65 6e 20 28 6a 73 32 2d 69 6e 66    69 78 2d 6e 6f 64 65 2d 70 20 65 29 0a 20 20 20  | ..(when.(js2-infix-node-p.e).... | 
| 4a240 |  20 20 20 20 20 28 6c 65 74 20 28 28 6c 65 66 74    20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65  | .....(let.((left.(js2-infix-node | 
| 4a260 |  2d 6c 65 66 74 20 65 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 45 6c 65 6d 65  | -left.e))...............;;.Eleme | 
| 4a280 |  6e 74 20 70 6f 73 69 74 69 6f 6e 73 20 61 72 65    20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65  | nt.positions.are.relative.to.the | 
| 4a2a0 |  20 70 61 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e    2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .parent.position................ | 
| 4a2c0 |  28 70 6f 73 20 28 2b 20 70 6f 73 20 28 6a 73 32    2d 6e 6f 64 65 2d 70 6f 73 20 65 29 29 29 29 0a  | (pos.(+.pos.(js2-node-pos.e)))). | 
| 4a2e0 |  20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f  | ..........(cond............;;.fo | 
| 4a300 |  6f 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e    2e 2e 7d 0a 20 20 20 20 20 20 20 20 20 20 20 28  | o:.function().{...}............( | 
| 4a320 |  28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f    64 65 2d 70 20 28 73 65 74 71 20 72 69 67 68 74  | (js2-function-node-p.(setq.right | 
| 4a340 |  20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65    2d 72 69 67 68 74 20 65 29 29 29 0a 20 20 20 20  | .(js2-infix-node-right.e)))..... | 
| 4a360 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a    73 32 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d  | ........(when.(js2-prop-node-nam | 
| 4a380 |  65 20 6c 65 66 74 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 41 73 20 61 20 70 6f  | e.left)...............;;.As.a.po | 
| 4a3a0 |  6c 69 63 79 20 64 65 63 69 73 69 6f 6e 2c 20 77    65 20 72 65 63 6f 72 64 20 74 68 65 20 70 6f 73  | licy.decision,.we.record.the.pos | 
| 4a3c0 |  69 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f    70 65 72 74 79 2c 0a 20 20 20 20 20 20 20 20 20  | ition.of.the.property,.......... | 
| 4a3e0 |  20 20 20 20 20 3b 3b 20 6e 6f 74 20 74 68 65 20    70 6f 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20  | .....;;.not.the.position.of.the. | 
| 4a400 |  60 66 75 6e 63 74 69 6f 6e 27 20 6b 65 79 77 6f    72 64 2c 20 73 69 6e 63 65 20 74 68 65 20 70 72  | `function'.keyword,.since.the.pr | 
| 4a420 |  6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 69 73 20 65 66 66 65 63  | operty...............;;.is.effec | 
| 4a440 |  74 69 76 65 6c 79 20 74 68 65 20 6e 61 6d 65 20    6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2e  | tively.the.name.of.the.function. | 
| 4a460 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 72 65 63 6f 72 64 2d 69 6d 65 6e 75  | ...............(js2-record-imenu | 
| 4a480 |  2d 65 6e 74 72 79 20 72 69 67 68 74 20 28 61 70    70 65 6e 64 20 71 6e 61 6d 65 20 28 6c 69 73 74  | -entry.right.(append.qname.(list | 
| 4a4a0 |  20 6c 65 66 74 29 29 20 70 6f 73 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 6f  | .left)).pos)))............;;.foo | 
| 4a4c0 |  3a 20 7b 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61    6c 7d 20 2d 2d 20 61 64 64 20 66 6f 6f 20 74 6f  | :.{object-literal}.--.add.foo.to | 
| 4a4e0 |  20 71 6e 61 6d 65 2c 20 6f 66 66 73 65 74 20 70    6f 73 69 74 69 6f 6e 2c 20 61 6e 64 20 72 65 63  | .qname,.offset.position,.and.rec | 
| 4a500 |  75 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 20    28 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64  | urse............((js2-object-nod | 
| 4a520 |  65 2d 70 20 72 69 67 68 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f  | e-p.right).............(js2-reco | 
| 4a540 |  72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61    6c 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20  | rd-object-literal.right......... | 
| 4a560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...............................( | 
| 4a580 |  61 70 70 65 6e 64 20 71 6e 61 6d 65 20 28 6c 69    73 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f  | append.qname.(list.(js2-infix-no | 
| 4a5a0 |  64 65 2d 6c 65 66 74 20 65 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de-left.e))).................... | 
| 4a5c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 2b 20 70 6f 73 20 28 6a 73 32 2d  | ....................(+.pos.(js2- | 
| 4a5e0 |  6e 6f 64 65 2d 70 6f 73 20 72 69 67 68 74 29 29    29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e  | node-pos.right))))))))))..(defun | 
| 4a600 |  20 6a 73 32 2d 6e 6f 64 65 2d 74 6f 70 2d 6c 65    76 65 6c 2d 64 65 63 6c 2d 70 20 28 6e 6f 64 65  | .js2-node-top-level-decl-p.(node | 
| 4a620 |  29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66    20 4e 4f 44 45 27 73 20 6e 61 6d 65 20 69 73 20  | )..."Return.t.if.NODE's.name.is. | 
| 4a640 |  64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 74    6f 70 2d 6c 65 76 65 6c 20 73 63 6f 70 65 2e 0a  | defined.in.the.top-level.scope.. | 
| 4a660 |  41 6c 73 6f 20 72 65 74 75 72 6e 73 20 74 20 69    66 20 4e 4f 44 45 27 73 20 6e 61 6d 65 20 69 73  | Also.returns.t.if.NODE's.name.is | 
| 4a680 |  20 6e 6f 74 20 64 65 66 69 6e 65 64 20 69 6e 20    61 6e 79 20 73 63 6f 70 65 2c 20 73 69 6e 63 65  | .not.defined.in.any.scope,.since | 
| 4a6a0 |  20 69 74 20 69 6d 70 6c 69 65 73 0a 74 68 61 74    20 69 74 27 73 20 61 6e 20 65 78 74 65 72 6e 61  | .it.implies.that.it's.an.externa | 
| 4a6c0 |  6c 20 76 61 72 69 61 62 6c 65 2c 20 77 68 69 63    68 20 6d 75 73 74 20 61 6c 73 6f 20 62 65 20 69  | l.variable,.which.must.also.be.i | 
| 4a6e0 |  6e 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20    73 63 6f 70 65 2e 22 0a 20 20 28 6c 65 74 2a 20  | n.the.top-level.scope."...(let*. | 
| 4a700 |  28 28 6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70    2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 29  | ((name.(js2-prop-node-name.node) | 
| 4a720 |  29 0a 20 20 20 20 20 20 20 20 20 28 74 68 69 73    2d 73 63 6f 70 65 20 28 6a 73 32 2d 6e 6f 64 65  | )..........(this-scope.(js2-node | 
| 4a740 |  2d 67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73    63 6f 70 65 20 6e 6f 64 65 29 29 0a 20 20 20 20  | -get-enclosing-scope.node))..... | 
| 4a760 |  20 20 20 20 20 64 65 66 69 6e 69 6e 67 2d 73 63    6f 70 65 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20  | .....defining-scope).....(cond.. | 
| 4a780 |  20 20 20 20 28 28 6a 73 32 2d 74 68 69 73 2d 6f    72 2d 73 75 70 65 72 2d 6e 6f 64 65 2d 70 20 6e  | ....((js2-this-or-super-node-p.n | 
| 4a7a0 |  6f 64 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 0a    20 20 20 20 20 28 28 6e 75 6c 6c 20 74 68 69 73  | ode).......nil)......((null.this | 
| 4a7c0 |  2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20 74 29    0a 20 20 20 20 20 28 28 73 65 74 71 20 64 65 66  | -scope).......t)......((setq.def | 
| 4a7e0 |  69 6e 69 6e 67 2d 73 63 6f 70 65 20 28 6a 73 32    2d 67 65 74 2d 64 65 66 69 6e 69 6e 67 2d 73 63  | ining-scope.(js2-get-defining-sc | 
| 4a800 |  6f 70 65 20 74 68 69 73 2d 73 63 6f 70 65 20 6e    61 6d 65 29 29 0a 20 20 20 20 20 20 28 6a 73 32  | ope.this-scope.name)).......(js2 | 
| 4a820 |  2d 61 73 74 2d 72 6f 6f 74 2d 70 20 64 65 66 69    6e 69 6e 67 2d 73 63 6f 70 65 29 29 0a 20 20 20  | -ast-root-p.defining-scope)).... | 
| 4a840 |  20 20 28 74 20 74 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 77 72 61 70 70 65 72 2d 66  | ..(t.t))))..(defun.js2-wrapper-f | 
| 4a860 |  75 6e 63 74 69 6f 6e 2d 70 20 28 6e 6f 64 65 29    0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20  | unction-p.(node)..."Return.t.if. | 
| 4a880 |  4e 4f 44 45 20 69 73 20 61 20 66 75 6e 63 74 69    6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68  | NODE.is.a.function.expression.th | 
| 4a8a0 |  61 74 27 73 20 69 6d 6d 65 64 69 61 74 65 6c 79    20 69 6e 76 6f 6b 65 64 2e 0a 4e 4f 44 45 20 6d  | at's.immediately.invoked..NODE.m | 
| 4a8c0 |  75 73 74 20 62 65 20 60 6a 73 32 2d 66 75 6e 63    74 69 6f 6e 2d 6e 6f 64 65 27 2e 22 0a 20 20 28  | ust.be.`js2-function-node'."...( | 
| 4a8e0 |  6c 65 74 20 28 28 70 61 72 65 6e 74 20 28 6a 73    32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f  | let.((parent.(js2-node-parent.no | 
| 4a900 |  64 65 29 29 29 0a 20 20 20 20 28 6f 72 0a 20 20    20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 28 29  | de))).....(or......;;.function() | 
| 4a920 |  7b 2e 2e 2e 7d 28 29 3b 0a 20 20 20 20 20 28 61    6e 64 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64  | {...}();......(and.(js2-call-nod | 
| 4a940 |  65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20    20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 20 28  | e-p.parent)...........(eq.node.( | 
| 4a960 |  6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 74 61    72 67 65 74 20 70 61 72 65 6e 74 29 29 29 0a 20  | js2-call-node-target.parent))).. | 
| 4a980 |  20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 70 61    72 65 6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e  | ....(and.(js2-paren-node-p.paren | 
| 4a9a0 |  74 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20    28 66 75 6e 63 74 69 6f 6e 28 29 7b 2e 2e 2e 7d  | t)...........;;.(function(){...} | 
| 4a9c0 |  29 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 28    6f 72 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64  | )();...........(or.(js2-call-nod | 
| 4a9e0 |  65 2d 70 20 28 73 65 74 71 20 70 61 72 65 6e 74    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e  | e-p.(setq.parent.(js2-node-paren | 
| 4aa00 |  74 20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 66 75  | t.parent)))...............;;.(fu | 
| 4aa20 |  6e 63 74 69 6f 6e 28 29 7b 2e 2e 2e 7d 29 2e 63    61 6c 6c 28 74 68 69 73 29 3b 0a 20 20 20 20 20  | nction(){...}).call(this);...... | 
| 4aa40 |  20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6a    73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65  | .........(and.(js2-prop-get-node | 
| 4aa60 |  2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d  | -p.parent)....................(m | 
| 4aa80 |  65 6d 62 65 72 20 28 6a 73 32 2d 6e 61 6d 65 2d    6e 6f 64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 70  | ember.(js2-name-node-name.(js2-p | 
| 4aaa0 |  72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 72 69 67    68 74 20 70 61 72 65 6e 74 29 29 0a 20 20 20 20  | rop-get-node-right.parent))..... | 
| 4aac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 27 28 22 63 61 6c 6c 22 20  | .......................'("call". | 
| 4aae0 |  22 61 70 70 6c 79 22 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | "apply"))....................(js | 
| 4ab00 |  32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 20 28 6a    73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 70  | 2-call-node-p.(js2-node-parent.p | 
| 4ab20 |  61 72 65 6e 74 29 29 29 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 62 72 6f 77 73 65  | arent))))))))..(defun.js2-browse | 
| 4ab40 |  2d 70 6f 73 74 70 72 6f 63 65 73 73 2d 63 68 61    69 6e 73 20 28 29 0a 20 20 22 4d 6f 64 69 66 79  | -postprocess-chains.()..."Modify | 
| 4ab60 |  20 66 75 6e 63 74 69 6f 6e 2d 64 65 63 6c 61 72    61 74 69 6f 6e 20 6e 61 6d 65 20 63 68 61 69 6e  | .function-declaration.name.chain | 
| 4ab80 |  73 20 61 66 74 65 72 20 70 61 72 73 69 6e 67 20    66 69 6e 69 73 68 65 73 2e 0a 53 6f 6d 65 20 6f  | s.after.parsing.finishes..Some.o | 
| 4aba0 |  66 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f    6e 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61  | f.the.information.is.only.availa | 
| 4abc0 |  62 6c 65 20 61 66 74 65 72 20 74 68 65 20 70 61    72 73 65 20 74 72 65 65 20 69 73 20 63 6f 6d 70  | ble.after.the.parse.tree.is.comp | 
| 4abe0 |  6c 65 74 65 2e 0a 46 6f 72 20 69 6e 73 74 61 6e    63 65 2c 20 70 72 6f 63 65 73 73 69 6e 67 20 61  | lete..For.instance,.processing.a | 
| 4ac00 |  20 6e 65 73 74 65 64 20 73 63 6f 70 65 20 72 65    71 75 69 72 65 73 20 61 20 70 61 72 65 6e 74 20  | .nested.scope.requires.a.parent. | 
| 4ac20 |  66 75 6e 63 74 69 6f 6e 20 6e 6f 64 65 2e 22 0a    20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 20 66  | function.node."...(let.(result.f | 
| 4ac40 |  6e 20 70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 70    20 65 6c 65 6d 29 0a 20 20 20 20 28 64 6f 6c 69  | n.parent-qname.p.elem).....(doli | 
| 4ac60 |  73 74 20 28 65 6e 74 72 79 20 6a 73 32 2d 69 6d    65 6e 75 2d 72 65 63 6f 72 64 65 72 29 0a 20 20  | st.(entry.js2-imenu-recorder)... | 
| 4ac80 |  20 20 20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20    6e 6f 64 65 20 67 6f 65 73 20 66 69 72 73 74 0a  | ....;;.function.node.goes.first. | 
| 4aca0 |  20 20 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75    63 74 75 72 69 6e 67 2d 62 69 6e 64 0a 20 20 20  | ......(cl-destructuring-bind.... | 
| 4acc0 |  20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d    66 6e 20 26 72 65 73 74 20 28 26 77 68 6f 6c 65  | .......(current-fn.&rest.(&whole | 
| 4ace0 |  20 63 68 61 69 6e 20 68 65 61 64 20 26 72 65 73    74 20 72 65 73 74 29 29 20 65 6e 74 72 79 0a 20  | .chain.head.&rest.rest)).entry.. | 
| 4ad00 |  20 20 20 20 20 20 20 3b 3b 20 45 78 61 6d 69 6e    65 20 68 65 61 64 27 73 20 64 65 66 69 6e 69 6e  | .......;;.Examine.head's.definin | 
| 4ad20 |  67 20 73 63 6f 70 65 3a 0a 20 20 20 20 20 20 20    20 3b 3b 20 50 72 65 2d 70 72 6f 63 65 73 73 65  | g.scope:.........;;.Pre-processe | 
| 4ad40 |  64 20 63 68 61 69 6e 2c 20 6f 72 20 74 6f 70 2d    6c 65 76 65 6c 2f 65 78 74 65 72 6e 61 6c 2c 20  | d.chain,.or.top-level/external,. | 
| 4ad60 |  6b 65 65 70 20 61 73 2d 69 73 2e 0a 20 20 20 20    20 20 20 20 28 69 66 20 28 6f 72 20 28 73 74 72  | keep.as-is..........(if.(or.(str | 
| 4ad80 |  69 6e 67 70 20 68 65 61 64 29 20 28 6a 73 32 2d    6e 6f 64 65 2d 74 6f 70 2d 6c 65 76 65 6c 2d 64  | ingp.head).(js2-node-top-level-d | 
| 4ada0 |  65 63 6c 2d 70 20 68 65 61 64 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63  | ecl-p.head)).............(push.c | 
| 4adc0 |  68 61 69 6e 20 72 65 73 75 6c 74 29 0a 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73  | hain.result)...........(when.(js | 
| 4ade0 |  32 2d 74 68 69 73 2d 6f 72 2d 73 75 70 65 72 2d    6e 6f 64 65 2d 70 20 68 65 61 64 29 0a 20 20 20  | 2-this-or-super-node-p.head).... | 
| 4ae00 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    68 61 69 6e 20 28 63 64 72 20 63 68 61 69 6e 29  | .........(setq.chain.(cdr.chain) | 
| 4ae20 |  29 29 20 3b 20 64 69 73 63 61 72 64 20 74 68 69    73 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20  | )).;.discard.this-node.......... | 
| 4ae40 |  20 28 77 68 65 6e 20 28 73 65 74 71 20 66 6e 20    28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74  | .(when.(setq.fn.(js2-node-parent | 
| 4ae60 |  2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 63 75    72 72 65 6e 74 2d 66 6e 29 29 0a 20 20 20 20 20  | -script-or-fn.current-fn))...... | 
| 4ae80 |  20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72    65 6e 74 2d 71 6e 61 6d 65 20 28 67 65 74 68 61  | .......(setq.parent-qname.(getha | 
| 4aea0 |  73 68 20 66 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d    66 75 6e 63 74 69 6f 6e 2d 6d 61 70 20 27 6e 6f  | sh.fn.js2-imenu-function-map.'no | 
| 4aec0 |  74 2d 66 6f 75 6e 64 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20  | t-found)).............(when.(eq. | 
| 4aee0 |  70 61 72 65 6e 74 2d 71 6e 61 6d 65 20 27 6e 6f    74 2d 66 6f 75 6e 64 29 0a 20 20 20 20 20 20 20  | parent-qname.'not-found)........ | 
| 4af00 |  20 20 20 20 20 20 20 3b 3b 20 61 6e 6f 6e 79 6d    6f 75 73 20 66 75 6e 63 74 69 6f 6e 20 65 78 70  | .......;;.anonymous.function.exp | 
| 4af20 |  72 65 73 73 69 6f 6e 73 20 61 72 65 20 6e 6f 74    20 72 65 63 6f 72 64 65 64 0a 20 20 20 20 20 20  | ressions.are.not.recorded....... | 
| 4af40 |  20 20 20 20 20 20 20 20 3b 3b 20 64 75 72 69 6e    67 20 74 68 65 20 70 61 72 73 65 2c 20 73 6f 20  | ........;;.during.the.parse,.so. | 
| 4af60 |  77 65 20 6e 65 65 64 20 74 6f 20 68 61 6e 64 6c    65 20 74 68 69 73 20 63 61 73 65 20 68 65 72 65  | we.need.to.handle.this.case.here | 
| 4af80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 70 61 72 65 6e 74 2d 71 6e 61 6d  | ...............(setq.parent-qnam | 
| 4afa0 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 77  | e.....................(if.(js2-w | 
| 4afc0 |  72 61 70 70 65 72 2d 66 75 6e 63 74 69 6f 6e 2d    70 20 66 6e 29 0a 20 20 20 20 20 20 20 20 20 20  | rapper-function-p.fn)........... | 
| 4afe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c    65 74 20 28 28 67 72 61 6e 64 70 61 72 65 6e 74  | ..............(let.((grandparent | 
| 4b000 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e    74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 66  | .(js2-node-parent-script-or-fn.f | 
| 4b020 |  6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | n)))...........................( | 
| 4b040 |  69 66 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74    2d 70 20 67 72 61 6e 64 70 61 72 65 6e 74 29 0a  | if.(js2-ast-root-p.grandparent). | 
| 4b060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69  | ..............................ni | 
| 4b080 |  6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67  | l.............................(g | 
| 4b0a0 |  65 74 68 61 73 68 20 67 72 61 6e 64 70 61 72 65    6e 74 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e  | ethash.grandparent.js2-imenu-fun | 
| 4b0c0 |  63 74 69 6f 6e 2d 6d 61 70 20 27 73 6b 69 70 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ction-map.'skip))).............. | 
| 4b0e0 |  20 20 20 20 20 20 20 20 20 27 73 6b 69 70 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .........'skip))...............( | 
| 4b100 |  70 75 74 68 61 73 68 20 66 6e 20 70 61 72 65 6e    74 2d 71 6e 61 6d 65 20 6a 73 32 2d 69 6d 65 6e  | puthash.fn.parent-qname.js2-imen | 
| 4b120 |  75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66  | u-function-map)).............(if | 
| 4b140 |  20 28 65 71 20 70 61 72 65 6e 74 2d 71 6e 61 6d    65 20 27 73 6b 69 70 29 0a 20 20 20 20 20 20 20  | .(eq.parent-qname.'skip)........ | 
| 4b160 |  20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 64    6f 6e 27 74 20 73 68 6f 77 20 69 74 2c 20 6c 65  | .........;;.We.don't.show.it,.le | 
| 4b180 |  74 27 73 20 72 65 63 6f 72 64 20 74 68 61 74 20    66 61 63 74 2e 0a 20 20 20 20 20 20 20 20 20 20  | t's.record.that.fact............ | 
| 4b1a0 |  20 20 20 20 20 20 28 72 65 6d 68 61 73 68 20 63    75 72 72 65 6e 74 2d 66 6e 20 6a 73 32 2d 69 6d  | ......(remhash.current-fn.js2-im | 
| 4b1c0 |  65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | enu-function-map)............... | 
| 4b1e0 |  3b 3b 20 50 72 65 70 65 6e 64 20 70 61 72 65 6e    74 20 66 6e 20 71 6e 61 6d 65 20 74 6f 20 74 68  | ;;.Prepend.parent.fn.qname.to.th | 
| 4b200 |  69 73 20 63 68 61 69 6e 2e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 71  | is.chain................(let.((q | 
| 4b220 |  6e 61 6d 65 20 28 61 70 70 65 6e 64 20 70 61 72    65 6e 74 2d 71 6e 61 6d 65 20 63 68 61 69 6e 29  | name.(append.parent-qname.chain) | 
| 4b240 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 70 75 74 68 61 73 68 20 63 75 72 72  | )).................(puthash.curr | 
| 4b260 |  65 6e 74 2d 66 6e 20 28 62 75 74 6c 61 73 74 20    71 6e 61 6d 65 29 20 6a 73 32 2d 69 6d 65 6e 75  | ent-fn.(butlast.qname).js2-imenu | 
| 4b280 |  2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | -function-map).................( | 
| 4b2a0 |  70 75 73 68 20 71 6e 61 6d 65 20 72 65 73 75 6c    74 29 29 29 29 29 29 29 0a 20 20 20 20 3b 3b 20  | push.qname.result))))))).....;;. | 
| 4b2c0 |  43 6f 6c 6c 65 63 74 20 63 68 61 69 6e 73 20 6f    62 74 61 69 6e 65 64 20 62 79 20 74 68 69 72 64  | Collect.chains.obtained.by.third | 
| 4b2e0 |  2d 70 61 72 74 79 20 63 6f 64 65 2e 0a 20 20 20    20 28 6c 65 74 20 28 6a 73 32 2d 69 6d 65 6e 75  | -party.code......(let.(js2-imenu | 
| 4b300 |  2d 72 65 63 6f 72 64 65 72 29 0a 20 20 20 20 20    20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32  | -recorder).......(run-hooks.'js2 | 
| 4b320 |  2d 62 75 69 6c 64 2d 69 6d 65 6e 75 2d 63 61 6c    6c 62 61 63 6b 73 29 0a 20 20 20 20 20 20 28 64  | -build-imenu-callbacks).......(d | 
| 4b340 |  6f 6c 69 73 74 20 28 65 6e 74 72 79 20 6a 73 32    2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 65 72 29  | olist.(entry.js2-imenu-recorder) | 
| 4b360 |  0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28    63 64 72 20 65 6e 74 72 79 29 20 72 65 73 75 6c  | .........(push.(cdr.entry).resul | 
| 4b380 |  74 29 29 29 0a 20 20 20 20 3b 3b 20 46 69 6e 61    6c 6c 79 20 72 65 70 6c 61 63 65 20 65 61 63 68  | t))).....;;.Finally.replace.each | 
| 4b3a0 |  20 6e 6f 64 65 20 69 6e 20 65 61 63 68 20 63 68    61 69 6e 20 77 69 74 68 20 69 74 73 20 6e 61 6d  | .node.in.each.chain.with.its.nam | 
| 4b3c0 |  65 2e 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28    63 68 61 69 6e 20 72 65 73 75 6c 74 29 0a 20 20  | e......(dolist.(chain.result)... | 
| 4b3e0 |  20 20 20 20 28 73 65 74 71 20 70 20 63 68 61 69    6e 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20  | ....(setq.p.chain).......(while. | 
| 4b400 |  70 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6a    73 32 2d 6e 6f 64 65 2d 70 20 28 73 65 74 71 20  | p.........(if.(js2-node-p.(setq. | 
| 4b420 |  65 6c 65 6d 20 28 63 61 72 20 70 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63  | elem.(car.p))).............(setc | 
| 4b440 |  61 72 20 70 20 28 6a 73 32 2d 6e 6f 64 65 2d 71    6e 61 6d 65 2d 63 6f 6d 70 6f 6e 65 6e 74 20 65  | ar.p.(js2-node-qname-component.e | 
| 4b460 |  6c 65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28    73 65 74 71 20 70 20 28 63 64 72 20 70 29 29 29  | lem))).........(setq.p.(cdr.p))) | 
| 4b480 |  29 0a 20 20 20 20 72 65 73 75 6c 74 29 29 0a 0a    3b 3b 20 4d 65 72 67 65 20 6e 61 6d 65 20 63 68  | ).....result))..;;.Merge.name.ch | 
| 4b4a0 |  61 69 6e 73 20 69 6e 74 6f 20 61 20 74 72 69 65    2d 6c 69 6b 65 20 74 72 65 65 20 73 74 72 75 63  | ains.into.a.trie-like.tree.struc | 
| 4b4c0 |  74 75 72 65 20 6f 66 20 6e 65 73 74 65 64 20 6c    69 73 74 73 2e 0a 3b 3b 20 54 6f 20 73 69 6d 70  | ture.of.nested.lists..;;.To.simp | 
| 4b4e0 |  6c 69 66 79 20 63 6f 6e 73 74 72 75 63 74 69 6f    6e 20 6f 66 20 74 68 65 20 74 72 69 65 2c 20 77  | lify.construction.of.the.trie,.w | 
| 4b500 |  65 20 66 69 72 73 74 20 62 75 69 6c 64 20 69 74    20 6f 75 74 20 75 73 69 6e 67 20 74 68 65 20 72  | e.first.build.it.out.using.the.r | 
| 4b520 |  75 6c 65 0a 3b 3b 20 74 68 61 74 20 74 68 65 20    74 72 69 65 20 63 6f 6e 73 69 73 74 73 20 6f 66  | ule.;;.that.the.trie.consists.of | 
| 4b540 |  20 6c 69 73 74 73 20 6f 66 20 70 61 69 72 73 2e    20 20 45 61 63 68 20 70 61 69 72 20 69 73 20 61  | .lists.of.pairs...Each.pair.is.a | 
| 4b560 |  20 32 2d 65 6c 65 6d 65 6e 74 20 61 72 72 61 79    3a 0a 3b 3b 20 5b 6b 65 79 2c 20 6e 75 6d 2d 6f  | .2-element.array:.;;.[key,.num-o | 
| 4b580 |  72 2d 6c 69 73 74 5d 2e 20 20 54 68 65 20 73 65    63 6f 6e 64 20 65 6c 65 6d 65 6e 74 20 63 61 6e  | r-list]...The.second.element.can | 
| 4b5a0 |  20 62 65 20 61 20 6e 75 6d 62 65 72 3b 20 69 66    20 73 6f 2c 20 74 68 69 73 20 6b 65 79 0a 3b 3b  | .be.a.number;.if.so,.this.key.;; | 
| 4b5c0 |  20 69 73 20 61 20 6c 65 61 66 2d 6e 6f 64 65 20    77 69 74 68 20 6f 6e 6c 79 20 6f 6e 65 20 76 61  | .is.a.leaf-node.with.only.one.va | 
| 4b5e0 |  6c 75 65 2e 20 20 28 49 2e 65 2e 20 74 68 65 72    65 20 69 73 20 6f 6e 6c 79 20 6f 6e 65 20 64 65  | lue...(I.e..there.is.only.one.de | 
| 4b600 |  63 6c 61 72 61 74 69 6f 6e 0a 3b 3b 20 61 73 73    6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65  | claration.;;.associated.with.the | 
| 4b620 |  20 6b 65 79 20 61 74 20 74 68 69 73 20 6c 65 76    65 6c 2e 29 20 20 4f 74 68 65 72 77 69 73 65 20  | .key.at.this.level.)..Otherwise. | 
| 4b640 |  74 68 65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65    6e 74 20 69 73 0a 3b 3b 20 61 20 6c 69 73 74 20  | the.second.element.is.;;.a.list. | 
| 4b660 |  6f 66 20 70 61 69 72 73 2c 20 77 69 74 68 20 74    68 65 20 72 75 6c 65 20 61 70 70 6c 69 65 64 20  | of.pairs,.with.the.rule.applied. | 
| 4b680 |  72 65 63 75 72 73 69 76 65 6c 79 2e 20 20 54 68    69 73 20 73 79 6d 6d 65 74 72 79 20 70 65 72 6d  | recursively...This.symmetry.perm | 
| 4b6a0 |  69 74 73 0a 3b 3b 20 61 20 73 69 6d 70 6c 65 20    72 65 63 75 72 73 69 76 65 20 66 6f 72 6d 75 6c  | its.;;.a.simple.recursive.formul | 
| 4b6c0 |  61 74 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 6a 73 32    2d 6d 6f 64 65 20 69 73 20 62 75 69 6c 64 69 6e  | ation..;;.;;.js2-mode.is.buildin | 
| 4b6e0 |  67 20 74 68 65 20 64 61 74 61 20 73 74 72 75 63    74 75 72 65 20 66 6f 72 20 69 6d 65 6e 75 2e 20  | g.the.data.structure.for.imenu.. | 
| 4b700 |  20 54 68 65 20 69 6d 65 6e 75 20 64 6f 63 75 6d    65 6e 74 61 74 69 6f 6e 0a 3b 3b 20 63 6c 61 69  | .The.imenu.documentation.;;.clai | 
| 4b720 |  6d 73 20 74 68 61 74 20 69 74 27 73 20 74 68 65    20 73 74 72 75 63 74 75 72 65 20 61 62 6f 76 65  | ms.that.it's.the.structure.above | 
| 4b740 |  2c 20 62 75 74 20 69 6e 20 70 72 61 63 74 69 63    65 20 69 74 20 77 61 6e 74 73 20 74 68 65 20 63  | ,.but.in.practice.it.wants.the.c | 
| 4b760 |  68 69 6c 64 72 65 6e 0a 3b 3b 20 61 74 20 74 68    65 20 73 61 6d 65 20 6c 69 73 74 20 6c 65 76 65  | hildren.;;.at.the.same.list.leve | 
| 4b780 |  6c 20 61 73 20 74 68 65 20 6b 65 79 20 66 6f 72    20 74 68 61 74 20 6c 65 76 65 6c 2c 20 77 68 69  | l.as.the.key.for.that.level,.whi | 
| 4b7a0 |  63 68 20 69 73 20 68 6f 77 20 49 27 76 65 20 64    72 61 77 6e 0a 3b 3b 20 74 68 65 20 22 45 78 70  | ch.is.how.I've.drawn.;;.the."Exp | 
| 4b7c0 |  65 63 74 65 64 20 66 69 6e 61 6c 20 72 65 73 75    6c 74 22 20 61 62 6f 76 65 2e 20 20 57 65 27 6c  | ected.final.result".above...We'l | 
| 4b7e0 |  6c 20 70 6f 73 74 70 72 6f 63 65 73 73 20 74 68    65 20 74 72 69 65 20 74 6f 20 72 65 6d 6f 76 65  | l.postprocess.the.trie.to.remove | 
| 4b800 |  20 74 68 65 0a 3b 3b 20 6c 69 73 74 20 77 72 61    70 70 65 72 20 61 72 6f 75 6e 64 20 74 68 65 20  | .the.;;.list.wrapper.around.the. | 
| 4b820 |  63 68 69 6c 64 72 65 6e 20 61 74 20 65 61 63 68    20 6c 65 76 65 6c 2e 0a 3b 3b 0a 3b 3b 20 41 20  | children.at.each.level..;;.;;.A. | 
| 4b840 |  63 6f 6d 70 6c 65 74 65 64 20 6e 65 73 74 65 64    20 69 6d 65 6e 75 2d 61 6c 69 73 74 20 65 6e 74  | completed.nested.imenu-alist.ent | 
| 4b860 |  72 79 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68    69 73 3a 0a 3b 3b 20 20 20 20 20 20 20 27 28 28  | ry.looks.like.this:.;;.......'(( | 
| 4b880 |  22 66 6f 6f 22 0a 3b 3b 20 20 20 20 20 20 20 20    20 20 28 22 3c 64 65 66 69 6e 69 74 69 6f 6e 3e  | "foo".;;..........("<definition> | 
| 4b8a0 |  22 20 2e 20 37 29 0a 3b 3b 20 20 20 20 20 20 20    20 20 20 28 22 62 61 72 22 0a 3b 3b 20 20 20 20  | "...7).;;..........("bar".;;.... | 
| 4b8c0 |  20 20 20 20 20 20 20 28 22 61 22 20 2e 20 34 30    29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 28  | .......("a"...40).;;...........( | 
| 4b8e0 |  22 62 22 20 2e 20 36 30 29 29 29 29 0a 3b 3b 0a    3b 3b 20 49 6e 20 70 61 72 74 69 63 75 6c 61 72  | "b"...60)))).;;.;;.In.particular | 
| 4b900 |  2c 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74    69 6f 6e 20 66 6f 72 20 60 69 6d 65 6e 75 2d 2d  | ,.the.documentation.for.`imenu-- | 
| 4b920 |  69 6e 64 65 78 2d 61 6c 69 73 74 27 20 73 61 79    73 20 74 68 61 74 0a 3b 3b 20 61 20 6e 65 73 74  | index-alist'.says.that.;;.a.nest | 
| 4b940 |  65 64 20 73 75 62 2d 61 6c 69 73 74 20 65 6c 65    6d 65 6e 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20  | ed.sub-alist.element.looks.like. | 
| 4b960 |  28 49 4e 44 45 58 2d 4e 41 4d 45 20 53 55 42 2d    41 4c 49 53 54 29 2e 0a 3b 3b 20 54 68 65 20 73  | (INDEX-NAME.SUB-ALIST)..;;.The.s | 
| 4b980 |  75 62 2d 61 6c 69 73 74 20 65 6e 74 72 69 65 73    20 69 6d 6d 65 64 69 61 74 65 6c 79 20 66 6f 6c  | ub-alist.entries.immediately.fol | 
| 4b9a0 |  6c 6f 77 20 49 4e 44 45 58 2d 4e 41 4d 45 2c 20    74 68 65 20 68 65 61 64 20 6f 66 20 74 68 65 20  | low.INDEX-NAME,.the.head.of.the. | 
| 4b9c0 |  6c 69 73 74 2e 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 74 72 65 65 69 66 79 20 28 6c 73 74 29 0a  | list...(defun.js2-treeify.(lst). | 
| 4b9e0 |  20 20 22 43 6f 6e 76 65 72 74 20 28 61 20 62 20    63 20 64 29 20 74 6f 20 28 61 20 28 28 62 20 28  | .."Convert.(a.b.c.d).to.(a.((b.( | 
| 4ba00 |  28 63 20 64 29 29 29 29 29 2e 22 0a 20 20 28 69    66 20 28 6e 75 6c 6c 20 28 63 64 64 72 20 6c 73  | (c.d)))))."...(if.(null.(cddr.ls | 
| 4ba20 |  74 29 29 20 20 3b 20 6c 69 73 74 20 6c 65 6e 67    74 68 20 3c 3d 20 32 0a 20 20 20 20 20 20 6c 73  | t))..;.list.length.<=.2.......ls | 
| 4ba40 |  74 0a 20 20 20 20 28 6c 69 73 74 20 28 63 61 72    20 6c 73 74 29 20 28 6c 69 73 74 20 28 6a 73 32  | t.....(list.(car.lst).(list.(js2 | 
| 4ba60 |  2d 74 72 65 65 69 66 79 20 28 63 64 72 20 6c 73    74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20  | -treeify.(cdr.lst))))))..(defun. | 
| 4ba80 |  6a 73 32 2d 62 75 69 6c 64 2d 61 6c 69 73 74 2d    74 72 69 65 20 28 63 68 61 69 6e 73 20 74 72 69  | js2-build-alist-trie.(chains.tri | 
| 4baa0 |  65 29 0a 20 20 22 4d 65 72 67 65 20 64 65 63 6c    61 72 61 74 69 6f 6e 20 6e 61 6d 65 20 63 68 61  | e)..."Merge.declaration.name.cha | 
| 4bac0 |  69 6e 73 20 69 6e 74 6f 20 61 20 74 72 69 65 2d    6c 69 6b 65 20 61 6c 69 73 74 20 73 74 72 75 63  | ins.into.a.trie-like.alist.struc | 
| 4bae0 |  74 75 72 65 20 66 6f 72 20 69 6d 65 6e 75 2e 0a    43 48 41 49 4e 53 20 69 73 20 74 68 65 20 71 6e  | ture.for.imenu..CHAINS.is.the.qn | 
| 4bb00 |  61 6d 65 20 63 68 61 69 6e 20 6c 69 73 74 20 70    72 6f 64 75 63 65 64 20 64 75 72 69 6e 67 20 70  | ame.chain.list.produced.during.p | 
| 4bb20 |  61 72 73 69 6e 67 2e 20 54 52 49 45 20 69 73 20    61 0a 6c 69 73 74 20 6f 66 20 65 6c 65 6d 65 6e  | arsing..TRIE.is.a.list.of.elemen | 
| 4bb40 |  74 73 20 62 75 69 6c 74 20 75 70 20 73 6f 20 66    61 72 2e 22 0a 20 20 28 6c 65 74 20 28 68 65 61  | ts.built.up.so.far."...(let.(hea | 
| 4bb60 |  64 20 74 61 69 6c 20 70 6f 73 20 62 72 61 6e 63    68 20 6b 69 64 73 29 0a 20 20 20 20 28 64 6f 6c  | d.tail.pos.branch.kids).....(dol | 
| 4bb80 |  69 73 74 20 28 63 68 61 69 6e 20 63 68 61 69 6e    73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68  | ist.(chain.chains).......(setq.h | 
| 4bba0 |  65 61 64 20 28 63 61 72 20 63 68 61 69 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 74 61 69 6c  | ead.(car.chain).............tail | 
| 4bbc0 |  20 28 63 64 72 20 63 68 61 69 6e 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 70 6f 73 20 28 69 66  | .(cdr.chain).............pos.(if | 
| 4bbe0 |  20 28 6e 75 6d 62 65 72 70 20 28 63 61 72 20 74    61 69 6c 29 29 20 28 63 61 72 20 74 61 69 6c 29  | .(numberp.(car.tail)).(car.tail) | 
| 4bc00 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 72    61 6e 63 68 20 28 6a 73 32 2d 66 69 6e 64 2d 69  | ).............branch.(js2-find-i | 
| 4bc20 |  66 20 28 6c 61 6d 62 64 61 20 28 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | f.(lambda.(n)................... | 
| 4bc40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 74 72 69 6e 67 3d 20 28 63 61 72 20 6e 29  | ................(string=.(car.n) | 
| 4bc60 |  20 68 65 61 64 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .head))......................... | 
| 4bc80 |  20 20 20 20 20 20 20 20 74 72 69 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 6b 69 64 73 20 28  | ........trie).............kids.( | 
| 4bca0 |  63 6c 2d 73 65 63 6f 6e 64 20 62 72 61 6e 63 68    29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20  | cl-second.branch)).......(cond.. | 
| 4bcc0 |  20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 31 3a    20 20 74 68 69 73 20 6b 65 79 20 69 73 6e 27 74  | ......;;.case.1:..this.key.isn't | 
| 4bce0 |  20 69 6e 20 74 68 65 20 74 72 69 65 20 79 65 74    0a 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 62  | .in.the.trie.yet........((null.b | 
| 4bd00 |  72 61 6e 63 68 29 0a 20 20 20 20 20 20 20 20 28    69 66 20 74 72 69 65 0a 20 20 20 20 20 20 20 20  | ranch).........(if.trie......... | 
| 4bd20 |  20 20 20 20 28 73 65 74 63 64 72 20 28 6c 61 73    74 20 74 72 69 65 29 20 28 6c 69 73 74 20 28 6a  | ....(setcdr.(last.trie).(list.(j | 
| 4bd40 |  73 32 2d 74 72 65 65 69 66 79 20 63 68 61 69 6e    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73  | s2-treeify.chain)))...........(s | 
| 4bd60 |  65 74 71 20 74 72 69 65 20 28 6c 69 73 74 20 28    6a 73 32 2d 74 72 65 65 69 66 79 20 63 68 61 69  | etq.trie.(list.(js2-treeify.chai | 
| 4bd80 |  6e 29 29 29 29 29 0a 20 20 20 20 20 20 20 3b 3b    20 63 61 73 65 20 32 3a 20 20 6b 65 79 20 69 73  | n)))))........;;.case.2:..key.is | 
| 4bda0 |  20 70 72 65 73 65 6e 74 20 77 69 74 68 20 61 20    73 69 6e 67 6c 65 20 6e 75 6d 62 65 72 20 65 6e  | .present.with.a.single.number.en | 
| 4bdc0 |  74 72 79 3a 20 20 72 65 70 6c 61 63 65 20 77 2f    20 6c 69 73 74 0a 20 20 20 20 20 20 20 3b 3b 20  | try:..replace.w/.list........;;. | 
| 4bde0 |  20 28 22 61 31 22 20 31 30 29 20 20 2b 20 20 28    22 61 31 22 20 32 30 29 20 3d 3e 20 28 22 61 31  | .("a1".10)..+..("a1".20).=>.("a1 | 
| 4be00 |  22 20 28 28 22 3c 64 65 66 69 6e 69 74 69 6f 6e    3e 22 20 31 30 29 0a 20 20 20 20 20 20 20 3b 3b  | ".(("<definition>".10)........;; | 
| 4be20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 4be40 |  20 20 20 20 28 22 3c 64 65 66 69 6e 69 74 69 6f    6e 3e 22 20 32 30 29 29 29 0a 20 20 20 20 20 20  | ....("<definition>".20)))....... | 
| 4be60 |  20 28 28 6e 75 6d 62 65 72 70 20 6b 69 64 73 29    0a 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72  | .((numberp.kids).........(setcar | 
| 4be80 |  20 28 63 64 72 20 62 72 61 6e 63 68 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | .(cdr.branch).................(l | 
| 4bea0 |  69 73 74 20 28 6c 69 73 74 20 22 3c 64 65 66 69    6e 69 74 69 6f 6e 2d 31 3e 22 20 6b 69 64 73 29  | ist.(list."<definition-1>".kids) | 
| 4bec0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 70 6f 73 0a 20  | .......................(if.pos.. | 
| 4bee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22  | .........................(list." | 
| 4bf00 |  3c 64 65 66 69 6e 69 74 69 6f 6e 2d 32 3e 22 20    70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20  | <definition-2>".pos)............ | 
| 4bf20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 74 72 65 65 69 66 79 20 74 61 69 6c 29 29  | .............(js2-treeify.tail)) | 
| 4bf40 |  29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 63 61    73 65 20 33 3a 20 20 6b 65 79 20 69 73 20 74 68  | )))........;;.case.3:..key.is.th | 
| 4bf60 |  65 72 65 20 28 77 69 74 68 20 6b 69 64 73 29 2c    20 61 6e 64 20 77 65 27 72 65 20 61 20 6e 75 6d  | ere.(with.kids),.and.we're.a.num | 
| 4bf80 |  62 65 72 20 65 6e 74 72 79 0a 20 20 20 20 20 20    20 28 70 6f 73 0a 20 20 20 20 20 20 20 20 28 73  | ber.entry........(pos.........(s | 
| 4bfa0 |  65 74 63 64 72 20 28 6c 61 73 74 20 6b 69 64 73    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | etcdr.(last.kids)............... | 
| 4bfc0 |  20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28  | ..(list..................(list.( | 
| 4bfe0 |  66 6f 72 6d 61 74 20 22 3c 64 65 66 69 6e 69 74    69 6f 6e 2d 25 64 3e 22 0a 20 20 20 20 20 20 20  | format."<definition-%d>"........ | 
| 4c000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 31 2b 20 28 63 6c 2d  | ........................(1+.(cl- | 
| 4c020 |  6c 6f 6f 70 20 66 6f 72 20 6b 69 64 20 69 6e 20    6b 69 64 73 0a 20 20 20 20 20 20 20 20 20 20 20  | loop.for.kid.in.kids............ | 
| 4c040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 4c060 |  20 63 6f 75 6e 74 20 28 65 71 20 3f 3c 20 28 61    72 65 66 20 28 63 61 72 20 6b 69 64 29 20 30 29  | .count.(eq.?<.(aref.(car.kid).0) | 
| 4c080 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 29  | ))))........................pos) | 
| 4c0a0 |  29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 63 61    73 65 20 34 3a 20 20 6b 65 79 20 69 73 20 74 68  | )))........;;.case.4:..key.is.th | 
| 4c0c0 |  65 72 65 20 77 69 74 68 20 6b 69 64 73 2c 20 6e    65 65 64 20 74 6f 20 6d 65 72 67 65 20 69 6e 20  | ere.with.kids,.need.to.merge.in. | 
| 4c0e0 |  6f 75 72 20 63 68 61 69 6e 0a 20 20 20 20 20 20    20 28 74 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | our.chain........(t.........(js2 | 
| 4c100 |  2d 62 75 69 6c 64 2d 61 6c 69 73 74 2d 74 72 69    65 20 28 6c 69 73 74 20 74 61 69 6c 29 20 6b 69  | -build-alist-trie.(list.tail).ki | 
| 4c120 |  64 73 29 29 29 29 0a 20 20 20 20 74 72 69 65 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 66 6c  | ds)))).....trie))..(defun.js2-fl | 
| 4c140 |  61 74 74 65 6e 2d 74 72 69 65 20 28 74 72 69 65    29 0a 20 20 22 43 6f 6e 76 65 72 74 20 54 52 49  | atten-trie.(trie)..."Convert.TRI | 
| 4c160 |  45 20 74 6f 20 69 6d 65 6e 75 2d 66 6f 72 6d 61    74 2e 0a 52 65 63 75 72 73 65 73 20 74 68 72 6f  | E.to.imenu-format..Recurses.thro | 
| 4c180 |  75 67 68 20 6e 6f 64 65 73 2c 20 61 6e 64 20 66    6f 72 20 65 61 63 68 20 6f 6e 65 20 77 68 6f 73  | ugh.nodes,.and.for.each.one.whos | 
| 4c1a0 |  65 20 73 65 63 6f 6e 64 20 65 6c 65 6d 65 6e 74    20 69 73 20 61 20 6c 69 73 74 2c 0a 61 70 70 65  | e.second.element.is.a.list,.appe | 
| 4c1c0 |  6e 64 73 20 74 68 65 20 6c 69 73 74 27 73 20 66    6c 61 74 74 65 6e 65 64 20 65 6c 65 6d 65 6e 74  | nds.the.list's.flattened.element | 
| 4c1e0 |  73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74    20 65 6c 65 6d 65 6e 74 2e 20 20 41 6c 73 6f 0a  | s.to.the.current.element...Also. | 
| 4c200 |  63 68 61 6e 67 65 73 20 74 68 65 20 74 61 69 6c    73 20 69 6e 74 6f 20 63 6f 6e 73 65 73 2e 20 20  | changes.the.tails.into.conses... | 
| 4c220 |  46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 74 68    69 73 20 70 72 65 2d 66 6c 61 74 74 65 6e 65 64  | For.instance,.this.pre-flattened | 
| 4c240 |  20 74 72 69 65 0a 0a 20 28 61 20 28 28 62 20 32    30 29 0a 20 20 20 20 20 28 63 20 28 28 64 20 33  | .trie...(a.((b.20)......(c.((d.3 | 
| 4c260 |  30 29 0a 20 20 20 20 20 20 20 20 20 28 65 20 34    30 29 29 29 29 29 0a 0a 62 65 63 6f 6d 65 73 0a  | 0)..........(e.40)))))..becomes. | 
| 4c280 |  0a 20 28 61 20 28 62 20 2e 20 32 30 29 0a 20 20    20 20 28 63 20 28 64 20 2e 20 33 30 29 0a 20 20  | ..(a.(b...20).....(c.(d...30)... | 
| 4c2a0 |  20 20 20 20 20 28 65 20 2e 20 34 30 29 29 29 0a    0a 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 72  | .....(e...40)))..Note.that.the.r | 
| 4c2c0 |  6f 6f 74 20 6f 66 20 74 68 65 20 74 72 69 65 20    68 61 73 20 6e 6f 20 6b 65 79 2c 20 6a 75 73 74  | oot.of.the.trie.has.no.key,.just | 
| 4c2e0 |  20 61 20 6c 69 73 74 20 6f 66 20 63 68 61 69 6e    73 2e 0a 54 68 69 73 20 69 73 20 61 6c 73 6f 20  | .a.list.of.chains..This.is.also. | 
| 4c300 |  74 72 75 65 20 66 6f 72 20 74 68 65 20 76 61 6c    75 65 20 6f 66 20 61 6e 79 20 6b 65 79 20 77 69  | true.for.the.value.of.any.key.wi | 
| 4c320 |  74 68 20 6d 75 6c 74 69 70 6c 65 20 63 68 69 6c    64 72 65 6e 2c 0a 65 2e 67 2e 20 6b 65 79 20 60  | th.multiple.children,.e.g..key.` | 
| 4c340 |  63 27 20 69 6e 20 74 68 65 20 65 78 61 6d 70 6c    65 20 61 62 6f 76 65 2e 22 0a 20 20 28 63 6f 6e  | c'.in.the.example.above."...(con | 
| 4c360 |  64 0a 20 20 20 28 28 6c 69 73 74 70 20 28 63 61    72 20 74 72 69 65 29 29 0a 20 20 20 20 28 6d 61  | d....((listp.(car.trie)).....(ma | 
| 4c380 |  70 63 61 72 20 23 27 6a 73 32 2d 66 6c 61 74 74    65 6e 2d 74 72 69 65 20 74 72 69 65 29 29 0a 20  | pcar.#'js2-flatten-trie.trie)).. | 
| 4c3a0 |  20 20 28 74 0a 20 20 20 20 28 69 66 20 28 6e 75    6d 62 65 72 70 20 28 63 6c 2d 73 65 63 6f 6e 64  | ..(t.....(if.(numberp.(cl-second | 
| 4c3c0 |  20 74 72 69 65 29 29 0a 20 20 20 20 20 20 20 20    28 63 6f 6e 73 20 28 63 61 72 20 74 72 69 65 29  | .trie)).........(cons.(car.trie) | 
| 4c3e0 |  20 28 63 6c 2d 73 65 63 6f 6e 64 20 74 72 69 65    29 29 0a 20 20 20 20 20 20 3b 3b 20 65 6c 73 65  | .(cl-second.trie)).......;;.else | 
| 4c400 |  20 70 6f 70 20 6c 69 73 74 20 61 6e 64 20 61 70    70 65 6e 64 20 69 74 73 20 6b 69 64 73 0a 20 20  | .pop.list.and.append.its.kids... | 
| 4c420 |  20 20 20 20 28 61 70 70 6c 79 20 23 27 61 70 70    65 6e 64 20 28 6c 69 73 74 20 28 63 61 72 20 74  | ....(apply.#'append.(list.(car.t | 
| 4c440 |  72 69 65 29 29 20 28 6a 73 32 2d 66 6c 61 74 74    65 6e 2d 74 72 69 65 20 28 63 64 72 20 74 72 69  | rie)).(js2-flatten-trie.(cdr.tri | 
| 4c460 |  65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 6e 75  | e)))))))..(defun.js2-build-imenu | 
| 4c480 |  2d 69 6e 64 65 78 20 28 29 0a 20 20 22 54 75 72    6e 20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63  | -index.()..."Turn.`js2-imenu-rec | 
| 4c4a0 |  6f 72 64 65 72 27 20 69 6e 74 6f 20 61 6e 20 69    6d 65 6e 75 20 64 61 74 61 20 73 74 72 75 63 74  | order'.into.an.imenu.data.struct | 
| 4c4c0 |  75 72 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 65    71 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f  | ure."...(when.(eq.js2-imenu-reco | 
| 4c4e0 |  72 64 65 72 20 27 65 6d 70 74 79 29 0a 20 20 20    20 28 73 65 74 71 20 6a 73 32 2d 69 6d 65 6e 75  | rder.'empty).....(setq.js2-imenu | 
| 4c500 |  2d 72 65 63 6f 72 64 65 72 20 6e 69 6c 29 29 0a    20 20 28 6c 65 74 2a 20 28 28 63 68 61 69 6e 73  | -recorder.nil))...(let*.((chains | 
| 4c520 |  20 28 6a 73 32 2d 62 72 6f 77 73 65 2d 70 6f 73    74 70 72 6f 63 65 73 73 2d 63 68 61 69 6e 73 29  | .(js2-browse-postprocess-chains) | 
| 4c540 |  29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 75    6c 74 20 28 6a 73 32 2d 62 75 69 6c 64 2d 61 6c  | )..........(result.(js2-build-al | 
| 4c560 |  69 73 74 2d 74 72 69 65 20 63 68 61 69 6e 73 20    6e 69 6c 29 29 29 0a 20 20 20 20 28 6a 73 32 2d  | ist-trie.chains.nil))).....(js2- | 
| 4c580 |  66 6c 61 74 74 65 6e 2d 74 72 69 65 20 72 65 73    75 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | flatten-trie.result)))..(defun.j | 
| 4c5a0 |  73 32 2d 74 65 73 74 2d 70 72 69 6e 74 2d 63 68    61 69 6e 73 20 28 63 68 61 69 6e 73 29 0a 20 20  | s2-test-print-chains.(chains)... | 
| 4c5c0 |  22 50 72 69 6e 74 20 61 20 6c 69 73 74 20 6f 66    20 71 6e 61 6d 65 20 63 68 61 69 6e 73 2e 0a 45  | "Print.a.list.of.qname.chains..E | 
| 4c5e0 |  61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 43    48 41 49 4e 53 20 69 73 20 61 20 6c 69 73 74 20  | ach.element.of.CHAINS.is.a.list. | 
| 4c600 |  6f 66 20 74 68 65 20 66 6f 72 6d 20 28 4e 4f 44    45 20 5b 4e 4f 44 45 20 2a 5d 20 70 6f 73 29 3b  | of.the.form.(NODE.[NODE.*].pos); | 
| 4c620 |  0a 69 2e 65 2e 20 6f 6e 65 20 6f 72 20 6d 6f 72    65 20 6e 6f 64 65 73 2c 20 61 6e 64 20 61 6e 20  | .i.e..one.or.more.nodes,.and.an. | 
| 4c640 |  69 6e 74 65 67 65 72 20 70 6f 73 69 74 69 6f 6e    20 61 73 20 74 68 65 20 6c 69 73 74 20 74 61 69  | integer.position.as.the.list.tai | 
| 4c660 |  6c 2e 22 0a 20 20 28 6d 61 70 63 6f 6e 63 61 74    20 28 6c 61 6d 62 64 61 20 28 63 68 61 69 6e 29  | l."...(mapconcat.(lambda.(chain) | 
| 4c680 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 6e 63 61 74 20 22 28 22 0a 20 20 20 20  | ................(concat."("..... | 
| 4c6a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c  | ...................(mapconcat.(l | 
| 4c6c0 |  61 6d 62 64 61 20 28 65 6c 65 6d 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ambda.(elem).................... | 
| 4c6e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 69 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70  | .................(if.(js2-node-p | 
| 4c700 |  20 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .elem).......................... | 
| 4c720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 71 6e 61  | ...............(or.(js2-node-qna | 
| 4c740 |  6d 65 2d 63 6f 6d 70 6f 6e 65 6e 74 20 65 6c 65    6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | me-component.elem).............. | 
| 4c760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | ..............................." | 
| 4c780 |  6e 69 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nil")........................... | 
| 4c7a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d    62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 65 6c  | ............(number-to-string.el | 
| 4c7c0 |  65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | em)))........................... | 
| 4c7e0 |  20 20 20 20 20 20 20 20 63 68 61 69 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........chain................... | 
| 4c800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ................".")............ | 
| 4c820 |  20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63  | ............")"))..............c | 
| 4c840 |  68 61 69 6e 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 22 5c 6e 22 29 29 0a 0a 3b 3b 3b 20 50  | hains.............."\n"))..;;;.P | 
| 4c860 |  61 72 73 65 72 0a 0a 28 64 65 66 63 6f 6e 73 74    20 6a 73 32 2d 76 65 72 73 69 6f 6e 20 22 31 2e  | arser..(defconst.js2-version."1. | 
| 4c880 |  38 2e 35 22 0a 20 20 22 56 65 72 73 69 6f 6e 20    6f 66 20 4a 61 76 61 53 63 72 69 70 74 20 73 75  | 8.5"..."Version.of.JavaScript.su | 
| 4c8a0 |  70 70 6f 72 74 65 64 2e 22 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61  | pported.")..(defun.js2-record-fa | 
| 4c8c0 |  63 65 20 28 66 61 63 65 20 26 6f 70 74 69 6f 6e    61 6c 20 74 6f 6b 65 6e 29 0a 20 20 22 52 65 63  | ce.(face.&optional.token)..."Rec | 
| 4c8e0 |  6f 72 64 20 61 20 73 74 79 6c 65 20 72 75 6e 20    6f 66 20 46 41 43 45 20 66 6f 72 20 54 4f 4b 45  | ord.a.style.run.of.FACE.for.TOKE | 
| 4c900 |  4e 20 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74    20 74 6f 6b 65 6e 2e 22 0a 20 20 28 75 6e 6c 65  | N.or.the.current.token."...(unle | 
| 4c920 |  73 73 20 74 6f 6b 65 6e 20 28 73 65 74 71 20 74    6f 6b 65 6e 20 28 6a 73 32 2d 63 75 72 72 65 6e  | ss.token.(setq.token.(js2-curren | 
| 4c940 |  74 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 28 6a 73    32 2d 73 65 74 2d 66 61 63 65 20 28 6a 73 32 2d  | t-token)))...(js2-set-face.(js2- | 
| 4c960 |  74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65 6e 29    20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20  | token-beg.token).(js2-token-end. | 
| 4c980 |  74 6f 6b 65 6e 29 20 66 61 63 65 20 27 72 65 63    6f 72 64 29 29 0a 0a 28 64 65 66 73 75 62 73 74  | token).face.'record))..(defsubst | 
| 4c9a0 |  20 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 28 6e    29 0a 20 20 22 43 6f 6d 70 75 74 65 73 20 74 68  | .js2-node-end.(n)..."Computes.th | 
| 4c9c0 |  65 20 61 62 73 6f 6c 75 74 65 20 65 6e 64 20 6f    66 20 6e 6f 64 65 20 4e 2e 0a 55 73 65 20 77 69  | e.absolute.end.of.node.N..Use.wi | 
| 4c9e0 |  74 68 20 63 61 75 74 69 6f 6e 21 20 20 41 73 73    75 6d 65 73 20 60 6a 73 32 2d 6e 6f 64 65 2d 70  | th.caution!..Assumes.`js2-node-p | 
| 4ca00 |  6f 73 27 20 69 73 20 2d 61 62 73 6f 6c 75 74 65    2d 2c 20 77 68 69 63 68 0a 69 73 20 6f 6e 6c 79  | os'.is.-absolute-,.which.is.only | 
| 4ca20 |  20 74 72 75 65 20 75 6e 74 69 6c 20 74 68 65 20    6e 6f 64 65 20 69 73 20 61 64 64 65 64 20 74 6f  | .true.until.the.node.is.added.to | 
| 4ca40 |  20 69 74 73 20 70 61 72 65 6e 74 3b 20 69 2e 65    2e 2c 20 77 68 69 6c 65 20 70 61 72 73 69 6e 67  | .its.parent;.i.e.,.while.parsing | 
| 4ca60 |  2e 22 0a 20 20 28 2b 20 28 6a 73 32 2d 6e 6f 64    65 2d 70 6f 73 20 6e 29 0a 20 20 20 20 20 28 6a  | ."...(+.(js2-node-pos.n)......(j | 
| 4ca80 |  73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 29 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65 63  | s2-node-len.n)))..(defun.js2-rec | 
| 4caa0 |  6f 72 64 2d 63 6f 6d 6d 65 6e 74 20 28 74 6f 6b    65 6e 29 0a 20 20 22 52 65 63 6f 72 64 20 61 20  | ord-comment.(token)..."Record.a. | 
| 4cac0 |  63 6f 6d 6d 65 6e 74 20 69 6e 20 60 6a 73 32 2d    73 63 61 6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73  | comment.in.`js2-scanned-comments | 
| 4cae0 |  27 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 74 20    28 6a 73 32 2d 74 6f 6b 65 6e 2d 63 6f 6d 6d 65  | '."...(let.((ct.(js2-token-comme | 
| 4cb00 |  6e 74 2d 74 79 70 65 20 74 6f 6b 65 6e 29 29 0a    20 20 20 20 20 20 20 20 28 62 65 67 20 28 6a 73  | nt-type.token)).........(beg.(js | 
| 4cb20 |  32 2d 74 6f 6b 65 6e 2d 62 65 67 20 74 6f 6b 65    6e 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64  | 2-token-beg.token)).........(end | 
| 4cb40 |  20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 65 6e 64 20    74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 70 75  | .(js2-token-end.token))).....(pu | 
| 4cb60 |  73 68 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d    6d 65 6e 74 2d 6e 6f 64 65 20 3a 6c 65 6e 20 28  | sh.(make-js2-comment-node.:len.( | 
| 4cb80 |  2d 20 65 6e 64 20 62 65 67 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -.end.beg)...................... | 
| 4cba0 |  20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72    6d 61 74 20 63 74 29 0a 20 20 20 20 20 20 20 20  | ............:format.ct)......... | 
| 4cbc0 |  20 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d 63 6f    6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 77 68 65  | ..js2-scanned-comments).....(whe | 
| 4cbe0 |  6e 20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d    6d 6f 64 65 0a 20 20 20 20 20 20 28 6a 73 32 2d  | n.js2-parse-ide-mode.......(js2- | 
| 4cc00 |  72 65 63 6f 72 64 2d 66 61 63 65 20 28 69 66 20    28 65 71 20 63 74 20 27 6a 73 64 6f 63 29 0a 20  | record-face.(if.(eq.ct.'jsdoc).. | 
| 4cc20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d  | ..........................'font- | 
| 4cc40 |  6c 6f 63 6b 2d 64 6f 63 2d 66 61 63 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | lock-doc-face................... | 
| 4cc60 |  20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63    6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a  | .......'font-lock-comment-face). | 
| 4cc80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 74 6f 6b 65 6e 29 0a 20 20  | .......................token)... | 
| 4cca0 |  20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20    63 74 20 27 28 68 74 6d 6c 20 70 72 65 70 72 6f  | ....(when.(memq.ct.'(html.prepro | 
| 4ccc0 |  63 65 73 73 6f 72 29 29 0a 20 20 20 20 20 20 20    20 3b 3b 20 54 65 6c 6c 20 63 63 2d 65 6e 67 69  | cessor)).........;;.Tell.cc-engi | 
| 4cce0 |  6e 65 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66    20 74 68 65 20 63 6f 6d 6d 65 6e 74 2e 0a 20 20  | ne.the.bounds.of.the.comment.... | 
| 4cd00 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72    64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20  | ......(js2-record-text-property. | 
| 4cd20 |  62 65 67 20 28 31 2d 20 65 6e 64 29 20 27 63 2d    69 6e 2d 73 77 73 20 74 29 29 29 29 29 0a 0a 28  | beg.(1-.end).'c-in-sws.t)))))..( | 
| 4cd40 |  64 65 66 75 6e 20 6a 73 32 2d 70 65 65 6b 2d 74    6f 6b 65 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20  | defun.js2-peek-token.(&optional. | 
| 4cd60 |  6d 6f 64 69 66 69 65 72 29 0a 20 20 22 52 65 74    75 72 6e 20 74 68 65 20 6e 65 78 74 20 74 6f 6b  | modifier)..."Return.the.next.tok | 
| 4cd80 |  65 6e 20 74 79 70 65 20 77 69 74 68 6f 75 74 20    63 6f 6e 73 75 6d 69 6e 67 20 69 74 2e 0a 49 66  | en.type.without.consuming.it..If | 
| 4cda0 |  20 60 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61 68 65    61 64 27 20 69 73 20 70 6f 73 69 74 69 76 65 2c  | .`js2-ti-lookahead'.is.positive, | 
| 4cdc0 |  20 72 65 74 75 72 6e 20 74 68 65 20 74 79 70 65    20 6f 66 20 6e 65 78 74 20 74 6f 6b 65 6e 0a 66  | .return.the.type.of.next.token.f | 
| 4cde0 |  72 6f 6d 20 60 6a 73 32 2d 74 69 2d 74 6f 6b 65    6e 73 27 2e 20 20 4f 74 68 65 72 77 69 73 65 2c  | rom.`js2-ti-tokens'...Otherwise, | 
| 4ce00 |  20 63 61 6c 6c 20 60 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 27 2e 22 0a 20 20 28 69 66 20 28 6e  | .call.`js2-get-token'."...(if.(n | 
| 4ce20 |  6f 74 20 28 7a 65 72 6f 70 20 6a 73 32 2d 74 69    2d 6c 6f 6f 6b 61 68 65 61 64 29 29 0a 20 20 20  | ot.(zerop.js2-ti-lookahead)).... | 
| 4ce40 |  20 20 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79    70 65 0a 20 20 20 20 20 20 20 28 61 72 65 66 20  | ...(js2-token-type........(aref. | 
| 4ce60 |  6a 73 32 2d 74 69 2d 74 6f 6b 65 6e 73 20 28 6d    6f 64 20 28 31 2b 20 6a 73 32 2d 74 69 2d 74 6f  | js2-ti-tokens.(mod.(1+.js2-ti-to | 
| 4ce80 |  6b 65 6e 73 2d 63 75 72 73 6f 72 29 20 6a 73 32    2d 74 69 2d 6e 74 6f 6b 65 6e 73 29 29 29 0a 20  | kens-cursor).js2-ti-ntokens))).. | 
| 4cea0 |  20 20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73    32 2d 67 65 74 2d 74 6f 6b 65 6e 2d 69 6e 74 65  | ...(let.((tt.(js2-get-token-inte | 
| 4cec0 |  72 6e 61 6c 20 6d 6f 64 69 66 69 65 72 29 29 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65  | rnal.modifier))).......(js2-unge | 
| 4cee0 |  74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 74    74 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20  | t-token).......tt)))..(defalias. | 
| 4cf00 |  27 6a 73 32 2d 6e 65 78 74 2d 74 6f 6b 65 6e 20    27 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a  | 'js2-next-token.'js2-get-token). | 
| 4cf20 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74 63    68 2d 74 6f 6b 65 6e 20 28 6d 61 74 63 68 20 26  | .(defun.js2-match-token.(match.& | 
| 4cf40 |  6f 70 74 69 6f 6e 61 6c 20 64 6f 6e 74 2d 75 6e    67 65 74 29 0a 20 20 22 47 65 74 20 6e 65 78 74  | optional.dont-unget)..."Get.next | 
| 4cf60 |  20 74 6f 6b 65 6e 20 61 6e 64 20 72 65 74 75 72    6e 20 74 20 69 66 20 69 74 20 6d 61 74 63 68 65  | .token.and.return.t.if.it.matche | 
| 4cf80 |  73 20 4d 41 54 43 48 2c 20 61 20 62 79 74 65 63    6f 64 65 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c  | s.MATCH,.a.bytecode..Returns.nil | 
| 4cfa0 |  20 61 6e 64 20 63 6f 6e 73 75 6d 65 73 20 6e 6f    74 68 69 6e 67 20 69 66 20 4d 41 54 43 48 20 69  | .and.consumes.nothing.if.MATCH.i | 
| 4cfc0 |  73 20 6e 6f 74 20 74 68 65 20 6e 65 78 74 20 74    6f 6b 65 6e 2e 22 0a 20 20 28 69 66 20 28 2f 3d  | s.not.the.next.token."...(if.(/= | 
| 4cfe0 |  20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29    20 6d 61 74 63 68 29 0a 20 20 20 20 20 20 28 69  | .(js2-get-token).match).......(i | 
| 4d000 |  67 6e 6f 72 65 20 28 75 6e 6c 65 73 73 20 64 6f    6e 74 2d 75 6e 67 65 74 20 28 6a 73 32 2d 75 6e  | gnore.(unless.dont-unget.(js2-un | 
| 4d020 |  67 65 74 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20    20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | get-token))).....t))..(defun.js2 | 
| 4d040 |  2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61    6c 2d 6b 77 64 20 28 6e 61 6d 65 29 0a 20 20 22  | -match-contextual-kwd.(name)..." | 
| 4d060 |  43 6f 6e 73 75 6d 65 20 61 6e 64 20 72 65 74 75    72 6e 20 74 20 69 66 20 6e 65 78 74 20 74 6f 6b  | Consume.and.return.t.if.next.tok | 
| 4d080 |  65 6e 20 69 73 20 60 6a 73 32 2d 4e 41 4d 45 27    2c 20 61 6e 64 20 69 74 73 0a 73 74 72 69 6e 67  | en.is.`js2-NAME',.and.its.string | 
| 4d0a0 |  20 69 73 20 4e 41 4d 45 2e 20 20 52 65 74 75 72    6e 73 20 6e 69 6c 20 61 6e 64 20 6b 65 65 70 73  | .is.NAME...Returns.nil.and.keeps | 
| 4d0c0 |  20 63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 20 6f    74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 69 66  | .current.token.otherwise."...(if | 
| 4d0e0 |  20 28 6a 73 32 2d 63 6f 6e 74 65 78 74 75 61 6c    2d 6b 77 64 2d 70 20 28 70 72 6f 67 6e 20 28 6a  | .(js2-contextual-kwd-p.(progn.(j | 
| 4d100 |  73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-get-token)................... | 
| 4d120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | .................(js2-current-to | 
| 4d140 |  6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ken))........................... | 
| 4d160 |  20 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 70    72 6f 67 6e 20 28 6a 73 32 2d 72 65 63 6f 72 64  | ..name).......(progn.(js2-record | 
| 4d180 |  2d 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b    2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 20 74  | -face.'font-lock-keyword-face).t | 
| 4d1a0 |  29 0a 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74    2d 74 6f 6b 65 6e 29 0a 20 20 20 20 6e 69 6c 29  | ).....(js2-unget-token).....nil) | 
| 4d1c0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 6f    6e 74 65 78 74 75 61 6c 2d 6b 77 64 2d 70 20 28  | )..(defun.js2-contextual-kwd-p.( | 
| 4d1e0 |  74 6f 6b 65 6e 20 6e 61 6d 65 29 0a 20 20 22 52    65 74 75 72 6e 20 74 20 69 66 20 54 4f 4b 45 4e  | token.name)..."Return.t.if.TOKEN | 
| 4d200 |  20 69 73 20 60 6a 73 32 2d 4e 41 4d 45 27 2c 20    61 6e 64 20 69 74 73 20 73 74 72 69 6e 67 20 69  | .is.`js2-NAME',.and.its.string.i | 
| 4d220 |  73 20 4e 41 4d 45 2e 22 0a 20 20 28 61 6e 64 20    28 3d 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 74 79  | s.NAME."...(and.(=.(js2-token-ty | 
| 4d240 |  70 65 20 74 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41    4d 45 29 0a 20 20 20 20 20 20 20 28 73 74 72 69  | pe.token).js2-NAME)........(stri | 
| 4d260 |  6e 67 3d 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d 73    74 72 69 6e 67 20 74 6f 6b 65 6e 29 20 6e 61 6d  | ng=.(js2-token-string.token).nam | 
| 4d280 |  65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 75 6e  | e)))..(defun.js2-match-async-fun | 
| 4d2a0 |  63 74 69 6f 6e 20 28 29 0a 20 20 28 77 68 65 6e    20 28 61 6e 64 20 28 6a 73 32 2d 63 6f 6e 74 65  | ction.()...(when.(and.(js2-conte | 
| 4d2c0 |  78 74 75 61 6c 2d 6b 77 64 2d 70 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 20  | xtual-kwd-p.(js2-current-token). | 
| 4d2e0 |  22 61 73 79 6e 63 22 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3d 20 28 6a 73 32 2d 70 65  | "async")..............(=.(js2-pe | 
| 4d300 |  65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 46 55    4e 43 54 49 4f 4e 29 29 0a 20 20 20 20 28 6c 65  | ek-token).js2-FUNCTION)).....(le | 
| 4d320 |  74 20 28 28 61 73 79 6e 63 2d 70 6f 73 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | t.((async-pos.(js2-current-token | 
| 4d340 |  2d 62 65 67 29 29 29 0a 20 20 20 20 20 20 28 6a    73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27  | -beg))).......(js2-record-face.' | 
| 4d360 |  66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72    64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 28 6a  | font-lock-keyword-face).......(j | 
| 4d380 |  73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20    20 20 20 20 61 73 79 6e 63 2d 70 6f 73 29 29 29  | s2-get-token).......async-pos))) | 
| 4d3a0 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 74    63 68 2d 61 73 79 6e 63 2d 61 72 72 6f 77 2d 66  | ..(defun.js2-match-async-arrow-f | 
| 4d3c0 |  75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 28 61 6e    64 20 28 6a 73 32 2d 63 6f 6e 74 65 78 74 75 61  | unction.()...(and.(js2-contextua | 
| 4d3e0 |  6c 2d 6b 77 64 2d 70 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 29 20 22 61 73 79  | l-kwd-p.(js2-current-token)."asy | 
| 4d400 |  6e 63 22 29 0a 20 20 20 20 20 20 20 28 2f 3d 20    28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29  | nc")........(/=.(js2-peek-token) | 
| 4d420 |  20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 29 29    0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d  | .js2-FUNCTION)))..(defsubst.js2- | 
| 4d440 |  69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e 20    28 29 0a 20 20 28 63 6c 2d 70 6c 75 73 70 20 6a  | inside-function.()...(cl-plusp.j | 
| 4d460 |  73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75    6e 63 74 69 6f 6e 29 29 0a 0a 28 64 65 66 73 75  | s2-nesting-of-function))..(defsu | 
| 4d480 |  62 73 74 20 6a 73 32 2d 69 6e 73 69 64 65 2d 61    73 79 6e 63 2d 66 75 6e 63 74 69 6f 6e 20 28 29  | bst.js2-inside-async-function.() | 
| 4d4a0 |  0a 20 20 28 61 6e 64 20 28 6a 73 32 2d 69 6e 73    69 64 65 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20  | ...(and.(js2-inside-function)... | 
| 4d4c0 |  20 20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69    6f 6e 2d 6e 6f 64 65 2d 61 73 79 6e 63 20 6a 73  | .....(js2-function-node-async.js | 
| 4d4e0 |  32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74    2d 6f 72 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75  | 2-current-script-or-fn)))..(defu | 
| 4d500 |  6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 77 61 69    74 2d 6d 61 79 62 65 20 28 74 74 29 0a 20 20 22  | n.js2-parse-await-maybe.(tt)..." | 
| 4d520 |  50 61 72 73 65 20 5c 22 61 77 61 69 74 5c 22 20    61 73 20 61 6e 20 41 77 61 69 74 45 78 70 72 65  | Parse.\"await\".as.an.AwaitExpre | 
| 4d540 |  73 73 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20    6f 6e 65 2e 22 0a 20 20 28 61 6e 64 20 28 3d 20  | ssion,.if.it.is.one."...(and.(=. | 
| 4d560 |  74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20    20 20 20 20 28 6a 73 32 2d 63 6f 6e 74 65 78 74  | tt.js2-NAME)........(js2-context | 
| 4d580 |  75 61 6c 2d 6b 77 64 2d 70 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 20 22 61  | ual-kwd-p.(js2-current-token)."a | 
| 4d5a0 |  77 61 69 74 22 29 0a 20 20 20 20 20 20 20 3b 3b    20 50 65 72 20 74 68 65 20 70 72 6f 70 6f 73 61  | wait")........;;.Per.the.proposa | 
| 4d5c0 |  6c 2c 20 41 77 61 69 74 45 78 70 72 65 73 73 69    6f 6e 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 22  | l,.AwaitExpression.consists.of." | 
| 4d5e0 |  61 77 61 69 74 22 0a 20 20 20 20 20 20 20 3b 3b    20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 55  | await"........;;.followed.by.a.U | 
| 4d600 |  6e 61 72 79 45 78 70 72 65 73 73 69 6f 6e 2e 20    20 53 6f 20 6c 6f 6f 6b 20 61 68 65 61 64 20 66  | naryExpression...So.look.ahead.f | 
| 4d620 |  6f 72 20 6f 6e 65 2e 0a 20 20 20 20 20 20 20 28    6c 65 74 20 28 28 74 73 2d 73 74 61 74 65 20 28  | or.one.........(let.((ts-state.( | 
| 4d640 |  6d 61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74    65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | make-js2-ts-state))............. | 
| 4d660 |  20 28 72 65 63 6f 72 64 65 64 2d 69 64 65 6e 74    69 66 69 65 72 73 20 6a 73 32 2d 72 65 63 6f 72  | .(recorded-identifiers.js2-recor | 
| 4d680 |  64 65 64 2d 69 64 65 6e 74 69 66 69 65 72 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70  | ded-identifiers)..............(p | 
| 4d6a0 |  61 72 73 65 64 2d 65 72 72 6f 72 73 20 6a 73 32    2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 29 0a  | arsed-errors.js2-parsed-errors). | 
| 4d6c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 20 28 6a 73 32  | .............(current-token.(js2 | 
| 4d6e0 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62  | -current-token))..............(b | 
| 4d700 |  65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20  | eg.(js2-current-token-beg))..... | 
| 4d720 |  20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | .........(end.(js2-current-token | 
| 4d740 |  2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 70 6e 29 0a 20 20 20 20 20 20 20 20  | -end))..............pn)......... | 
| 4d760 |  20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29    0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | .(js2-get-token)..........(setq. | 
| 4d780 |  70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61    72 79 20 62 65 67 20 6a 73 32 2d 41 57 41 49 54  | pn.(js2-make-unary.beg.js2-AWAIT | 
| 4d7a0 |  20 27 6a 73 32 2d 70 61 72 73 65 2d 75 6e 61 72    79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20  | .'js2-parse-unary-expr))........ | 
| 4d7c0 |  20 20 28 69 66 20 28 3d 20 28 6a 73 32 2d 6e 6f    64 65 2d 74 79 70 65 20 28 6a 73 32 2d 75 6e 61  | ..(if.(=.(js2-node-type.(js2-una | 
| 4d7e0 |  72 79 2d 6e 6f 64 65 2d 6f 70 65 72 61 6e 64 20    70 6e 29 29 20 6a 73 32 2d 45 52 52 4f 52 29 0a  | ry-node-operand.pn)).js2-ERROR). | 
| 4d800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    54 68 65 20 70 61 72 73 65 20 66 61 69 6c 65 64  | .............;;.The.parse.failed | 
| 4d820 |  2c 20 73 6f 20 70 72 65 74 65 6e 64 20 6c 69 6b    65 20 6e 6f 74 68 69 6e 67 20 68 61 70 70 65 6e  | ,.so.pretend.like.nothing.happen | 
| 4d840 |  65 64 20 61 6e 64 20 72 65 73 74 6f 72 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74  | ed.and.restore..............;;.t | 
| 4d860 |  68 65 20 70 72 65 76 69 6f 75 73 20 70 61 72 73    69 6e 67 20 73 74 61 74 65 2e 0a 20 20 20 20 20  | he.previous.parsing.state....... | 
| 4d880 |  20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ........(progn................(j | 
| 4d8a0 |  73 32 2d 74 73 2d 73 65 65 6b 20 74 73 2d 73 74    61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | s2-ts-seek.ts-state)............ | 
| 4d8c0 |  20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 72 65    63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65  | ....(setq.js2-recorded-identifie | 
| 4d8e0 |  72 73 20 72 65 63 6f 72 64 65 64 2d 69 64 65 6e    74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20  | rs.recorded-identifiers......... | 
| 4d900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73 20 70  | .............js2-parsed-errors.p | 
| 4d920 |  61 72 73 65 64 2d 65 72 72 6f 72 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | arsed-errors)................;;. | 
| 4d940 |  41 6e 64 20 65 6e 73 75 72 65 20 74 68 65 20 63    61 6c 6c 65 72 20 6b 6e 6f 77 73 20 61 62 6f 75  | And.ensure.the.caller.knows.abou | 
| 4d960 |  74 20 74 68 65 20 66 61 69 6c 75 72 65 2e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69  | t.the.failure.................ni | 
| 4d980 |  6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b    20 54 68 65 20 70 61 72 73 65 20 77 61 73 20 73  | l)............;;.The.parse.was.s | 
| 4d9a0 |  75 63 63 65 73 73 66 75 6c 2c 20 73 6f 20 70 72    6f 63 65 73 73 20 61 6e 64 20 72 65 74 75 72 6e  | uccessful,.so.process.and.return | 
| 4d9c0 |  20 74 68 65 20 22 61 77 61 69 74 22 2e 0a 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65  | .the."await".............(js2-re | 
| 4d9e0 |  63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e 74 2d    6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63  | cord-face.'font-lock-keyword-fac | 
| 4da00 |  65 20 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c  | e.current-token)............(unl | 
| 4da20 |  65 73 73 20 28 6f 72 20 28 6a 73 32 2d 69 6e 73    69 64 65 2d 61 73 79 6e 63 2d 66 75 6e 63 74 69  | ess.(or.(js2-inside-async-functi | 
| 4da40 |  6f 6e 29 20 28 65 71 75 61 6c 20 6a 73 32 2d 6e    65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69  | on).(equal.js2-nesting-of-functi | 
| 4da60 |  6f 6e 20 30 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | on.0))..............(js2-report- | 
| 4da80 |  65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 61    77 61 69 74 22 20 6e 69 6c 0a 20 20 20 20 20 20  | error."msg.bad.await".nil....... | 
| 4daa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 62 65 67 20 28 2d 20  | .........................beg.(-. | 
| 4dac0 |  65 6e 64 20 62 65 67 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 70 6e 29 29 29 29 0a 0a 28 64  | end.beg)))............pn))))..(d | 
| 4dae0 |  65 66 75 6e 20 6a 73 32 2d 67 65 74 2d 70 72 6f    70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 20 28 29 0a  | efun.js2-get-prop-name-token.(). | 
| 4db00 |  20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e    20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61  | ..(js2-get-token.(and.(>=.js2-la | 
| 4db20 |  6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31    37 30 29 20 27 4b 45 59 57 4f 52 44 5f 49 53 5f  | nguage-version.170).'KEYWORD_IS_ | 
| 4db40 |  4e 41 4d 45 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 6d 61 74 63 68 2d 70 72 6f 70 2d 6e  | NAME)))..(defun.js2-match-prop-n | 
| 4db60 |  61 6d 65 20 28 29 0a 20 20 22 43 6f 6e 73 75 6d    65 20 74 6f 6b 65 6e 20 61 6e 64 20 72 65 74 75  | ame.()..."Consume.token.and.retu | 
| 4db80 |  72 6e 20 74 20 69 66 20 6e 65 78 74 20 74 6f 6b    65 6e 20 69 73 20 61 20 76 61 6c 69 64 20 70 72  | rn.t.if.next.token.is.a.valid.pr | 
| 4dba0 |  6f 70 65 72 74 79 20 6e 61 6d 65 2e 0a 49 66 20    60 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65  | operty.name..If.`js2-language-ve | 
| 4dbc0 |  72 73 69 6f 6e 27 20 69 73 20 3e 3d 20 31 38 30    2c 20 61 20 6b 65 79 77 6f 72 64 20 6f 72 20 72  | rsion'.is.>=.180,.a.keyword.or.r | 
| 4dbe0 |  65 73 65 72 76 65 64 20 77 6f 72 64 0a 69 73 20    63 6f 6e 73 69 64 65 72 65 64 20 76 61 6c 69 64  | eserved.word.is.considered.valid | 
| 4dc00 |  20 6e 61 6d 65 20 61 73 20 77 65 6c 6c 2e 22 0a    20 20 28 69 66 20 28 6d 65 6d 71 20 28 6a 73 32  | .name.as.well."...(if.(memq.(js2 | 
| 4dc20 |  2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74    6f 6b 65 6e 29 20 60 28 2c 6a 73 32 2d 4e 41 4d  | -get-prop-name-token).`(,js2-NAM | 
| 4dc40 |  45 20 2c 6a 73 32 2d 50 52 49 56 41 54 45 5f 4e    41 4d 45 29 29 0a 20 20 20 20 20 20 74 0a 20 20  | E.,js2-PRIVATE_NAME)).......t... | 
| 4dc60 |  20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b    65 6e 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28  | ..(js2-unget-token).....nil))..( | 
| 4dc80 |  64 65 66 75 6e 20 6a 73 32 2d 6d 75 73 74 2d 6d    61 74 63 68 2d 70 72 6f 70 2d 6e 61 6d 65 20 28  | defun.js2-must-match-prop-name.( | 
| 4dca0 |  6d 73 67 2d 69 64 20 26 6f 70 74 69 6f 6e 61 6c    20 70 6f 73 20 6c 65 6e 29 0a 20 20 28 69 66 20  | msg-id.&optional.pos.len)...(if. | 
| 4dcc0 |  28 6a 73 32 2d 6d 61 74 63 68 2d 70 72 6f 70 2d    6e 61 6d 65 29 0a 20 20 20 20 20 20 74 0a 20 20  | (js2-match-prop-name).......t... | 
| 4dce0 |  20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72    72 6f 72 20 6d 73 67 2d 69 64 20 6e 69 6c 20 70  | ..(js2-report-error.msg-id.nil.p | 
| 4dd00 |  6f 73 20 6c 65 6e 29 0a 20 20 20 20 6e 69 6c 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 65  | os.len).....nil))..(defun.js2-pe | 
| 4dd20 |  65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 20    28 29 0a 20 20 22 52 65 74 75 72 6e 20 6a 73 32  | ek-token-or-eol.()..."Return.js2 | 
| 4dd40 |  2d 45 4f 4c 20 69 66 20 74 68 65 20 6e 65 78 74    20 74 6f 6b 65 6e 20 69 6d 6d 65 64 69 61 74 65  | -EOL.if.the.next.token.immediate | 
| 4dd60 |  6c 79 20 66 6f 6c 6c 6f 77 73 20 61 20 6e 65 77    6c 69 6e 65 2e 0a 45 6c 73 65 20 72 65 74 75 72  | ly.follows.a.newline..Else.retur | 
| 4dd80 |  6e 73 20 74 68 65 20 6e 65 78 74 20 74 6f 6b 65    6e 2e 20 20 55 73 65 64 20 69 6e 20 73 69 74 75  | ns.the.next.token...Used.in.situ | 
| 4dda0 |  61 74 69 6f 6e 73 20 77 68 65 72 65 20 77 65 20    64 6f 6e 27 74 0a 63 6f 6e 73 69 64 65 72 20 63  | ations.where.we.don't.consider.c | 
| 4ddc0 |  65 72 74 61 69 6e 20 74 6f 6b 65 6e 20 74 79 70    65 73 20 76 61 6c 69 64 20 69 66 20 74 68 65 79  | ertain.token.types.valid.if.they | 
| 4dde0 |  20 61 72 65 20 70 72 65 63 65 64 65 64 20 62 79    20 61 20 6e 65 77 6c 69 6e 65 2e 0a 4f 6e 65 20  | .are.preceded.by.a.newline..One. | 
| 4de00 |  65 78 61 6d 70 6c 65 20 69 73 20 74 68 65 20 70    6f 73 74 66 69 78 20 2b 2b 20 6f 72 20 2d 2d 20  | example.is.the.postfix.++.or.--. | 
| 4de20 |  6f 70 65 72 61 74 6f 72 2c 20 77 68 69 63 68 20    68 61 73 20 74 6f 20 62 65 20 6f 6e 20 74 68 65  | operator,.which.has.to.be.on.the | 
| 4de40 |  0a 73 61 6d 65 20 6c 69 6e 65 20 61 73 20 69 74    73 20 6f 70 65 72 61 6e 64 2e 22 0a 20 20 28 6c  | .same.line.as.its.operand."...(l | 
| 4de60 |  65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74    2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20  | et.((tt.(js2-get-token))........ | 
| 4de80 |  20 28 66 6f 6c 6c 6f 77 73 2d 65 6f 6c 20 28 6a    73 32 2d 74 6f 6b 65 6e 2d 66 6f 6c 6c 6f 77 73  | .(follows-eol.(js2-token-follows | 
| 4dea0 |  2d 65 6f 6c 2d 70 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 29 29 29 29 0a 20 20  | -eol-p.(js2-current-token))))... | 
| 4dec0 |  20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b    65 6e 29 0a 20 20 20 20 28 69 66 20 66 6f 6c 6c  | ..(js2-unget-token).....(if.foll | 
| 4dee0 |  6f 77 73 2d 65 6f 6c 0a 20 20 20 20 20 20 20 20    6a 73 32 2d 45 4f 4c 0a 20 20 20 20 20 20 74 74  | ows-eol.........js2-EOL.......tt | 
| 4df00 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    6d 75 73 74 2d 6d 61 74 63 68 20 28 74 6f 6b 65  | )))..(defun.js2-must-match.(toke | 
| 4df20 |  6e 20 6d 73 67 2d 69 64 20 26 6f 70 74 69 6f 6e    61 6c 20 70 6f 73 20 6c 65 6e 29 0a 20 20 22 4d  | n.msg-id.&optional.pos.len)..."M | 
| 4df40 |  61 74 63 68 20 6e 65 78 74 20 74 6f 6b 65 6e 20    74 6f 20 74 6f 6b 65 6e 20 63 6f 64 65 20 54 4f  | atch.next.token.to.token.code.TO | 
| 4df60 |  4b 45 4e 2c 20 6f 72 20 72 65 63 6f 72 64 20 61    20 73 79 6e 74 61 78 20 65 72 72 6f 72 2e 0a 4d  | KEN,.or.record.a.syntax.error..M | 
| 4df80 |  53 47 2d 49 44 20 69 73 20 74 68 65 20 65 72 72    6f 72 20 6d 65 73 73 61 67 65 20 74 6f 20 72 65  | SG-ID.is.the.error.message.to.re | 
| 4dfa0 |  70 6f 72 74 20 69 66 20 74 68 65 20 6d 61 74 63    68 20 66 61 69 6c 73 2e 0a 52 65 74 75 72 6e 73  | port.if.the.match.fails..Returns | 
| 4dfc0 |  20 74 20 6f 6e 20 6d 61 74 63 68 2c 20 6e 69 6c    20 69 66 20 6e 6f 20 6d 61 74 63 68 2e 22 0a 20  | .t.on.match,.nil.if.no.match.".. | 
| 4dfe0 |  20 28 69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d    74 6f 6b 65 6e 20 74 6f 6b 65 6e 20 74 29 0a 20  | .(if.(js2-match-token.token.t).. | 
| 4e000 |  20 20 20 20 20 74 0a 20 20 20 20 28 6a 73 32 2d    72 65 70 6f 72 74 2d 65 72 72 6f 72 20 6d 73 67  | .....t.....(js2-report-error.msg | 
| 4e020 |  2d 69 64 20 6e 69 6c 20 70 6f 73 20 6c 65 6e 29    0a 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d  | -id.nil.pos.len).....(js2-unget- | 
| 4e040 |  74 6f 6b 65 6e 29 0a 20 20 20 20 6e 69 6c 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 73  | token).....nil))..(defun.js2-mus | 
| 4e060 |  74 2d 6d 61 74 63 68 2d 6e 61 6d 65 20 28 6d 73    67 2d 69 64 29 0a 20 20 28 69 66 20 28 6a 73 32  | t-match-name.(msg-id)...(if.(js2 | 
| 4e080 |  2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32    2d 4e 41 4d 45 20 74 29 0a 20 20 20 20 20 20 74  | -match-token.js2-NAME.t).......t | 
| 4e0a0 |  0a 20 20 20 20 28 69 66 20 28 65 71 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | .....(if.(eq.(js2-current-token- | 
| 4e0c0 |  74 79 70 65 29 20 6a 73 32 2d 52 45 53 45 52 56    45 44 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | type).js2-RESERVED).........(js2 | 
| 4e0e0 |  2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d    73 67 2e 72 65 73 65 72 76 65 64 2e 69 64 22 20  | -report-error."msg.reserved.id". | 
| 4e100 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20  | (js2-current-token-string))..... | 
| 4e120 |  20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72    72 6f 72 20 6d 73 67 2d 69 64 29 0a 20 20 20 20  | ..(js2-report-error.msg-id)..... | 
| 4e140 |  20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b    65 6e 29 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a  | ..(js2-unget-token)).....nil)).. | 
| 4e160 |  28 64 65 66 75 6e 20 6a 73 32 2d 73 65 74 2d 72    65 71 75 69 72 65 73 2d 61 63 74 69 76 61 74 69  | (defun.js2-set-requires-activati | 
| 4e180 |  6f 6e 20 28 29 0a 20 20 28 69 66 20 28 6a 73 32    2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70  | on.()...(if.(js2-function-node-p | 
| 4e1a0 |  20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72    69 70 74 2d 6f 72 2d 66 6e 29 0a 20 20 20 20 20  | .js2-current-script-or-fn)...... | 
| 4e1c0 |  20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63    74 69 6f 6e 2d 6e 6f 64 65 2d 6e 65 65 64 73 2d  | .(setf.(js2-function-node-needs- | 
| 4e1e0 |  61 63 74 69 76 61 74 69 6f 6e 20 6a 73 32 2d 63    75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72  | activation.js2-current-script-or | 
| 4e200 |  2d 66 6e 29 20 74 29 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 63 68 65 63 6b 2d 61 63 74 69  | -fn).t)))..(defun.js2-check-acti | 
| 4e220 |  76 61 74 69 6f 6e 2d 6e 61 6d 65 20 28 6e 61 6d    65 20 5f 74 6f 6b 65 6e 29 0a 20 20 28 77 68 65  | vation-name.(name._token)...(whe | 
| 4e240 |  6e 20 28 6a 73 32 2d 69 6e 73 69 64 65 2d 66 75    6e 63 74 69 6f 6e 29 0a 20 20 20 20 3b 3b 20 73  | n.(js2-inside-function).....;;.s | 
| 4e260 |  6b 69 70 20 6c 61 6e 67 75 61 67 65 2d 76 65 72    73 69 6f 6e 20 31 2e 32 20 63 68 65 63 6b 20 66  | kip.language-version.1.2.check.f | 
| 4e280 |  72 6f 6d 20 52 68 69 6e 6f 0a 20 20 20 20 28 69    66 20 28 6f 72 20 28 73 74 72 69 6e 67 3d 20 22  | rom.Rhino.....(if.(or.(string=." | 
| 4e2a0 |  61 72 67 75 6d 65 6e 74 73 22 20 6e 61 6d 65 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e  | arguments".name).............(an | 
| 4e2c0 |  64 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72 2d 61    63 74 69 76 61 74 69 6f 6e 2d 6e 61 6d 65 73 20  | d.js2-compiler-activation-names. | 
| 4e2e0 |  20 3b 20 6f 6e 6c 79 20 75 73 65 64 20 69 6e 20    63 6f 64 65 67 65 6e 0a 20 20 20 20 20 20 20 20  | .;.only.used.in.codegen......... | 
| 4e300 |  20 20 20 20 20 20 20 20 20 28 67 65 74 68 61 73    68 20 6e 61 6d 65 20 6a 73 32 2d 63 6f 6d 70 69  | .........(gethash.name.js2-compi | 
| 4e320 |  6c 65 72 2d 61 63 74 69 76 61 74 69 6f 6e 2d 6e    61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20  | ler-activation-names)))......... | 
| 4e340 |  28 6a 73 32 2d 73 65 74 2d 72 65 71 75 69 72 65    73 2d 61 63 74 69 76 61 74 69 6f 6e 29 29 29 29  | (js2-set-requires-activation)))) | 
| 4e360 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 65 74    2d 69 73 2d 67 65 6e 65 72 61 74 6f 72 20 28 29  | ..(defun.js2-set-is-generator.() | 
| 4e380 |  0a 20 20 28 6c 65 74 20 28 28 66 6e 2d 6e 6f 64    65 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63  | ...(let.((fn-node.js2-current-sc | 
| 4e3a0 |  72 69 70 74 2d 6f 72 2d 66 6e 29 29 0a 20 20 20    20 28 77 68 65 6e 20 28 61 6e 64 20 28 6a 73 32  | ript-or-fn)).....(when.(and.(js2 | 
| 4e3c0 |  2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70    20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20  | -function-node-p.fn-node)....... | 
| 4e3e0 |  20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a    73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65  | .........(not.(js2-function-node | 
| 4e400 |  2d 67 65 6e 65 72 61 74 6f 72 2d 74 79 70 65 20    66 6e 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20  | -generator-type.fn-node)))...... | 
| 4e420 |  20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e 63    74 69 6f 6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61  | .(setf.(js2-function-node-genera | 
| 4e440 |  74 6f 72 2d 74 79 70 65 20 6a 73 32 2d 63 75 72    72 65 6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66  | tor-type.js2-current-script-or-f | 
| 4e460 |  6e 29 20 27 4c 45 47 41 43 59 29 29 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 73 74 2d  | n).'LEGACY))))..(defun.js2-must- | 
| 4e480 |  68 61 76 65 2d 78 6d 6c 20 28 29 0a 20 20 28 75    6e 6c 65 73 73 20 6a 73 32 2d 63 6f 6d 70 69 6c  | have-xml.()...(unless.js2-compil | 
| 4e4a0 |  65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65    0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74  | er-xml-available.....(js2-report | 
| 4e4c0 |  2d 65 72 72 6f 72 20 22 6d 73 67 2e 58 4d 4c 2e    6e 6f 74 2e 61 76 61 69 6c 61 62 6c 65 22 29 29  | -error."msg.XML.not.available")) | 
| 4e4e0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 75    73 68 2d 73 63 6f 70 65 20 28 73 63 6f 70 65 29  | )..(defun.js2-push-scope.(scope) | 
| 4e500 |  0a 20 20 22 50 75 73 68 20 53 43 4f 50 45 2c 20    61 20 60 6a 73 32 2d 73 63 6f 70 65 27 2c 20 6f  | ..."Push.SCOPE,.a.`js2-scope',.o | 
| 4e520 |  6e 74 6f 20 74 68 65 20 6c 65 78 69 63 61 6c 20    73 63 6f 70 65 20 63 68 61 69 6e 2e 22 0a 20 20  | nto.the.lexical.scope.chain."... | 
| 4e540 |  28 63 6c 2d 61 73 73 65 72 74 20 28 6a 73 32 2d    73 63 6f 70 65 2d 70 20 73 63 6f 70 65 29 29 0a  | (cl-assert.(js2-scope-p.scope)). | 
| 4e560 |  20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 6e 75    6c 6c 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61  | ..(cl-assert.(null.(js2-scope-pa | 
| 4e580 |  72 65 6e 74 2d 73 63 6f 70 65 20 73 63 6f 70 65    29 29 29 0a 20 20 28 63 6c 2d 61 73 73 65 72 74  | rent-scope.scope)))...(cl-assert | 
| 4e5a0 |  20 28 6e 6f 74 20 28 65 71 20 6a 73 32 2d 63 75    72 72 65 6e 74 2d 73 63 6f 70 65 20 73 63 6f 70  | .(not.(eq.js2-current-scope.scop | 
| 4e5c0 |  65 29 29 29 0a 20 20 28 73 65 74 66 20 28 6a 73    32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73  | e)))...(setf.(js2-scope-parent-s | 
| 4e5e0 |  63 6f 70 65 20 73 63 6f 70 65 29 20 6a 73 32 2d    63 75 72 72 65 6e 74 2d 73 63 6f 70 65 0a 20 20  | cope.scope).js2-current-scope... | 
| 4e600 |  20 20 20 20 20 20 6a 73 32 2d 63 75 72 72 65 6e    74 2d 73 63 6f 70 65 20 73 63 6f 70 65 29 29 0a  | ......js2-current-scope.scope)). | 
| 4e620 |  0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d 70    6f 70 2d 73 63 6f 70 65 20 28 29 0a 20 20 28 73  | .(defsubst.js2-pop-scope.()...(s | 
| 4e640 |  65 74 71 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d    73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 28 6a  | etq.js2-current-scope.........(j | 
| 4e660 |  73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d    73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e  | s2-scope-parent-scope.js2-curren | 
| 4e680 |  74 2d 73 63 6f 70 65 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 65 6e 74 65 72 2d 6c 6f 6f  | t-scope)))..(defun.js2-enter-loo | 
| 4e6a0 |  70 20 28 6c 6f 6f 70 2d 6e 6f 64 65 29 0a 20 20    28 70 75 73 68 20 6c 6f 6f 70 2d 6e 6f 64 65 20  | p.(loop-node)...(push.loop-node. | 
| 4e6c0 |  6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 29 0a 20 20    28 70 75 73 68 20 6c 6f 6f 70 2d 6e 6f 64 65 20  | js2-loop-set)...(push.loop-node. | 
| 4e6e0 |  6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69    74 63 68 2d 73 65 74 29 0a 20 20 28 6a 73 32 2d  | js2-loop-and-switch-set)...(js2- | 
| 4e700 |  70 75 73 68 2d 73 63 6f 70 65 20 6c 6f 6f 70 2d    6e 6f 64 65 29 0a 20 20 3b 3b 20 54 65 6c 6c 20  | push-scope.loop-node)...;;.Tell. | 
| 4e720 |  74 68 65 20 63 75 72 72 65 6e 74 20 6c 61 62 65    6c 65 64 20 73 74 61 74 65 6d 65 6e 74 20 28 69  | the.current.labeled.statement.(i | 
| 4e740 |  66 20 61 6e 79 29 20 69 74 73 20 73 74 61 74 65    6d 65 6e 74 2c 0a 20 20 3b 3b 20 61 6e 64 20 73  | f.any).its.statement,...;;.and.s | 
| 4e760 |  65 74 20 74 68 65 20 6a 75 6d 70 20 74 61 72 67    65 74 20 6f 66 20 74 68 65 20 66 69 72 73 74 20  | et.the.jump.target.of.the.first. | 
| 4e780 |  6c 61 62 65 6c 20 74 6f 20 74 68 65 20 6c 6f 6f    70 2e 0a 20 20 3b 3b 20 54 68 65 73 65 20 61 72  | label.to.the.loop....;;.These.ar | 
| 4e7a0 |  65 20 75 73 65 64 20 69 6e 20 60 6a 73 32 2d 70    61 72 73 65 2d 63 6f 6e 74 69 6e 75 65 27 20 74  | e.used.in.`js2-parse-continue'.t | 
| 4e7c0 |  6f 20 76 65 72 69 66 79 20 74 68 61 74 20 74 68    65 0a 20 20 3b 3b 20 63 6f 6e 74 69 6e 75 65 20  | o.verify.that.the...;;.continue. | 
| 4e7e0 |  74 61 72 67 65 74 20 69 73 20 61 6e 20 61 63 74    75 61 6c 20 6c 61 62 65 6c 65 64 20 6c 6f 6f 70  | target.is.an.actual.labeled.loop | 
| 4e800 |  2e 20 20 28 41 6e 64 20 66 6f 72 20 63 6f 64 65    67 65 6e 2e 29 0a 20 20 28 77 68 65 6e 20 6a 73  | ...(And.for.codegen.)...(when.js | 
| 4e820 |  32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 0a 20    20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6c 61  | 2-labeled-stmt.....(setf.(js2-la | 
| 4e840 |  62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d    73 74 6d 74 20 6a 73 32 2d 6c 61 62 65 6c 65 64  | beled-stmt-node-stmt.js2-labeled | 
| 4e860 |  2d 73 74 6d 74 29 20 6c 6f 6f 70 2d 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | -stmt).loop-node...........(js2- | 
| 4e880 |  6c 61 62 65 6c 2d 6e 6f 64 65 2d 6c 6f 6f 70 20    28 63 61 72 20 28 6a 73 32 2d 6c 61 62 65 6c 65  | label-node-loop.(car.(js2-labele | 
| 4e8a0 |  64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65    6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | d-stmt-node-labels.............. | 
| 4e8c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6a 73 32 2d 6c 61 62 65  | ........................js2-labe | 
| 4e8e0 |  6c 65 64 2d 73 74 6d 74 29 29 29 20 6c 6f 6f 70    2d 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e  | led-stmt))).loop-node)))..(defun | 
| 4e900 |  20 6a 73 32 2d 65 78 69 74 2d 6c 6f 6f 70 20 28    29 0a 20 20 28 70 6f 70 20 6a 73 32 2d 6c 6f 6f  | .js2-exit-loop.()...(pop.js2-loo | 
| 4e920 |  70 2d 73 65 74 29 0a 20 20 28 70 6f 70 20 6a 73    32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77 69 74 63  | p-set)...(pop.js2-loop-and-switc | 
| 4e940 |  68 2d 73 65 74 29 0a 20 20 28 6a 73 32 2d 70 6f    70 2d 73 63 6f 70 65 29 29 0a 0a 28 64 65 66 73  | h-set)...(js2-pop-scope))..(defs | 
| 4e960 |  75 62 73 74 20 6a 73 32 2d 65 6e 74 65 72 2d 73    77 69 74 63 68 20 28 73 77 69 74 63 68 2d 6e 6f  | ubst.js2-enter-switch.(switch-no | 
| 4e980 |  64 65 29 0a 20 20 28 6a 73 32 2d 70 75 73 68 2d    73 63 6f 70 65 20 73 77 69 74 63 68 2d 6e 6f 64  | de)...(js2-push-scope.switch-nod | 
| 4e9a0 |  65 29 0a 20 20 28 70 75 73 68 20 73 77 69 74 63    68 2d 6e 6f 64 65 20 6a 73 32 2d 6c 6f 6f 70 2d  | e)...(push.switch-node.js2-loop- | 
| 4e9c0 |  61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 29 29    0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32 2d  | and-switch-set))..(defsubst.js2- | 
| 4e9e0 |  65 78 69 74 2d 73 77 69 74 63 68 20 28 29 0a 20    20 28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29  | exit-switch.()...(js2-pop-scope) | 
| 4ea00 |  0a 20 20 28 70 6f 70 20 6a 73 32 2d 6c 6f 6f 70    2d 61 6e 64 2d 73 77 69 74 63 68 2d 73 65 74 29  | ...(pop.js2-loop-and-switch-set) | 
| 4ea20 |  29 0a 0a 28 64 65 66 73 75 62 73 74 20 6a 73 32    2d 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 28  | )..(defsubst.js2-get-directive.( | 
| 4ea40 |  6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20    4e 4f 44 45 27 73 20 76 61 6c 75 65 20 69 66 20  | node)..."Return.NODE's.value.if. | 
| 4ea60 |  69 74 20 69 73 20 61 20 64 69 72 65 63 74 69 76    65 2c 20 6e 69 6c 20 6f 74 68 65 72 77 69 73 65  | it.is.a.directive,.nil.otherwise | 
| 4ea80 |  2e 0a 0a 41 20 64 69 72 65 63 74 69 76 65 20 69    73 20 61 6e 20 6f 74 68 65 72 77 69 73 65 2d 6d  | ...A.directive.is.an.otherwise-m | 
| 4eaa0 |  65 61 6e 69 6e 67 6c 65 73 73 20 65 78 70 72 65    73 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 0a  | eaningless.expression.statement. | 
| 4eac0 |  63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 61 20    73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 2c 20  | consisting.of.a.string.literal,. | 
| 4eae0 |  73 75 63 68 20 61 73 20 5c 22 75 73 65 20 73 74    72 69 63 74 5c 22 2e 22 0a 20 20 28 61 6e 64 20  | such.as.\"use.strict\"."...(and. | 
| 4eb00 |  28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20  | (js2-expr-stmt-node-p.node)..... | 
| 4eb20 |  20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e    6f 64 65 2d 70 20 28 73 65 74 71 20 6e 6f 64 65  | ...(js2-string-node-p.(setq.node | 
| 4eb40 |  20 28 6a 73 32 2d 65 78 70 72 2d 73 74 6d 74 2d    6e 6f 64 65 2d 65 78 70 72 20 6e 6f 64 65 29 29  | .(js2-expr-stmt-node-expr.node)) | 
| 4eb60 |  29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 73 74    72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65 20  | )........(js2-string-node-value. | 
| 4eb80 |  6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 70 61 72 73 65 20 28 26 6f 70 74 69  | node)))..(defun.js2-parse.(&opti | 
| 4eba0 |  6f 6e 61 6c 20 62 75 66 20 63 62 29 0a 20 20 22    54 65 6c 6c 20 74 68 65 20 6a 73 32 20 70 61 72  | onal.buf.cb)..."Tell.the.js2.par | 
| 4ebc0 |  73 65 72 20 74 6f 20 70 61 72 73 65 20 61 20 72    65 67 69 6f 6e 20 6f 66 20 4a 61 76 61 53 63 72  | ser.to.parse.a.region.of.JavaScr | 
| 4ebe0 |  69 70 74 2e 0a 0a 42 55 46 20 69 73 20 61 20 62    75 66 66 65 72 20 6f 72 20 62 75 66 66 65 72 20  | ipt...BUF.is.a.buffer.or.buffer. | 
| 4ec00 |  6e 61 6d 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20    74 68 65 20 63 6f 64 65 20 74 6f 20 70 61 72 73  | name.containing.the.code.to.pars | 
| 4ec20 |  65 2e 0a 43 61 6c 6c 20 60 6e 61 72 72 6f 77 2d    74 6f 2d 72 65 67 69 6f 6e 27 20 66 69 72 73 74  | e..Call.`narrow-to-region'.first | 
| 4ec40 |  20 74 6f 20 70 61 72 73 65 20 6f 6e 6c 79 20 70    61 72 74 20 6f 66 20 74 68 65 20 62 75 66 66 65  | .to.parse.only.part.of.the.buffe | 
| 4ec60 |  72 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 65 64    20 41 53 54 20 72 6f 6f 74 20 6e 6f 64 65 20 69  | r...The.returned.AST.root.node.i | 
| 4ec80 |  73 20 67 69 76 65 6e 20 73 6f 6d 65 20 61 64 64    69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69  | s.given.some.additional.properti | 
| 4eca0 |  65 73 3a 0a 20 20 60 6e 6f 64 65 2d 63 6f 75 6e    74 27 20 2d 20 74 6f 74 61 6c 20 6e 75 6d 62 65  | es:...`node-count'.-.total.numbe | 
| 4ecc0 |  72 20 6f 66 20 6e 6f 64 65 73 20 69 6e 20 74 68    65 20 41 53 54 0a 20 20 60 62 75 66 66 65 72 27  | r.of.nodes.in.the.AST...`buffer' | 
| 4ece0 |  20 2d 20 42 55 46 2e 20 20 54 68 65 20 62 75 66    66 65 72 20 69 74 20 72 65 66 65 72 73 20 74 6f  | .-.BUF...The.buffer.it.refers.to | 
| 4ed00 |  20 6d 61 79 20 63 68 61 6e 67 65 20 6f 72 20 62    65 20 6b 69 6c 6c 65 64 2c 0a 20 20 20 20 20 20  | .may.change.or.be.killed,....... | 
| 4ed20 |  20 20 20 20 20 20 20 73 6f 20 74 68 65 20 76 61    6c 75 65 20 69 73 20 6e 6f 74 20 6e 65 63 65 73  | .......so.the.value.is.not.neces | 
| 4ed40 |  73 61 72 69 6c 79 20 72 65 6c 69 61 62 6c 65 2e    0a 0a 41 6e 20 6f 70 74 69 6f 6e 61 6c 20 63 61  | sarily.reliable...An.optional.ca | 
| 4ed60 |  6c 6c 62 61 63 6b 20 43 42 20 63 61 6e 20 62 65    20 73 70 65 63 69 66 69 65 64 20 74 6f 20 72 65  | llback.CB.can.be.specified.to.re | 
| 4ed80 |  70 6f 72 74 20 70 61 72 73 69 6e 67 0a 70 72 6f    67 72 65 73 73 2e 20 20 49 66 20 28 66 75 6e 63  | port.parsing.progress...If.(func | 
| 4eda0 |  74 69 6f 6e 70 20 43 42 29 20 72 65 74 75 72 6e    73 20 74 2c 20 69 74 20 77 69 6c 6c 20 62 65 20  | tionp.CB).returns.t,.it.will.be. | 
| 4edc0 |  63 61 6c 6c 65 64 20 77 69 74 68 0a 74 68 65 20    63 75 72 72 65 6e 74 20 6c 69 6e 65 20 6e 75 6d  | called.with.the.current.line.num | 
| 4ede0 |  62 65 72 20 6f 6e 63 65 20 62 65 66 6f 72 65 20    70 61 72 73 69 6e 67 20 62 65 67 69 6e 73 2c 20  | ber.once.before.parsing.begins,. | 
| 4ee00 |  74 68 65 6e 20 61 67 61 69 6e 0a 65 61 63 68 20    74 69 6d 65 20 74 68 65 20 6c 65 78 65 72 20 72  | then.again.each.time.the.lexer.r | 
| 4ee20 |  65 61 63 68 65 73 20 61 20 6e 65 77 20 6c 69 6e    65 20 6e 75 6d 62 65 72 2e 0a 0a 43 42 20 63 61  | eaches.a.new.line.number...CB.ca | 
| 4ee40 |  6e 20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74    20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 73 79  | n.also.be.a.list.of.the.form.(sy | 
| 4ee60 |  6d 62 6f 6c 20 63 62 20 2e 2e 2e 29 20 74 6f 20    73 70 65 63 69 66 79 0a 6d 75 6c 74 69 70 6c 65  | mbol.cb....).to.specify.multiple | 
| 4ee80 |  20 63 61 6c 6c 62 61 63 6b 73 20 77 69 74 68 20    64 69 66 66 65 72 65 6e 74 20 63 72 69 74 65 72  | .callbacks.with.different.criter | 
| 4eea0 |  69 61 2e 20 20 45 61 63 68 20 73 79 6d 62 6f 6c    20 69 73 20 61 0a 63 72 69 74 65 72 69 6f 6e 20  | ia...Each.symbol.is.a.criterion. | 
| 4eec0 |  6b 65 79 77 6f 72 64 2c 20 61 6e 64 20 74 68 65    20 66 6f 6c 6c 6f 77 69 6e 67 20 65 6c 65 6d 65  | keyword,.and.the.following.eleme | 
| 4eee0 |  6e 74 20 69 73 20 74 68 65 20 63 61 6c 6c 62 61    63 6b 20 74 6f 0a 63 61 6c 6c 0a 0a 20 20 3a 6c  | nt.is.the.callback.to.call....:l | 
| 4ef00 |  69 6e 65 20 20 2d 20 63 61 6c 6c 65 64 20 77 68    65 6e 65 76 65 72 20 74 68 65 20 6c 69 6e 65 20  | ine..-.called.whenever.the.line. | 
| 4ef20 |  6e 75 6d 62 65 72 20 63 68 61 6e 67 65 73 0a 20    20 3a 74 6f 6b 65 6e 20 2d 20 63 61 6c 6c 65 64  | number.changes...:token.-.called | 
| 4ef40 |  20 66 6f 72 20 65 61 63 68 20 6e 65 77 20 74 6f    6b 65 6e 20 63 6f 6e 73 75 6d 65 64 0a 0a 54 68  | .for.each.new.token.consumed..Th | 
| 4ef60 |  65 20 6c 69 73 74 20 6f 66 20 63 72 69 74 65 72    69 61 20 63 6f 75 6c 64 20 62 65 20 65 78 74 65  | e.list.of.criteria.could.be.exte | 
| 4ef80 |  6e 64 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20    65 6e 74 65 72 69 6e 67 20 6f 72 0a 6c 65 61 76  | nded.to.include.entering.or.leav | 
| 4efa0 |  69 6e 67 20 61 20 73 74 61 74 65 6d 65 6e 74 2c    20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c 20  | ing.a.statement,.an.expression,. | 
| 4efc0 |  6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 64 65    66 69 6e 69 74 69 6f 6e 2e 22 0a 20 20 28 69 66  | or.a.function.definition."...(if | 
| 4efe0 |  20 28 61 6e 64 20 63 62 20 28 6e 6f 74 20 28 66    75 6e 63 74 69 6f 6e 70 20 63 62 29 29 29 0a 20  | .(and.cb.(not.(functionp.cb))).. | 
| 4f000 |  20 20 20 20 20 28 65 72 72 6f 72 20 22 63 72 69    74 65 72 69 61 20 63 61 6c 6c 62 61 63 6b 73 20  | .....(error."criteria.callbacks. | 
| 4f020 |  6e 6f 74 20 79 65 74 20 69 6d 70 6c 65 6d 65 6e    74 65 64 22 29 29 0a 20 20 28 6c 65 74 20 28 28  | not.yet.implemented"))...(let.(( | 
| 4f040 |  69 6e 68 69 62 69 74 2d 70 6f 69 6e 74 2d 6d 6f    74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 0a 20 20  | inhibit-point-motion-hooks.t)... | 
| 4f060 |  20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 69    6c 65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c  | ......(js2-compiler-xml-availabl | 
| 4f080 |  65 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61    67 65 2d 76 65 72 73 69 6f 6e 20 31 36 30 29 29  | e.(>=.js2-language-version.160)) | 
| 4f0a0 |  0a 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73    20 69 73 20 61 20 72 65 63 75 72 73 69 76 65 2d  | .........;;.This.is.a.recursive- | 
| 4f0c0 |  64 65 73 63 65 6e 74 20 70 61 72 73 65 72 2c 20    73 6f 20 67 69 76 65 20 69 74 20 61 20 62 69 67  | descent.parser,.so.give.it.a.big | 
| 4f0e0 |  20 73 74 61 63 6b 2e 0a 20 20 20 20 20 20 20 20    28 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c 2d 64  | .stack..........(max-lisp-eval-d | 
| 4f100 |  65 70 74 68 20 28 6d 61 78 20 6d 61 78 2d 6c 69    73 70 2d 65 76 61 6c 2d 64 65 70 74 68 20 33 30  | epth.(max.max-lisp-eval-depth.30 | 
| 4f120 |  30 30 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61    78 2d 73 70 65 63 70 64 6c 2d 73 69 7a 65 20 28  | 00)).........(max-specpdl-size.( | 
| 4f140 |  6d 61 78 20 6d 61 78 2d 73 70 65 63 70 64 6c 2d    73 69 7a 65 20 33 30 30 30 29 29 0a 20 20 20 20  | max.max-specpdl-size.3000))..... | 
| 4f160 |  20 20 20 20 28 63 61 73 65 2d 66 6f 6c 64 2d 73    65 61 72 63 68 20 6e 69 6c 29 0a 20 20 20 20 20  | ....(case-fold-search.nil)...... | 
| 4f180 |  20 20 20 61 73 74 29 0a 20 20 20 20 28 77 69 74    68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72  | ...ast).....(with-current-buffer | 
| 4f1a0 |  20 28 6f 72 20 62 75 66 20 28 63 75 72 72 65 6e    74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20  | .(or.buf.(current-buffer))...... | 
| 4f1c0 |  20 28 73 65 74 71 20 6a 73 32 2d 73 63 61 6e 6e    65 64 2d 63 6f 6d 6d 65 6e 74 73 20 6e 69 6c 0a  | .(setq.js2-scanned-comments.nil. | 
| 4f1e0 |  20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d    70 61 72 73 65 64 2d 65 72 72 6f 72 73 20 6e 69  | ............js2-parsed-errors.ni | 
| 4f200 |  6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 6a 73    32 2d 70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67  | l.............js2-parsed-warning | 
| 4f220 |  73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20    20 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f  | s.nil.............js2-imenu-reco | 
| 4f240 |  72 64 65 72 20 6e 69 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 66  | rder.nil.............js2-imenu-f | 
| 4f260 |  75 6e 63 74 69 6f 6e 2d 6d 61 70 20 6e 69 6c 0a    20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d  | unction-map.nil.............js2- | 
| 4f280 |  6c 61 62 65 6c 2d 73 65 74 20 6e 69 6c 29 0a 20    20 20 20 20 20 28 6a 73 32 2d 69 6e 69 74 2d 73  | label-set.nil).......(js2-init-s | 
| 4f2a0 |  63 61 6e 6e 65 72 29 0a 20 20 20 20 20 20 28 73    65 74 71 20 61 73 74 20 28 6a 73 32 2d 64 6f 2d  | canner).......(setq.ast.(js2-do- | 
| 4f2c0 |  70 61 72 73 65 29 29 0a 20 20 20 20 20 20 28 75    6e 6c 65 73 73 20 6a 73 32 2d 74 73 2d 68 69 74  | parse)).......(unless.js2-ts-hit | 
| 4f2e0 |  2d 65 6f 66 0a 20 20 20 20 20 20 20 20 28 6a 73    32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22  | -eof.........(js2-report-error." | 
| 4f300 |  6d 73 67 2e 67 6f 74 2e 73 79 6e 74 61 78 2e 65    72 72 6f 72 73 22 20 28 6c 65 6e 67 74 68 20 6a  | msg.got.syntax.errors".(length.j | 
| 4f320 |  73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f 72 73    29 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20  | s2-parsed-errors))).......(setf. | 
| 4f340 |  28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 65 72    72 6f 72 73 20 61 73 74 29 20 6a 73 32 2d 70 61  | (js2-ast-root-errors.ast).js2-pa | 
| 4f360 |  72 73 65 64 2d 65 72 72 6f 72 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 74  | rsed-errors.............(js2-ast | 
| 4f380 |  2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 61    73 74 29 20 6a 73 32 2d 70 61 72 73 65 64 2d 77  | -root-warnings.ast).js2-parsed-w | 
| 4f3a0 |  61 72 6e 69 6e 67 73 29 0a 20 20 20 20 20 20 3b    3b 20 69 66 20 77 65 20 64 69 64 6e 27 74 20 66  | arnings).......;;.if.we.didn't.f | 
| 4f3c0 |  69 6e 64 20 61 6e 79 20 64 65 63 6c 61 72 61 74    69 6f 6e 73 2c 20 70 75 74 20 61 20 64 75 6d 6d  | ind.any.declarations,.put.a.dumm | 
| 4f3e0 |  79 20 69 6e 20 74 68 69 73 20 6c 69 73 74 20 73    6f 20 77 65 0a 20 20 20 20 20 20 3b 3b 20 64 6f  | y.in.this.list.so.we.......;;.do | 
| 4f400 |  6e 27 74 20 65 6e 64 20 75 70 20 72 65 2d 70 61    72 73 69 6e 67 20 74 68 65 20 62 75 66 66 65 72  | n't.end.up.re-parsing.the.buffer | 
| 4f420 |  20 69 6e 20 60 6a 73 32 2d 6d 6f 64 65 2d 63 72    65 61 74 65 2d 69 6d 65 6e 75 2d 69 6e 64 65 78  | .in.`js2-mode-create-imenu-index | 
| 4f440 |  27 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | '.......(unless.js2-imenu-record | 
| 4f460 |  65 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 71    20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72  | er.........(setq.js2-imenu-recor | 
| 4f480 |  64 65 72 20 27 65 6d 70 74 79 29 29 0a 20 20 20    20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a  | der.'empty)).......(run-hooks.'j | 
| 4f4a0 |  73 32 2d 70 61 72 73 65 2d 66 69 6e 69 73 68 65    64 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 61 73  | s2-parse-finished-hook).......as | 
| 4f4c0 |  74 29 29 29 0a 0a 3b 3b 20 43 6f 72 72 65 73 70    6f 6e 64 73 20 74 6f 20 52 68 69 6e 6f 27 73 20  | t)))..;;.Corresponds.to.Rhino's. | 
| 4f4e0 |  50 61 72 73 65 72 2e 70 61 72 73 65 28 29 20 6d    65 74 68 6f 64 2e 0a 28 64 65 66 75 6e 20 6a 73  | Parser.parse().method..(defun.js | 
| 4f500 |  32 2d 64 6f 2d 70 61 72 73 65 20 28 29 0a 20 20    22 50 61 72 73 65 20 63 75 72 72 65 6e 74 20 62  | 2-do-parse.()..."Parse.current.b | 
| 4f520 |  75 66 66 65 72 20 73 74 61 72 74 69 6e 67 20 66    72 6f 6d 20 63 75 72 72 65 6e 74 20 70 6f 69 6e  | uffer.starting.from.current.poin | 
| 4f540 |  74 2e 0a 53 63 61 6e 6e 65 72 20 73 68 6f 75 6c    64 20 62 65 20 69 6e 69 74 69 61 6c 69 7a 65 64  | t..Scanner.should.be.initialized | 
| 4f560 |  2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20    6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 29 0a 20  | ."...(let.((pos.js2-ts-cursor).. | 
| 4f580 |  20 20 20 20 20 20 20 28 65 6e 64 20 6a 73 32 2d    74 73 2d 63 75 72 73 6f 72 29 20 20 3b 20 69 6e  | .......(end.js2-ts-cursor)..;.in | 
| 4f5a0 |  20 63 61 73 65 20 66 69 6c 65 20 69 73 20 65 6d    70 74 79 0a 20 20 20 20 20 20 20 20 72 6f 6f 74  | .case.file.is.empty.........root | 
| 4f5c0 |  20 6e 20 74 74 0a 20 20 20 20 20 20 20 20 28 69    6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c  | .n.tt.........(in-directive-prol | 
| 4f5e0 |  6f 67 75 65 20 74 29 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69  | ogue.t).........(js2-in-use-stri | 
| 4f600 |  63 74 2d 64 69 72 65 63 74 69 76 65 20 6a 73 32    2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64  | ct-directive.js2-in-use-strict-d | 
| 4f620 |  69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20    20 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20  | irective).........directive).... | 
| 4f640 |  20 3b 3b 20 69 6e 69 74 69 61 6c 69 7a 65 20 62    75 66 66 65 72 2d 6c 6f 63 61 6c 20 70 61 72 73  | .;;.initialize.buffer-local.pars | 
| 4f660 |  69 6e 67 20 76 61 72 73 0a 20 20 20 20 28 73 65    74 66 20 72 6f 6f 74 20 28 6d 61 6b 65 2d 6a 73  | ing.vars.....(setf.root.(make-js | 
| 4f680 |  32 2d 61 73 74 2d 72 6f 6f 74 20 3a 62 75 66 66    65 72 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29  | 2-ast-root.:buffer.(buffer-name) | 
| 4f6a0 |  20 3a 70 6f 73 20 70 6f 73 29 0a 20 20 20 20 20    20 20 20 20 20 6a 73 32 2d 63 75 72 72 65 6e 74  | .:pos.pos)...........js2-current | 
| 4f6c0 |  2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 20 72 6f    6f 74 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32  | -script-or-fn.root...........js2 | 
| 4f6e0 |  2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 20 72    6f 6f 74 0a 20 20 20 20 20 20 20 20 20 20 6a 73  | -current-scope.root...........js | 
| 4f700 |  32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e    63 74 69 6f 6e 20 30 0a 20 20 20 20 20 20 20 20  | 2-nesting-of-function.0......... | 
| 4f720 |  20 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74    6d 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20  | ..js2-labeled-stmt.nil.......... | 
| 4f740 |  20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d 69 64    65 6e 74 69 66 69 65 72 73 20 6e 69 6c 20 20 3b  | .js2-recorded-identifiers.nil..; | 
| 4f760 |  20 66 6f 72 20 6a 73 32 2d 68 69 67 68 6c 69 67    68 74 0a 20 20 20 20 20 20 20 20 20 20 6a 73 32  | .for.js2-highlight...........js2 | 
| 4f780 |  2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64    69 72 65 63 74 69 76 65 20 6a 73 32 2d 6d 6f 64  | -in-use-strict-directive.js2-mod | 
| 4f7a0 |  65 2d 61 73 73 75 6d 65 2d 73 74 72 69 63 74 29    0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20  | e-assume-strict).....(while.(/=. | 
| 4f7c0 |  28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65    74 2d 74 6f 6b 65 6e 29 29 20 6a 73 32 2d 45 4f  | (setq.tt.(js2-get-token)).js2-EO | 
| 4f7e0 |  46 29 0a 20 20 20 20 20 20 28 69 66 20 28 3d 20    74 74 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29  | F).......(if.(=.tt.js2-FUNCTION) | 
| 4f800 |  0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | ...........(progn.............(s | 
| 4f820 |  65 74 71 20 6e 20 28 69 66 20 6a 73 32 2d 63 61    6c 6c 65 64 2d 62 79 2d 63 6f 6d 70 69 6c 65 2d  | etq.n.(if.js2-called-by-compile- | 
| 4f840 |  66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | function........................ | 
| 4f860 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63    74 69 6f 6e 2d 65 78 70 72 29 0a 20 20 20 20 20  | .(js2-parse-function-expr)...... | 
| 4f880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63  | .................(js2-parse-func | 
| 4f8a0 |  74 69 6f 6e 2d 73 74 6d 74 29 29 29 29 0a 20 20    20 20 20 20 20 20 3b 3b 20 6e 6f 74 20 61 20 66  | tion-stmt)))).........;;.not.a.f | 
| 4f8c0 |  75 6e 63 74 69 6f 6e 20 2d 20 70 61 72 73 65 20    61 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20 20  | unction.-.parse.a.statement..... | 
| 4f8e0 |  20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74    6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73  | ....(js2-unget-token).........(s | 
| 4f900 |  65 74 71 20 6e 20 28 6a 73 32 2d 70 61 72 73 65    2d 73 74 61 74 65 6d 65 6e 74 29 29 0a 20 20 20  | etq.n.(js2-parse-statement)).... | 
| 4f920 |  20 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 64 69    72 65 63 74 69 76 65 2d 70 72 6f 6c 6f 67 75 65  | .....(when.in-directive-prologue | 
| 4f940 |  0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 64 69 72 65 63 74 69 76 65 20 28 6a 73 32 2d  | ...........(setq.directive.(js2- | 
| 4f960 |  67 65 74 2d 64 69 72 65 63 74 69 76 65 20 6e 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e  | get-directive.n))...........(con | 
| 4f980 |  64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e    75 6c 6c 20 64 69 72 65 63 74 69 76 65 29 0a 20  | d............((null.directive).. | 
| 4f9a0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 69 6e 2d 64 69 72 65 63 74 69 76 65 2d 70 72  | ...........(setq.in-directive-pr | 
| 4f9c0 |  6f 6c 6f 67 75 65 20 6e 69 6c 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67  | ologue.nil))............((string | 
| 4f9e0 |  3d 20 64 69 72 65 63 74 69 76 65 20 22 75 73 65    20 73 74 72 69 63 74 22 29 0a 20 20 20 20 20 20  | =.directive."use.strict")....... | 
| 4fa00 |  20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d    69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69  | ......(setq.js2-in-use-strict-di | 
| 4fa20 |  72 65 63 74 69 76 65 20 74 29 29 29 29 29 0a 20    20 20 20 20 20 3b 3b 20 61 64 64 20 66 75 6e 63  | rective.t))))).......;;.add.func | 
| 4fa40 |  74 69 6f 6e 20 6f 72 20 73 74 61 74 65 6d 65 6e    74 20 74 6f 20 73 63 72 69 70 74 0a 20 20 20 20  | tion.or.statement.to.script..... | 
| 4fa60 |  20 20 28 73 65 74 71 20 65 6e 64 20 28 6a 73 32    2d 6e 6f 64 65 2d 65 6e 64 20 6e 29 29 0a 20 20  | ..(setq.end.(js2-node-end.n))... | 
| 4fa80 |  20 20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e    6f 64 65 2d 70 75 73 68 20 72 6f 6f 74 20 6e 29  | ....(js2-block-node-push.root.n) | 
| 4faa0 |  29 0a 20 20 20 20 3b 3b 20 61 64 64 20 63 6f 6d    6d 65 6e 74 73 20 74 6f 20 72 6f 6f 74 20 69 6e  | ).....;;.add.comments.to.root.in | 
| 4fac0 |  20 6c 65 78 69 63 61 6c 20 6f 72 64 65 72 0a 20    20 20 20 28 77 68 65 6e 20 6a 73 32 2d 73 63 61  | .lexical.order.....(when.js2-sca | 
| 4fae0 |  6e 6e 65 64 2d 63 6f 6d 6d 65 6e 74 73 0a 20 20    20 20 20 20 3b 3b 20 69 66 20 77 65 20 66 69 6e  | nned-comments.......;;.if.we.fin | 
| 4fb00 |  64 20 61 20 63 6f 6d 6d 65 6e 74 20 62 65 79 6f    6e 64 20 65 6e 64 20 6f 66 20 6e 6f 72 6d 61 6c  | d.a.comment.beyond.end.of.normal | 
| 4fb20 |  20 6b 69 64 73 2c 20 75 73 65 20 69 74 73 20 65    6e 64 0a 20 20 20 20 20 20 28 73 65 74 71 20 65  | .kids,.use.its.end.......(setq.e | 
| 4fb40 |  6e 64 20 28 6d 61 78 20 65 6e 64 20 28 6a 73 32    2d 6e 6f 64 65 2d 65 6e 64 20 28 63 6c 2d 66 69  | nd.(max.end.(js2-node-end.(cl-fi | 
| 4fb60 |  72 73 74 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d    63 6f 6d 6d 65 6e 74 73 29 29 29 29 0a 20 20 20  | rst.js2-scanned-comments)))).... | 
| 4fb80 |  20 20 20 28 64 6f 6c 69 73 74 20 28 63 6f 6d 6d    65 6e 74 20 6a 73 32 2d 73 63 61 6e 6e 65 64 2d  | ...(dolist.(comment.js2-scanned- | 
| 4fba0 |  63 6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 20 20    20 20 28 70 75 73 68 20 63 6f 6d 6d 65 6e 74 20  | comments).........(push.comment. | 
| 4fbc0 |  28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74 2d 63 6f    6d 6d 65 6e 74 73 20 72 6f 6f 74 29 29 0a 20 20  | (js2-ast-root-comments.root))... | 
| 4fbe0 |  20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d    61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 6f 6f  | ......(js2-node-add-children.roo | 
| 4fc00 |  74 20 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20 20    20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65  | t.comment))).....(setf.(js2-node | 
| 4fc20 |  2d 6c 65 6e 20 72 6f 6f 74 29 20 28 2d 20 65 6e    64 20 70 6f 73 29 29 0a 20 20 20 20 28 73 65 74  | -len.root).(-.end.pos)).....(set | 
| 4fc40 |  71 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 72    6f 6f 74 29 20 20 3b 20 4d 61 6b 65 20 73 75 72  | q.js2-mode-ast.root)..;.Make.sur | 
| 4fc60 |  65 20 74 68 69 73 20 69 73 20 61 76 61 69 6c 61    62 6c 65 20 66 6f 72 20 63 61 6c 6c 62 61 63 6b  | e.this.is.available.for.callback | 
| 4fc80 |  73 2e 0a 20 20 20 20 3b 3b 20 47 69 76 65 20 65    78 74 65 6e 73 69 6f 6e 73 20 61 20 63 68 61 6e  | s......;;.Give.extensions.a.chan | 
| 4fca0 |  63 65 20 74 6f 20 6d 75 63 6b 20 77 69 74 68 20    74 68 69 6e 67 73 20 62 65 66 6f 72 65 20 68 69  | ce.to.muck.with.things.before.hi | 
| 4fcc0 |  67 68 6c 69 67 68 74 69 6e 67 20 73 74 61 72 74    73 2e 0a 20 20 20 20 28 6c 65 74 20 28 28 6a 73  | ghlighting.starts......(let.((js | 
| 4fce0 |  32 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 65 78 74    65 72 6e 73 20 6a 73 32 2d 61 64 64 69 74 69 6f  | 2-additional-externs.js2-additio | 
| 4fd00 |  6e 61 6c 2d 65 78 74 65 72 6e 73 29 29 0a 20 20    20 20 20 20 28 6a 73 32 2d 66 69 6c 74 65 72 2d  | nal-externs)).......(js2-filter- | 
| 4fd20 |  70 61 72 73 65 64 2d 77 61 72 6e 69 6e 67 73 29    0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63  | parsed-warnings).......(save-exc | 
| 4fd40 |  75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28    72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32 2d 70  | ursion.........(run-hooks.'js2-p | 
| 4fd60 |  6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61    63 6b 73 29 29 0a 20 20 20 20 20 20 28 6a 73 32  | ost-parse-callbacks)).......(js2 | 
| 4fd80 |  2d 68 69 67 68 6c 69 67 68 74 2d 75 6e 64 65 63    6c 61 72 65 64 2d 76 61 72 73 29 29 0a 20 20 20  | -highlight-undeclared-vars)).... | 
| 4fda0 |  20 72 6f 6f 74 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 66 69 6c 74 65 72 2d 70 61 72 73 65  | .root))..(defun.js2-filter-parse | 
| 4fdc0 |  64 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a 20 20    22 52 65 6d 6f 76 65 20 60 6a 73 32 2d 70 61 72  | d-warnings.()..."Remove.`js2-par | 
| 4fde0 |  73 65 64 2d 77 61 72 6e 69 6e 67 73 27 20 65 6c    65 6d 65 6e 74 73 20 74 68 61 74 20 6d 61 74 63  | sed-warnings'.elements.that.matc | 
| 4fe00 |  68 20 60 6a 73 32 2d 69 67 6e 6f 72 65 64 2d 77    61 72 6e 69 6e 67 73 27 2e 22 0a 20 20 28 77 68  | h.`js2-ignored-warnings'."...(wh | 
| 4fe20 |  65 6e 20 6a 73 32 2d 69 67 6e 6f 72 65 64 2d 77    61 72 6e 69 6e 67 73 0a 20 20 20 20 28 73 65 74  | en.js2-ignored-warnings.....(set | 
| 4fe40 |  71 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72    6e 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20  | q.js2-parsed-warnings........... | 
| 4fe60 |  28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 0a 20 20    20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61  | (cl-remove-if............(lambda | 
| 4fe80 |  20 28 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d  | .(warning)..............(let.((m | 
| 4fea0 |  73 67 20 28 63 61 61 72 20 77 61 72 6e 69 6e 67    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | sg.(caar.warning)))............. | 
| 4fec0 |  20 20 20 28 6d 65 6d 62 65 72 20 6d 73 67 20 6a    73 32 2d 69 67 6e 6f 72 65 64 2d 77 61 72 6e 69  | ...(member.msg.js2-ignored-warni | 
| 4fee0 |  6e 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 6a 73 32 2d 70 61 72 73 65 64 2d 77 61 72  | ngs)))............js2-parsed-war | 
| 4ff00 |  6e 69 6e 67 73 29 29 29 0a 20 20 6a 73 32 2d 70    61 72 73 65 64 2d 77 61 72 6e 69 6e 67 73 29 0a  | nings)))...js2-parsed-warnings). | 
| 4ff20 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73    65 2d 66 75 6e 63 74 69 6f 6e 2d 63 6c 6f 73 75  | .(defun.js2-parse-function-closu | 
| 4ff40 |  72 65 2d 62 6f 64 79 20 28 66 6e 2d 6e 6f 64 65    29 0a 20 20 22 50 61 72 73 65 20 61 20 4a 61 76  | re-body.(fn-node)..."Parse.a.Jav | 
| 4ff60 |  61 53 63 72 69 70 74 20 31 2e 38 20 66 75 6e 63    74 69 6f 6e 20 63 6c 6f 73 75 72 65 20 62 6f 64  | aScript.1.8.function.closure.bod | 
| 4ff80 |  79 2e 22 0a 20 20 28 6c 65 74 20 28 28 6a 73 32    2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75 6e 63  | y."...(let.((js2-nesting-of-func | 
| 4ffa0 |  74 69 6f 6e 20 28 31 2b 20 6a 73 32 2d 6e 65 73    74 69 6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e  | tion.(1+.js2-nesting-of-function | 
| 4ffc0 |  29 29 29 0a 20 20 20 20 28 69 66 20 6a 73 32 2d    74 73 2d 68 69 74 2d 65 6f 66 0a 20 20 20 20 20  | ))).....(if.js2-ts-hit-eof...... | 
| 4ffe0 |  20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65    72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 62 72 61  | ...(js2-report-error."msg.no.bra | 
| 50000 |  63 65 2e 62 6f 64 79 22 20 6e 69 6c 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ce.body".nil.................... | 
| 50020 |  20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65    2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 0a 20 20  | .......(js2-node-pos.fn-node)... | 
| 50040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 2d 20 6a 73 32 2d 74  | ........................(-.js2-t | 
| 50060 |  73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 29  | s-cursor.(js2-node-pos.fn-node)) | 
| 50080 |  29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 66  | ).......(js2-node-add-children.f | 
| 500a0 |  6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-node.......................... | 
| 500c0 |  20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 66    75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64  | ....(setf.(js2-function-node-bod | 
| 500e0 |  79 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | y.fn-node)...................... | 
| 50100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 70 61 72 73 65 2d 65 78 70 72 20 74 29  | ..............(js2-parse-expr.t) | 
| 50120 |  29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e  | )))))..(defun.js2-parse-function | 
| 50140 |  2d 62 6f 64 79 20 28 66 6e 2d 6e 6f 64 65 29 0a    20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63  | -body.(fn-node)...(js2-must-matc | 
| 50160 |  68 20 6a 73 32 2d 4c 43 20 22 6d 73 67 2e 6e 6f    2e 62 72 61 63 65 2e 62 6f 64 79 22 0a 20 20 20  | h.js2-LC."msg.no.brace.body".... | 
| 50180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 66 6e 2d  | ...............(js2-node-pos.fn- | 
| 501a0 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 2d 20 6a 73 32 2d 74  | node)...................(-.js2-t | 
| 501c0 |  73 2d 63 75 72 73 6f 72 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 66 6e 2d 6e 6f 64 65 29 29  | s-cursor.(js2-node-pos.fn-node)) | 
| 501e0 |  29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | )...(let.((pos.(js2-current-toke | 
| 50200 |  6e 2d 62 65 67 29 29 20 20 20 20 20 20 20 20 20    3b 20 4c 43 20 70 6f 73 69 74 69 6f 6e 0a 20 20  | n-beg)).........;.LC.position... | 
| 50220 |  20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d    6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 29 29  | ......(pn.(make-js2-block-node)) | 
| 50240 |  20 20 3b 20 73 74 61 72 74 73 20 61 74 20 4c 43    20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20  | ..;.starts.at.LC.position....... | 
| 50260 |  20 20 74 74 0a 20 20 20 20 20 20 20 20 65 6e 64    0a 20 20 20 20 20 20 20 20 6e 6f 74 2d 69 6e 2d  | ..tt.........end.........not-in- | 
| 50280 |  64 69 72 65 63 74 69 76 65 2d 70 72 6f 6c 6f 67    75 65 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 0a  | directive-prologue.........node. | 
| 502a0 |  20 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76    65 29 0a 20 20 20 20 28 63 6c 2d 69 6e 63 66 20  | ........directive).....(cl-incf. | 
| 502c0 |  6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66    75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 28 75 6e  | js2-nesting-of-function).....(un | 
| 502e0 |  77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20    20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74  | wind-protect.........(while.(not | 
| 50300 |  20 28 6f 72 20 28 3d 20 28 73 65 74 71 20 74 74    20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e  | .(or.(=.(setq.tt.(js2-peek-token | 
| 50320 |  29 29 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )).js2-ERROR)................... | 
| 50340 |  20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d    45 4f 46 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ......(=.tt.js2-EOF)............ | 
| 50360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20    74 74 20 6a 73 32 2d 52 43 29 29 29 0a 20 20 20  | .............(=.tt.js2-RC))).... | 
| 50380 |  20 20 20 20 20 20 20 28 6a 73 32 2d 62 6c 6f 63    6b 2d 6e 6f 64 65 2d 70 75 73 68 0a 20 20 20 20  | .......(js2-block-node-push..... | 
| 503a0 |  20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20    20 20 20 20 20 28 69 66 20 28 2f 3d 20 74 74 20  | .......pn............(if.(/=.tt. | 
| 503c0 |  6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66  | js2-FUNCTION)................(if | 
| 503e0 |  20 6e 6f 74 2d 69 6e 2d 64 69 72 65 63 74 69 76    65 2d 70 72 6f 6c 6f 67 75 65 0a 20 20 20 20 20  | .not-in-directive-prologue...... | 
| 50400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65  | ..............(js2-parse-stateme | 
| 50420 |  6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20  | nt)..................(setq.node. | 
| 50440 |  28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65    6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20  | (js2-parse-statement)........... | 
| 50460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72    65 63 74 69 76 65 20 28 6a 73 32 2d 67 65 74 2d  | .............directive.(js2-get- | 
| 50480 |  64 69 72 65 63 74 69 76 65 20 6e 6f 64 65 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | directive.node))................ | 
| 504a0 |  20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c  | ..(cond...................((null | 
| 504c0 |  20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .directive)....................( | 
| 504e0 |  73 65 74 71 20 6e 6f 74 2d 69 6e 2d 64 69 72 65    63 74 69 76 65 2d 70 72 6f 6c 6f 67 75 65 20 74  | setq.not-in-directive-prologue.t | 
| 50500 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 64  | ))...................((string=.d | 
| 50520 |  69 72 65 63 74 69 76 65 20 22 75 73 65 20 73 74    72 69 63 74 22 29 0a 20 20 20 20 20 20 20 20 20  | irective."use.strict").......... | 
| 50540 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 61 63    6b 20 75 70 20 61 6e 64 20 72 65 70 61 72 73 65  | ..........;;.Back.up.and.reparse | 
| 50560 |  20 74 68 65 20 66 75 6e 63 74 69 6f 6e 2c 20 62    65 63 61 75 73 65 20 6e 65 77 20 72 75 6c 65 73  | .the.function,.because.new.rules | 
| 50580 |  20 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 20  | .apply....................;;.to. | 
| 505a0 |  74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d    65 20 61 6e 64 20 70 61 72 61 6d 65 74 65 72 73  | the.function.name.and.parameters | 
| 505c0 |  2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20  | .....................(when.(not. | 
| 505e0 |  6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69 63    74 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20  | js2-in-use-strict-directive).... | 
| 50600 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 6a 73 32 2d 69 6e 2d 75  | ..................(setq.js2-in-u | 
| 50620 |  73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74    69 76 65 20 74 29 0a 20 20 20 20 20 20 20 20 20  | se-strict-directive.t).......... | 
| 50640 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72    6f 77 20 27 72 65 70 61 72 73 65 20 74 29 29 29  | ............(throw.'reparse.t))) | 
| 50660 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | )..................node)........ | 
| 50680 |  20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20  | ......(js2-get-token)........... | 
| 506a0 |  20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75    6e 63 74 69 6f 6e 2d 73 74 6d 74 29 29 29 29 0a  | ...(js2-parse-function-stmt)))). | 
| 506c0 |  20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6a    73 32 2d 6e 65 73 74 69 6e 67 2d 6f 66 2d 66 75  | ......(cl-decf.js2-nesting-of-fu | 
| 506e0 |  6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 28 73 65    74 71 20 65 6e 64 20 28 6a 73 32 2d 63 75 72 72  | nction)).....(setq.end.(js2-curr | 
| 50700 |  65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 20    20 3b 20 61 73 73 75 6d 65 20 6e 6f 20 63 75 72  | ent-token-end))..;.assume.no.cur | 
| 50720 |  6c 79 20 61 6e 64 20 6c 65 61 76 65 20 61 74 20    63 75 72 72 65 6e 74 20 74 6f 6b 65 6e 0a 20 20  | ly.and.leave.at.current.token... | 
| 50740 |  20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d    6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22 6d 73  | ..(if.(js2-must-match.js2-RC."ms | 
| 50760 |  67 2e 6e 6f 2e 62 72 61 63 65 2e 61 66 74 65 72    2e 62 6f 64 79 22 20 70 6f 73 29 0a 20 20 20 20  | g.no.brace.after.body".pos)..... | 
| 50780 |  20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | ....(setq.end.(js2-current-token | 
| 507a0 |  2d 65 6e 64 29 29 29 0a 20 20 20 20 28 73 65 74    66 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20  | -end))).....(setf.(js2-node-pos. | 
| 507c0 |  70 6e 29 20 70 6f 73 0a 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20  | pn).pos...........(js2-node-len. | 
| 507e0 |  70 6e 29 20 28 2d 20 65 6e 64 20 70 6f 73 29 29    0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d  | pn).(-.end.pos)).....(setf.(js2- | 
| 50800 |  66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f    64 79 20 66 6e 2d 6e 6f 64 65 29 20 70 6e 29 0a  | function-node-body.fn-node).pn). | 
| 50820 |  20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64    64 2d 63 68 69 6c 64 72 65 6e 20 66 6e 2d 6e 6f  | ....(js2-node-add-children.fn-no | 
| 50840 |  64 65 20 70 6e 29 0a 20 20 20 20 70 6e 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 64 65 66 69  | de.pn).....pn))..(defun.js2-defi | 
| 50860 |  6e 65 2d 64 65 73 74 72 75 63 74 2d 73 79 6d 62    6f 6c 73 20 28 6e 6f 64 65 20 64 65 63 6c 2d 74  | ne-destruct-symbols.(node.decl-t | 
| 50880 |  79 70 65 20 66 61 63 65 20 26 6f 70 74 69 6f 6e    61 6c 20 69 67 6e 6f 72 65 2d 6e 6f 74 2d 69 6e  | ype.face.&optional.ignore-not-in | 
| 508a0 |  2d 62 6c 6f 63 6b 29 0a 20 20 22 44 65 63 6c 61    72 65 20 61 6e 64 20 66 6f 6e 74 69 66 79 20 64  | -block)..."Declare.and.fontify.d | 
| 508c0 |  65 73 74 72 75 63 74 75 72 69 6e 67 20 70 61 72    61 6d 65 74 65 72 73 20 69 6e 73 69 64 65 20 4e  | estructuring.parameters.inside.N | 
| 508e0 |  4f 44 45 2e 0a 4e 4f 44 45 20 69 73 20 65 69 74    68 65 72 20 60 6a 73 32 2d 61 72 72 61 79 2d 6e  | ODE..NODE.is.either.`js2-array-n | 
| 50900 |  6f 64 65 27 2c 20 60 6a 73 32 2d 6f 62 6a 65 63    74 2d 6e 6f 64 65 27 2c 20 6f 72 20 60 6a 73 32  | ode',.`js2-object-node',.or.`js2 | 
| 50920 |  2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 0a 0a 52 65    74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 60  | -name-node'...Return.a.list.of.` | 
| 50940 |  6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 27 20 6e    6f 64 65 73 20 72 65 70 72 65 73 65 6e 74 69 6e  | js2-name-node'.nodes.representin | 
| 50960 |  67 20 74 68 65 20 73 79 6d 62 6f 6c 73 0a 64 65    63 6c 61 72 65 64 3b 20 70 72 6f 62 61 62 6c 79  | g.the.symbols.declared;.probably | 
| 50980 |  20 74 6f 20 63 68 65 63 6b 20 74 68 65 6d 20 66    6f 72 20 65 72 72 6f 72 73 2e 22 0a 20 20 28 6c  | .to.check.them.for.errors."...(l | 
| 509a0 |  65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64 65 73 20    28 6a 73 32 2d 2d 63 6f 6c 6c 65 63 74 2d 74 61  | et.((name-nodes.(js2--collect-ta | 
| 509c0 |  72 67 65 74 2d 73 79 6d 62 6f 6c 73 20 6e 6f 64    65 20 74 29 29 29 0a 20 20 20 20 28 64 6f 6c 69  | rget-symbols.node.t))).....(doli | 
| 509e0 |  73 74 20 28 6e 6f 64 65 20 6e 61 6d 65 2d 6e 6f    64 65 73 29 0a 20 20 20 20 20 20 28 6c 65 74 20  | st.(node.name-nodes).......(let. | 
| 50a00 |  28 6c 65 66 74 70 6f 73 29 0a 20 20 20 20 20 20    20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79  | (leftpos).........(js2-define-sy | 
| 50a20 |  6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 28    6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61  | mbol.decl-type.(js2-name-node-na | 
| 50a40 |  6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | me.node)........................ | 
| 50a60 |  20 20 20 20 6e 6f 64 65 20 69 67 6e 6f 72 65 2d    6e 6f 74 2d 69 6e 2d 62 6c 6f 63 6b 29 0a 20 20  | ....node.ignore-not-in-block)... | 
| 50a80 |  20 20 20 20 20 20 28 77 68 65 6e 20 66 61 63 65    0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ......(when.face...........(js2- | 
| 50aa0 |  73 65 74 2d 66 61 63 65 20 28 73 65 74 71 20 6c    65 66 74 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65  | set-face.(setq.leftpos.(js2-node | 
| 50ac0 |  2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -abs-pos.node))................. | 
| 50ae0 |  20 20 20 20 20 20 20 20 28 2b 20 6c 65 66 74 70    6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e  | ........(+.leftpos.(js2-node-len | 
| 50b00 |  20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .node))......................... | 
| 50b20 |  66 61 63 65 20 27 72 65 63 6f 72 64 29 29 29 29    0a 20 20 20 20 6e 61 6d 65 2d 6e 6f 64 65 73 29  | face.'record)))).....name-nodes) | 
| 50b40 |  29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 69    6c 6c 65 67 61 6c 2d 73 74 72 69 63 74 2d 69 64  | )..(defvar.js2-illegal-strict-id | 
| 50b60 |  65 6e 74 69 66 69 65 72 73 0a 20 20 27 28 22 65    76 61 6c 22 20 22 61 72 67 75 6d 65 6e 74 73 22  | entifiers...'("eval"."arguments" | 
| 50b80 |  29 0a 20 20 22 49 64 65 6e 74 69 66 69 65 72 73    20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 61 73 20  | )..."Identifiers.not.allowed.as. | 
| 50ba0 |  76 61 72 69 61 62 6c 65 73 20 69 6e 20 73 74 72    69 63 74 20 6d 6f 64 65 2e 22 29 0a 0a 28 64 65  | variables.in.strict.mode.")..(de | 
| 50bc0 |  66 75 6e 20 6a 73 32 2d 63 68 65 63 6b 2d 73 74    72 69 63 74 2d 69 64 65 6e 74 69 66 69 65 72 20  | fun.js2-check-strict-identifier. | 
| 50be0 |  28 6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 22 43    68 65 63 6b 20 74 68 61 74 20 4e 41 4d 45 2d 4e  | (name-node)..."Check.that.NAME-N | 
| 50c00 |  4f 44 45 20 6d 61 6b 65 73 20 61 20 6c 65 67 61    6c 20 73 74 72 69 63 74 20 6d 6f 64 65 20 69 64  | ODE.makes.a.legal.strict.mode.id | 
| 50c20 |  65 6e 74 69 66 69 65 72 2e 22 0a 20 20 28 77 68    65 6e 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74  | entifier."...(when.js2-in-use-st | 
| 50c40 |  72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20    20 20 20 28 6c 65 74 20 28 28 70 61 72 61 6d 2d  | rict-directive.....(let.((param- | 
| 50c60 |  6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e    6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f  | name.(js2-name-node-name.name-no | 
| 50c80 |  64 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65    6e 20 28 6d 65 6d 62 65 72 20 70 61 72 61 6d 2d  | de))).......(when.(member.param- | 
| 50ca0 |  6e 61 6d 65 20 6a 73 32 2d 69 6c 6c 65 67 61 6c    2d 73 74 72 69 63 74 2d 69 64 65 6e 74 69 66 69  | name.js2-illegal-strict-identifi | 
| 50cc0 |  65 72 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73    32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22  | ers).........(js2-report-error." | 
| 50ce0 |  6d 73 67 2e 62 61 64 2e 69 64 2e 73 74 72 69 63    74 22 20 70 61 72 61 6d 2d 6e 61 6d 65 0a 20 20  | msg.bad.id.strict".param-name... | 
| 50d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | ........................(js2-nod | 
| 50d20 |  65 2d 61 62 73 2d 70 6f 73 20 6e 61 6d 65 2d 6e    6f 64 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c  | e-abs-pos.name-node).(js2-node-l | 
| 50d40 |  65 6e 20 6e 61 6d 65 2d 6e 6f 64 65 29 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 63  | en.name-node))))))..(defun.js2-c | 
| 50d60 |  68 65 63 6b 2d 73 74 72 69 63 74 2d 66 75 6e 63    74 69 6f 6e 2d 70 61 72 61 6d 73 20 28 70 72 65  | heck-strict-function-params.(pre | 
| 50d80 |  63 65 64 69 6e 67 2d 70 61 72 61 6d 73 20 70 61    72 61 6d 73 29 0a 20 20 22 47 69 76 65 6e 20 50  | ceding-params.params)..."Given.P | 
| 50da0 |  52 45 43 45 44 49 4e 47 2d 50 41 52 41 4d 53 20    69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 27 73 20  | RECEDING-PARAMS.in.a.function's. | 
| 50dc0 |  70 61 72 61 6d 65 74 65 72 20 6c 69 73 74 2c 20    63 68 65 63 6b 0a 66 6f 72 20 73 74 72 69 63 74  | parameter.list,.check.for.strict | 
| 50de0 |  20 6d 6f 64 65 20 65 72 72 6f 72 73 20 63 61 75    73 65 64 20 62 79 20 50 41 52 41 4d 53 2e 22 0a  | .mode.errors.caused.by.PARAMS.". | 
| 50e00 |  20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 2d 75    73 65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74  | ..(when.js2-in-use-strict-direct | 
| 50e20 |  69 76 65 0a 20 20 20 20 28 64 6f 6c 69 73 74 20    28 70 61 72 61 6d 20 70 61 72 61 6d 73 29 0a 20  | ive.....(dolist.(param.params).. | 
| 50e40 |  20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 61    6d 2d 6e 61 6d 65 20 28 6a 73 32 2d 6e 61 6d 65  | .....(let.((param-name.(js2-name | 
| 50e60 |  2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 61 72 61 6d    29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | -node-name.param))).........(js2 | 
| 50e80 |  2d 63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64    65 6e 74 69 66 69 65 72 20 70 61 72 61 6d 29 0a  | -check-strict-identifier.param). | 
| 50ea0 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63    6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28  | ........(when.(cl-some.(lambda.( | 
| 50ec0 |  70 61 72 61 6d 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | param).......................... | 
| 50ee0 |  28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d 6e 61    6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 70 61 72  | (string=.(js2-name-node-name.par | 
| 50f00 |  61 6d 29 20 70 61 72 61 6d 2d 6e 61 6d 65 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | am).param-name))................ | 
| 50f20 |  20 20 20 20 20 20 20 20 70 72 65 63 65 64 69 6e    67 2d 70 61 72 61 6d 73 29 0a 20 20 20 20 20 20  | ........preceding-params)....... | 
| 50f40 |  20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d    65 72 72 6f 72 20 22 6d 73 67 2e 64 75 70 2e 70  | ....(js2-report-error."msg.dup.p | 
| 50f60 |  61 72 61 6d 2e 73 74 72 69 63 74 22 20 70 61 72    61 6d 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20  | aram.strict".param-name......... | 
| 50f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62  | ....................(js2-node-ab | 
| 50fa0 |  73 2d 70 6f 73 20 70 61 72 61 6d 29 20 28 6a 73    32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 61 72 61 6d  | s-pos.param).(js2-node-len.param | 
| 50fc0 |  29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69  | )))))))..(defun.js2-parse-functi | 
| 50fe0 |  6f 6e 2d 70 61 72 61 6d 73 20 28 66 75 6e 63 74    69 6f 6e 2d 74 79 70 65 20 66 6e 2d 6e 6f 64 65  | on-params.(function-type.fn-node | 
| 51000 |  20 70 6f 73 29 0a 20 20 22 50 61 72 73 65 20 74    68 65 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66  | .pos)..."Parse.the.parameters.of | 
| 51020 |  20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 46    55 4e 43 54 49 4f 4e 2d 54 59 50 45 0a 72 65 70  | .a.function.of.FUNCTION-TYPE.rep | 
| 51040 |  72 65 73 65 6e 74 65 64 20 62 79 20 46 4e 2d 4e    4f 44 45 20 61 74 20 50 4f 53 2e 22 0a 20 20 28  | resented.by.FN-NODE.at.POS."...( | 
| 51060 |  69 66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f    6b 65 6e 20 6a 73 32 2d 52 50 29 0a 20 20 20 20  | if.(js2-match-token.js2-RP)..... | 
| 51080 |  20 20 28 73 65 74 66 20 28 6a 73 32 2d 66 75 6e    63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 70 20 66 6e  | ..(setf.(js2-function-node-rp.fn | 
| 510a0 |  2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67  | -node).(-.(js2-current-token-beg | 
| 510c0 |  29 20 70 6f 73 29 29 0a 20 20 20 20 28 6c 65 74    20 28 28 70 61 72 65 6e 2d 66 72 65 65 2d 61 72  | ).pos)).....(let.((paren-free-ar | 
| 510e0 |  72 6f 77 20 28 61 6e 64 20 28 65 71 20 66 75 6e    63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e 43  | row.(and.(eq.function-type.'FUNC | 
| 51100 |  54 49 4f 4e 5f 41 52 52 4f 57 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | TION_ARROW)..................... | 
| 51120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | .............(eq.(js2-current-to | 
| 51140 |  6b 65 6e 2d 74 79 70 65 29 20 6a 73 32 2d 4e 41    4d 45 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ken-type).js2-NAME)))........... | 
| 51160 |  70 61 72 61 6d 73 20 70 61 72 61 6d 0a 20 20 20    20 20 20 20 20 20 20 70 61 72 61 6d 2d 6e 61 6d  | params.param...........param-nam | 
| 51180 |  65 2d 6e 6f 64 65 73 20 6e 65 77 2d 70 61 72 61    6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 0a 20 20 20  | e-nodes.new-param-name-nodes.... | 
| 511a0 |  20 20 20 20 20 20 20 72 65 73 74 2d 70 61 72 61    6d 2d 61 74 29 0a 20 20 20 20 20 20 28 77 68 65  | .......rest-param-at).......(whe | 
| 511c0 |  6e 20 70 61 72 65 6e 2d 66 72 65 65 2d 61 72 72    6f 77 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | n.paren-free-arrow.........(js2- | 
| 511e0 |  75 6e 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20    20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72  | unget-token)).......(cl-loop.for | 
| 51200 |  20 74 74 20 3d 20 28 6a 73 32 2d 70 65 65 6b 2d    74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20  | .tt.=.(js2-peek-token).......... | 
| 51220 |  20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20  | ......do................(cond... | 
| 51240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b    20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20 70  | ..............;;.destructuring.p | 
| 51260 |  61 72 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 20  | aram.................((and.(not. | 
| 51280 |  70 61 72 65 6e 2d 66 72 65 65 2d 61 72 72 6f 77    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | paren-free-arrow)............... | 
| 512a0 |  20 20 20 20 20 20 20 20 28 6f 72 20 28 3d 20 74    74 20 6a 73 32 2d 4c 42 29 20 28 3d 20 74 74 20  | ........(or.(=.tt.js2-LB).(=.tt. | 
| 512c0 |  6a 73 32 2d 4c 43 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | js2-LC)))..................(js2- | 
| 512e0 |  67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | get-token)..................(set | 
| 51300 |  71 20 70 61 72 61 6d 20 28 6a 73 32 2d 70 61 72    73 65 2d 64 65 73 74 72 75 63 74 2d 70 72 69 6d  | q.param.(js2-parse-destruct-prim | 
| 51320 |  61 72 79 2d 65 78 70 72 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ary-expr)....................... | 
| 51340 |  20 6e 65 77 2d 70 61 72 61 6d 2d 6e 61 6d 65 2d    6e 6f 64 65 73 20 28 6a 73 32 2d 64 65 66 69 6e  | .new-param-name-nodes.(js2-defin | 
| 51360 |  65 2d 64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f    6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-destruct-symbols.............. | 
| 51380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 513a0 |  70 61 72 61 6d 20 6a 73 32 2d 4c 50 20 27 6a 73    32 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d  | param.js2-LP.'js2-function-param | 
| 513c0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 63 68 65 63 6b 2d 73  | ))..................(js2-check-s | 
| 513e0 |  74 72 69 63 74 2d 66 75 6e 63 74 69 6f 6e 2d 70    61 72 61 6d 73 20 70 61 72 61 6d 2d 6e 61 6d 65  | trict-function-params.param-name | 
| 51400 |  2d 6e 6f 64 65 73 20 6e 65 77 2d 70 61 72 61 6d    2d 6e 61 6d 65 2d 6e 6f 64 65 73 29 0a 20 20 20  | -nodes.new-param-name-nodes).... | 
| 51420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e  | ..............(setq.param-name-n | 
| 51440 |  6f 64 65 73 20 28 61 70 70 65 6e 64 20 70 61 72    61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65 73 20 6e 65  | odes.(append.param-name-nodes.ne | 
| 51460 |  77 2d 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64    65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | w-param-name-nodes)))........... | 
| 51480 |  20 20 20 20 20 20 3b 3b 20 76 61 72 69 61 62 6c    65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20  | ......;;.variable.name.......... | 
| 514a0 |  20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e  | .......(t..................(when | 
| 514c0 |  20 28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61    6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32  | .(and.(>=.js2-language-version.2 | 
| 514e0 |  30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 00)............................. | 
| 51500 |  28 6e 6f 74 20 70 61 72 65 6e 2d 66 72 65 65 2d    61 72 72 6f 77 29 0a 20 20 20 20 20 20 20 20 20  | (not.paren-free-arrow).......... | 
| 51520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f  | ...................(js2-match-to | 
| 51540 |  6b 65 6e 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f    54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ken.js2-TRIPLEDOT).............. | 
| 51560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 6f 74 20 72 65 73 74 2d 70 61 72 61 6d 2d 61  | ...............(not.rest-param-a | 
| 51580 |  74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 74 6f 20 72 65 70  | t))....................;;.to.rep | 
| 515a0 |  6f 72 74 20 65 72 72 6f 72 73 20 69 66 20 74 68    65 72 65 20 61 72 65 20 6d 6f 72 65 20 70 61 72  | ort.errors.if.there.are.more.par | 
| 515c0 |  61 6d 65 74 65 72 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | ameters....................(setq | 
| 515e0 |  20 72 65 73 74 2d 70 61 72 61 6d 2d 61 74 20 28    6c 65 6e 67 74 68 20 70 61 72 61 6d 73 29 29 29  | .rest-param-at.(length.params))) | 
| 51600 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63  | ..................(js2-must-matc | 
| 51620 |  68 2d 6e 61 6d 65 20 22 6d 73 67 2e 6e 6f 2e 70    61 72 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20  | h-name."msg.no.parm")........... | 
| 51640 |  20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f    72 64 2d 66 61 63 65 20 27 6a 73 32 2d 66 75 6e  | .......(js2-record-face.'js2-fun | 
| 51660 |  63 74 69 6f 6e 2d 70 61 72 61 6d 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | ction-param)..................(s | 
| 51680 |  65 74 71 20 70 61 72 61 6d 20 28 6a 73 32 2d 63    72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 29  | etq.param.(js2-create-name-node) | 
| 516a0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73  | )..................(js2-define-s | 
| 516c0 |  79 6d 62 6f 6c 20 6a 73 32 2d 4c 50 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | ymbol.js2-LP.(js2-current-token- | 
| 516e0 |  73 74 72 69 6e 67 29 20 70 61 72 61 6d 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | string).param).................. | 
| 51700 |  28 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69 63    74 2d 66 75 6e 63 74 69 6f 6e 2d 70 61 72 61 6d  | (js2-check-strict-function-param | 
| 51720 |  73 20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64    65 73 20 28 6c 69 73 74 20 70 61 72 61 6d 29 29  | s.param-name-nodes.(list.param)) | 
| 51740 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 70 61 72 61 6d 2d 6e 61  | ..................(setq.param-na | 
| 51760 |  6d 65 2d 6e 6f 64 65 73 20 28 61 70 70 65 6e 64    20 70 61 72 61 6d 2d 6e 61 6d 65 2d 6e 6f 64 65  | me-nodes.(append.param-name-node | 
| 51780 |  73 20 28 6c 69 73 74 20 70 61 72 61 6d 29 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.(list.param))))).............. | 
| 517a0 |  20 20 3b 3b 20 64 65 66 61 75 6c 74 20 70 61 72    61 6d 65 74 65 72 20 76 61 6c 75 65 0a 20 20 20  | ..;;.default.parameter.value.... | 
| 517c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65    6e 20 28 61 6e 64 20 28 6e 6f 74 20 72 65 73 74  | ............(when.(and.(not.rest | 
| 517e0 |  2d 70 61 72 61 6d 2d 61 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -param-at)...................... | 
| 51800 |  20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e    67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30  | .....(>=.js2-language-version.20 | 
| 51820 |  30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | 0)...........................(js | 
| 51840 |  32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73    32 2d 41 53 53 49 47 4e 29 29 0a 20 20 20 20 20  | 2-match-token.js2-ASSIGN))...... | 
| 51860 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d    61 73 73 65 72 74 20 28 6e 6f 74 20 70 61 72 65  | ............(cl-assert.(not.pare | 
| 51880 |  6e 2d 66 72 65 65 2d 61 72 72 6f 77 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-free-arrow)).................. | 
| 518a0 |  28 6c 65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32    2d 6e 6f 64 65 2d 70 6f 73 20 70 61 72 61 6d 29  | (let*.((pos.(js2-node-pos.param) | 
| 518c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 74 74 20 28 6a  | ).........................(tt.(j | 
| 518e0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20  | s2-current-token-type))......... | 
| 51900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6f 70 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d  | ................(op-pos.(-.(js2- | 
| 51920 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65    67 29 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20  | current-token-beg).pos))........ | 
| 51940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6c 65 66 74 20 70 61 72 61 6d 29 0a 20 20  | .................(left.param)... | 
| 51960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 72 69 67 68 74 20 28 6a 73  | ......................(right.(js | 
| 51980 |  32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65    78 70 72 29 29 0a 20 20 20 20 20 20 20 20 20 20  | 2-parse-assign-expr))........... | 
| 519a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c    65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d  | ..............(len.(-.(js2-node- | 
| 519c0 |  65 6e 64 20 72 69 67 68 74 29 20 70 6f 73 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | end.right).pos)))............... | 
| 519e0 |  20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d    20 28 6d 61 6b 65 2d 6a 73 32 2d 61 73 73 69 67  | .....(setq.param.(make-js2-assig | 
| 51a00 |  6e 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-node.......................... | 
| 51a20 |  20 20 20 20 20 20 20 3a 74 79 70 65 20 74 74 20    3a 70 6f 73 20 70 6f 73 20 3a 6c 65 6e 20 6c 65  | .......:type.tt.:pos.pos.:len.le | 
| 51a40 |  6e 20 3a 6f 70 2d 70 6f 73 20 6f 70 2d 70 6f 73    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n.:op-pos.op-pos................ | 
| 51a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 6c 65 66 74 20 6c 65 66 74 20 3a 72 69 67  | .................:left.left.:rig | 
| 51a80 |  68 74 20 72 69 67 68 74 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ht.right))....................(j | 
| 51aa0 |  73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c    64 72 65 6e 20 70 61 72 61 6d 20 6c 65 66 74 20  | s2-node-add-children.param.left. | 
| 51ac0 |  72 69 67 68 74 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 61  | right)))................(push.pa | 
| 51ae0 |  72 61 6d 20 70 61 72 61 6d 73 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e  | ram.params)................(when | 
| 51b00 |  20 28 61 6e 64 20 72 65 73 74 2d 70 61 72 61 6d    2d 61 74 20 28 3e 20 28 6c 65 6e 67 74 68 20 70  | .(and.rest-param-at.(>.(length.p | 
| 51b20 |  61 72 61 6d 73 29 20 28 31 2b 20 72 65 73 74 2d    70 61 72 61 6d 2d 61 74 29 29 29 0a 20 20 20 20  | arams).(1+.rest-param-at)))..... | 
| 51b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22  | .............(js2-report-error." | 
| 51b60 |  6d 73 67 2e 70 61 72 61 6d 2e 61 66 74 65 72 2e    72 65 73 74 22 20 6e 69 6c 0a 20 20 20 20 20 20  | msg.param.after.rest".nil....... | 
| 51b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | .............................(js | 
| 51ba0 |  32 2d 6e 6f 64 65 2d 70 6f 73 20 70 61 72 61 6d    29 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20  | 2-node-pos.param).(js2-node-len. | 
| 51bc0 |  70 61 72 61 6d 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 77 68 69 6c 65 0a 20 20  | param)))................while... | 
| 51be0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e    64 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b  | .............(and.(js2-match-tok | 
| 51c00 |  65 6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en.js2-COMMA)................... | 
| 51c20 |  20 20 28 6f 72 20 28 3c 20 6a 73 32 2d 6c 61 6e    67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30  | ..(or.(<.js2-language-version.20 | 
| 51c40 |  30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20  | 0).........................(not. | 
| 51c60 |  28 3d 20 6a 73 32 2d 52 50 20 28 6a 73 32 2d 70    65 65 6b 2d 74 6f 6b 65 6e 29 29 29 29 29 29 0a  | (=.js2-RP.(js2-peek-token)))))). | 
| 51c80 |  20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64    20 28 6e 6f 74 20 70 61 72 65 6e 2d 66 72 65 65  | ......(when.(and.(not.paren-free | 
| 51ca0 |  2d 61 72 72 6f 77 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75  | -arrow)..................(js2-mu | 
| 51cc0 |  73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20    22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66  | st-match.js2-RP."msg.no.paren.af | 
| 51ce0 |  74 65 72 2e 70 61 72 6d 73 22 29 29 0a 20 20 20    20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d  | ter.parms")).........(setf.(js2- | 
| 51d00 |  66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 72 70    20 66 6e 2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73  | function-node-rp.fn-node).(-.(js | 
| 51d20 |  32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d    62 65 67 29 20 70 6f 73 29 29 29 0a 20 20 20 20  | 2-current-token-beg).pos)))..... | 
| 51d40 |  20 20 28 77 68 65 6e 20 72 65 73 74 2d 70 61 72    61 6d 2d 61 74 0a 20 20 20 20 20 20 20 20 28 73  | ..(when.rest-param-at.........(s | 
| 51d60 |  65 74 66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f    6e 2d 6e 6f 64 65 2d 72 65 73 74 2d 70 20 66 6e  | etf.(js2-function-node-rest-p.fn | 
| 51d80 |  2d 6e 6f 64 65 29 20 74 29 29 0a 20 20 20 20 20    20 28 64 6f 6c 69 73 74 20 28 70 20 70 61 72 61  | -node).t)).......(dolist.(p.para | 
| 51da0 |  6d 73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72  | ms).........(js2-node-add-childr | 
| 51dc0 |  65 6e 20 66 6e 2d 6e 6f 64 65 20 70 29 0a 20 20    20 20 20 20 20 20 28 70 75 73 68 20 70 20 28 6a  | en.fn-node.p).........(push.p.(j | 
| 51de0 |  73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65    2d 70 61 72 61 6d 73 20 66 6e 2d 6e 6f 64 65 29  | s2-function-node-params.fn-node) | 
| 51e00 |  29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 63 68 65 63 6b 2d 69 6e 63 6f 6e 73 69 73  | )))))..(defun.js2-check-inconsis | 
| 51e20 |  74 65 6e 74 2d 72 65 74 75 72 6e 2d 77 61 72 6e    69 6e 67 20 28 66 6e 2d 6e 6f 64 65 20 6e 61 6d  | tent-return-warning.(fn-node.nam | 
| 51e40 |  65 29 0a 20 20 22 50 6f 73 73 69 62 6c 79 20 73    68 6f 77 20 69 6e 63 6f 6e 73 69 73 74 65 6e 74  | e)..."Possibly.show.inconsistent | 
| 51e60 |  2d 72 65 74 75 72 6e 20 77 61 72 6e 69 6e 67 2e    0a 4c 61 73 74 20 74 6f 6b 65 6e 20 73 63 61 6e  | -return.warning..Last.token.scan | 
| 51e80 |  6e 65 64 20 69 73 20 74 68 65 20 63 6c 6f 73 65    2d 63 75 72 6c 79 20 66 6f 72 20 74 68 65 20 66  | ned.is.the.close-curly.for.the.f | 
| 51ea0 |  75 6e 63 74 69 6f 6e 20 62 6f 64 79 2e 22 0a 20    20 28 77 68 65 6e 20 28 61 6e 64 20 6a 73 32 2d  | unction.body."...(when.(and.js2- | 
| 51ec0 |  6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74    2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 20 20  | mode-show-strict-warnings....... | 
| 51ee0 |  20 20 20 20 20 20 20 6a 73 32 2d 73 74 72 69 63    74 2d 69 6e 63 6f 6e 73 69 73 74 65 6e 74 2d 72  | .......js2-strict-inconsistent-r | 
| 51f00 |  65 74 75 72 6e 2d 77 61 72 6e 69 6e 67 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20  | eturn-warning..............(not. | 
| 51f20 |  28 6a 73 32 2d 68 61 73 2d 63 6f 6e 73 69 73 74    65 6e 74 2d 72 65 74 75 72 6e 2d 75 73 61 67 65  | (js2-has-consistent-return-usage | 
| 51f40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f  | ....................(js2-functio | 
| 51f60 |  6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 2d 6e    6f 64 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 48  | n-node-body.fn-node)))).....;;.H | 
| 51f80 |  61 76 65 20 69 74 20 65 78 74 65 6e 64 20 66 72    6f 6d 20 63 6c 6f 73 65 2d 63 75 72 6c 79 20 74  | ave.it.extend.from.close-curly.t | 
| 51fa0 |  6f 20 62 6f 6c 20 6f 72 20 62 65 67 69 6e 6e 69    6e 67 20 6f 66 20 62 6c 6f 63 6b 2e 0a 20 20 20  | o.bol.or.beginning.of.block..... | 
| 51fc0 |  20 28 6c 65 74 20 28 28 70 6f 73 20 28 73 61 76    65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20  | .(let.((pos.(save-excursion..... | 
| 51fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f    74 6f 2d 63 68 61 72 20 28 6a 73 32 2d 63 75 72  | .............(goto-char.(js2-cur | 
| 52000 |  72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rent-token-end))................ | 
| 52020 |  20 20 28 6d 61 78 20 28 6a 73 32 2d 6e 6f 64 65    2d 61 62 73 2d 70 6f 73 20 28 6a 73 32 2d 66 75  | ..(max.(js2-node-abs-pos.(js2-fu | 
| 52040 |  6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79    20 66 6e 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20  | nction-node-body.fn-node))...... | 
| 52060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29  | .................(point-at-bol)) | 
| 52080 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e    64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | ))...........(end.(js2-current-t | 
| 520a0 |  6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20    20 20 28 69 66 20 28 63 6c 2d 70 6c 75 73 70 20  | oken-end))).......(if.(cl-plusp. | 
| 520c0 |  28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6c    65 6e 67 74 68 20 6e 61 6d 65 29 29 0a 20 20 20  | (js2-name-node-length.name)).... | 
| 520e0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d    73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22  | .......(js2-add-strict-warning." | 
| 52100 |  6d 73 67 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61    6c 75 65 22 0a 20 20 20 20 20 20 20 20 20 20 20  | msg.no.return.value"............ | 
| 52120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65  | .......................(js2-name | 
| 52140 |  2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29    20 70 6f 73 20 65 6e 64 29 0a 20 20 20 20 20 20  | -node-name.name).pos.end)....... | 
| 52160 |  20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63    74 2d 77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 61  | ..(js2-add-strict-warning."msg.a | 
| 52180 |  6e 6f 6e 2e 6e 6f 2e 72 65 74 75 72 6e 2e 76 61    6c 75 65 22 20 6e 69 6c 20 70 6f 73 20 65 6e 64  | non.no.return.value".nil.pos.end | 
| 521a0 |  29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e  | )))))..(defun.js2-parse-function | 
| 521c0 |  2d 73 74 6d 74 20 28 26 6f 70 74 69 6f 6e 61 6c    20 61 73 79 6e 63 2d 70 6f 73 29 0a 20 20 28 6c  | -stmt.(&optional.async-pos)...(l | 
| 521e0 |  65 74 20 28 28 70 6f 73 20 28 6f 72 20 61 73 79    6e 63 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72  | et.((pos.(or.async-pos.(js2-curr | 
| 52200 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29    0a 20 20 20 20 20 20 20 20 28 73 74 61 72 2d 70  | ent-token-beg))).........(star-p | 
| 52220 |  20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65    6e 20 6a 73 32 2d 4d 55 4c 29 29 29 0a 20 20 20  | .(js2-match-token.js2-MUL))).... | 
| 52240 |  20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68    2d 6e 61 6d 65 20 22 6d 73 67 2e 75 6e 6e 61 6d  | .(js2-must-match-name."msg.unnam | 
| 52260 |  65 64 2e 66 75 6e 63 74 69 6f 6e 2e 73 74 6d 74    22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 61  | ed.function.stmt").....(let.((na | 
| 52280 |  6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e    61 6d 65 2d 6e 6f 64 65 20 74 29 29 0a 20 20 20  | me.(js2-create-name-node.t)).... | 
| 522a0 |  20 20 20 20 20 20 20 70 6e 20 6d 65 6d 62 65 72    2d 65 78 70 72 29 0a 20 20 20 20 20 20 28 63 6f  | .......pn.member-expr).......(co | 
| 522c0 |  6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d    6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d  | nd........((js2-match-token.js2- | 
| 522e0 |  4c 50 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 20  | LP).........(js2-parse-function. | 
| 52300 |  27 46 55 4e 43 54 49 4f 4e 5f 53 54 41 54 45 4d    45 4e 54 20 70 6f 73 20 73 74 61 72 2d 70 20 61  | 'FUNCTION_STATEMENT.pos.star-p.a | 
| 52320 |  73 79 6e 63 2d 70 6f 73 20 6e 61 6d 65 29 29 0a    20 20 20 20 20 20 20 28 6a 73 32 2d 61 6c 6c 6f  | sync-pos.name))........(js2-allo | 
| 52340 |  77 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 61 73    2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 0a 20  | w-member-expr-as-function-name.. | 
| 52360 |  20 20 20 20 20 20 20 28 73 65 74 71 20 6d 65 6d    62 65 72 2d 65 78 70 72 20 28 6a 73 32 2d 70 61  | .......(setq.member-expr.(js2-pa | 
| 52380 |  72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d    74 61 69 6c 20 6e 69 6c 20 6e 61 6d 65 29 29 0a  | rse-member-expr-tail.nil.name)). | 
| 523a0 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72    73 65 2d 68 69 67 68 6c 69 67 68 74 2d 6d 65 6d  | ........(js2-parse-highlight-mem | 
| 523c0 |  62 65 72 2d 65 78 70 72 2d 66 6e 2d 6e 61 6d 65    20 6d 65 6d 62 65 72 2d 65 78 70 72 29 0a 20 20  | ber-expr-fn-name.member-expr)... | 
| 523e0 |  20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d    6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d 73  | ......(js2-must-match.js2-LP."ms | 
| 52400 |  67 2e 6e 6f 2e 70 61 72 65 6e 2e 70 61 72 6d 73    22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66  | g.no.paren.parms").........(setf | 
| 52420 |  20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 66    75 6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f  | .pn.(js2-parse-function.'FUNCTIO | 
| 52440 |  4e 5f 53 54 41 54 45 4d 45 4e 54 20 70 6f 73 20    73 74 61 72 2d 70 20 61 73 79 6e 63 2d 70 6f 73  | N_STATEMENT.pos.star-p.async-pos | 
| 52460 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f  | )...............(js2-function-no | 
| 52480 |  64 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 20 70    6e 29 20 6d 65 6d 62 65 72 2d 65 78 70 72 29 0a  | de-member-expr.pn).member-expr). | 
| 524a0 |  20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20    20 20 20 28 74 0a 20 20 20 20 20 20 20 20 28 6a  | ........pn)........(t.........(j | 
| 524c0 |  73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20    22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 70 61  | s2-report-error."msg.no.paren.pa | 
| 524e0 |  72 6d 73 22 29 0a 20 20 20 20 20 20 20 20 28 6d    61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f  | rms").........(make-js2-error-no | 
| 52500 |  64 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74  | de))))))..(defun.js2-parse-funct | 
| 52520 |  69 6f 6e 2d 65 78 70 72 20 28 26 6f 70 74 69 6f    6e 61 6c 20 61 73 79 6e 63 2d 70 6f 73 29 0a 20  | ion-expr.(&optional.async-pos).. | 
| 52540 |  20 28 6c 65 74 20 28 28 70 6f 73 20 28 6f 72 20    61 73 79 6e 63 2d 70 6f 73 20 28 6a 73 32 2d 63  | .(let.((pos.(or.async-pos.(js2-c | 
| 52560 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67    29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 61  | urrent-token-beg))).........(sta | 
| 52580 |  72 2d 70 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74    6f 6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 29 0a 20  | r-p.(js2-match-token.js2-MUL)).. | 
| 525a0 |  20 20 20 20 20 20 20 6e 61 6d 65 29 0a 20 20 20    20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63  | .......name).....(when.(js2-matc | 
| 525c0 |  68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45    29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61  | h-token.js2-NAME).......(setq.na | 
| 525e0 |  6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e    61 6d 65 2d 6e 6f 64 65 20 74 29 29 29 0a 20 20  | me.(js2-create-name-node.t)))... | 
| 52600 |  20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63    68 20 6a 73 32 2d 4c 50 20 22 6d 73 67 2e 6e 6f  | ..(js2-must-match.js2-LP."msg.no | 
| 52620 |  2e 70 61 72 65 6e 2e 70 61 72 6d 73 22 29 0a 20    20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75  | .paren.parms").....(js2-parse-fu | 
| 52640 |  6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f 4e    5f 45 58 50 52 45 53 53 49 4f 4e 20 70 6f 73 20  | nction.'FUNCTION_EXPRESSION.pos. | 
| 52660 |  73 74 61 72 2d 70 20 61 73 79 6e 63 2d 70 6f 73    20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e  | star-p.async-pos.name)))..(defun | 
| 52680 |  20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74    69 6f 6e 2d 69 6e 74 65 72 6e 61 6c 20 28 66 75  | .js2-parse-function-internal.(fu | 
| 526a0 |  6e 63 74 69 6f 6e 2d 74 79 70 65 20 70 6f 73 20    73 74 61 72 2d 70 20 26 6f 70 74 69 6f 6e 61 6c  | nction-type.pos.star-p.&optional | 
| 526c0 |  20 61 73 79 6e 63 2d 70 20 6e 61 6d 65 29 0a 20    20 28 6c 65 74 20 28 66 6e 2d 6e 6f 64 65 20 6c  | .async-p.name)...(let.(fn-node.l | 
| 526e0 |  70 29 0a 20 20 20 20 28 69 66 20 28 3d 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | p).....(if.(=.(js2-current-token | 
| 52700 |  2d 74 79 70 65 29 20 6a 73 32 2d 4c 50 29 20 3b    20 65 76 65 6e 74 75 61 6c 6c 79 20 6d 61 74 63  | -type).js2-LP).;.eventually.matc | 
| 52720 |  68 65 64 20 4c 50 3f 0a 20 20 20 20 20 20 20 20    28 73 65 74 71 20 6c 70 20 28 6a 73 32 2d 63 75  | hed.LP?.........(setq.lp.(js2-cu | 
| 52740 |  72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29    29 29 0a 20 20 20 20 28 73 65 74 66 20 66 6e 2d  | rrent-token-beg))).....(setf.fn- | 
| 52760 |  6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 66    75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 3a 70 6f  | node.(make-js2-function-node.:po | 
| 52780 |  73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.pos........................... | 
| 527a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20  | ................:name.name...... | 
| 527c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 527e0 |  20 20 20 20 20 3a 66 6f 72 6d 20 66 75 6e 63 74    69 6f 6e 2d 74 79 70 65 0a 20 20 20 20 20 20 20  | .....:form.function-type........ | 
| 52800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 52820 |  20 20 20 3a 6c 70 20 28 69 66 20 6c 70 20 28 2d    20 6c 70 20 70 6f 73 29 29 0a 20 20 20 20 20 20  | ...:lp.(if.lp.(-.lp.pos))....... | 
| 52840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 52860 |  20 20 20 20 3a 67 65 6e 65 72 61 74 6f 72 2d 74    79 70 65 20 28 61 6e 64 20 73 74 61 72 2d 70 20  | ....:generator-type.(and.star-p. | 
| 52880 |  27 53 54 41 52 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 'STAR).......................... | 
| 528a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 61 73 79 6e 63 20 61 73 79 6e 63 2d 70 29  | .................:async.async-p) | 
| 528c0 |  29 0a 20 20 20 20 28 77 68 65 6e 20 6e 61 6d 65    0a 20 20 20 20 20 20 28 6a 73 32 2d 73 65 74 2d  | ).....(when.name.......(js2-set- | 
| 528e0 |  66 61 63 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 70    6f 73 20 6e 61 6d 65 29 20 28 6a 73 32 2d 6e 6f  | face.(js2-node-pos.name).(js2-no | 
| 52900 |  64 65 2d 65 6e 64 20 6e 61 6d 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de-end.name).................... | 
| 52920 |  20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63    74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 20 27  | .'font-lock-function-name-face.' | 
| 52940 |  72 65 63 6f 72 64 29 0a 20 20 20 20 20 20 28 77    68 65 6e 20 28 61 6e 64 20 28 65 71 20 66 75 6e  | record).......(when.(and.(eq.fun | 
| 52960 |  63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e 43    54 49 4f 4e 5f 53 54 41 54 45 4d 45 4e 54 29 0a  | ction-type.'FUNCTION_STATEMENT). | 
| 52980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6c 2d 70 6c 75 73 70 20 28 6a 73 32 2d  | .................(cl-plusp.(js2- | 
| 529a0 |  6e 61 6d 65 2d 6e 6f 64 65 2d 6c 65 6e 67 74 68    20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20  | name-node-length.name)))........ | 
| 529c0 |  20 3b 3b 20 46 75 6e 63 74 69 6f 6e 20 73 74 61    74 65 6d 65 6e 74 73 20 64 65 66 69 6e 65 20 61  | .;;.Function.statements.define.a | 
| 529e0 |  20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65 20 65    6e 63 6c 6f 73 69 6e 67 20 73 63 6f 70 65 0a 20  | .symbol.in.the.enclosing.scope.. | 
| 52a00 |  20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69    6e 65 2d 73 79 6d 62 6f 6c 20 6a 73 32 2d 46 55  | .......(js2-define-symbol.js2-FU | 
| 52a20 |  4e 43 54 49 4f 4e 20 28 6a 73 32 2d 6e 61 6d 65    2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29  | NCTION.(js2-name-node-name.name) | 
| 52a40 |  20 66 6e 2d 6e 6f 64 65 29 29 0a 20 20 20 20 20    20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 2d 75 73  | .fn-node)).......(when.js2-in-us | 
| 52a60 |  65 2d 73 74 72 69 63 74 2d 64 69 72 65 63 74 69    76 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | e-strict-directive.........(js2- | 
| 52a80 |  63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65    6e 74 69 66 69 65 72 20 6e 61 6d 65 29 29 29 0a  | check-strict-identifier.name))). | 
| 52aa0 |  20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32    2d 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e  | ....(if.(or.(js2-inside-function | 
| 52ac0 |  29 20 28 63 6c 2d 70 6c 75 73 70 20 6a 73 32 2d    6e 65 73 74 69 6e 67 2d 6f 66 2d 77 69 74 68 29  | ).(cl-plusp.js2-nesting-of-with) | 
| 52ae0 |  29 0a 20 20 20 20 20 20 20 20 3b 3b 20 31 2e 20    4e 65 73 74 65 64 20 66 75 6e 63 74 69 6f 6e 73  | ).........;;.1..Nested.functions | 
| 52b00 |  20 61 72 65 20 6e 6f 74 20 61 66 66 65 63 74 65    64 20 62 79 20 74 68 65 20 64 79 6e 61 6d 69 63  | .are.not.affected.by.the.dynamic | 
| 52b20 |  20 73 63 6f 70 65 20 66 6c 61 67 0a 20 20 20 20    20 20 20 20 3b 3b 20 20 20 20 61 73 20 64 79 6e  | .scope.flag.........;;....as.dyn | 
| 52b40 |  61 6d 69 63 20 73 63 6f 70 65 20 69 73 20 61 6c    72 65 61 64 79 20 61 20 70 61 72 65 6e 74 20 6f  | amic.scope.is.already.a.parent.o | 
| 52b60 |  66 20 74 68 65 69 72 20 73 63 6f 70 65 2e 0a 20    20 20 20 20 20 20 20 3b 3b 20 32 2e 20 46 75 6e  | f.their.scope..........;;.2..Fun | 
| 52b80 |  63 74 69 6f 6e 73 20 64 65 66 69 6e 65 64 20 75    6e 64 65 72 20 74 68 65 20 77 69 74 68 20 73 74  | ctions.defined.under.the.with.st | 
| 52ba0 |  61 74 65 6d 65 6e 74 20 61 6c 73 6f 20 69 6d 6d    75 6e 65 20 74 6f 0a 20 20 20 20 20 20 20 20 3b  | atement.also.immune.to.........; | 
| 52bc0 |  3b 20 20 20 20 74 68 69 73 20 73 65 74 75 70 2c    20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 64  | ;....this.setup,.in.which.case.d | 
| 52be0 |  79 6e 61 6d 69 63 20 73 63 6f 70 65 20 69 73 20    69 67 6e 6f 72 65 64 20 69 6e 20 66 61 76 6f 72  | ynamic.scope.is.ignored.in.favor | 
| 52c00 |  0a 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 6f    66 20 74 68 65 20 77 69 74 68 20 6f 62 6a 65 63  | .........;;....of.the.with.objec | 
| 52c20 |  74 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 66    20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e  | t..........(setf.(js2-function-n | 
| 52c40 |  6f 64 65 2d 69 67 6e 6f 72 65 2d 64 79 6e 61 6d    69 63 20 66 6e 2d 6e 6f 64 65 29 20 74 29 29 0a  | ode-ignore-dynamic.fn-node).t)). | 
| 52c60 |  20 20 20 20 3b 3b 20 64 79 6e 61 6d 69 63 61 6c    6c 79 20 62 69 6e 64 20 61 6c 6c 20 74 68 65 20  | ....;;.dynamically.bind.all.the. | 
| 52c80 |  70 65 72 2d 66 75 6e 63 74 69 6f 6e 20 76 61 72    69 61 62 6c 65 73 0a 20 20 20 20 28 6c 65 74 20  | per-function.variables.....(let. | 
| 52ca0 |  28 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63    72 69 70 74 2d 6f 72 2d 66 6e 20 66 6e 2d 6e 6f  | ((js2-current-script-or-fn.fn-no | 
| 52cc0 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65  | de)...........(js2-current-scope | 
| 52ce0 |  20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 6e 65 73 74 69 6e 67  | .fn-node)...........(js2-nesting | 
| 52d00 |  2d 6f 66 2d 77 69 74 68 20 30 29 0a 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 65 6e 64 2d 66  | -of-with.0)...........(js2-end-f | 
| 52d20 |  6c 61 67 73 20 30 29 0a 20 20 20 20 20 20 20 20    20 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 0a  | lags.0)...........js2-label-set. | 
| 52d40 |  20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 6c 6f    6f 70 2d 73 65 74 0a 20 20 20 20 20 20 20 20 20  | ..........js2-loop-set.......... | 
| 52d60 |  20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e 64 2d 73 77    69 74 63 68 2d 73 65 74 29 0a 20 20 20 20 20 20  | .js2-loop-and-switch-set)....... | 
| 52d80 |  28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74    69 6f 6e 2d 70 61 72 61 6d 73 20 66 75 6e 63 74  | (js2-parse-function-params.funct | 
| 52da0 |  69 6f 6e 2d 74 79 70 65 20 66 6e 2d 6e 6f 64 65    20 70 6f 73 29 0a 20 20 20 20 20 20 28 77 68 65  | ion-type.fn-node.pos).......(whe | 
| 52dc0 |  6e 20 28 65 71 20 66 75 6e 63 74 69 6f 6e 2d 74    79 70 65 20 27 46 55 4e 43 54 49 4f 4e 5f 41 52  | n.(eq.function-type.'FUNCTION_AR | 
| 52de0 |  52 4f 57 29 0a 20 20 20 20 20 20 20 20 28 6a 73    32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32  | ROW).........(js2-must-match.js2 | 
| 52e00 |  2d 41 52 52 4f 57 20 22 6d 73 67 2e 62 61 64 2e    61 72 72 6f 77 2e 61 72 67 73 22 29 29 0a 20 20  | -ARROW."msg.bad.arrow.args"))... | 
| 52e20 |  20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 3d    20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65  | ....(if.(and.(>=.js2-language-ve | 
| 52e40 |  72 73 69 6f 6e 20 31 38 30 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 28 6a  | rsion.180)................(/=.(j | 
| 52e60 |  73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a    73 32 2d 4c 43 29 29 0a 20 20 20 20 20 20 20 20  | s2-peek-token).js2-LC))......... | 
| 52e80 |  20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e    63 74 69 6f 6e 2d 63 6c 6f 73 75 72 65 2d 62 6f  | ..(js2-parse-function-closure-bo | 
| 52ea0 |  64 79 20 66 6e 2d 6e 6f 64 65 29 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66  | dy.fn-node).........(js2-parse-f | 
| 52ec0 |  75 6e 63 74 69 6f 6e 2d 62 6f 64 79 20 66 6e 2d    6e 6f 64 65 29 29 0a 20 20 20 20 20 20 28 6a 73  | unction-body.fn-node)).......(js | 
| 52ee0 |  32 2d 63 68 65 63 6b 2d 69 6e 63 6f 6e 73 69 73    74 65 6e 74 2d 72 65 74 75 72 6e 2d 77 61 72 6e  | 2-check-inconsistent-return-warn | 
| 52f00 |  69 6e 67 20 66 6e 2d 6e 6f 64 65 20 6e 61 6d 65    29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6e  | ing.fn-node.name)........(when.n | 
| 52f20 |  61 6d 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72  | ame.........(js2-node-add-childr | 
| 52f40 |  65 6e 20 66 6e 2d 6e 6f 64 65 20 6e 61 6d 65 29    0a 20 20 20 20 20 20 20 20 3b 3b 20 46 75 6e 63  | en.fn-node.name).........;;.Func | 
| 52f60 |  74 69 6f 6e 20 65 78 70 72 65 73 73 69 6f 6e 73    20 64 65 66 69 6e 65 20 61 20 6e 61 6d 65 20 6f  | tion.expressions.define.a.name.o | 
| 52f80 |  6e 6c 79 20 69 6e 20 74 68 65 20 62 6f 64 79 20    6f 66 20 74 68 65 0a 20 20 20 20 20 20 20 20 3b  | nly.in.the.body.of.the.........; | 
| 52fa0 |  3b 20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e 64 20    6f 6e 6c 79 20 69 66 20 6e 6f 74 20 68 69 64 64  | ;.function,.and.only.if.not.hidd | 
| 52fc0 |  65 6e 20 62 79 20 61 20 70 61 72 61 6d 65 74 65    72 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28  | en.by.a.parameter.name.........( | 
| 52fe0 |  77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 66 75    6e 63 74 69 6f 6e 2d 74 79 70 65 20 27 46 55 4e  | when.(and.(eq.function-type.'FUN | 
| 53000 |  43 54 49 4f 4e 5f 45 58 50 52 45 53 53 49 4f 4e    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | CTION_EXPRESSION)............... | 
| 53020 |  20 20 20 20 20 28 6e 75 6c 6c 20 28 6a 73 32 2d    73 63 6f 70 65 2d 67 65 74 2d 73 79 6d 62 6f 6c  | .....(null.(js2-scope-get-symbol | 
| 53040 |  20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 6f    70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-current-scope.............. | 
| 53060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 53080 |  20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65    2d 6e 61 6d 65 20 6e 61 6d 65 29 29 29 29 0a 20  | ..(js2-name-node-name.name)))).. | 
| 530a0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65    66 69 6e 65 2d 73 79 6d 62 6f 6c 20 6a 73 32 2d  | .........(js2-define-symbol.js2- | 
| 530c0 |  46 55 4e 43 54 49 4f 4e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | FUNCTION........................ | 
| 530e0 |  20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d    6e 6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a  | ......(js2-name-node-name.name). | 
| 53100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 66 6e 2d  | .............................fn- | 
| 53120 |  6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 65 71 20 66 75 6e 63 74 69 6f  | node)).........(when.(eq.functio | 
| 53140 |  6e 2d 74 79 70 65 20 27 46 55 4e 43 54 49 4f 4e    5f 53 54 41 54 45 4d 45 4e 54 29 0a 20 20 20 20  | n-type.'FUNCTION_STATEMENT)..... | 
| 53160 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72    64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e  | ......(js2-record-imenu-function | 
| 53180 |  73 20 66 6e 2d 6e 6f 64 65 29 29 29 29 0a 0a 20    20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f  | s.fn-node))))......(setf.(js2-no | 
| 531a0 |  64 65 2d 6c 65 6e 20 66 6e 2d 6e 6f 64 65 29 20    28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | de-len.fn-node).(-.(js2-current- | 
| 531c0 |  74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29    0a 20 20 20 20 3b 3b 20 52 68 69 6e 6f 20 64 6f  | token-end).pos)).....;;.Rhino.do | 
| 531e0 |  65 73 6e 27 74 20 64 6f 20 74 68 69 73 2c 20 62    75 74 20 77 65 20 6e 65 65 64 20 69 74 20 66 6f  | esn't.do.this,.but.we.need.it.fo | 
| 53200 |  72 20 66 69 6e 64 69 6e 67 20 75 6e 64 65 63 6c    61 72 65 64 20 76 61 72 73 2e 0a 20 20 20 20 3b  | r.finding.undeclared.vars......; | 
| 53220 |  3b 20 57 65 20 77 61 69 74 20 75 6e 74 69 6c 20    61 66 74 65 72 20 70 61 72 73 69 6e 67 20 74 68  | ;.We.wait.until.after.parsing.th | 
| 53240 |  65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65    74 20 69 74 73 20 70 61 72 65 6e 74 20 73 63 6f  | e.function.to.set.its.parent.sco | 
| 53260 |  70 65 2c 0a 20 20 20 20 3b 3b 20 73 69 6e 63 65    20 60 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d  | pe,.....;;.since.`js2-define-sym | 
| 53280 |  62 6f 6c 27 20 6e 65 65 64 73 20 74 68 65 20 64    65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 63 68  | bol'.needs.the.defining-scope.ch | 
| 532a0 |  65 63 6b 20 74 6f 20 73 74 6f 70 0a 20 20 20 20    3b 3b 20 61 74 20 74 68 65 20 66 75 6e 63 74 69  | eck.to.stop.....;;.at.the.functi | 
| 532c0 |  6f 6e 20 62 6f 75 6e 64 61 72 79 20 77 68 65 6e    20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 72 65  | on.boundary.when.checking.for.re | 
| 532e0 |  64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 20 20    20 20 28 73 65 74 66 20 28 6a 73 32 2d 73 63 6f  | declarations......(setf.(js2-sco | 
| 53300 |  70 65 2d 70 61 72 65 6e 74 2d 73 63 6f 70 65 20    66 6e 2d 6e 6f 64 65 29 20 6a 73 32 2d 63 75 72  | pe-parent-scope.fn-node).js2-cur | 
| 53320 |  72 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 20 20    66 6e 2d 6e 6f 64 65 29 29 0a 0a 28 64 65 66 75  | rent-scope).....fn-node))..(defu | 
| 53340 |  6e 20 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63    74 69 6f 6e 20 28 66 75 6e 63 74 69 6f 6e 2d 74  | n.js2-parse-function.(function-t | 
| 53360 |  79 70 65 20 70 6f 73 20 73 74 61 72 2d 70 20 26    6f 70 74 69 6f 6e 61 6c 20 61 73 79 6e 63 2d 70  | ype.pos.star-p.&optional.async-p | 
| 53380 |  20 6e 61 6d 65 29 0a 20 20 22 46 75 6e 63 74 69    6f 6e 20 70 61 72 73 65 72 2e 20 20 46 55 4e 43  | .name)..."Function.parser...FUNC | 
| 533a0 |  54 49 4f 4e 2d 54 59 50 45 20 69 73 20 61 20 73    79 6d 62 6f 6c 2c 20 50 4f 53 20 69 73 20 74 68  | TION-TYPE.is.a.symbol,.POS.is.th | 
| 533c0 |  65 0a 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74    68 65 20 66 69 72 73 74 20 74 6f 6b 65 6e 20 28  | e.beginning.of.the.first.token.( | 
| 533e0 |  66 75 6e 63 74 69 6f 6e 20 6b 65 79 77 6f 72 64    2c 20 75 6e 6c 65 73 73 20 69 74 27 73 20 61 6e  | function.keyword,.unless.it's.an | 
| 53400 |  0a 61 72 72 6f 77 20 66 75 6e 63 74 69 6f 6e 29    2c 20 4e 41 4d 45 20 69 73 20 6a 73 32 2d 6e 61  | .arrow.function),.NAME.is.js2-na | 
| 53420 |  6d 65 2d 6e 6f 64 65 2e 22 0a 20 20 28 6c 65 74    20 28 28 63 6f 6e 74 69 6e 75 65 20 74 29 0a 20  | me-node."...(let.((continue.t).. | 
| 53440 |  20 20 20 20 20 20 20 74 73 2d 73 74 61 74 65 0a    20 20 20 20 20 20 20 20 66 6e 2d 6e 6f 64 65 0a  | .......ts-state.........fn-node. | 
| 53460 |  20 20 20 20 20 20 20 20 3b 3b 20 50 72 65 73 65    72 76 65 20 73 74 72 69 63 74 20 73 74 61 74 65  | ........;;.Preserve.strict.state | 
| 53480 |  20 6f 75 74 73 69 64 65 20 74 68 69 73 20 66 75    6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20  | .outside.this.function.......... | 
| 534a0 |  28 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74 72 69    63 74 2d 64 69 72 65 63 74 69 76 65 20 6a 73 32  | (js2-in-use-strict-directive.js2 | 
| 534c0 |  2d 69 6e 2d 75 73 65 2d 73 74 72 69 63 74 2d 64    69 72 65 63 74 69 76 65 29 29 0a 20 20 20 20 3b  | -in-use-strict-directive)).....; | 
| 534e0 |  3b 20 50 61 72 73 65 20 6d 75 6c 74 69 70 6c 65    20 74 69 6d 65 73 20 69 66 20 61 20 6e 65 77 20  | ;.Parse.multiple.times.if.a.new. | 
| 53500 |  73 74 72 69 63 74 20 6d 6f 64 65 20 64 69 72 65    63 74 69 76 65 20 69 73 20 64 69 73 63 6f 76 65  | strict.mode.directive.is.discove | 
| 53520 |  72 65 64 20 69 6e 20 74 68 65 0a 20 20 20 20 3b    3b 20 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 2c  | red.in.the.....;;.function.body, | 
| 53540 |  20 61 73 20 6e 65 77 20 72 75 6c 65 73 20 77 69    6c 6c 20 62 65 20 72 65 74 72 6f 61 63 74 69 76  | .as.new.rules.will.be.retroactiv | 
| 53560 |  65 6c 79 20 61 70 70 6c 69 65 64 20 74 6f 20 74    68 65 20 6c 65 67 61 6c 69 74 79 0a 20 20 20 20  | ely.applied.to.the.legality..... | 
| 53580 |  3b 3b 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 6e    61 6d 65 73 20 61 6e 64 20 70 61 72 61 6d 65 74  | ;;.of.function.names.and.paramet | 
| 535a0 |  65 72 73 2e 0a 20 20 20 20 28 77 68 69 6c 65 20    63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28  | ers......(while.continue.......( | 
| 535c0 |  73 65 74 71 20 74 73 2d 73 74 61 74 65 20 28 6d    61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74 65  | setq.ts-state.(make-js2-ts-state | 
| 535e0 |  29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63    6f 6e 74 69 6e 75 65 20 28 63 61 74 63 68 20 27  | )).......(setq.continue.(catch.' | 
| 53600 |  72 65 70 61 72 73 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | reparse........................( | 
| 53620 |  73 65 74 71 20 66 6e 2d 6e 6f 64 65 20 28 6a 73    32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e  | setq.fn-node.(js2-parse-function | 
| 53640 |  2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -internal....................... | 
| 53660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    66 75 6e 63 74 69 6f 6e 2d 74 79 70 65 20 70 6f  | ................function-type.po | 
| 53680 |  73 20 73 74 61 72 2d 70 20 61 73 79 6e 63 2d 70    20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20  | s.star-p.async-p.name))......... | 
| 536a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 44 6f 6e 27 74 20 63 6f 6e 74 69 6e 75 65  | ...............;;.Don't.continue | 
| 536c0 |  2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20  | .........................nil)).. | 
| 536e0 |  20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 69    6e 75 65 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | .....(when.continue.........(js2 | 
| 53700 |  2d 74 73 2d 73 65 65 6b 20 74 73 2d 73 74 61 74    65 29 29 29 0a 20 20 20 20 66 6e 2d 6e 6f 64 65  | -ts-seek.ts-state))).....fn-node | 
| 53720 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 73 20  | ))..(defun.js2-parse-statements. | 
| 53740 |  28 26 6f 70 74 69 6f 6e 61 6c 20 70 61 72 65 6e    74 29 0a 20 20 22 50 61 72 73 65 20 61 20 73 74  | (&optional.parent)..."Parse.a.st | 
| 53760 |  61 74 65 6d 65 6e 74 20 6c 69 73 74 2e 20 20 4c    61 73 74 20 74 6f 6b 65 6e 20 63 6f 6e 73 75 6d  | atement.list...Last.token.consum | 
| 53780 |  65 64 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 4c    43 2e 0a 0a 50 41 52 45 4e 54 20 63 61 6e 20 62  | ed.must.be.js2-LC...PARENT.can.b | 
| 537a0 |  65 20 61 20 60 6a 73 32 2d 62 6c 6f 63 6b 2d 6e    6f 64 65 27 2c 20 69 6e 20 77 68 69 63 68 20 63  | e.a.`js2-block-node',.in.which.c | 
| 537c0 |  61 73 65 20 74 68 65 20 73 74 61 74 65 6d 65 6e    74 73 20 61 72 65 0a 61 70 70 65 6e 64 65 64 20  | ase.the.statements.are.appended. | 
| 537e0 |  74 6f 20 50 41 52 45 4e 54 2e 20 20 4f 74 68 65    72 77 69 73 65 20 61 20 6e 65 77 20 60 6a 73 32  | to.PARENT...Otherwise.a.new.`js2 | 
| 53800 |  2d 62 6c 6f 63 6b 2d 6e 6f 64 65 27 20 69 73 20    63 72 65 61 74 65 64 0a 61 6e 64 20 72 65 74 75  | -block-node'.is.created.and.retu | 
| 53820 |  72 6e 65 64 2e 0a 0a 54 68 69 73 20 66 75 6e 63    74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 6d 61  | rned...This.function.does.not.ma | 
| 53840 |  74 63 68 20 74 68 65 20 63 6c 6f 73 69 6e 67 20    6a 73 32 2d 52 43 3a 20 74 68 65 20 63 61 6c 6c  | tch.the.closing.js2-RC:.the.call | 
| 53860 |  65 72 0a 6d 61 74 63 68 65 73 20 74 68 65 20 52    43 20 73 6f 20 69 74 20 63 61 6e 20 70 72 6f 76  | er.matches.the.RC.so.it.can.prov | 
| 53880 |  69 64 65 20 61 20 73 75 69 74 61 62 6c 65 20 65    72 72 6f 72 20 6d 65 73 73 61 67 65 20 69 66 20  | ide.a.suitable.error.message.if. | 
| 538a0 |  6e 6f 74 0a 6d 61 74 63 68 65 64 2e 20 20 54 68    69 73 20 6d 65 61 6e 73 20 69 74 27 73 20 75 70  | not.matched...This.means.it's.up | 
| 538c0 |  20 74 6f 20 74 68 65 20 63 61 6c 6c 65 72 20 74    6f 20 73 65 74 20 74 68 65 20 6c 65 6e 67 74 68  | .to.the.caller.to.set.the.length | 
| 538e0 |  20 6f 66 0a 74 68 65 20 6e 6f 64 65 20 74 6f 20    69 6e 63 6c 75 64 65 20 74 68 65 20 63 6c 6f 73  | .of.the.node.to.include.the.clos | 
| 53900 |  69 6e 67 20 52 43 2e 20 20 54 68 65 20 6e 6f 64    65 20 73 74 61 72 74 20 70 6f 73 20 69 73 20 73  | ing.RC...The.node.start.pos.is.s | 
| 53920 |  65 74 20 74 6f 0a 74 68 65 20 61 62 73 6f 6c 75    74 65 20 62 75 66 66 65 72 20 73 74 61 72 74 20  | et.to.the.absolute.buffer.start. | 
| 53940 |  70 6f 73 69 74 69 6f 6e 2c 20 61 6e 64 20 74 68    65 20 63 61 6c 6c 65 72 20 73 68 6f 75 6c 64 20  | position,.and.the.caller.should. | 
| 53960 |  66 69 78 20 69 74 0a 75 70 20 74 6f 20 62 65 20    72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20  | fix.it.up.to.be.relative.to.the. | 
| 53980 |  70 61 72 65 6e 74 20 6e 6f 64 65 2e 20 20 41 6c    6c 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 74 68  | parent.node...All.children.of.th | 
| 539a0 |  69 73 20 62 6c 6f 63 6b 0a 6e 6f 64 65 20 61 72    65 20 67 69 76 65 6e 20 72 65 6c 61 74 69 76 65  | is.block.node.are.given.relative | 
| 539c0 |  20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73    20 61 6e 64 20 63 6f 72 72 65 63 74 20 6c 65 6e  | .start.positions.and.correct.len | 
| 539e0 |  67 74 68 73 2e 22 0a 20 20 28 6c 65 74 20 28 28    70 6e 20 28 6f 72 20 70 61 72 65 6e 74 20 28 6d  | gths."...(let.((pn.(or.parent.(m | 
| 53a00 |  61 6b 65 2d 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f    64 65 29 29 29 0a 20 20 20 20 20 20 20 20 74 74  | ake-js2-block-node))).........tt | 
| 53a20 |  29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e    64 20 28 3e 20 28 73 65 74 71 20 74 74 20 28 6a  | ).....(while.(and.(>.(setq.tt.(j | 
| 53a40 |  73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 20    6a 73 32 2d 45 4f 46 29 0a 20 20 20 20 20 20 20  | s2-peek-token)).js2-EOF)........ | 
| 53a60 |  20 20 20 20 20 20 20 20 20 28 2f 3d 20 74 74 20    6a 73 32 2d 52 43 29 29 0a 20 20 20 20 20 20 28  | .........(/=.tt.js2-RC)).......( | 
| 53a80 |  6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70    75 73 68 20 70 6e 20 28 6a 73 32 2d 70 61 72 73  | js2-block-node-push.pn.(js2-pars | 
| 53aa0 |  65 2d 73 74 61 74 65 6d 65 6e 74 29 29 29 0a 20    20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20  | e-statement))).....pn))..(defun. | 
| 53ac0 |  6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d    65 6e 74 20 28 29 0a 20 20 28 6c 65 74 20 28 70  | js2-parse-statement.()...(let.(p | 
| 53ae0 |  6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 3b    3b 20 63 6f 61 72 73 65 2d 67 72 61 69 6e 65 64  | n.beg.end).....;;.coarse-grained | 
| 53b00 |  20 75 73 65 72 2d 69 6e 74 65 72 72 75 70 74 20    63 68 65 63 6b 20 2d 20 6e 65 65 64 73 20 77 6f  | .user-interrupt.check.-.needs.wo | 
| 53b20 |  72 6b 0a 20 20 20 20 28 61 6e 64 20 6a 73 32 2d    70 61 72 73 65 2d 69 6e 74 65 72 72 75 70 74 61  | rk.....(and.js2-parse-interrupta | 
| 53b40 |  62 6c 65 2d 70 0a 20 20 20 20 20 20 20 20 20 28    7a 65 72 6f 70 20 28 25 20 28 63 6c 2d 69 6e 63  | ble-p..........(zerop.(%.(cl-inc | 
| 53b60 |  66 20 6a 73 32 2d 70 61 72 73 65 2d 73 74 6d 74    2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20  | f.js2-parse-stmt-count)......... | 
| 53b80 |  20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 73    74 61 74 65 6d 65 6e 74 73 2d 70 65 72 2d 70 61  | ...........js2-statements-per-pa | 
| 53ba0 |  75 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 28    69 6e 70 75 74 2d 70 65 6e 64 69 6e 67 2d 70 29  | use))..........(input-pending-p) | 
| 53bc0 |  0a 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77    20 27 69 6e 74 65 72 72 75 70 74 65 64 20 74 29  | ..........(throw.'interrupted.t) | 
| 53be0 |  29 0a 20 20 20 20 28 73 65 74 71 20 70 6e 20 28    6a 73 32 2d 73 74 61 74 65 6d 65 6e 74 2d 68 65  | ).....(setq.pn.(js2-statement-he | 
| 53c00 |  6c 70 65 72 29 29 0a 20 20 20 20 3b 3b 20 6e 6f    2d 73 69 64 65 2d 65 66 66 65 63 74 73 20 77 61  | lper)).....;;.no-side-effects.wa | 
| 53c20 |  72 6e 69 6e 67 20 63 68 65 63 6b 0a 20 20 20 20    28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 6e 6f 64  | rning.check.....(unless.(js2-nod | 
| 53c40 |  65 2d 68 61 73 2d 73 69 64 65 2d 65 66 66 65 63    74 73 20 70 6e 29 0a 20 20 20 20 20 20 28 73 65  | e-has-side-effects.pn).......(se | 
| 53c60 |  74 71 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65    2d 65 6e 64 20 70 6e 29 29 0a 20 20 20 20 20 20  | tq.end.(js2-node-end.pn))....... | 
| 53c80 |  28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a    20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68  | (save-excursion.........(goto-ch | 
| 53ca0 |  61 72 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20    28 73 65 74 71 20 62 65 67 20 28 6d 61 78 20 28  | ar.end).........(setq.beg.(max.( | 
| 53cc0 |  6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29    20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29  | js2-node-pos.pn).(point-at-bol)) | 
| 53ce0 |  29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 61 64    64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67  | )).......(js2-add-strict-warning | 
| 53d00 |  20 22 6d 73 67 2e 6e 6f 2e 73 69 64 65 2e 65 66    66 65 63 74 73 22 20 6e 69 6c 20 62 65 67 20 65  | ."msg.no.side.effects".nil.beg.e | 
| 53d20 |  6e 64 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 3b    3b 20 54 68 65 73 65 20 63 6f 72 72 65 73 70 6f  | nd)).....pn))..;;.These.correspo | 
| 53d40 |  6e 64 20 74 6f 20 74 68 65 20 73 77 69 74 63 68    20 63 61 73 65 73 20 69 6e 20 50 61 72 73 65 72  | nd.to.the.switch.cases.in.Parser | 
| 53d60 |  2e 73 74 61 74 65 6d 65 6e 74 48 65 6c 70 65 72    0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70  | .statementHelper.(defconst.js2-p | 
| 53d80 |  61 72 73 65 72 73 0a 20 20 28 6c 65 74 20 28 28    70 61 72 73 65 72 73 20 28 6d 61 6b 65 2d 76 65  | arsers...(let.((parsers.(make-ve | 
| 53da0 |  63 74 6f 72 20 6a 73 32 2d 6e 75 6d 2d 74 6f 6b    65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ctor.js2-num-tokens............. | 
| 53dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d  | ....................#'js2-parse- | 
| 53de0 |  65 78 70 72 2d 73 74 6d 74 29 29 29 0a 20 20 20    20 28 61 73 65 74 20 70 61 72 73 65 72 73 20 6a  | expr-stmt))).....(aset.parsers.j | 
| 53e00 |  73 32 2d 42 52 45 41 4b 20 20 20 20 20 23 27 6a    73 32 2d 70 61 72 73 65 2d 62 72 65 61 6b 29 0a  | s2-BREAK.....#'js2-parse-break). | 
| 53e20 |  20 20 20 20 28 61 73 65 74 20 70 61 72 73 65 72    73 20 6a 73 32 2d 43 4c 41 53 53 20 20 20 20 20  | ....(aset.parsers.js2-CLASS..... | 
| 53e40 |  23 27 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61 73    73 2d 73 74 6d 74 29 0a 20 20 20 20 28 61 73 65  | #'js2-parse-class-stmt).....(ase | 
| 53e60 |  74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 43 4f    4e 53 54 20 20 20 20 20 23 27 6a 73 32 2d 70 61  | t.parsers.js2-CONST.....#'js2-pa | 
| 53e80 |  72 73 65 2d 63 6f 6e 73 74 2d 76 61 72 29 0a 20    20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73  | rse-const-var).....(aset.parsers | 
| 53ea0 |  20 6a 73 32 2d 43 4f 4e 54 49 4e 55 45 20 20 23    27 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 74 69  | .js2-CONTINUE..#'js2-parse-conti | 
| 53ec0 |  6e 75 65 29 0a 20 20 20 20 28 61 73 65 74 20 70    61 72 73 65 72 73 20 6a 73 32 2d 44 45 42 55 47  | nue).....(aset.parsers.js2-DEBUG | 
| 53ee0 |  47 45 52 20 20 23 27 6a 73 32 2d 70 61 72 73 65    2d 64 65 62 75 67 67 65 72 29 0a 20 20 20 20 28  | GER..#'js2-parse-debugger).....( | 
| 53f00 |  61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32    2d 44 45 46 41 55 4c 54 20 20 20 23 27 6a 73 32  | aset.parsers.js2-DEFAULT...#'js2 | 
| 53f20 |  2d 70 61 72 73 65 2d 64 65 66 61 75 6c 74 2d 78    6d 6c 2d 6e 61 6d 65 73 70 61 63 65 29 0a 20 20  | -parse-default-xml-namespace)... | 
| 53f40 |  20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20    6a 73 32 2d 44 4f 20 20 20 20 20 20 20 20 23 27  | ..(aset.parsers.js2-DO........#' | 
| 53f60 |  6a 73 32 2d 70 61 72 73 65 2d 64 6f 29 0a 20 20    20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20  | js2-parse-do).....(aset.parsers. | 
| 53f80 |  6a 73 32 2d 45 58 50 4f 52 54 20 20 20 20 23 27    6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f 72 74  | js2-EXPORT....#'js2-parse-export | 
| 53fa0 |  29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73    65 72 73 20 6a 73 32 2d 46 4f 52 20 20 20 20 20  | ).....(aset.parsers.js2-FOR..... | 
| 53fc0 |  20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 66 6f    72 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72  | ..#'js2-parse-for).....(aset.par | 
| 53fe0 |  73 65 72 73 20 6a 73 32 2d 46 55 4e 43 54 49 4f    4e 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 66  | sers.js2-FUNCTION..#'js2-parse-f | 
| 54000 |  75 6e 63 74 69 6f 6e 2d 73 74 6d 74 29 0a 20 20    20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20  | unction-stmt).....(aset.parsers. | 
| 54020 |  6a 73 32 2d 49 46 20 20 20 20 20 20 20 20 23 27    6a 73 32 2d 70 61 72 73 65 2d 69 66 29 0a 20 20  | js2-IF........#'js2-parse-if)... | 
| 54040 |  20 20 28 61 73 65 74 20 70 61 72 73 65 72 73 20    6a 73 32 2d 49 4d 50 4f 52 54 20 20 20 20 23 27  | ..(aset.parsers.js2-IMPORT....#' | 
| 54060 |  6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74    2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6f 72 2d  | js2-parse-import-declaration-or- | 
| 54080 |  65 78 70 72 29 0a 20 20 20 20 28 61 73 65 74 20    70 61 72 73 65 72 73 20 6a 73 32 2d 4c 43 20 20  | expr).....(aset.parsers.js2-LC.. | 
| 540a0 |  20 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73    65 2d 62 6c 6f 63 6b 29 0a 20 20 20 20 28 61 73  | ......#'js2-parse-block).....(as | 
| 540c0 |  65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d 4c    45 54 20 20 20 20 20 20 20 23 27 6a 73 32 2d 70  | et.parsers.js2-LET.......#'js2-p | 
| 540e0 |  61 72 73 65 2d 6c 65 74 2d 73 74 6d 74 29 0a 20    20 20 20 28 61 73 65 74 20 70 61 72 73 65 72 73  | arse-let-stmt).....(aset.parsers | 
| 54100 |  20 6a 73 32 2d 4e 41 4d 45 20 20 20 20 20 20 23    27 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65 2d  | .js2-NAME......#'js2-parse-name- | 
| 54120 |  6f 72 2d 6c 61 62 65 6c 29 0a 20 20 20 20 28 61    73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d  | or-label).....(aset.parsers.js2- | 
| 54140 |  52 45 54 55 52 4e 20 20 20 20 23 27 6a 73 32 2d    70 61 72 73 65 2d 72 65 74 2d 79 69 65 6c 64 29  | RETURN....#'js2-parse-ret-yield) | 
| 54160 |  0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73 65    72 73 20 6a 73 32 2d 53 45 4d 49 20 20 20 20 20  | .....(aset.parsers.js2-SEMI..... | 
| 54180 |  20 23 27 6a 73 32 2d 70 61 72 73 65 2d 73 65 6d    69 29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72  | .#'js2-parse-semi).....(aset.par | 
| 541a0 |  73 65 72 73 20 6a 73 32 2d 53 57 49 54 43 48 20    20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 73  | sers.js2-SWITCH....#'js2-parse-s | 
| 541c0 |  77 69 74 63 68 29 0a 20 20 20 20 28 61 73 65 74    20 70 61 72 73 65 72 73 20 6a 73 32 2d 54 48 52  | witch).....(aset.parsers.js2-THR | 
| 541e0 |  4f 57 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72    73 65 2d 74 68 72 6f 77 29 0a 20 20 20 20 28 61  | OW.....#'js2-parse-throw).....(a | 
| 54200 |  73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32 2d    54 52 59 20 20 20 20 20 20 20 23 27 6a 73 32 2d  | set.parsers.js2-TRY.......#'js2- | 
| 54220 |  70 61 72 73 65 2d 74 72 79 29 0a 20 20 20 20 28    61 73 65 74 20 70 61 72 73 65 72 73 20 6a 73 32  | parse-try).....(aset.parsers.js2 | 
| 54240 |  2d 56 41 52 20 20 20 20 20 20 20 23 27 6a 73 32    2d 70 61 72 73 65 2d 63 6f 6e 73 74 2d 76 61 72  | -VAR.......#'js2-parse-const-var | 
| 54260 |  29 0a 20 20 20 20 28 61 73 65 74 20 70 61 72 73    65 72 73 20 6a 73 32 2d 57 48 49 4c 45 20 20 20  | ).....(aset.parsers.js2-WHILE... | 
| 54280 |  20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d 77 68    69 6c 65 29 0a 20 20 20 20 28 61 73 65 74 20 70  | ..#'js2-parse-while).....(aset.p | 
| 542a0 |  61 72 73 65 72 73 20 6a 73 32 2d 57 49 54 48 20    20 20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65  | arsers.js2-WITH......#'js2-parse | 
| 542c0 |  2d 77 69 74 68 29 0a 20 20 20 20 28 61 73 65 74    20 70 61 72 73 65 72 73 20 6a 73 32 2d 59 49 45  | -with).....(aset.parsers.js2-YIE | 
| 542e0 |  4c 44 20 20 20 20 20 23 27 6a 73 32 2d 70 61 72    73 65 2d 72 65 74 2d 79 69 65 6c 64 29 0a 20 20  | LD.....#'js2-parse-ret-yield)... | 
| 54300 |  20 20 70 61 72 73 65 72 73 29 0a 20 20 22 41 20    76 65 63 74 6f 72 20 6d 61 70 70 69 6e 67 20 74  | ..parsers)..."A.vector.mapping.t | 
| 54320 |  6f 6b 65 6e 20 74 79 70 65 73 20 74 6f 20 70 61    72 73 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22  | oken.types.to.parser.functions." | 
| 54340 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61    72 73 65 2d 77 61 72 6e 2d 6d 69 73 73 69 6e 67  | )..(defun.js2-parse-warn-missing | 
| 54360 |  2d 73 65 6d 69 20 28 62 65 67 20 65 6e 64 29 0a    20 20 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d  | -semi.(beg.end)...(and.js2-mode- | 
| 54380 |  73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61 72 6e    69 6e 67 73 0a 20 20 20 20 20 20 20 6a 73 32 2d  | show-strict-warnings........js2- | 
| 543a0 |  73 74 72 69 63 74 2d 6d 69 73 73 69 6e 67 2d 73    65 6d 69 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20  | strict-missing-semi-warning..... | 
| 543c0 |  20 20 20 28 6a 73 32 2d 61 64 64 2d 73 74 72 69    63 74 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20  | ...(js2-add-strict-warning...... | 
| 543e0 |  20 20 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e    73 65 6d 69 22 20 6e 69 6c 0a 20 20 20 20 20 20  | ..."msg.missing.semi".nil....... | 
| 54400 |  20 20 3b 3b 20 62 61 63 6b 20 75 70 20 74 6f 20    62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 73 74 61  | ..;;.back.up.to.beginning.of.sta | 
| 54420 |  74 65 6d 65 6e 74 20 6f 72 20 6c 69 6e 65 0a 20    20 20 20 20 20 20 20 28 6d 61 78 20 62 65 67 20  | tement.or.line.........(max.beg. | 
| 54440 |  28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (save-excursion................. | 
| 54460 |  20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e    64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(goto-char.end).............. | 
| 54480 |  20 20 20 20 20 20 28 70 6f 69 6e 74 2d 61 74 2d    62 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 65  | ......(point-at-bol))).........e | 
| 544a0 |  6e 64 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74    20 6a 73 32 2d 6e 6f 2d 73 65 6d 69 2d 69 6e 73  | nd)))..(defconst.js2-no-semi-ins | 
| 544c0 |  65 72 74 69 6f 6e 0a 20 20 28 6c 69 73 74 20 6a    73 32 2d 49 46 0a 20 20 20 20 20 20 20 20 6a 73  | ertion...(list.js2-IF.........js | 
| 544e0 |  32 2d 53 57 49 54 43 48 0a 20 20 20 20 20 20 20    20 6a 73 32 2d 57 48 49 4c 45 0a 20 20 20 20 20  | 2-SWITCH.........js2-WHILE...... | 
| 54500 |  20 20 20 6a 73 32 2d 44 4f 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 46 4f 52 0a 20 20 20 20 20 20  | ...js2-DO.........js2-FOR....... | 
| 54520 |  20 20 6a 73 32 2d 54 52 59 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 57 49 54 48 0a 20 20 20 20 20  | ..js2-TRY.........js2-WITH...... | 
| 54540 |  20 20 20 6a 73 32 2d 4c 43 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 45 52 52 4f 52 0a 20 20 20 20  | ...js2-LC.........js2-ERROR..... | 
| 54560 |  20 20 20 20 6a 73 32 2d 53 45 4d 49 0a 20 20 20    20 20 20 20 20 6a 73 32 2d 43 4c 41 53 53 0a 20  | ....js2-SEMI.........js2-CLASS.. | 
| 54580 |  20 20 20 20 20 20 20 6a 73 32 2d 46 55 4e 43 54    49 4f 4e 0a 20 20 20 20 20 20 20 20 6a 73 32 2d  | .......js2-FUNCTION.........js2- | 
| 545a0 |  45 58 50 4f 52 54 29 0a 20 20 22 4c 69 73 74 20    6f 66 20 74 6f 6b 65 6e 73 20 74 68 61 74 20 64  | EXPORT)..."List.of.tokens.that.d | 
| 545c0 |  6f 6e 27 74 20 64 6f 20 61 75 74 6f 6d 61 74 69    63 20 73 65 6d 69 63 6f 6c 6f 6e 20 69 6e 73 65  | on't.do.automatic.semicolon.inse | 
| 545e0 |  72 74 69 6f 6e 2e 22 29 0a 0a 28 64 65 66 63 6f    6e 73 74 20 6a 73 32 2d 61 75 74 6f 69 6e 73 65  | rtion.")..(defconst.js2-autoinse | 
| 54600 |  72 74 2d 73 65 6d 69 2d 61 6e 64 2d 77 61 72 6e    0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 45 52 52  | rt-semi-and-warn...(list.js2-ERR | 
| 54620 |  4f 52 20 6a 73 32 2d 45 4f 46 20 6a 73 32 2d 52    43 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | OR.js2-EOF.js2-RC))..(defun.js2- | 
| 54640 |  73 74 61 74 65 6d 65 6e 74 2d 68 65 6c 70 65 72    20 28 29 0a 20 20 28 6c 65 74 2a 20 28 28 74 74  | statement-helper.()...(let*.((tt | 
| 54660 |  20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29    29 0a 20 20 20 20 20 20 20 20 20 28 66 69 72 73  | .(js2-get-token))..........(firs | 
| 54680 |  74 2d 74 74 20 74 74 29 0a 20 20 20 20 20 20 20    20 20 28 61 73 79 6e 63 2d 70 6f 73 20 28 6a 73  | t-tt.tt)..........(async-pos.(js | 
| 546a0 |  32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66 75    6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20  | 2-match-async-function))........ | 
| 546c0 |  20 20 28 70 61 72 73 65 72 20 28 69 66 20 28 3d    20 74 74 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20  | ..(parser.(if.(=.tt.js2-ERROR).. | 
| 546e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 23 27 6a 73 32 2d 70 61 72 73 65 2d  | ....................#'js2-parse- | 
| 54700 |  73 65 6d 69 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 61 73 79 6e  | semi....................(if.asyn | 
| 54720 |  63 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70  | c-pos........................(ap | 
| 54740 |  70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 23 27    6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69  | ply-partially.#'js2-parse-functi | 
| 54760 |  6f 6e 2d 73 74 6d 74 20 61 73 79 6e 63 2d 70 6f    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | on-stmt.async-pos).............. | 
| 54780 |  20 20 20 20 20 20 20 20 28 61 72 65 66 20 6a 73    32 2d 70 61 72 73 65 72 73 20 74 74 29 29 29 29  | ........(aref.js2-parsers.tt)))) | 
| 547a0 |  0a 20 20 20 20 20 20 20 20 20 70 6e 29 0a 20 20    20 20 3b 3b 20 49 66 20 74 68 65 20 73 74 61 74  | ..........pn).....;;.If.the.stat | 
| 547c0 |  65 6d 65 6e 74 20 69 73 20 73 65 74 2c 20 74 68    65 6e 20 69 74 27 73 20 62 65 65 6e 20 74 6f 6c  | ement.is.set,.then.it's.been.tol | 
| 547e0 |  64 20 69 74 73 20 6c 61 62 65 6c 20 62 79 20 6e    6f 77 2e 0a 20 20 20 20 28 61 6e 64 20 6a 73 32  | d.its.label.by.now......(and.js2 | 
| 54800 |  2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 0a 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 6c 61 62 65  | -labeled-stmt..........(js2-labe | 
| 54820 |  6c 65 64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 73 74    6d 74 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73  | led-stmt-node-stmt.js2-labeled-s | 
| 54840 |  74 6d 74 29 0a 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 6a 73 32 2d 6c 61 62 65 6c 65 64 2d  | tmt)..........(setq.js2-labeled- | 
| 54860 |  73 74 6d 74 20 6e 69 6c 29 29 0a 20 20 20 20 28    73 65 74 71 20 70 6e 20 28 66 75 6e 63 61 6c 6c  | stmt.nil)).....(setq.pn.(funcall | 
| 54880 |  20 70 61 72 73 65 72 29 29 0a 20 20 20 20 3b 3b    20 44 6f 6e 27 74 20 64 6f 20 61 75 74 6f 20 73  | .parser)).....;;.Don't.do.auto.s | 
| 548a0 |  65 6d 69 20 69 6e 73 65 72 74 69 6f 6e 20 66 6f    72 20 63 65 72 74 61 69 6e 20 73 74 61 74 65 6d  | emi.insertion.for.certain.statem | 
| 548c0 |  65 6e 74 20 74 79 70 65 73 2e 0a 20 20 20 20 28    75 6e 6c 65 73 73 20 28 6f 72 20 28 6d 65 6d 71  | ent.types......(unless.(or.(memq | 
| 548e0 |  20 66 69 72 73 74 2d 74 74 20 6a 73 32 2d 6e 6f    2d 73 65 6d 69 2d 69 6e 73 65 72 74 69 6f 6e 29  | .first-tt.js2-no-semi-insertion) | 
| 54900 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74  | .................(js2-labeled-st | 
| 54920 |  6d 74 2d 6e 6f 64 65 2d 70 20 70 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73  | mt-node-p.pn).................as | 
| 54940 |  79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 20 20 28    6a 73 32 2d 61 75 74 6f 2d 69 6e 73 65 72 74 2d  | ync-pos).......(js2-auto-insert- | 
| 54960 |  73 65 6d 69 63 6f 6c 6f 6e 20 70 6e 29 29 0a 20    20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20  | semicolon.pn)).....pn))..(defun. | 
| 54980 |  6a 73 32 2d 61 75 74 6f 2d 69 6e 73 65 72 74 2d    73 65 6d 69 63 6f 6c 6f 6e 20 28 70 6e 29 0a 20  | js2-auto-insert-semicolon.(pn).. | 
| 549a0 |  20 28 6c 65 74 2a 20 28 28 74 74 20 28 6a 73 32    2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20  | .(let*.((tt.(js2-get-token)).... | 
| 549c0 |  20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d    6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 29 0a 20  | ......(pos.(js2-node-pos.pn))).. | 
| 549e0 |  20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20    20 20 28 28 3d 20 74 74 20 6a 73 32 2d 53 45 4d  | .....(cond........((=.tt.js2-SEM | 
| 54a00 |  49 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 65 78    74 65 6e 64 20 74 68 65 20 6e 6f 64 65 20 62 6f  | I).........;;.extend.the.node.bo | 
| 54a20 |  75 6e 64 73 20 74 6f 20 69 6e 63 6c 75 64 65 20    74 68 65 20 73 65 6d 69 63 6f 6c 6f 6e 2e 0a 20  | unds.to.include.the.semicolon... | 
| 54a40 |  20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73    32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28  | .......(setf.(js2-node-len.pn).( | 
| 54a60 |  2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 29  | -.(js2-current-token-end).pos))) | 
| 54a80 |  0a 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 74    74 20 6a 73 32 2d 61 75 74 6f 69 6e 73 65 72 74  | ........((memq.tt.js2-autoinsert | 
| 54aa0 |  2d 73 65 6d 69 2d 61 6e 64 2d 77 61 72 6e 29 0a    20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67  | -semi-and-warn).........(js2-ung | 
| 54ac0 |  65 74 2d 74 6f 6b 65 6e 29 20 3b 20 4e 6f 74 20    27 3b 27 2c 20 64 6f 20 6e 6f 74 20 63 6f 6e 73  | et-token).;.Not.';',.do.not.cons | 
| 54ae0 |  75 6d 65 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20    41 75 74 6f 69 6e 73 65 72 74 20 3b 0a 20 20 20  | ume..........;;.Autoinsert.;.... | 
| 54b00 |  20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d    77 61 72 6e 2d 6d 69 73 73 69 6e 67 2d 73 65 6d  | .....(js2-parse-warn-missing-sem | 
| 54b20 |  69 20 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d    65 6e 64 20 70 6e 29 29 29 0a 20 20 20 20 20 20  | i.pos.(js2-node-end.pn)))....... | 
| 54b40 |  20 28 74 0a 20 20 20 20 20 20 20 20 28 69 66 20    28 6e 6f 74 20 28 6a 73 32 2d 74 6f 6b 65 6e 2d  | .(t.........(if.(not.(js2-token- | 
| 54b60 |  66 6f 6c 6c 6f 77 73 2d 65 6f 6c 2d 70 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | follows-eol-p.(js2-current-token | 
| 54b80 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 52 65 70 6f 72 74 20 65 72 72 6f 72 20  | ))).............;;.Report.error. | 
| 54ba0 |  69 66 20 6e 6f 20 45 4f 4c 20 6f 72 20 61 75 74    6f 69 6e 73 65 72 74 20 27 3b 27 20 6f 74 68 65  | if.no.EOL.or.autoinsert.';'.othe | 
| 54bc0 |  72 77 69 73 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72  | rwise.............(js2-report-er | 
| 54be0 |  72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69    2e 73 74 6d 74 22 29 0a 20 20 20 20 20 20 20 20  | ror."msg.no.semi.stmt")......... | 
| 54c00 |  20 20 28 6a 73 32 2d 70 61 72 73 65 2d 77 61 72    6e 2d 6d 69 73 73 69 6e 67 2d 73 65 6d 69 20 70  | ..(js2-parse-warn-missing-semi.p | 
| 54c20 |  6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64    20 70 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28  | os.(js2-node-end.pn))).........( | 
| 54c40 |  6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29    20 3b 20 4e 6f 74 20 27 3b 27 2c 20 64 6f 20 6e  | js2-unget-token).;.Not.';',.do.n | 
| 54c60 |  6f 74 20 63 6f 6e 73 75 6d 65 2e 0a 20 20 20 20    20 20 20 20 29 29 29 29 0a 0a 28 64 65 66 75 6e  | ot.consume..........))))..(defun | 
| 54c80 |  20 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 64 69    74 69 6f 6e 20 28 29 0a 20 20 22 50 61 72 73 65  | .js2-parse-condition.()..."Parse | 
| 54ca0 |  20 61 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64    20 62 6f 6f 6c 65 61 6e 20 65 78 70 72 65 73 73  | .a.parenthesized.boolean.express | 
| 54cc0 |  69 6f 6e 2c 20 65 2e 67 2e 20 69 6e 20 61 6e 20    69 66 2d 20 6f 72 20 77 68 69 6c 65 2d 73 74 6d  | ion,.e.g..in.an.if-.or.while-stm | 
| 54ce0 |  74 2e 0a 54 68 65 20 70 61 72 65 6e 73 20 61 72    65 20 64 69 73 63 61 72 64 65 64 20 61 6e 64 20  | t..The.parens.are.discarded.and. | 
| 54d00 |  74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6e    6f 64 65 20 69 73 20 72 65 74 75 72 6e 65 64 2e  | the.expression.node.is.returned. | 
| 54d20 |  0a 54 68 65 20 60 70 6f 73 27 20 66 69 65 6c 64    20 6f 66 20 74 68 65 20 72 65 74 75 72 6e 20 76  | .The.`pos'.field.of.the.return.v | 
| 54d40 |  61 6c 75 65 20 69 73 20 73 65 74 20 74 6f 20 61    6e 20 61 62 73 6f 6c 75 74 65 20 70 6f 73 69 74  | alue.is.set.to.an.absolute.posit | 
| 54d60 |  69 6f 6e 0a 74 68 61 74 20 6d 75 73 74 20 62 65    20 66 69 78 65 64 20 75 70 20 62 79 20 74 68 65  | ion.that.must.be.fixed.up.by.the | 
| 54d80 |  20 63 61 6c 6c 65 72 2e 0a 52 65 74 75 72 6e 20    76 61 6c 75 65 20 69 73 20 61 20 6c 69 73 74 20  | .caller..Return.value.is.a.list. | 
| 54da0 |  28 45 58 50 52 20 4c 50 20 52 50 29 2c 20 77 69    74 68 20 61 62 73 6f 6c 75 74 65 20 70 61 72 65  | (EXPR.LP.RP),.with.absolute.pare | 
| 54dc0 |  6e 20 70 6f 73 69 74 69 6f 6e 73 2e 22 0a 20 20    28 6c 65 74 20 28 70 6e 20 6c 70 20 72 70 29 0a  | n.positions."...(let.(pn.lp.rp). | 
| 54de0 |  20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73    74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22  | ....(if.(js2-must-match.js2-LP." | 
| 54e00 |  6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 63 6f 6e    64 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74  | msg.no.paren.cond").........(set | 
| 54e20 |  71 20 6c 70 20 28 6a 73 32 2d 63 75 72 72 65 6e    74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20  | q.lp.(js2-current-token-beg))).. | 
| 54e40 |  20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32    2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a 20 20  | ...(setq.pn.(js2-parse-expr))... | 
| 54e60 |  20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d    6d 61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73  | ..(if.(js2-must-match.js2-RP."ms | 
| 54e80 |  67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72    2e 63 6f 6e 64 22 29 0a 20 20 20 20 20 20 20 20  | g.no.paren.after.cond")......... | 
| 54ea0 |  28 73 65 74 71 20 72 70 20 28 6a 73 32 2d 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29  | (setq.rp.(js2-current-token-beg) | 
| 54ec0 |  29 29 0a 20 20 20 20 3b 3b 20 52 65 70 6f 72 74    20 73 74 72 69 63 74 20 77 61 72 6e 69 6e 67 20  | )).....;;.Report.strict.warning. | 
| 54ee0 |  6f 6e 20 63 6f 64 65 20 6c 69 6b 65 20 22 69 66    20 28 61 20 3d 20 37 29 20 2e 2e 2e 22 0a 20 20  | on.code.like."if.(a.=.7)...."... | 
| 54f00 |  20 20 28 69 66 20 28 61 6e 64 20 6a 73 32 2d 73    74 72 69 63 74 2d 63 6f 6e 64 2d 61 73 73 69 67  | ..(if.(and.js2-strict-cond-assig | 
| 54f20 |  6e 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69  | n-warning..............(js2-assi | 
| 54f40 |  67 6e 2d 6e 6f 64 65 2d 70 20 70 6e 29 29 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d  | gn-node-p.pn)).........(js2-add- | 
| 54f60 |  73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22    6d 73 67 2e 65 71 75 61 6c 2e 61 73 2e 61 73 73  | strict-warning."msg.equal.as.ass | 
| 54f80 |  69 67 6e 22 20 6e 69 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ign".nil........................ | 
| 54fa0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 70 6e 29 0a 20 20 20 20 20  | .........(js2-node-pos.pn)...... | 
| 54fc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6a  | ...........................(+.(j | 
| 54fe0 |  73 32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-node-pos.pn)................. | 
| 55000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e  | ...................(js2-node-len | 
| 55020 |  20 70 6e 29 29 29 29 0a 20 20 20 20 28 6c 69 73    74 20 70 6e 20 6c 70 20 72 70 29 29 29 0a 0a 28  | .pn)))).....(list.pn.lp.rp)))..( | 
| 55040 |  64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d    69 66 20 28 29 0a 20 20 22 50 61 72 73 65 72 20  | defun.js2-parse-if.()..."Parser. | 
| 55060 |  66 6f 72 20 69 66 2d 73 74 61 74 65 6d 65 6e 74    2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20  | for.if-statement...Last.matched. | 
| 55080 |  74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73    32 2d 49 46 2e 22 0a 20 20 28 6c 65 74 20 28 28  | token.must.be.js2-IF."...(let.(( | 
| 550a0 |  70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20  | pos.(js2-current-token-beg)).... | 
| 550c0 |  20 20 20 20 20 63 6f 6e 64 20 69 66 2d 74 72 75    65 20 69 66 2d 66 61 6c 73 65 20 65 6c 73 65 2d  | .....cond.if-true.if-false.else- | 
| 550e0 |  70 6f 73 20 65 6e 64 20 70 6e 29 0a 20 20 20 20    28 73 65 74 71 20 63 6f 6e 64 20 28 6a 73 32 2d  | pos.end.pn).....(setq.cond.(js2- | 
| 55100 |  70 61 72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29    0a 20 20 20 20 20 20 20 20 20 20 69 66 2d 74 72  | parse-condition)...........if-tr | 
| 55120 |  75 65 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74    61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20  | ue.(js2-parse-statement)........ | 
| 55140 |  20 20 20 69 66 2d 66 61 6c 73 65 20 28 69 66 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | ...if-false.(if.(js2-match-token | 
| 55160 |  20 6a 73 32 2d 45 4c 53 45 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-ELSE)...................... | 
| 55180 |  20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..(progn........................ | 
| 551a0 |  20 20 28 73 65 74 71 20 65 6c 73 65 2d 70 6f 73    20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | ..(setq.else-pos.(-.(js2-current | 
| 551c0 |  2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -token-beg).pos))............... | 
| 551e0 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    70 61 72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29  | ...........(js2-parse-statement) | 
| 55200 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 65 6e 64    20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 28  | ))...........end.(js2-node-end.( | 
| 55220 |  6f 72 20 69 66 2d 66 61 6c 73 65 20 69 66 2d 74    72 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | or.if-false.if-true))........... | 
| 55240 |  70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 69 66 2d    6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20  | pn.(make-js2-if-node.:pos.pos... | 
| 55260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65  | .............................:le | 
| 55280 |  6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n.(-.end.pos)................... | 
| 552a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f    6e 64 69 74 69 6f 6e 20 28 63 61 72 20 63 6f 6e  | .............:condition.(car.con | 
| 552c0 |  64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d).............................. | 
| 552e0 |  20 20 3a 74 68 65 6e 2d 70 61 72 74 20 69 66 2d    74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20  | ..:then-part.if-true............ | 
| 55300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 65 6c 73 65 2d 70 61 72 74 20 69  | ....................:else-part.i | 
| 55320 |  66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | f-false......................... | 
| 55340 |  20 20 20 20 20 20 20 3a 65 6c 73 65 2d 70 6f 73    20 65 6c 73 65 2d 70 6f 73 0a 20 20 20 20 20 20  | .......:else-pos.else-pos....... | 
| 55360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6c 70 20 28 6a 73  | .........................:lp.(js | 
| 55380 |  32 2d 72 65 6c 70 6f 73 20 28 63 6c 2d 73 65 63    6f 6e 64 20 63 6f 6e 64 29 20 70 6f 73 29 0a 20  | 2-relpos.(cl-second.cond).pos).. | 
| 553a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72  | ..............................:r | 
| 553c0 |  70 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 28 63    6c 2d 74 68 69 72 64 20 63 6f 6e 64 29 20 70 6f  | p.(js2-relpos.(cl-third.cond).po | 
| 553e0 |  73 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20  | s))).....(js2-node-add-children. | 
| 55400 |  70 6e 20 28 63 61 72 20 63 6f 6e 64 29 20 69 66    2d 74 72 75 65 20 69 66 2d 66 61 6c 73 65 29 0a  | pn.(car.cond).if-true.if-false). | 
| 55420 |  20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72  | ....pn))..(defun.js2-parse-impor | 
| 55440 |  74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6f 72    2d 65 78 70 72 20 28 29 0a 20 20 28 69 66 20 28  | t-declaration-or-expr.()...(if.( | 
| 55460 |  6d 65 6d 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74    6f 6b 65 6e 29 20 60 28 2c 6a 73 32 2d 4c 50 20  | memq.(js2-peek-token).`(,js2-LP. | 
| 55480 |  2c 6a 73 32 2d 44 4f 54 29 29 0a 20 20 20 20 20    20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72  | ,js2-DOT)).......(js2-parse-expr | 
| 554a0 |  2d 73 74 6d 74 29 0a 20 20 20 20 28 6a 73 32 2d    70 61 72 73 65 2d 69 6d 70 6f 72 74 29 29 29 0a  | -stmt).....(js2-parse-import))). | 
| 554c0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73    65 2d 69 6d 70 6f 72 74 20 28 29 0a 20 20 22 50  | .(defun.js2-parse-import.()..."P | 
| 554e0 |  61 72 73 65 20 69 6d 70 6f 72 74 20 73 74 61 74    65 6d 65 6e 74 2e 20 54 68 65 20 63 75 72 72 65  | arse.import.statement..The.curre | 
| 55500 |  6e 74 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65    20 6a 73 32 2d 49 4d 50 4f 52 54 2e 22 0a 20 20  | nt.token.must.be.js2-IMPORT."... | 
| 55520 |  28 75 6e 6c 65 73 73 20 28 6a 73 32 2d 61 73 74    2d 72 6f 6f 74 2d 70 20 6a 73 32 2d 63 75 72 72  | (unless.(js2-ast-root-p.js2-curr | 
| 55540 |  65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 20 20 28    6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72  | ent-scope).....(js2-report-error | 
| 55560 |  20 22 6d 73 67 2e 6d 6f 64 2e 69 6d 70 6f 72 74    2e 64 65 63 6c 2e 61 74 2e 74 6f 70 2e 6c 65 76  | ."msg.mod.import.decl.at.top.lev | 
| 55580 |  65 6c 22 29 29 0a 20 20 28 6c 65 74 20 28 28 62    65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | el"))...(let.((beg.(js2-current- | 
| 555a0 |  74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20    20 28 63 6f 6e 64 20 28 28 6a 73 32 2d 6d 61 74  | token-beg))).....(cond.((js2-mat | 
| 555c0 |  63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 53 54 52    49 4e 47 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ch-token.js2-STRING)............ | 
| 555e0 |  28 6d 61 6b 65 2d 6a 73 32 2d 69 6d 70 6f 72 74    2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20  | (make-js2-import-node........... | 
| 55600 |  20 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20    20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28  | ..:pos.beg.............:len.(-.( | 
| 55620 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20  | js2-current-token-end).beg)..... | 
| 55640 |  20 20 20 20 20 20 20 20 3a 6d 6f 64 75 6c 65 2d    69 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | ........:module-id.(js2-current- | 
| 55660 |  74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20  | token-string)))...........(t.... | 
| 55680 |  20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28    69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 20 28 6a  | ........(let*.((import-clause.(j | 
| 556a0 |  73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 2d    63 6c 61 75 73 65 29 29 0a 20 20 20 20 20 20 20  | s2-parse-import-clause))........ | 
| 556c0 |  20 20 20 20 20 20 20 20 20 20 20 28 66 72 6f 6d    2d 63 6c 61 75 73 65 20 28 61 6e 64 20 69 6d 70  | ...........(from-clause.(and.imp | 
| 556e0 |  6f 72 74 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d    70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 75 73  | ort-clause.(js2-parse-from-claus | 
| 55700 |  65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6d 6f 64 75 6c 65 2d 69  | e)))...................(module-i | 
| 55720 |  64 20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61    75 73 65 20 28 6a 73 32 2d 66 72 6f 6d 2d 63 6c  | d.(when.from-clause.(js2-from-cl | 
| 55740 |  61 75 73 65 2d 6e 6f 64 65 2d 6d 6f 64 75 6c 65    2d 69 64 20 66 72 6f 6d 2d 63 6c 61 75 73 65 29  | ause-node-module-id.from-clause) | 
| 55760 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6e 6f 64 65 20 28 6d 61 6b 65  | ))...................(node.(make | 
| 55780 |  2d 6a 73 32 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -js2-import-node................ | 
| 557a0 |  20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 62    65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..........:pos.beg.............. | 
| 557c0 |  20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e    20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | ............:len.(-.(js2-current | 
| 557e0 |  2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -token-end).beg)................ | 
| 55800 |  20 20 20 20 20 20 20 20 20 20 3a 69 6d 70 6f 72    74 20 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a  | ..........:import.import-clause. | 
| 55820 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 66 72 6f 6d 20 66  | .........................:from.f | 
| 55840 |  72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rom-clause...................... | 
| 55860 |  20 20 20 20 3a 6d 6f 64 75 6c 65 2d 69 64 20 6d    6f 64 75 6c 65 2d 69 64 29 29 29 0a 20 20 20 20  | ....:module-id.module-id)))..... | 
| 55880 |  20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69    6d 70 6f 72 74 2d 63 6c 61 75 73 65 0a 20 20 20  | .........(when.import-clause.... | 
| 558a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72  | ............(js2-node-add-childr | 
| 558c0 |  65 6e 20 6e 6f 64 65 20 69 6d 70 6f 72 74 2d 63    6c 61 75 73 65 29 29 0a 20 20 20 20 20 20 20 20  | en.node.import-clause))......... | 
| 558e0 |  20 20 20 20 20 28 77 68 65 6e 20 66 72 6f 6d 2d    63 6c 61 75 73 65 0a 20 20 20 20 20 20 20 20 20  | .....(when.from-clause.......... | 
| 55900 |  20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d    61 64 64 2d 63 68 69 6c 64 72 65 6e 20 6e 6f 64  | ......(js2-node-add-children.nod | 
| 55920 |  65 20 66 72 6f 6d 2d 63 6c 61 75 73 65 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64  | e.from-clause))..............nod | 
| 55940 |  65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 70 61 72 73 65 2d 69 6d 70 6f 72 74 2d  | e)))))..(defun.js2-parse-import- | 
| 55960 |  63 6c 61 75 73 65 20 28 29 0a 20 20 22 50 61 72    73 65 20 74 68 65 20 62 69 6e 64 69 6e 67 73 20  | clause.()..."Parse.the.bindings. | 
| 55980 |  69 6e 20 61 6e 20 69 6d 70 6f 72 74 20 73 74 61    74 65 6d 65 6e 74 2e 0a 54 68 69 73 20 63 61 6e  | in.an.import.statement..This.can | 
| 559a0 |  20 74 61 6b 65 20 6d 61 6e 79 20 66 6f 72 6d 73    3a 0a 0a 49 6d 70 6f 72 74 65 64 44 65 66 61 75  | .take.many.forms:..ImportedDefau | 
| 559c0 |  6c 74 42 69 6e 64 69 6e 67 20 2d 3e 20 60 66 6f    6f 27 0a 4e 61 6d 65 53 70 61 63 65 49 6d 70 6f  | ltBinding.->.`foo'.NameSpaceImpo | 
| 559e0 |  72 74 20 2d 3e 20 60 2a 20 61 73 20 6c 69 62 27    0a 4e 61 6d 65 64 49 6d 70 6f 72 74 73 20 2d 3e  | rt.->.`*.as.lib'.NamedImports.-> | 
| 55a00 |  20 60 7b 66 6f 6f 20 61 73 20 62 61 72 2c 20 62    61 6e 67 7d 27 0a 49 6d 70 6f 72 74 65 64 44 65  | .`{foo.as.bar,.bang}'.ImportedDe | 
| 55a20 |  66 61 75 6c 74 42 69 6e 64 69 6e 67 20 2c 20 4e    61 6d 65 53 70 61 63 65 49 6d 70 6f 72 74 20 2d  | faultBinding.,.NameSpaceImport.- | 
| 55a40 |  3e 20 60 66 6f 6f 2c 20 2a 20 61 73 20 6c 69 62    27 0a 49 6d 70 6f 72 74 65 64 44 65 66 61 75 6c  | >.`foo,.*.as.lib'.ImportedDefaul | 
| 55a60 |  74 42 69 6e 64 69 6e 67 20 2c 20 4e 61 6d 65 64    49 6d 70 6f 72 74 73 20 2d 3e 20 60 66 6f 6f 2c  | tBinding.,.NamedImports.->.`foo, | 
| 55a80 |  20 7b 62 61 72 2c 20 62 61 7a 20 61 73 20 62 69    66 7d 27 0a 0a 54 72 79 20 74 6f 20 6d 61 74 63  | .{bar,.baz.as.bif}'..Try.to.matc | 
| 55aa0 |  68 20 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f    72 74 73 20 61 6e 64 20 6e 61 6d 65 64 20 69 6d  | h.namespace.imports.and.named.im | 
| 55ac0 |  70 6f 72 74 73 20 66 69 72 73 74 20 62 65 63 61    75 73 65 20 6e 6f 74 68 69 6e 67 20 63 61 6e 0a  | ports.first.because.nothing.can. | 
| 55ae0 |  63 6f 6d 65 20 61 66 74 65 72 20 74 68 65 6d 2e    20 49 66 20 69 74 20 69 73 20 61 6e 20 69 6d 70  | come.after.them..If.it.is.an.imp | 
| 55b00 |  6f 72 74 65 64 20 64 65 66 61 75 6c 74 20 62 69    6e 64 69 6e 67 2c 20 74 68 65 6e 20 69 74 20 63  | orted.default.binding,.then.it.c | 
| 55b20 |  6f 75 6c 64 20 68 61 76 65 20 6e 61 6d 65 64 0a    69 6d 70 6f 72 74 73 20 6f 72 20 61 20 6e 61 6d  | ould.have.named.imports.or.a.nam | 
| 55b40 |  65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 74 68    61 74 20 66 6f 6c 6c 6f 77 73 20 69 74 2e 0a 22  | espace.import.that.follows.it.." | 
| 55b60 |  0a 20 20 28 6c 65 74 2a 20 28 28 62 65 67 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | ...(let*.((beg.(js2-current-toke | 
| 55b80 |  6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20    20 28 63 6c 61 75 73 65 20 28 6d 61 6b 65 2d 6a  | n-beg))..........(clause.(make-j | 
| 55ba0 |  73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75 73 65    2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20  | s2-import-clause-node........... | 
| 55bc0 |  20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67    29 29 0a 20 20 20 20 20 20 20 20 20 28 63 68 69  | ........:pos.beg))..........(chi | 
| 55be0 |  6c 64 72 65 6e 20 28 6c 69 73 74 29 29 29 0a 20    20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28  | ldren.(list))).....(cond......(( | 
| 55c00 |  6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20    6a 73 32 2d 4d 55 4c 29 0a 20 20 20 20 20 20 28  | js2-match-token.js2-MUL).......( | 
| 55c20 |  6c 65 74 20 28 28 6e 73 2d 69 6d 70 6f 72 74 20    28 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65 73  | let.((ns-import.(js2-parse-names | 
| 55c40 |  70 61 63 65 2d 69 6d 70 6f 72 74 29 29 29 0a 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 6e 73 2d  | pace-import))).........(when.ns- | 
| 55c60 |  69 6d 70 6f 72 74 0a 20 20 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 6e 6f 64  | import...........(let.((name-nod | 
| 55c80 |  65 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65    2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6e 61 6d  | e.(js2-namespace-import-node-nam | 
| 55ca0 |  65 20 6e 73 2d 69 6d 70 6f 72 74 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | e.ns-import))).............(js2- | 
| 55cc0 |  64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c  | define-symbol..............js2-L | 
| 55ce0 |  45 54 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64    65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65  | ET.(js2-name-node-name.name-node | 
| 55d00 |  29 20 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20  | ).name-node.t))...........(setf. | 
| 55d20 |  28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61 75    73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61 63  | (js2-import-clause-node-namespac | 
| 55d40 |  65 2d 69 6d 70 6f 72 74 20 63 6c 61 75 73 65 29    20 6e 73 2d 69 6d 70 6f 72 74 29 0a 20 20 20 20  | e-import.clause).ns-import)..... | 
| 55d60 |  20 20 20 20 20 20 28 70 75 73 68 20 6e 73 2d 69    6d 70 6f 72 74 20 63 68 69 6c 64 72 65 6e 29 29  | ......(push.ns-import.children)) | 
| 55d80 |  29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61    74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 43  | ))......((js2-match-token.js2-LC | 
| 55da0 |  29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69    6d 70 6f 72 74 73 20 28 6a 73 32 2d 70 61 72 73  | ).......(let.((imports.(js2-pars | 
| 55dc0 |  65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67    73 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28  | e-export-bindings.t))).........( | 
| 55de0 |  73 65 74 66 20 28 6a 73 32 2d 69 6d 70 6f 72 74    2d 63 6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d  | setf.(js2-import-clause-node-nam | 
| 55e00 |  65 64 2d 69 6d 70 6f 72 74 73 20 63 6c 61 75 73    65 29 20 69 6d 70 6f 72 74 73 29 0a 20 20 20 20  | ed-imports.clause).imports)..... | 
| 55e20 |  20 20 20 20 28 64 6f 6c 69 73 74 20 28 69 6d 70    6f 72 74 20 69 6d 70 6f 72 74 73 29 0a 20 20 20  | ....(dolist.(import.imports).... | 
| 55e40 |  20 20 20 20 20 20 20 28 70 75 73 68 20 69 6d 70    6f 72 74 20 63 68 69 6c 64 72 65 6e 29 0a 20 20  | .......(push.import.children)... | 
| 55e60 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e    61 6d 65 2d 6e 6f 64 65 20 28 6a 73 32 2d 65 78  | ........(let.((name-node.(js2-ex | 
| 55e80 |  70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f 64    65 2d 6c 6f 63 61 6c 2d 6e 61 6d 65 20 69 6d 70  | port-binding-node-local-name.imp | 
| 55ea0 |  6f 72 74 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 77 68 65 6e 20 6e 61 6d 65 2d 6e 6f  | ort))).............(when.name-no | 
| 55ec0 |  64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d  | de...............(js2-define-sym | 
| 55ee0 |  62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32 2d  | bol................js2-LET.(js2- | 
| 55f00 |  6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e    61 6d 65 2d 6e 6f 64 65 29 20 6e 61 6d 65 2d 6e  | name-node-name.name-node).name-n | 
| 55f20 |  6f 64 65 20 74 29 29 29 29 29 29 0a 20 20 20 20    20 28 28 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74  | ode.t))))))......((=.(js2-peek-t | 
| 55f40 |  6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a    20 20 20 20 20 20 28 6c 65 74 20 28 28 62 69 6e  | oken).js2-NAME).......(let.((bin | 
| 55f60 |  64 69 6e 67 20 28 6a 73 32 2d 6d 61 79 62 65 2d    70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e  | ding.(js2-maybe-parse-export-bin | 
| 55f80 |  64 69 6e 67 20 74 29 29 29 0a 20 20 20 20 20 20    20 20 28 6c 65 74 20 28 28 6e 6f 64 65 2d 6e 61  | ding.t))).........(let.((node-na | 
| 55fa0 |  6d 65 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62    69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61  | me.(js2-export-binding-node-loca | 
| 55fc0 |  6c 2d 6e 61 6d 65 20 62 69 6e 64 69 6e 67 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | l-name.binding)))...........(js2 | 
| 55fe0 |  2d 64 65 66 69 6e 65 2d 73 79 6d 62 6f 6c 20 6a    73 32 2d 4c 45 54 20 28 6a 73 32 2d 6e 61 6d 65  | -define-symbol.js2-LET.(js2-name | 
| 56000 |  2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 6f 64 65 2d    6e 61 6d 65 29 20 6e 6f 64 65 2d 6e 61 6d 65 20  | -node-name.node-name).node-name. | 
| 56020 |  74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74    66 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c  | t)).........(setf.(js2-import-cl | 
| 56040 |  61 75 73 65 2d 6e 6f 64 65 2d 64 65 66 61 75 6c    74 2d 62 69 6e 64 69 6e 67 20 63 6c 61 75 73 65  | ause-node-default-binding.clause | 
| 56060 |  29 20 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20    20 20 20 28 70 75 73 68 20 62 69 6e 64 69 6e 67  | ).binding).........(push.binding | 
| 56080 |  20 63 68 69 6c 64 72 65 6e 29 29 0a 20 20 20 20    20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61 74  | .children)).......(when.(js2-mat | 
| 560a0 |  63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 4f 4d    4d 41 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e  | ch-token.js2-COMMA).........(con | 
| 560c0 |  64 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32    2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32  | d..........((js2-match-token.js2 | 
| 560e0 |  2d 4d 55 4c 29 0a 20 20 20 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 6e 73 2d 69 6d 70 6f 72 74  | -MUL)...........(let.((ns-import | 
| 56100 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 6e 61 6d 65    73 70 61 63 65 2d 69 6d 70 6f 72 74 29 29 29 0a  | .(js2-parse-namespace-import))). | 
| 56120 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74    20 28 28 6e 61 6d 65 2d 6e 6f 64 65 20 28 6a 73  | ............(let.((name-node.(js | 
| 56140 |  32 2d 6e 61 6d 65 73 70 61 63 65 2d 69 6d 70 6f    72 74 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6e 73 2d  | 2-namespace-import-node-name.ns- | 
| 56160 |  69 6d 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65 66  | import)))...............(js2-def | 
| 56180 |  69 6e 65 2d 73 79 6d 62 6f 6c 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45  | ine-symbol................js2-LE | 
| 561a0 |  54 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65    2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29  | T.(js2-name-node-name.name-node) | 
| 561c0 |  20 6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66  | .name-node.t)).............(setf | 
| 561e0 |  20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63 6c 61    75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 73 70 61  | .(js2-import-clause-node-namespa | 
| 56200 |  63 65 2d 69 6d 70 6f 72 74 20 63 6c 61 75 73 65    29 20 6e 73 2d 69 6d 70 6f 72 74 29 0a 20 20 20  | ce-import.clause).ns-import).... | 
| 56220 |  20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e    73 2d 69 6d 70 6f 72 74 20 63 68 69 6c 64 72 65  | .........(push.ns-import.childre | 
| 56240 |  6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 28    6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20  | n)))..........((js2-match-token. | 
| 56260 |  6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 20 20    20 20 28 6c 65 74 20 28 28 69 6d 70 6f 72 74 73  | js2-LC)...........(let.((imports | 
| 56280 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 6f    72 74 2d 62 69 6e 64 69 6e 67 73 20 74 29 29 29  | .(js2-parse-export-bindings.t))) | 
| 562a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 66 20 28 6a 73 32 2d 69 6d 70 6f 72 74 2d 63  | .............(setf.(js2-import-c | 
| 562c0 |  6c 61 75 73 65 2d 6e 6f 64 65 2d 6e 61 6d 65 64    2d 69 6d 70 6f 72 74 73 20 63 6c 61 75 73 65 29  | lause-node-named-imports.clause) | 
| 562e0 |  20 69 6d 70 6f 72 74 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 69  | .imports).............(dolist.(i | 
| 56300 |  6d 70 6f 72 74 20 69 6d 70 6f 72 74 73 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75  | mport.imports)...............(pu | 
| 56320 |  73 68 20 69 6d 70 6f 72 74 20 63 68 69 6c 64 72    65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | sh.import.children)............. | 
| 56340 |  20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 6e 6f    64 65 20 28 6a 73 32 2d 65 78 70 6f 72 74 2d 62  | ..(let.((name-node.(js2-export-b | 
| 56360 |  69 6e 64 69 6e 67 2d 6e 6f 64 65 2d 6c 6f 63 61    6c 2d 6e 61 6d 65 20 69 6d 70 6f 72 74 29 29 29  | inding-node-local-name.import))) | 
| 56380 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 77 68 65 6e 20 6e 61 6d 65 2d 6e 6f 64 65  | .................(when.name-node | 
| 563a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73  | ...................(js2-define-s | 
| 563c0 |  79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 6a 73 32 2d 4c 45 54  | ymbol....................js2-LET | 
| 563e0 |  20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d    6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29 20  | .(js2-name-node-name.name-node). | 
| 56400 |  6e 61 6d 65 2d 6e 6f 64 65 20 74 29 29 29 29 29    29 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 6a  | name-node.t))))))..........(t.(j | 
| 56420 |  73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20    22 6d 73 67 2e 73 79 6e 74 61 78 22 29 29 29 29  | s2-report-error."msg.syntax")))) | 
| 56440 |  29 0a 20 20 20 20 20 28 74 20 28 6a 73 32 2d 72    65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67  | )......(t.(js2-report-error."msg | 
| 56460 |  2e 6d 6f 64 2e 64 65 63 6c 61 72 61 74 69 6f 6e    2e 61 66 74 65 72 2e 69 6d 70 6f 72 74 22 29 29  | .mod.declaration.after.import")) | 
| 56480 |  29 0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32    2d 6e 6f 64 65 2d 6c 65 6e 20 63 6c 61 75 73 65  | ).....(setf.(js2-node-len.clause | 
| 564a0 |  29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e    74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67  | ).(-.(js2-current-token-end).beg | 
| 564c0 |  29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27    6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69  | )).....(apply.#'js2-node-add-chi | 
| 564e0 |  6c 64 72 65 6e 20 63 6c 61 75 73 65 20 63 68 69    6c 64 72 65 6e 29 0a 20 20 20 20 63 6c 61 75 73  | ldren.clause.children).....claus | 
| 56500 |  65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 61 72 73 65 2d 6e 61 6d 65 73 70 61 63 65 2d  | e))..(defun.js2-parse-namespace- | 
| 56520 |  69 6d 70 6f 72 74 20 28 29 0a 20 20 22 50 61 72    73 65 20 61 20 6e 61 6d 65 73 70 61 63 65 20 69  | import.()..."Parse.a.namespace.i | 
| 56540 |  6d 70 6f 72 74 20 65 78 70 72 65 73 73 69 6f 6e    20 73 75 63 68 20 61 73 20 60 2a 20 61 73 20 62  | mport.expression.such.as.`*.as.b | 
| 56560 |  61 72 27 2e 0a 54 68 65 20 63 75 72 72 65 6e 74    20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a  | ar'..The.current.token.must.be.j | 
| 56580 |  73 32 2d 4d 55 4c 2e 22 0a 20 20 28 6c 65 74 20    28 28 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65  | s2-MUL."...(let.((beg.(js2-curre | 
| 565a0 |  6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a    20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20  | nt-token-beg))).....(cond....... | 
| 565c0 |  28 28 6a 73 32 2d 6d 61 74 63 68 2d 63 6f 6e 74    65 78 74 75 61 6c 2d 6b 77 64 20 22 61 73 22 29  | ((js2-match-contextual-kwd."as") | 
| 565e0 |  0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a    73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 70 72  | ........(when.(js2-must-match-pr | 
| 56600 |  6f 70 2d 6e 61 6d 65 20 22 6d 73 67 2e 73 79 6e    74 61 78 22 29 0a 20 20 20 20 20 20 20 20 20 28  | op-name."msg.syntax")..........( | 
| 56620 |  6c 65 74 20 28 28 6e 6f 64 65 20 28 6d 61 6b 65    2d 6a 73 32 2d 6e 61 6d 65 73 70 61 63 65 2d 69  | let.((node.(make-js2-namespace-i | 
| 56640 |  6d 70 6f 72 74 2d 6e 6f 64 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mport-node...................... | 
| 56660 |  20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:pos.beg....................... | 
| 56680 |  3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20  | :len.(-.(js2-current-token-end). | 
| 566a0 |  62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65  | beg).......................:name | 
| 566c0 |  20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d    6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20  | .(make-js2-name-node............ | 
| 566e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72  | ..................:pos.(js2-curr | 
| 56700 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ent-token-beg).................. | 
| 56720 |  20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e    20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | ............:len.(-.(js2-current | 
| 56740 |  2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -token-end)..................... | 
| 56760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | .................(js2-current-to | 
| 56780 |  6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ken-beg))....................... | 
| 567a0 |  20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | .......:name.(js2-current-token- | 
| 567c0 |  73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65  | string)))))............(js2-node | 
| 567e0 |  2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 6e 6f    64 65 20 28 6a 73 32 2d 6e 61 6d 65 73 70 61 63  | -add-children.node.(js2-namespac | 
| 56800 |  65 2d 69 6d 70 6f 72 74 2d 6e 6f 64 65 2d 6e 61    6d 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20  | e-import-node-name.node))....... | 
| 56820 |  20 20 20 20 20 6e 6f 64 65 29 29 29 0a 20 20 20    20 20 20 28 74 0a 20 20 20 20 20 20 20 28 6a 73  | .....node))).......(t........(js | 
| 56840 |  32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20    20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72  | 2-unget-token)........(js2-repor | 
| 56860 |  74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e    74 61 78 22 29 0a 20 20 20 20 20 20 20 6e 69 6c  | t-error."msg.syntax")........nil | 
| 56880 |  29 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61  | ))))...(defun.js2-parse-from-cla | 
| 568a0 |  75 73 65 20 28 29 0a 20 20 22 50 61 72 73 65 20    74 68 65 20 66 72 6f 6d 20 63 6c 61 75 73 65 20  | use.()..."Parse.the.from.clause. | 
| 568c0 |  69 6e 20 61 6e 20 69 6d 70 6f 72 74 20 6f 72 20    65 78 70 6f 72 74 20 73 74 61 74 65 6d 65 6e 74  | in.an.import.or.export.statement | 
| 568e0 |  2e 0a 45 2e 67 2e 2c 20 5c 22 66 72 6f 6d 20 5c    5c 3d 27 73 72 63 2f 6c 69 62 5c 5c 3d 27 5c 22  | ..E.g.,.\"from.\\='src/lib\\='\" | 
| 56900 |  2e 22 0a 20 20 28 69 66 20 28 6a 73 32 2d 6d 61    74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b  | ."...(if.(js2-match-contextual-k | 
| 56920 |  77 64 20 22 66 72 6f 6d 22 29 0a 20 20 20 20 20    20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32  | wd."from").......(let.((beg.(js2 | 
| 56940 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 63  | -current-token-beg))).........(c | 
| 56960 |  6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6a    73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a  | ond..........((js2-match-token.j | 
| 56980 |  73 32 2d 53 54 52 49 4e 47 29 0a 20 20 20 20 20    20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 66  | s2-STRING)...........(make-js2-f | 
| 569a0 |  72 6f 6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a    20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20  | rom-clause-node............:pos. | 
| 569c0 |  62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 3a    6c 65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72  | beg............:len.(-.(js2-curr | 
| 569e0 |  65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62    65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a  | ent-token-end).beg)............: | 
| 56a00 |  6d 6f 64 75 6c 65 2d 69 64 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72  | module-id.(js2-current-token-str | 
| 56a20 |  69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20    3a 6d 65 74 61 64 61 74 61 2d 70 20 6e 69 6c 29  | ing)............:metadata-p.nil) | 
| 56a40 |  29 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73 32    2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32  | )..........((js2-match-token.js2 | 
| 56a60 |  2d 54 48 49 53 29 0a 20 20 20 20 20 20 20 20 20    20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 75 73 74  | -THIS)...........(when.(js2-must | 
| 56a80 |  2d 6d 61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67    2e 6d 6f 64 2e 73 70 65 63 2e 61 66 74 65 72 2e  | -match-name."msg.mod.spec.after. | 
| 56aa0 |  66 72 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 28 65 71 75 61 6c 20 22 6d  | from").............(if.(equal."m | 
| 56ac0 |  6f 64 75 6c 65 22 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67  | odule".(js2-current-token-string | 
| 56ae0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 66 72 6f  | )).................(make-js2-fro | 
| 56b00 |  6d 2d 63 6c 61 75 73 65 2d 6e 6f 64 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | m-clause-node..................: | 
| 56b20 |  70 6f 73 20 62 65 67 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d  | pos.beg..................:len.(- | 
| 56b40 |  20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f    6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a 20 20  | .(js2-current-token-end).beg)... | 
| 56b60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    6d 6f 64 75 6c 65 2d 69 64 20 22 74 68 69 73 22  | ...............:module-id."this" | 
| 56b80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 6d 65 74 61 64 61 74 61 2d 70 20 74 29  | ..................:metadata-p.t) | 
| 56ba0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29  | ...............(js2-unget-token) | 
| 56bc0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29  | ...............(js2-unget-token) | 
| 56be0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72  | ...............(js2-report-error | 
| 56c00 |  20 22 6d 73 67 2e 6d 6f 64 2e 73 70 65 63 2e 61    66 74 65 72 2e 66 72 6f 6d 22 29 0a 20 20 20 20  | ."msg.mod.spec.after.from")..... | 
| 56c20 |  20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29    0a 20 20 20 20 20 20 20 20 20 28 74 20 28 6a 73  | ..........nil)))..........(t.(js | 
| 56c40 |  32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22    6d 73 67 2e 6d 6f 64 2e 73 70 65 63 2e 61 66 74  | 2-report-error."msg.mod.spec.aft | 
| 56c60 |  65 72 2e 66 72 6f 6d 22 29 20 6e 69 6c 29 29 29    0a 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74  | er.from").nil))).....(js2-report | 
| 56c80 |  2d 65 72 72 6f 72 20 22 6d 73 67 2e 6d 6f 64 2e    66 72 6f 6d 2e 61 66 74 65 72 2e 69 6d 70 6f 72  | -error."msg.mod.from.after.impor | 
| 56ca0 |  74 2e 73 70 65 63 2e 73 65 74 22 29 0a 20 20 20    20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | t.spec.set").....nil))..(defun.j | 
| 56cc0 |  73 32 2d 70 61 72 73 65 2d 65 78 70 6f 72 74 2d    62 69 6e 64 69 6e 67 73 20 28 26 6f 70 74 69 6f  | s2-parse-export-bindings.(&optio | 
| 56ce0 |  6e 61 6c 20 69 6d 70 6f 72 74 2d 70 29 0a 20 20    22 50 61 72 73 65 20 61 20 6c 69 73 74 20 6f 66  | nal.import-p)..."Parse.a.list.of | 
| 56d00 |  20 65 78 70 6f 72 74 20 62 69 6e 64 69 6e 67 20    65 78 70 72 65 73 73 69 6f 6e 73 20 73 75 63 68  | .export.binding.expressions.such | 
| 56d20 |  20 61 73 20 7b 7d 2c 20 7b 66 6f 6f 2c 20 62 61    72 7d 2c 20 61 6e 64 0a 7b 66 6f 6f 20 61 73 20  | .as.{},.{foo,.bar},.and.{foo.as. | 
| 56d40 |  62 61 72 2c 20 62 61 7a 20 61 73 20 62 61 6e 67    7d 2e 20 54 68 65 20 63 75 72 72 65 6e 74 20 74  | bar,.baz.as.bang}..The.current.t | 
| 56d60 |  6f 6b 65 6e 20 6d 75 73 74 20 62 65 0a 6a 73 32    2d 4c 43 2e 20 52 65 74 75 72 6e 20 61 20 6c 69  | oken.must.be.js2-LC..Return.a.li | 
| 56d80 |  73 70 20 6c 69 73 74 20 6f 66 20 6a 73 32 2d 65    78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e 6f  | sp.list.of.js2-export-binding-no | 
| 56da0 |  64 65 22 0a 20 20 28 6c 65 74 20 28 28 62 69 6e    64 69 6e 67 73 20 28 6c 69 73 74 29 29 29 0a 20  | de"...(let.((bindings.(list))).. | 
| 56dc0 |  20 20 20 28 77 68 69 6c 65 0a 20 20 20 20 20 20    20 20 28 6c 65 74 20 28 28 62 69 6e 64 69 6e 67  | ...(while.........(let.((binding | 
| 56de0 |  20 28 6a 73 32 2d 6d 61 79 62 65 2d 70 61 72 73    65 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67  | .(js2-maybe-parse-export-binding | 
| 56e00 |  20 69 6d 70 6f 72 74 2d 70 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 62 69 6e  | .import-p)))...........(when.bin | 
| 56e20 |  64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 70 75 73 68 20 62 69 6e 64 69 6e 67 20 62  | ding.............(push.binding.b | 
| 56e40 |  69 6e 64 69 6e 67 73 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74  | indings))...........(js2-match-t | 
| 56e60 |  6f 6b 65 6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 29    29 0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32  | oken.js2-COMMA))).....(when.(js2 | 
| 56e80 |  2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d    52 43 20 28 69 66 20 69 6d 70 6f 72 74 2d 70 0a  | -must-match.js2-RC.(if.import-p. | 
| 56ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 56ec0 |  20 20 20 20 20 22 6d 73 67 2e 6d 6f 64 2e 72 63    2e 61 66 74 65 72 2e 69 6d 70 6f 72 74 2e 73 70  | ....."msg.mod.rc.after.import.sp | 
| 56ee0 |  65 63 2e 6c 69 73 74 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ec.list"........................ | 
| 56f00 |  20 20 20 20 20 20 20 20 20 20 20 20 22 6d 73 67    2e 6d 6f 64 2e 72 63 2e 61 66 74 65 72 2e 65 78  | ............"msg.mod.rc.after.ex | 
| 56f20 |  70 6f 72 74 2e 73 70 65 63 2e 6c 69 73 74 22 29    29 0a 20 20 20 20 20 20 28 72 65 76 65 72 73 65  | port.spec.list")).......(reverse | 
| 56f40 |  20 62 69 6e 64 69 6e 67 73 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 6d 61 79 62 65 2d  | .bindings))))..(defun.js2-maybe- | 
| 56f60 |  70 61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e    64 69 6e 67 20 28 26 6f 70 74 69 6f 6e 61 6c 20  | parse-export-binding.(&optional. | 
| 56f80 |  69 6d 70 6f 72 74 2d 70 29 0a 20 20 22 41 74 74    65 6d 70 74 20 74 6f 20 70 61 72 73 65 20 61 20  | import-p)..."Attempt.to.parse.a. | 
| 56fa0 |  62 69 6e 64 69 6e 67 20 65 78 70 72 65 73 73 69    6f 6e 20 66 6f 75 6e 64 20 69 6e 73 69 64 65 20  | binding.expression.found.inside. | 
| 56fc0 |  61 6e 20 69 6d 70 6f 72 74 2f 65 78 70 6f 72 74    20 73 74 61 74 65 6d 65 6e 74 2e 0a 54 68 69 73  | an.import/export.statement..This | 
| 56fe0 |  20 63 61 6e 20 74 61 6b 65 20 74 68 65 20 66 6f    72 6d 20 6f 66 20 65 69 74 68 65 72 20 61 73 20  | .can.take.the.form.of.either.as. | 
| 57000 |  73 69 6e 67 6c 65 20 6a 73 32 2d 4e 41 4d 45 20    74 6f 6b 65 6e 20 61 73 20 69 6e 20 60 66 6f 6f  | single.js2-NAME.token.as.in.`foo | 
| 57020 |  27 20 6f 72 20 61 73 20 69 6e 20 61 0a 72 65 62    69 6e 64 69 6e 67 20 65 78 70 72 65 73 73 69 6f  | '.or.as.in.a.rebinding.expressio | 
| 57040 |  6e 20 60 62 61 72 20 61 73 20 66 6f 6f 27 2e 20    49 66 20 69 74 20 6d 61 74 63 68 65 73 2c 20 69  | n.`bar.as.foo'..If.it.matches,.i | 
| 57060 |  74 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 61 6e    20 69 6e 73 74 61 6e 63 65 20 6f 66 0a 6a 73 32  | t.will.return.an.instance.of.js2 | 
| 57080 |  2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d    6e 6f 64 65 20 61 6e 64 20 63 6f 6e 73 75 6d 65  | -export-binding-node.and.consume | 
| 570a0 |  20 61 6c 6c 20 74 68 65 20 74 6f 6b 65 6e 73 2e    20 49 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20  | .all.the.tokens..If.it.does.not. | 
| 570c0 |  6d 61 74 63 68 2c 20 69 74 0a 63 6f 6e 73 75 6d    65 73 20 6e 6f 20 74 6f 6b 65 6e 73 2e 22 0a 20  | match,.it.consumes.no.tokens.".. | 
| 570e0 |  20 28 6c 65 74 20 28 28 65 78 74 65 72 6e 2d 6e    61 6d 65 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d  | .(let.((extern-name.(when.(js2-m | 
| 57100 |  61 74 63 68 2d 70 72 6f 70 2d 6e 61 6d 65 29 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | atch-prop-name).(js2-current-tok | 
| 57120 |  65 6e 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20    20 20 20 20 20 28 62 65 67 20 28 6a 73 32 2d 63  | en-string))).........(beg.(js2-c | 
| 57140 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67    29 29 0a 20 20 20 20 20 20 20 20 28 65 78 74 65  | urrent-token-beg)).........(exte | 
| 57160 |  72 6e 2d 6e 61 6d 65 2d 6c 65 6e 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c  | rn-name-len.(js2-current-token-l | 
| 57180 |  65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 69 73    2d 72 65 73 65 72 76 65 64 2d 6e 61 6d 65 20 28  | en)).........(is-reserved-name.( | 
| 571a0 |  6f 72 20 28 3d 20 28 6a 73 32 2d 63 75 72 72 65    6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 20 6a  | or.(=.(js2-current-token-type).j | 
| 571c0 |  73 32 2d 52 45 53 45 52 56 45 44 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-RESERVED).................... | 
| 571e0 |  20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66    20 6a 73 32 2d 6b 77 64 2d 74 6f 6b 65 6e 73 20  | ...........(aref.js2-kwd-tokens. | 
| 57200 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 74 79 70 65 29 29 29 29 29 0a 20 20 20  | (js2-current-token-type))))).... | 
| 57220 |  20 28 69 66 20 65 78 74 65 72 6e 2d 6e 61 6d 65    0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73  | .(if.extern-name.........(if.(js | 
| 57240 |  32 2d 6d 61 74 63 68 2d 63 6f 6e 74 65 78 74 75    61 6c 2d 6b 77 64 20 22 61 73 22 29 0a 20 20 20  | 2-match-contextual-kwd."as").... | 
| 57260 |  20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28    6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20  | .........(let.((name............ | 
| 57280 |  20 20 20 20 20 20 20 20 28 6f 72 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........(or..................... | 
| 572a0 |  28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68 2d    74 6f 6b 65 6e 20 6a 73 32 2d 44 45 46 41 55 4c  | (and.(js2-match-token.js2-DEFAUL | 
| 572c0 |  54 29 20 22 64 65 66 61 75 6c 74 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | T)."default")................... | 
| 572e0 |  20 20 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63    68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45  | ..(and.(js2-match-token.js2-NAME | 
| 57300 |  29 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 29 29 29  | ).(js2-current-token-string))))) | 
| 57320 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    69 66 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20  | ...............(if.name......... | 
| 57340 |  20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28    28 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a 73 32 2d  | ..........(let.((node.(make-js2- | 
| 57360 |  65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67 2d 6e    6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | export-binding-node............. | 
| 57380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20  | ...................:pos.beg..... | 
| 573a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20  | ...........................:len. | 
| 573c0 |  28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65 67 29 0a  | (-.(js2-current-token-end).beg). | 
| 573e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 57400 |  6c 6f 63 61 6c 2d 6e 61 6d 65 20 28 6d 61 6b 65    2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 0a 20  | local-name.(make-js2-name-node.. | 
| 57420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 57440 |  20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65    20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20  | ...........:name.name........... | 
| 57460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 57480 |  20 20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20  | ..:pos.(js2-current-token-beg).. | 
| 574a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 574c0 |  20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ...........:len.(js2-current-tok | 
| 574e0 |  65 6e 2d 6c 65 6e 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en-len))........................ | 
| 57500 |  20 20 20 20 20 20 20 20 3a 65 78 74 65 72 6e 2d    6e 61 6d 65 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e  | ........:extern-name.(make-js2-n | 
| 57520 |  61 6d 65 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ame-node........................ | 
| 57540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 6e 61 6d 65 20 65 78 74 65  | ......................:name.exte | 
| 57560 |  72 6e 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rn-name......................... | 
| 57580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 70 6f 73 20 62 65 67 0a 20 20  | .....................:pos.beg... | 
| 575a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 575c0 |  20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20    65 78 74 65 72 6e 2d 6e 61 6d 65 2d 6c 65 6e 29  | ...........:len.extern-name-len) | 
| 575e0 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | ))).....................(js2-nod | 
| 57600 |  65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-add-children.................. | 
| 57620 |  20 20 20 20 6e 6f 64 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ....node......................(j | 
| 57640 |  73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e    67 2d 6e 6f 64 65 2d 6c 6f 63 61 6c 2d 6e 61 6d  | s2-export-binding-node-local-nam | 
| 57660 |  65 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | e.node)......................(js | 
| 57680 |  32 2d 65 78 70 6f 72 74 2d 62 69 6e 64 69 6e 67    2d 6e 6f 64 65 2d 65 78 74 65 72 6e 2d 6e 61 6d  | 2-export-binding-node-extern-nam | 
| 576a0 |  65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66  | e.node)).....................(if | 
| 576c0 |  20 69 6d 70 6f 72 74 2d 70 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .import-p....................... | 
| 576e0 |  20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ..(js2-set-face.(js2-current-tok | 
| 57700 |  65 6e 2d 62 65 67 29 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a  | en-beg).(js2-current-token-end). | 
| 57720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 57740 |  20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b    2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66  | ......'font-lock-variable-name-f | 
| 57760 |  61 63 65 20 27 72 65 63 6f 72 64 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ace.'record))................... | 
| 57780 |  20 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67  | ..node).................(js2-ung | 
| 577a0 |  65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a  | et-token).................nil)). | 
| 577c0 |  20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20    28 28 6e 61 6d 65 2d 6e 6f 64 65 20 28 6d 61 6b  | ..........(let*.((name-node.(mak | 
| 577e0 |  65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-js2-name-node................. | 
| 57800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61    6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | .............:name.(js2-current- | 
| 57820 |  74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | token-string)................... | 
| 57840 |  20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ...........:pos.(js2-current-tok | 
| 57860 |  65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en-beg)......................... | 
| 57880 |  20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65 6e  | .....:len.(js2-current-token-len | 
| 578a0 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6e 6f 64 65 20 28 6d 61 6b 65  | )))..................(node.(make | 
| 578c0 |  2d 6a 73 32 2d 65 78 70 6f 72 74 2d 62 69 6e 64    69 6e 67 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20  | -js2-export-binding-node........ | 
| 578e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65  | .................:pos.(js2-curre | 
| 57900 |  6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt-token-beg)................... | 
| 57920 |  20 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65  | ......:len.(js2-current-token-le | 
| 57940 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 6c 6f 63 61  | n).........................:loca | 
| 57960 |  6c 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | l-name.name-node................ | 
| 57980 |  20 20 20 20 20 20 20 20 20 3a 65 78 74 65 72 6e    2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f 64 65 29  | .........:extern-name.name-node) | 
| 579a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 69 73 2d 72 65 73 65 72 76 65 64  | )).............(when.is-reserved | 
| 579c0 |  2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | -name...............(js2-report- | 
| 579e0 |  65 72 72 6f 72 20 22 6d 73 67 2e 6d 6f 64 2e 61    73 2e 61 66 74 65 72 2e 72 65 73 65 72 76 65 64  | error."msg.mod.as.after.reserved | 
| 57a00 |  2e 77 6f 72 64 22 20 65 78 74 65 72 6e 2d 6e 61    6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | .word".extern-name))............ | 
| 57a20 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63    68 69 6c 64 72 65 6e 20 6e 6f 64 65 20 6e 61 6d  | .(js2-node-add-children.node.nam | 
| 57a40 |  65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 69 6d 70 6f 72 74 2d 70  | e-node).............(if.import-p | 
| 57a60 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 73 65 74 2d 66 61 63 65 20 28  | .................(js2-set-face.( | 
| 57a80 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 2d 62 65 67 29 20 28 6a 73 32 2d 63 75 72 72  | js2-current-token-beg).(js2-curr | 
| 57aa0 |  65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ent-token-end).................. | 
| 57ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f    6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65  | .............'font-lock-variable | 
| 57ae0 |  2d 6e 61 6d 65 2d 66 61 63 65 20 27 72 65 63 6f    72 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -name-face.'record))............ | 
| 57b00 |  20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 6e 69    6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | .node)).......nil)))..(defun.js2 | 
| 57b20 |  2d 70 61 72 73 65 2d 73 77 69 74 63 68 20 28 29    0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20 73  | -parse-switch.()..."Parser.for.s | 
| 57b40 |  77 69 74 63 68 2d 73 74 61 74 65 6d 65 6e 74 2e    20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74  | witch-statement...Last.matched.t | 
| 57b60 |  6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32    2d 53 57 49 54 43 48 2e 22 0a 20 20 28 6c 65 74  | oken.must.be.js2-SWITCH."...(let | 
| 57b80 |  20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a  | .((pos.(js2-current-token-beg)). | 
| 57ba0 |  20 20 20 20 20 20 20 20 74 74 20 70 6e 20 64 69    73 63 72 69 6d 69 6e 61 6e 74 20 68 61 73 2d 64  | ........tt.pn.discriminant.has-d | 
| 57bc0 |  65 66 61 75 6c 74 20 63 61 73 65 2d 65 78 70 72    20 63 61 73 65 2d 6e 6f 64 65 0a 20 20 20 20 20  | efault.case-expr.case-node...... | 
| 57be0 |  20 20 20 63 61 73 65 2d 70 6f 73 20 63 61 73 65    73 20 73 74 6d 74 20 6c 70 29 0a 20 20 20 20 28  | ...case-pos.cases.stmt.lp).....( | 
| 57c00 |  69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74    63 68 20 6a 73 32 2d 4c 50 20 22 6d 73 67 2e 6e  | if.(js2-must-match.js2-LP."msg.n | 
| 57c20 |  6f 2e 70 61 72 65 6e 2e 73 77 69 74 63 68 22 29    0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c  | o.paren.switch").........(setq.l | 
| 57c40 |  70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20  | p.(js2-current-token-beg)))..... | 
| 57c60 |  28 73 65 74 71 20 64 69 73 63 72 69 6d 69 6e 61    6e 74 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78  | (setq.discriminant.(js2-parse-ex | 
| 57c80 |  70 72 29 0a 20 20 20 20 20 20 20 20 20 20 70 6e    20 28 6d 61 6b 65 2d 6a 73 32 2d 73 77 69 74 63  | pr)...........pn.(make-js2-switc | 
| 57ca0 |  68 2d 6e 6f 64 65 20 3a 64 69 73 63 72 69 6d 69    6e 61 6e 74 20 64 69 73 63 72 69 6d 69 6e 61 6e  | h-node.:discriminant.discriminan | 
| 57cc0 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t............................... | 
| 57ce0 |  20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....:pos.pos................... | 
| 57d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 6c 70 20 28 6a 73 32 2d 72 65 6c 70 6f 73  | .................:lp.(js2-relpos | 
| 57d20 |  20 6c 70 20 70 6f 73 29 29 29 0a 20 20 20 20 28    6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69  | .lp.pos))).....(js2-node-add-chi | 
| 57d40 |  6c 64 72 65 6e 20 70 6e 20 64 69 73 63 72 69 6d    69 6e 61 6e 74 29 0a 20 20 20 20 28 6a 73 32 2d  | ldren.pn.discriminant).....(js2- | 
| 57d60 |  65 6e 74 65 72 2d 73 77 69 74 63 68 20 70 6e 29    0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f  | enter-switch.pn).....(unwind-pro | 
| 57d80 |  74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72    6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69  | tect.........(progn...........(i | 
| 57da0 |  66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63    68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e 6f  | f.(js2-must-match.js2-RP."msg.no | 
| 57dc0 |  2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 73 77 69    74 63 68 22 29 0a 20 20 20 20 20 20 20 20 20 20  | .paren.after.switch")........... | 
| 57de0 |  20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 73    77 69 74 63 68 2d 6e 6f 64 65 2d 72 70 20 70 6e  | ....(setf.(js2-switch-node-rp.pn | 
| 57e00 |  29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e    74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73  | ).(-.(js2-current-token-beg).pos | 
| 57e20 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73  | )))...........(js2-must-match.js | 
| 57e40 |  32 2d 4c 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61    63 65 2e 73 77 69 74 63 68 22 29 0a 20 20 20 20  | 2-LC."msg.no.brace.switch")..... | 
| 57e60 |  20 20 20 20 20 20 28 63 61 74 63 68 20 27 62 72    65 61 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ......(catch.'break............. | 
| 57e80 |  28 77 68 69 6c 65 20 74 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 74 74 20  | (while.t...............(setq.tt. | 
| 57ea0 |  28 6a 73 32 2d 6e 65 78 74 2d 74 6f 6b 65 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-next-token)................ | 
| 57ec0 |  20 20 20 20 20 63 61 73 65 2d 70 6f 73 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | .....case-pos.(js2-current-token | 
| 57ee0 |  2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20  | -beg))...............(cond...... | 
| 57f00 |  20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74    20 6a 73 32 2d 52 43 29 0a 20 20 20 20 20 20 20  | ..........((=.tt.js2-RC)........ | 
| 57f20 |  20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28    6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29  | .........(setf.(js2-node-len.pn) | 
| 57f40 |  20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29  | .(-.(js2-current-token-end).pos) | 
| 57f60 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 74 68 72 6f 77 20 27 62 72 65 61 6b 20  | ).................(throw.'break. | 
| 57f80 |  6e 69 6c 29 29 20 20 3b 20 64 6f 6e 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d  | nil))..;.done................((= | 
| 57fa0 |  20 74 74 20 6a 73 32 2d 43 41 53 45 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | .tt.js2-CASE).................(s | 
| 57fc0 |  65 74 71 20 63 61 73 65 2d 65 78 70 72 20 28 6a    73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 0a  | etq.case-expr.(js2-parse-expr)). | 
| 57fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20  | ................(js2-must-match. | 
| 58000 |  6a 73 32 2d 43 4f 4c 4f 4e 20 22 6d 73 67 2e 6e    6f 2e 63 6f 6c 6f 6e 2e 63 61 73 65 22 29 29 0a  | js2-COLON."msg.no.colon.case")). | 
| 58020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    28 3d 20 74 74 20 6a 73 32 2d 44 45 46 41 55 4c  | ...............((=.tt.js2-DEFAUL | 
| 58040 |  54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 68 61 73 2d 64 65 66 61 75  | T).................(if.has-defau | 
| 58060 |  6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | lt.....................(js2-repo | 
| 58080 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 6f    75 62 6c 65 2e 73 77 69 74 63 68 2e 64 65 66 61  | rt-error."msg.double.switch.defa | 
| 580a0 |  75 6c 74 22 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 68 61 73  | ult")).................(setq.has | 
| 580c0 |  2d 64 65 66 61 75 6c 74 20 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -default.t...................... | 
| 580e0 |  20 63 61 73 65 2d 65 78 70 72 20 6e 69 6c 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .case-expr.nil)................. | 
| 58100 |  28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20    6a 73 32 2d 43 4f 4c 4f 4e 20 22 6d 73 67 2e 6e  | (js2-must-match.js2-COLON."msg.n | 
| 58120 |  6f 2e 63 6f 6c 6f 6e 2e 63 61 73 65 22 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | o.colon.case"))................( | 
| 58140 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72  | t.................(js2-report-er | 
| 58160 |  72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 73 77 69    74 63 68 22 29 0a 20 20 20 20 20 20 20 20 20 20  | ror."msg.bad.switch")........... | 
| 58180 |  20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 72    65 61 6b 20 6e 69 6c 29 29 29 0a 20 20 20 20 20  | ......(throw.'break.nil)))...... | 
| 581a0 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    61 73 65 2d 6e 6f 64 65 20 28 6d 61 6b 65 2d 6a  | .........(setq.case-node.(make-j | 
| 581c0 |  73 32 2d 63 61 73 65 2d 6e 6f 64 65 20 3a 70 6f    73 20 63 61 73 65 2d 70 6f 73 0a 20 20 20 20 20  | s2-case-node.:pos.case-pos...... | 
| 581e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 58200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65    6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e  | .............:len.(-.(js2-curren | 
| 58220 |  74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 63 61 73    65 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20  | t-token-end).case-pos).......... | 
| 58240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 58260 |  20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 63    61 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 20  | .........:expr.case-expr))...... | 
| 58280 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20  | .........(js2-node-add-children. | 
| 582a0 |  63 61 73 65 2d 6e 6f 64 65 20 63 61 73 65 2d 65    78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20  | case-node.case-expr)............ | 
| 582c0 |  20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28    2f 3d 20 28 73 65 74 71 20 74 74 20 28 6a 73 32  | ...(while.(and.(/=.(setq.tt.(js2 | 
| 582e0 |  2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 20 6a 73    32 2d 52 43 29 0a 20 20 20 20 20 20 20 20 20 20  | -peek-token)).js2-RC)........... | 
| 58300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 2f 3d 20 74 74 20 6a 73 32 2d 43 41 53 45 29  | ................(/=.tt.js2-CASE) | 
| 58320 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 74  | ...........................(/=.t | 
| 58340 |  74 20 6a 73 32 2d 44 45 46 41 55 4c 54 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.js2-DEFAULT).................. | 
| 58360 |  20 20 20 20 20 20 20 20 20 28 2f 3d 20 74 74 20    6a 73 32 2d 45 4f 46 29 29 0a 20 20 20 20 20 20  | .........(/=.tt.js2-EOF))....... | 
| 58380 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20    73 74 6d 74 20 28 6a 73 32 2d 70 61 72 73 65 2d  | ..........(setf.stmt.(js2-parse- | 
| 583a0 |  73 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | statement)...................... | 
| 583c0 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 63    61 73 65 2d 6e 6f 64 65 29 20 28 2d 20 28 6a 73  | .(js2-node-len.case-node).(-.(js | 
| 583e0 |  32 2d 6e 6f 64 65 2d 65 6e 64 20 73 74 6d 74 29    20 63 61 73 65 2d 70 6f 73 29 29 0a 20 20 20 20  | 2-node-end.stmt).case-pos))..... | 
| 58400 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75 73 68  | ............(js2-block-node-push | 
| 58420 |  20 63 61 73 65 2d 6e 6f 64 65 20 73 74 6d 74 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .case-node.stmt))............... | 
| 58440 |  28 70 75 73 68 20 63 61 73 65 2d 6e 6f 64 65 20    63 61 73 65 73 29 29 29 0a 20 20 20 20 20 20 20  | (push.case-node.cases)))........ | 
| 58460 |  20 20 20 3b 3b 20 61 64 64 20 63 61 73 65 73 20    6c 61 73 74 2c 20 61 73 20 70 75 73 68 69 6e 67  | ...;;.add.cases.last,.as.pushing | 
| 58480 |  20 72 65 76 65 72 73 65 73 20 74 68 65 20 6f 72    64 65 72 20 74 6f 20 62 65 20 63 6f 72 72 65 63  | .reverses.the.order.to.be.correc | 
| 584a0 |  74 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c    69 73 74 20 28 6b 69 64 20 63 61 73 65 73 29 0a  | t...........(dolist.(kid.cases). | 
| 584c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72  | ............(js2-node-add-childr | 
| 584e0 |  65 6e 20 70 6e 20 6b 69 64 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 70 75 73 68 20 6b 69 64  | en.pn.kid).............(push.kid | 
| 58500 |  20 28 6a 73 32 2d 73 77 69 74 63 68 2d 6e 6f 64    65 2d 63 61 73 65 73 20 70 6e 29 29 29 0a 20 20  | .(js2-switch-node-cases.pn)))... | 
| 58520 |  20 20 20 20 20 20 20 20 70 6e 29 20 20 3b 20 72    65 74 75 72 6e 20 76 61 6c 75 65 0a 20 20 20 20  | ........pn)..;.return.value..... | 
| 58540 |  20 20 28 6a 73 32 2d 65 78 69 74 2d 73 77 69 74    63 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | ..(js2-exit-switch))))..(defun.j | 
| 58560 |  73 32 2d 70 61 72 73 65 2d 77 68 69 6c 65 20 28    29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20  | s2-parse-while.()..."Parser.for. | 
| 58580 |  77 68 69 6c 65 2d 73 74 61 74 65 6d 65 6e 74 2e    20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20 74  | while-statement...Last.matched.t | 
| 585a0 |  6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32    2d 57 48 49 4c 45 2e 22 0a 20 20 28 6c 65 74 20  | oken.must.be.js2-WHILE."...(let. | 
| 585c0 |  28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65    6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20  | ((pos.(js2-current-token-beg)).. | 
| 585e0 |  20 20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65    2d 6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 29  | .......(pn.(make-js2-while-node) | 
| 58600 |  29 0a 20 20 20 20 20 20 20 20 63 6f 6e 64 20 62    6f 64 79 29 0a 20 20 20 20 28 6a 73 32 2d 65 6e  | ).........cond.body).....(js2-en | 
| 58620 |  74 65 72 2d 6c 6f 6f 70 20 70 6e 29 0a 20 20 20    20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74  | ter-loop.pn).....(unwind-protect | 
| 58640 |  0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a    20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20  | .........(progn...........(setf. | 
| 58660 |  63 6f 6e 64 20 28 6a 73 32 2d 70 61 72 73 65 2d    63 6f 6e 64 69 74 69 6f 6e 29 0a 20 20 20 20 20  | cond.(js2-parse-condition)...... | 
| 58680 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    77 68 69 6c 65 2d 6e 6f 64 65 2d 63 6f 6e 64 69  | ...........(js2-while-node-condi | 
| 586a0 |  74 69 6f 6e 20 70 6e 29 20 28 63 61 72 20 63 6f    6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | tion.pn).(car.cond)............. | 
| 586c0 |  20 20 20 20 62 6f 64 79 20 28 6a 73 32 2d 70 61    72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 0a 20  | ....body.(js2-parse-statement).. | 
| 586e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 77 68 69 6c 65 2d 6e 6f 64 65 2d 62  | ...............(js2-while-node-b | 
| 58700 |  6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | ody.pn).body.................(js | 
| 58720 |  32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28    2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20  | 2-node-len.pn).(-.(js2-node-end. | 
| 58740 |  62 6f 64 79 29 20 70 6f 73 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | body).pos).................(js2- | 
| 58760 |  77 68 69 6c 65 2d 6e 6f 64 65 2d 6c 70 20 70 6e    29 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 28 63  | while-node-lp.pn).(js2-relpos.(c | 
| 58780 |  6c 2d 73 65 63 6f 6e 64 20 63 6f 6e 64 29 20 70    6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | l-second.cond).pos)............. | 
| 587a0 |  20 20 20 20 28 6a 73 32 2d 77 68 69 6c 65 2d 6e    6f 64 65 2d 72 70 20 70 6e 29 20 28 6a 73 32 2d  | ....(js2-while-node-rp.pn).(js2- | 
| 587c0 |  72 65 6c 70 6f 73 20 28 63 6c 2d 74 68 69 72 64    20 63 6f 6e 64 29 20 70 6f 73 29 29 0a 20 20 20  | relpos.(cl-third.cond).pos)).... | 
| 587e0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65    2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e  | .......(js2-node-add-children.pn | 
| 58800 |  20 62 6f 64 79 20 28 63 61 72 20 63 6f 6e 64 29    29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 78  | .body.(car.cond))).......(js2-ex | 
| 58820 |  69 74 2d 6c 6f 6f 70 29 29 0a 20 20 20 20 70 6e    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70  | it-loop)).....pn))..(defun.js2-p | 
| 58840 |  61 72 73 65 2d 64 6f 20 28 29 0a 20 20 22 50 61    72 73 65 72 20 66 6f 72 20 64 6f 2d 73 74 61 74  | arse-do.()..."Parser.for.do-stat | 
| 58860 |  65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61 74    63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20  | ement...Last.matched.token.must. | 
| 58880 |  62 65 20 6a 73 32 2d 44 4f 2e 22 0a 20 20 28 6c    65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75  | be.js2-DO."...(let.((pos.(js2-cu | 
| 588a0 |  72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29    29 0a 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d  | rrent-token-beg)).........(pn.(m | 
| 588c0 |  61 6b 65 2d 6a 73 32 2d 64 6f 2d 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 20 20 63 6f 6e 64 20 62  | ake-js2-do-node)).........cond.b | 
| 588e0 |  6f 64 79 20 65 6e 64 29 0a 20 20 20 20 28 6a 73    32 2d 65 6e 74 65 72 2d 6c 6f 6f 70 20 70 6e 29  | ody.end).....(js2-enter-loop.pn) | 
| 58900 |  0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f    74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72  | .....(unwind-protect.........(pr | 
| 58920 |  6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 62 6f 64 79 20 28 6a 73 32 2d 70 61  | ogn...........(setq.body.(js2-pa | 
| 58940 |  72 73 65 2d 73 74 61 74 65 6d 65 6e 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d  | rse-statement))...........(js2-m | 
| 58960 |  75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 57 48    49 4c 45 20 22 6d 73 67 2e 6e 6f 2e 77 68 69 6c  | ust-match.js2-WHILE."msg.no.whil | 
| 58980 |  65 2e 64 6f 22 29 0a 20 20 20 20 20 20 20 20 20    20 28 73 65 74 66 20 28 6a 73 32 2d 64 6f 2d 6e  | e.do")...........(setf.(js2-do-n | 
| 589a0 |  6f 64 65 2d 77 68 69 6c 65 2d 70 6f 73 20 70 6e    29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e  | ode-while-pos.pn).(-.(js2-curren | 
| 589c0 |  74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t-token-beg).pos)............... | 
| 589e0 |  20 20 63 6f 6e 64 20 28 6a 73 32 2d 70 61 72 73    65 2d 63 6f 6e 64 69 74 69 6f 6e 29 0a 20 20 20  | ..cond.(js2-parse-condition).... | 
| 58a00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 64 6f 2d 6e 6f 64 65 2d 63 6f 6e 64 69 74  | .............(js2-do-node-condit | 
| 58a20 |  69 6f 6e 20 70 6e 29 20 28 63 61 72 20 63 6f 6e    64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ion.pn).(car.cond).............. | 
| 58a40 |  20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d    62 6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20  | ...(js2-do-node-body.pn).body... | 
| 58a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e    64 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a  | ..............end.js2-ts-cursor. | 
| 58a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 64 6f 2d 6e 6f 64 65 2d 6c 70 20  | ................(js2-do-node-lp. | 
| 58aa0 |  70 6e 29 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20    28 63 6c 2d 73 65 63 6f 6e 64 20 63 6f 6e 64 29  | pn).(js2-relpos.(cl-second.cond) | 
| 58ac0 |  20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 64 6f 2d 6e 6f  | .pos).................(js2-do-no | 
| 58ae0 |  64 65 2d 72 70 20 70 6e 29 20 28 6a 73 32 2d 72    65 6c 70 6f 73 20 28 63 6c 2d 74 68 69 72 64 20  | de-rp.pn).(js2-relpos.(cl-third. | 
| 58b00 |  63 6f 6e 64 29 20 70 6f 73 29 29 0a 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d  | cond).pos))...........(js2-node- | 
| 58b20 |  61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20    28 63 61 72 20 63 6f 6e 64 29 20 62 6f 64 79 29  | add-children.pn.(car.cond).body) | 
| 58b40 |  29 0a 20 20 20 20 20 20 28 6a 73 32 2d 65 78 69    74 2d 6c 6f 6f 70 29 29 0a 20 20 20 20 3b 3b 20  | ).......(js2-exit-loop)).....;;. | 
| 58b60 |  41 6c 77 61 79 73 20 61 75 74 6f 2d 69 6e 73 65    72 74 20 73 65 6d 69 63 6f 6c 6f 6e 20 74 6f 20  | Always.auto-insert.semicolon.to. | 
| 58b80 |  66 6f 6c 6c 6f 77 20 53 70 69 64 65 72 4d 6f 6e    6b 65 79 3a 0a 20 20 20 20 3b 3b 20 49 74 20 69  | follow.SpiderMonkey:.....;;.It.i | 
| 58ba0 |  73 20 72 65 71 75 69 72 65 64 20 62 79 20 45 43    4d 41 53 63 72 69 70 74 20 62 75 74 20 69 73 20  | s.required.by.ECMAScript.but.is. | 
| 58bc0 |  69 67 6e 6f 72 65 64 20 62 79 20 74 68 65 20 72    65 73 74 20 6f 66 0a 20 20 20 20 3b 3b 20 77 6f  | ignored.by.the.rest.of.....;;.wo | 
| 58be0 |  72 6c 64 3b 20 73 65 65 20 62 75 67 20 32 33 38    39 34 35 0a 20 20 20 20 28 69 66 20 28 6a 73 32  | rld;.see.bug.238945.....(if.(js2 | 
| 58c00 |  2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32    2d 53 45 4d 49 29 0a 20 20 20 20 20 20 20 20 28  | -match-token.js2-SEMI).........( | 
| 58c20 |  73 65 74 71 20 65 6e 64 20 6a 73 32 2d 74 73 2d    63 75 72 73 6f 72 29 29 0a 20 20 20 20 28 73 65  | setq.end.js2-ts-cursor)).....(se | 
| 58c40 |  74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e    20 70 6e 29 20 28 2d 20 65 6e 64 20 70 6f 73 29  | tf.(js2-node-len.pn).(-.end.pos) | 
| 58c60 |  29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 65 78 70  | ).....pn))..(defun.js2-parse-exp | 
| 58c80 |  6f 72 74 20 28 29 0a 20 20 22 50 61 72 73 65 20    61 6e 20 65 78 70 6f 72 74 20 73 74 61 74 65 6d  | ort.()..."Parse.an.export.statem | 
| 58ca0 |  65 6e 74 2e 0a 54 68 65 20 4c 61 73 74 20 6d 61    74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74  | ent..The.Last.matched.token.must | 
| 58cc0 |  20 62 65 20 6a 73 32 2d 45 58 50 4f 52 54 2e 20    43 75 72 72 65 6e 74 6c 79 2c 20 74 68 65 20 60  | .be.js2-EXPORT..Currently,.the.` | 
| 58ce0 |  64 65 66 61 75 6c 74 27 20 61 6e 64 20 60 65 78    70 72 27 0a 65 78 70 72 65 73 73 69 6f 6e 73 20  | default'.and.`expr'.expressions. | 
| 58d00 |  73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 65    69 74 68 65 72 20 68 6f 69 73 74 61 62 6c 65 20  | should.only.be.either.hoistable. | 
| 58d20 |  65 78 70 72 65 73 73 69 6f 6e 73 20 28 66 75 6e    63 74 69 6f 6e 20 6f 72 20 67 65 6e 65 72 61 74  | expressions.(function.or.generat | 
| 58d40 |  6f 72 29 0a 6f 72 20 61 73 73 69 67 6e 6d 65 6e    74 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 62  | or).or.assignment.expressions,.b | 
| 58d60 |  75 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 63    68 65 63 6b 69 6e 67 20 74 6f 20 65 6e 66 6f 72  | ut.there.is.no.checking.to.enfor | 
| 58d80 |  63 65 20 74 68 61 74 20 61 6e 64 20 73 6f 20 69    74 0a 77 69 6c 6c 20 70 61 72 73 65 20 77 69 74  | ce.that.and.so.it.will.parse.wit | 
| 58da0 |  68 6f 75 74 20 65 72 72 6f 72 20 61 20 73 6d 61    6c 6c 20 73 75 62 73 65 74 20 6f 66 0a 69 6e 76  | hout.error.a.small.subset.of.inv | 
| 58dc0 |  61 6c 69 64 20 65 78 70 6f 72 74 20 73 74 61 74    65 6d 65 6e 74 73 2e 22 0a 20 20 28 75 6e 6c 65  | alid.export.statements."...(unle | 
| 58de0 |  73 73 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74    2d 70 20 6a 73 32 2d 63 75 72 72 65 6e 74 2d 73  | ss.(js2-ast-root-p.js2-current-s | 
| 58e00 |  63 6f 70 65 29 0a 20 20 20 20 28 6a 73 32 2d 72    65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67  | cope).....(js2-report-error."msg | 
| 58e20 |  2e 6d 6f 64 2e 65 78 70 6f 72 74 2e 64 65 63 6c    2e 61 74 2e 74 6f 70 2e 6c 65 76 65 6c 22 29 29  | .mod.export.decl.at.top.level")) | 
| 58e40 |  0a 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | ...(let.((beg.(js2-current-token | 
| 58e60 |  2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28    63 68 69 6c 64 72 65 6e 20 28 6c 69 73 74 29 29  | -beg)).........(children.(list)) | 
| 58e80 |  0a 20 20 20 20 20 20 20 20 65 78 70 6f 72 74 73    2d 6c 69 73 74 20 66 72 6f 6d 2d 63 6c 61 75 73  | .........exports-list.from-claus | 
| 58ea0 |  65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 64 65    66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 61 73  | e.declaration.default.........as | 
| 58ec0 |  79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61  | ync-pos).....(cond......((js2-ma | 
| 58ee0 |  74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4d 55    4c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66  | tch-token.js2-MUL).......(setq.f | 
| 58f00 |  72 6f 6d 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d    70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 75 73  | rom-clause.(js2-parse-from-claus | 
| 58f20 |  65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20    66 72 6f 6d 2d 63 6c 61 75 73 65 0a 20 20 20 20  | e)).......(when.from-clause..... | 
| 58f40 |  20 20 20 20 28 70 75 73 68 20 66 72 6f 6d 2d 63    6c 61 75 73 65 20 63 68 69 6c 64 72 65 6e 29 29  | ....(push.from-clause.children)) | 
| 58f60 |  29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74    63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 43 29  | )......((js2-match-token.js2-LC) | 
| 58f80 |  0a 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70    6f 72 74 73 2d 6c 69 73 74 20 28 6a 73 32 2d 70  | .......(setq.exports-list.(js2-p | 
| 58fa0 |  61 72 73 65 2d 65 78 70 6f 72 74 2d 62 69 6e 64    69 6e 67 73 29 29 0a 20 20 20 20 20 20 28 77 68  | arse-export-bindings)).......(wh | 
| 58fc0 |  65 6e 20 65 78 70 6f 72 74 73 2d 6c 69 73 74 0a    20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20  | en.exports-list.........(dolist. | 
| 58fe0 |  28 65 78 70 6f 72 74 20 65 78 70 6f 72 74 73 2d    6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20  | (export.exports-list)........... | 
| 59000 |  28 70 75 73 68 20 65 78 70 6f 72 74 20 63 68 69    6c 64 72 65 6e 29 29 29 0a 20 20 20 20 20 20 28  | (push.export.children))).......( | 
| 59020 |  77 68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d    63 6f 6e 74 65 78 74 75 61 6c 2d 6b 77 64 20 22  | when.(js2-match-contextual-kwd." | 
| 59040 |  66 72 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 28    6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29  | from").........(js2-unget-token) | 
| 59060 |  0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66    72 6f 6d 2d 63 6c 61 75 73 65 20 28 6a 73 32 2d  | .........(setq.from-clause.(js2- | 
| 59080 |  70 61 72 73 65 2d 66 72 6f 6d 2d 63 6c 61 75 73    65 29 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32  | parse-from-clause))))......((js2 | 
| 590a0 |  2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32    2d 44 45 46 41 55 4c 54 29 0a 20 20 20 20 20 20  | -match-token.js2-DEFAULT)....... | 
| 590c0 |  28 73 65 74 71 20 64 65 66 61 75 6c 74 20 28 63    6f 6e 64 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d  | (setq.default.(cond.((js2-match- | 
| 590e0 |  74 6f 6b 65 6e 20 6a 73 32 2d 43 4c 41 53 53 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | token.js2-CLASS)................ | 
| 59100 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f  | ............(if.(eq.(js2-peek-to | 
| 59120 |  6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ken).js2-NAME).................. | 
| 59140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 73  | ..............(js2-parse-class-s | 
| 59160 |  74 6d 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tmt)............................ | 
| 59180 |  20 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61    73 73 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20  | ..(js2-parse-class-expr)))...... | 
| 591a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68  | .....................((js2-match | 
| 591c0 |  2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -token.js2-NAME)................ | 
| 591e0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 73 65 74 71 20 61 73 79 6e 63 2d 70 6f 73 20  | ............(if.(setq.async-pos. | 
| 59200 |  28 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63    2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20  | (js2-match-async-function))..... | 
| 59220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28  | ...........................(if.( | 
| 59240 |  65 71 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b    65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20  | eq.(js2-peek-token).js2-NAME)... | 
| 59260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 59280 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63    74 69 6f 6e 2d 73 74 6d 74 20 61 73 79 6e 63 2d  | .(js2-parse-function-stmt.async- | 
| 592a0 |  70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos)............................ | 
| 592c0 |  20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65    2d 66 75 6e 63 74 69 6f 6e 2d 65 78 70 72 20 61  | ......(js2-parse-function-expr.a | 
| 592e0 |  73 79 6e 63 2d 70 6f 73 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | sync-pos))...................... | 
| 59300 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67    65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20  | ........(js2-unget-token)....... | 
| 59320 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73  | .......................(js2-pars | 
| 59340 |  65 2d 65 78 70 72 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-expr)))....................... | 
| 59360 |  20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d    74 6f 6b 65 6e 20 6a 73 32 2d 46 55 4e 43 54 49  | ....((js2-match-token.js2-FUNCTI | 
| 59380 |  4f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ON)............................( | 
| 593a0 |  69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b    2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4e 41 4d 45  | if.(eq.(js2-peek-token).js2-NAME | 
| 593c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 593e0 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63    74 69 6f 6e 2d 73 74 6d 74 29 0a 20 20 20 20 20  | .(js2-parse-function-stmt)...... | 
| 59400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72  | ........................(js2-par | 
| 59420 |  73 65 2d 66 75 6e 63 74 69 6f 6e 2d 65 78 70 72    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | se-function-expr)))............. | 
| 59440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74    20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72  | ..............(t.(js2-parse-expr | 
| 59460 |  29 29 29 29 29 0a 20 20 20 20 20 28 28 6f 72 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | )))))......((or.(js2-match-token | 
| 59480 |  20 6a 73 32 2d 56 41 52 29 20 28 6a 73 32 2d 6d    61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43  | .js2-VAR).(js2-match-token.js2-C | 
| 594a0 |  4f 4e 53 54 29 20 28 6a 73 32 2d 6d 61 74 63 68    2d 74 6f 6b 65 6e 20 6a 73 32 2d 4c 45 54 29 29  | ONST).(js2-match-token.js2-LET)) | 
| 594c0 |  0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63    6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 2d 70 61  | .......(setq.declaration.(js2-pa | 
| 594e0 |  72 73 65 2d 76 61 72 69 61 62 6c 65 73 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | rse-variables.(js2-current-token | 
| 59500 |  2d 74 79 70 65 29 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29  | -type).(js2-current-token-beg))) | 
| 59520 |  29 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74    63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 43 4c 41  | )......((js2-match-token.js2-CLA | 
| 59540 |  53 53 29 0a 20 20 20 20 20 20 28 73 65 74 71 20    64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73 32  | SS).......(setq.declaration.(js2 | 
| 59560 |  2d 70 61 72 73 65 2d 63 6c 61 73 73 2d 73 74 6d    74 29 29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d  | -parse-class-stmt)))......((js2- | 
| 59580 |  6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d    4e 41 4d 45 29 0a 20 20 20 20 20 20 28 73 65 74  | match-token.js2-NAME).......(set | 
| 595a0 |  71 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73  | q.declaration.............(if.(s | 
| 595c0 |  65 74 71 20 61 73 79 6e 63 2d 70 6f 73 20 28 6a    73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 66  | etq.async-pos.(js2-match-async-f | 
| 595e0 |  75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70  | unction)).................(js2-p | 
| 59600 |  61 72 73 65 2d 66 75 6e 63 74 69 6f 6e 2d 73 74    6d 74 20 61 73 79 6e 63 2d 70 6f 73 29 0a 20 20  | arse-function-stmt.async-pos)... | 
| 59620 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20  | ............(js2-unget-token)... | 
| 59640 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 70 61 72 73 65 2d 65 78 70 72 29 29 29 29 0a  | ............(js2-parse-expr)))). | 
| 59660 |  20 20 20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68    2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 55 4e 43 54  | .....((js2-match-token.js2-FUNCT | 
| 59680 |  49 4f 4e 29 0a 20 20 20 20 20 20 28 73 65 74 71    20 64 65 63 6c 61 72 61 74 69 6f 6e 20 28 6a 73  | ION).......(setq.declaration.(js | 
| 596a0 |  32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69 6f 6e    2d 73 74 6d 74 29 29 29 0a 20 20 20 20 20 28 74  | 2-parse-function-stmt)))......(t | 
| 596c0 |  0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 63    6c 61 72 61 74 69 6f 6e 20 28 6a 73 32 2d 70 61  | .......(setq.declaration.(js2-pa | 
| 596e0 |  72 73 65 2d 65 78 70 72 29 29 29 29 0a 20 20 20    20 28 77 68 65 6e 20 66 72 6f 6d 2d 63 6c 61 75  | rse-expr)))).....(when.from-clau | 
| 59700 |  73 65 0a 20 20 20 20 20 20 28 70 75 73 68 20 66    72 6f 6d 2d 63 6c 61 75 73 65 20 63 68 69 6c 64  | se.......(push.from-clause.child | 
| 59720 |  72 65 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20    64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20  | ren)).....(when.declaration..... | 
| 59740 |  20 20 28 70 75 73 68 20 64 65 63 6c 61 72 61 74    69 6f 6e 20 63 68 69 6c 64 72 65 6e 29 0a 20 20  | ..(push.declaration.children)... | 
| 59760 |  20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28    6f 72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e  | ....(when.(not.(or.(js2-function | 
| 59780 |  2d 6e 6f 64 65 2d 70 20 64 65 63 6c 61 72 61 74    69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -node-p.declaration)............ | 
| 597a0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63    6c 61 73 73 2d 6e 6f 64 65 2d 70 20 64 65 63 6c  | ..........(js2-class-node-p.decl | 
| 597c0 |  61 72 61 74 69 6f 6e 29 29 29 0a 20 20 20 20 20    20 20 20 28 6a 73 32 2d 61 75 74 6f 2d 69 6e 73  | aration))).........(js2-auto-ins | 
| 597e0 |  65 72 74 2d 73 65 6d 69 63 6f 6c 6f 6e 20 64 65    63 6c 61 72 61 74 69 6f 6e 29 29 29 0a 20 20 20  | ert-semicolon.declaration))).... | 
| 59800 |  20 28 77 68 65 6e 20 64 65 66 61 75 6c 74 0a 20    20 20 20 20 20 28 70 75 73 68 20 64 65 66 61 75  | .(when.default.......(push.defau | 
| 59820 |  6c 74 20 63 68 69 6c 64 72 65 6e 29 0a 20 20 20    20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6f  | lt.children).......(when.(not.(o | 
| 59840 |  72 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d    6e 6f 64 65 2d 70 20 64 65 66 61 75 6c 74 29 0a  | r.(js2-function-node-p.default). | 
| 59860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 63 6c 61 73 73 2d  | .....................(js2-class- | 
| 59880 |  6e 6f 64 65 2d 70 20 64 65 66 61 75 6c 74 29 29    29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61  | node-p.default))).........(js2-a | 
| 598a0 |  75 74 6f 2d 69 6e 73 65 72 74 2d 73 65 6d 69 63    6f 6c 6f 6e 20 64 65 66 61 75 6c 74 29 29 29 0a  | uto-insert-semicolon.default))). | 
| 598c0 |  20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20    28 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 6f 72 74  | ....(let.((node.(make-js2-export | 
| 598e0 |  2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 70 6f 73 20 62 65 67  | -node...................:pos.beg | 
| 59900 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d  | ...................:len.(-.(js2- | 
| 59920 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e    64 29 20 62 65 67 29 0a 20 20 20 20 20 20 20 20  | current-token-end).beg)......... | 
| 59940 |  20 20 20 20 20 20 20 20 20 20 3a 65 78 70 6f 72    74 73 2d 6c 69 73 74 20 65 78 70 6f 72 74 73 2d  | ..........:exports-list.exports- | 
| 59960 |  6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3a 66 72 6f 6d 2d 63 6c 61  | list...................:from-cla | 
| 59980 |  75 73 65 20 66 72 6f 6d 2d 63 6c 61 75 73 65 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | use.from-clause................. | 
| 599a0 |  20 20 3a 64 65 63 6c 61 72 61 74 69 6f 6e 20 64    65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 20 20  | ..:declaration.declaration...... | 
| 599c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65    66 61 75 6c 74 20 64 65 66 61 75 6c 74 29 29 29  | .............:default.default))) | 
| 599e0 |  0a 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27    6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69  | .......(apply.#'js2-node-add-chi | 
| 59a00 |  6c 64 72 65 6e 20 6e 6f 64 65 20 63 68 69 6c 64    72 65 6e 29 0a 20 20 20 20 20 20 6e 6f 64 65 29  | ldren.node.children).......node) | 
| 59a20 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    61 72 73 65 2d 66 6f 72 20 28 29 0a 20 20 22 50  | ))..(defun.js2-parse-for.()..."P | 
| 59a40 |  61 72 73 65 20 61 20 66 6f 72 2c 20 66 6f 72 2d    69 6e 2c 20 66 6f 72 20 65 61 63 68 2d 69 6e 20  | arse.a.for,.for-in,.for.each-in. | 
| 59a60 |  6f 72 20 66 6f 72 20 61 77 61 69 74 2d 69 6e 20    73 74 61 74 65 6d 65 6e 74 2e 0a 4c 61 73 74 20  | or.for.await-in.statement..Last. | 
| 59a80 |  6d 61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75    73 74 20 62 65 20 6a 73 32 2d 46 4f 52 2e 22 0a  | matched.token.must.be.js2-FOR.". | 
| 59aa0 |  20 20 28 6c 65 74 20 28 28 66 6f 72 2d 70 6f 73    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | ..(let.((for-pos.(js2-current-to | 
| 59ac0 |  6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20    20 20 28 74 6d 70 2d 73 63 6f 70 65 20 28 6d 61  | ken-beg)).........(tmp-scope.(ma | 
| 59ae0 |  6b 65 2d 6a 73 32 2d 73 63 6f 70 65 29 29 0a 20    20 20 20 20 20 20 20 70 6e 20 69 73 2d 66 6f 72  | ke-js2-scope)).........pn.is-for | 
| 59b00 |  2d 65 61 63 68 20 69 73 2d 66 6f 72 2d 69 6e 2d    6f 72 2d 6f 66 20 69 73 2d 66 6f 72 2d 6f 66 20  | -each.is-for-in-or-of.is-for-of. | 
| 59b20 |  69 73 2d 66 6f 72 2d 61 77 61 69 74 0a 20 20 20    20 20 20 20 20 69 6e 2d 70 6f 73 20 65 61 63 68  | is-for-await.........in-pos.each | 
| 59b40 |  2d 70 6f 73 20 74 6d 70 2d 70 6f 73 20 61 77 61    69 74 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 69  | -pos.tmp-pos.await-pos.........i | 
| 59b60 |  6e 69 74 20 20 3b 20 4e 6f 64 65 20 69 6e 69 74    20 69 73 20 61 6c 73 6f 20 66 6f 6f 20 69 6e 20  | nit..;.Node.init.is.also.foo.in. | 
| 59b80 |  27 66 6f 6f 20 69 6e 20 6f 62 6a 65 63 74 27 2e    0a 20 20 20 20 20 20 20 20 63 6f 6e 64 20 20 3b  | 'foo.in.object'..........cond..; | 
| 59ba0 |  20 4e 6f 64 65 20 63 6f 6e 64 20 69 73 20 61 6c    73 6f 20 6f 62 6a 65 63 74 20 69 6e 20 27 66 6f  | .Node.cond.is.also.object.in.'fo | 
| 59bc0 |  6f 20 69 6e 20 6f 62 6a 65 63 74 27 2e 0a 20 20    20 20 20 20 20 20 69 6e 63 72 20 20 3b 20 33 72  | o.in.object'..........incr..;.3r | 
| 59be0 |  64 20 73 65 63 74 69 6f 6e 20 6f 66 20 66 6f 72    2d 6c 6f 6f 70 20 69 6e 69 74 69 61 6c 69 7a 65  | d.section.of.for-loop.initialize | 
| 59c00 |  72 2e 0a 20 20 20 20 20 20 20 20 62 6f 64 79 20    74 74 20 6c 70 20 72 70 29 0a 20 20 20 20 28 77  | r..........body.tt.lp.rp).....(w | 
| 59c20 |  68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74    6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20  | hen.(js2-match-token.js2-NAME).. | 
| 59c40 |  20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20    20 20 3b 3b 20 53 65 65 20 69 66 20 74 68 69 73  | .....(cond........;;.See.if.this | 
| 59c60 |  20 69 73 20 61 20 66 6f 72 20 65 61 63 68 20 28    29 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75 73  | .is.a.for.each.().instead.of.jus | 
| 59c80 |  74 20 61 20 66 6f 72 20 28 29 0a 20 20 20 20 20    20 20 28 28 73 74 72 69 6e 67 3d 20 22 65 61 63  | t.a.for.()........((string=."eac | 
| 59ca0 |  68 22 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a 20  | h".(js2-current-token-string)).. | 
| 59cc0 |  20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 73  | .......(progn...........(setq.is | 
| 59ce0 |  2d 66 6f 72 2d 65 61 63 68 20 74 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 65 61 63 68  | -for-each.t.................each | 
| 59d00 |  2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20  | -pos.(-.(js2-current-token-beg). | 
| 59d20 |  66 6f 72 2d 70 6f 73 29 29 20 3b 20 72 65 6c 61    74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 28  | for-pos)).;.relative...........( | 
| 59d40 |  6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20    27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f  | js2-record-face.'font-lock-keywo | 
| 59d60 |  72 64 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20    20 20 3b 3b 20 53 65 65 20 69 66 20 74 68 69 73  | rd-face)))........;;.See.if.this | 
| 59d80 |  20 69 73 20 61 20 66 6f 72 20 61 77 61 69 74 20    28 29 20 69 6e 73 74 65 61 64 20 6f 66 20 6a 75  | .is.a.for.await.().instead.of.ju | 
| 59da0 |  73 74 20 61 20 66 6f 72 20 28 29 0a 20 20 20 20    20 20 20 28 28 73 74 72 69 6e 67 3d 20 22 61 77  | st.a.for.()........((string=."aw | 
| 59dc0 |  61 69 74 22 20 28 6a 73 32 2d 63 75 72 72 65 6e    74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29  | ait".(js2-current-token-string)) | 
| 59de0 |  0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | .........(progn...........(setq. | 
| 59e00 |  69 73 2d 66 6f 72 2d 61 77 61 69 74 20 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61  | is-for-await.t.................a | 
| 59e20 |  77 61 69 74 2d 70 6f 73 20 28 2d 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | wait-pos.(-.(js2-current-token-b | 
| 59e40 |  65 67 29 20 66 6f 72 2d 70 6f 73 29 29 20 3b 20    72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 20  | eg).for-pos)).;.relative........ | 
| 59e60 |  20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66    61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b  | ...(js2-record-face.'font-lock-k | 
| 59e80 |  65 79 77 6f 72 64 2d 66 61 63 65 29 29 29 0a 20    20 20 20 20 20 20 28 74 20 28 6a 73 32 2d 72 65  | eyword-face)))........(t.(js2-re | 
| 59ea0 |  70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e    6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22 29 29 29  | port-error."msg.no.paren.for"))) | 
| 59ec0 |  29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d    75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50  | ).....(if.(js2-must-match.js2-LP | 
| 59ee0 |  20 22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66    6f 72 22 29 0a 20 20 20 20 20 20 20 20 28 73 65  | ."msg.no.paren.for").........(se | 
| 59f00 |  74 71 20 6c 70 20 28 2d 20 28 6a 73 32 2d 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29  | tq.lp.(-.(js2-current-token-beg) | 
| 59f20 |  20 66 6f 72 2d 70 6f 73 29 29 29 0a 20 20 20 20    28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65  | .for-pos))).....(setq.tt.(js2-ge | 
| 59f40 |  74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 3b 3b    20 43 61 70 74 75 72 65 20 69 64 65 6e 74 69 66  | t-token)).....;;.Capture.identif | 
| 59f60 |  69 65 72 73 20 69 6e 73 69 64 65 20 70 61 72 65    6e 73 2e 20 20 57 65 20 63 61 6e 27 74 20 63 72  | iers.inside.parens...We.can't.cr | 
| 59f80 |  65 61 74 65 20 74 68 65 20 6e 6f 64 65 0a 20 20    20 20 3b 3b 20 28 61 6e 64 20 75 73 65 20 69 74  | eate.the.node.....;;.(and.use.it | 
| 59fa0 |  20 61 73 20 74 68 65 20 63 75 72 72 65 6e 74 20    73 63 6f 70 65 29 20 75 6e 74 69 6c 20 77 65 20  | .as.the.current.scope).until.we. | 
| 59fc0 |  6b 6e 6f 77 20 69 74 73 20 74 79 70 65 2e 0a 20    20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f  | know.its.type......(js2-push-sco | 
| 59fe0 |  70 65 20 74 6d 70 2d 73 63 6f 70 65 29 0a 20 20    20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63  | pe.tmp-scope).....(unwind-protec | 
| 5a000 |  74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e    0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 61  | t.........(progn...........;;.pa | 
| 5a020 |  72 73 65 20 69 6e 69 74 20 63 6c 61 75 73 65 0a    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28  | rse.init.clause...........(let.( | 
| 5a040 |  28 6a 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74    20 74 29 29 20 20 3b 20 73 65 74 20 61 73 20 64  | (js2-in-for-init.t))..;.set.as.d | 
| 5a060 |  79 6e 61 6d 69 63 20 76 61 72 69 61 62 6c 65 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e  | ynamic.variable.............(con | 
| 5a080 |  64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    28 3d 20 74 74 20 6a 73 32 2d 53 45 4d 49 29 0a  | d..............((=.tt.js2-SEMI). | 
| 5a0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a  | ..............(js2-unget-token). | 
| 5a0c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 69 6e 69 74 20 28 6d 61 6b 65 2d 6a  | ..............(setq.init.(make-j | 
| 5a0e0 |  73 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f    64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | s2-empty-expr-node)))........... | 
| 5a100 |  20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73    32 2d 56 41 52 29 20 28 3d 20 74 74 20 6a 73 32  | ...((or.(=.tt.js2-VAR).(=.tt.js2 | 
| 5a120 |  2d 4c 45 54 29 20 28 3d 20 74 74 20 6a 73 32 2d    43 4f 4e 53 54 29 29 0a 20 20 20 20 20 20 20 20  | -LET).(=.tt.js2-CONST))......... | 
| 5a140 |  20 20 20 20 20 20 28 73 65 74 71 20 69 6e 69 74    20 28 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69  | ......(setq.init.(js2-parse-vari | 
| 5a160 |  61 62 6c 65 73 20 74 74 20 28 6a 73 32 2d 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29  | ables.tt.(js2-current-token-beg) | 
| 5a180 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20  | )))..............(t............. | 
| 5a1a0 |  20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b    65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..(js2-unget-token)............. | 
| 5a1c0 |  20 20 28 73 65 74 71 20 69 6e 69 74 20 28 6a 73    32 2d 70 61 72 73 65 2d 65 78 70 72 29 29 29 29  | ..(setq.init.(js2-parse-expr)))) | 
| 5a1e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6f 72 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74  | )...........(if.(or.(js2-match-t | 
| 5a200 |  6f 6b 65 6e 20 6a 73 32 2d 49 4e 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | oken.js2-IN)...................( | 
| 5a220 |  61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67    75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30  | and.(>=.js2-language-version.200 | 
| 5a240 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61  | )........................(js2-ma | 
| 5a260 |  74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d 6b    77 64 20 22 6f 66 22 29 0a 20 20 20 20 20 20 20  | tch-contextual-kwd."of")........ | 
| 5a280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 69 73 2d 66 6f 72 2d 6f 66 20  | ................(setq.is-for-of. | 
| 5a2a0 |  74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 69 73 2d 66 6f 72 2d  | t)))...............(setq.is-for- | 
| 5a2c0 |  69 6e 2d 6f 72 2d 6f 66 20 74 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69  | in-or-of.t.....................i | 
| 5a2e0 |  6e 2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29  | n-pos.(-.(js2-current-token-beg) | 
| 5a300 |  20 66 6f 72 2d 70 6f 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | .for-pos).....................;; | 
| 5a320 |  20 73 63 6f 70 65 20 6f 66 20 69 74 65 72 61 74    69 6f 6e 20 74 61 72 67 65 74 20 6f 62 6a 65 63  | .scope.of.iteration.target.objec | 
| 5a340 |  74 20 69 73 20 6e 6f 74 20 74 68 65 20 73 63 6f    70 65 20 77 65 27 76 65 20 63 72 65 61 74 65 64  | t.is.not.the.scope.we've.created | 
| 5a360 |  20 61 62 6f 76 65 2e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73  | .above......................;;.s | 
| 5a380 |  74 61 73 68 20 63 75 72 72 65 6e 74 20 73 63 6f    70 65 20 74 65 6d 70 6f 72 61 72 79 2e 0a 20 20  | tash.current.scope.temporary.... | 
| 5a3a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 63 6f 6e 64 20 28 6c 65 74 20 28 28 6a 73  | ..................cond.(let.((js | 
| 5a3c0 |  32 2d 63 75 72 72 65 6e 74 2d 73 63 6f 70 65 20    28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e  | 2-current-scope.(js2-scope-paren | 
| 5a3e0 |  74 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75 72 72    65 6e 74 2d 73 63 6f 70 65 29 29 29 0a 20 20 20  | t-scope.js2-current-scope))).... | 
| 5a400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72  | ........................(js2-par | 
| 5a420 |  73 65 2d 65 78 70 72 29 29 29 20 20 3b 20 6f 62    6a 65 63 74 20 6f 76 65 72 20 77 68 69 63 68 20  | se-expr)))..;.object.over.which. | 
| 5a440 |  77 65 27 72 65 20 69 74 65 72 61 74 69 6e 67 0a    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65  | we're.iterating.............;;.e | 
| 5a460 |  6c 73 65 20 6f 72 64 69 6e 61 72 79 20 66 6f 72    20 6c 6f 6f 70 20 2d 20 70 61 72 73 65 20 63 6f  | lse.ordinary.for.loop.-.parse.co | 
| 5a480 |  6e 64 20 61 6e 64 20 69 6e 63 72 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73  | nd.and.incr.............(js2-mus | 
| 5a4a0 |  74 2d 6d 61 74 63 68 20 6a 73 32 2d 53 45 4d 49    20 22 6d 73 67 2e 6e 6f 2e 73 65 6d 69 2e 66 6f  | t-match.js2-SEMI."msg.no.semi.fo | 
| 5a4c0 |  72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 63 6f 6e 64 20 28 69 66 20 28  | r").............(setq.cond.(if.( | 
| 5a4e0 |  3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65    6e 29 20 6a 73 32 2d 53 45 4d 49 29 0a 20 20 20  | =.(js2-peek-token).js2-SEMI).... | 
| 5a500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73  | ........................(make-js | 
| 5a520 |  32 2d 65 6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64    65 29 20 3b 20 6e 6f 20 6c 6f 6f 70 20 63 6f 6e  | 2-empty-expr-node).;.no.loop.con | 
| 5a540 |  64 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | dition.......................... | 
| 5a560 |  28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | (js2-parse-expr))).............( | 
| 5a580 |  6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a    73 32 2d 53 45 4d 49 20 22 6d 73 67 2e 6e 6f 2e  | js2-must-match.js2-SEMI."msg.no. | 
| 5a5a0 |  73 65 6d 69 2e 66 6f 72 2e 63 6f 6e 64 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | semi.for.cond").............(set | 
| 5a5c0 |  71 20 74 6d 70 2d 70 6f 73 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64  | q.tmp-pos.(js2-current-token-end | 
| 5a5e0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 69 6e 63 72 20 28 69 66 20 28 3d 20  | )...................incr.(if.(=. | 
| 5a600 |  28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29    20 6a 73 32 2d 52 50 29 0a 20 20 20 20 20 20 20  | (js2-peek-token).js2-RP)........ | 
| 5a620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 6d  | ....................(make-js2-em | 
| 5a640 |  70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 3a 70    6f 73 20 74 6d 70 2d 70 6f 73 29 0a 20 20 20 20  | pty-expr-node.:pos.tmp-pos)..... | 
| 5a660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d  | .....................(js2-parse- | 
| 5a680 |  65 78 70 72 29 29 29 29 29 0a 20 20 20 20 20 20    28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 29  | expr))))).......(js2-pop-scope)) | 
| 5a6a0 |  0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75    73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 50 20  | .....(if.(js2-must-match.js2-RP. | 
| 5a6c0 |  22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f    72 2e 63 74 72 6c 22 29 0a 20 20 20 20 20 20 20  | "msg.no.paren.for.ctrl")........ | 
| 5a6e0 |  20 28 73 65 74 71 20 72 70 20 28 2d 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | .(setq.rp.(-.(js2-current-token- | 
| 5a700 |  62 65 67 29 20 66 6f 72 2d 70 6f 73 29 29 29 0a    20 20 20 20 28 69 66 20 28 6e 6f 74 20 69 73 2d  | beg).for-pos))).....(if.(not.is- | 
| 5a720 |  66 6f 72 2d 69 6e 2d 6f 72 2d 6f 66 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28  | for-in-or-of).........(setq.pn.( | 
| 5a740 |  6d 61 6b 65 2d 6a 73 32 2d 66 6f 72 2d 6e 6f 64    65 20 3a 69 6e 69 74 20 69 6e 69 74 0a 20 20 20  | make-js2-for-node.:init.init.... | 
| 5a760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5a780 |  20 3a 63 6f 6e 64 69 74 69 6f 6e 20 63 6f 6e 64    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:condition.cond................ | 
| 5a7a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 75 70 64 61 74 65 20 69 6e 63  | .....................:update.inc | 
| 5a7c0 |  72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r............................... | 
| 5a7e0 |  20 20 20 20 20 20 3a 6c 70 20 6c 70 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......:lp.lp.................... | 
| 5a800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 72 70 20 72 70 29 29 0a 20 20 20 20 20 20  | .................:rp.rp))....... | 
| 5a820 |  3b 3b 20 63 6f 6e 64 20 63 6f 75 6c 64 20 62 65    20 6e 75 6c 6c 20 69 66 20 27 69 6e 20 6f 62 6a  | ;;.cond.could.be.null.if.'in.obj | 
| 5a840 |  27 20 67 6f 74 20 65 61 74 65 6e 20 62 79 20 74    68 65 20 69 6e 69 74 20 6e 6f 64 65 2e 0a 20 20  | '.got.eaten.by.the.init.node.... | 
| 5a860 |  20 20 20 20 28 69 66 20 28 6a 73 32 2d 69 6e 66    69 78 2d 6e 6f 64 65 2d 70 20 69 6e 69 74 29 0a  | ....(if.(js2-infix-node-p.init). | 
| 5a880 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20    77 61 73 20 28 66 6f 6f 20 69 6e 20 62 61 72 29  | ..........;;.it.was.(foo.in.bar) | 
| 5a8a0 |  20 69 6e 73 74 65 61 64 20 6f 66 20 28 76 61 72    20 66 6f 6f 20 69 6e 20 62 61 72 29 0a 20 20 20  | .instead.of.(var.foo.in.bar).... | 
| 5a8c0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e    64 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64  | .......(setq.cond.(js2-infix-nod | 
| 5a8e0 |  65 2d 72 69 67 68 74 20 69 6e 69 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e  | e-right.init).................in | 
| 5a900 |  69 74 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f    64 65 2d 6c 65 66 74 20 69 6e 69 74 29 29 0a 20  | it.(js2-infix-node-left.init)).. | 
| 5a920 |  20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20    28 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e 6f  | .......(if.(and.(js2-var-decl-no | 
| 5a940 |  64 65 2d 70 20 69 6e 69 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28  | de-p.init)..................(>.( | 
| 5a960 |  6c 65 6e 67 74 68 20 28 6a 73 32 2d 76 61 72 2d    64 65 63 6c 2d 6e 6f 64 65 2d 6b 69 64 73 20 69  | length.(js2-var-decl-node-kids.i | 
| 5a980 |  6e 69 74 29 29 20 31 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72  | nit)).1)).............(js2-repor | 
| 5a9a0 |  74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6d 75 6c    74 2e 69 6e 64 65 78 22 29 29 29 0a 20 20 20 20  | t-error."msg.mult.index")))..... | 
| 5a9c0 |  20 20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65    2d 6a 73 32 2d 66 6f 72 2d 69 6e 2d 6e 6f 64 65  | ..(setq.pn.(make-js2-for-in-node | 
| 5a9e0 |  20 3a 69 74 65 72 61 74 6f 72 20 69 6e 69 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:iterator.init................. | 
| 5aa00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 6f 62 6a 65 63 74 20 63 6f 6e  | .....................:object.con | 
| 5aa20 |  64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d............................... | 
| 5aa40 |  20 20 20 20 20 20 20 3a 69 6e 2d 70 6f 73 20 69    6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20  | .......:in-pos.in-pos........... | 
| 5aa60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 65  | ...........................:fore | 
| 5aa80 |  61 63 68 2d 70 20 69 73 2d 66 6f 72 2d 65 61 63    68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ach-p.is-for-each............... | 
| 5aaa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3a 65 61 63 68 2d 70 6f 73  | .......................:each-pos | 
| 5aac0 |  20 65 61 63 68 2d 70 6f 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .each-pos....................... | 
| 5aae0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    66 6f 72 61 77 61 69 74 2d 70 20 69 73 2d 66 6f  | ...............:forawait-p.is-fo | 
| 5ab00 |  72 2d 61 77 61 69 74 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r-await......................... | 
| 5ab20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 77    61 69 74 2d 70 6f 73 20 61 77 61 69 74 2d 70 6f  | .............:await-pos.await-po | 
| 5ab40 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s............................... | 
| 5ab60 |  20 20 20 20 20 20 20 3a 66 6f 72 6f 66 2d 70 20    69 73 2d 66 6f 72 2d 6f 66 0a 20 20 20 20 20 20  | .......:forof-p.is-for-of....... | 
| 5ab80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 5aba0 |  6c 70 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | lp.lp........................... | 
| 5abc0 |  20 20 20 20 20 20 20 20 20 20 20 3a 72 70 20 72    70 29 29 29 0a 20 20 20 20 3b 3b 20 54 72 61 6e  | ...........:rp.rp))).....;;.Tran | 
| 5abe0 |  73 70 6c 61 6e 74 20 74 68 65 20 64 65 63 6c 61    72 61 74 69 6f 6e 73 2e 0a 20 20 20 20 28 73 65  | splant.the.declarations......(se | 
| 5ac00 |  74 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d 73 79    6d 62 6f 6c 2d 74 61 62 6c 65 20 70 6e 29 0a 20  | tf.(js2-scope-symbol-table.pn).. | 
| 5ac20 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73 63    6f 70 65 2d 73 79 6d 62 6f 6c 2d 74 61 62 6c 65  | .........(js2-scope-symbol-table | 
| 5ac40 |  20 74 6d 70 2d 73 63 6f 70 65 29 29 0a 20 20 20    20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74  | .tmp-scope)).....(unwind-protect | 
| 5ac60 |  0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 65  | .........(progn...........(js2-e | 
| 5ac80 |  6e 74 65 72 2d 6c 6f 6f 70 20 70 6e 29 0a 20 20    20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61  | nter-loop.pn)...........;;.We.ha | 
| 5aca0 |  76 65 20 74 6f 20 70 61 72 73 65 20 74 68 65 20    62 6f 64 79 20 2d 61 66 74 65 72 2d 20 63 72 65  | ve.to.parse.the.body.-after-.cre | 
| 5acc0 |  61 74 69 6e 67 20 74 68 65 20 6c 6f 6f 70 20 6e    6f 64 65 2c 0a 20 20 20 20 20 20 20 20 20 20 3b  | ating.the.loop.node,...........; | 
| 5ace0 |  3b 20 73 6f 20 74 68 61 74 20 74 68 65 20 6c 6f    6f 70 20 6e 6f 64 65 20 61 70 70 65 61 72 73 20  | ;.so.that.the.loop.node.appears. | 
| 5ad00 |  69 6e 20 74 68 65 20 6a 73 32 2d 6c 6f 6f 70 2d    73 65 74 2c 20 61 6c 6c 6f 77 69 6e 67 0a 20 20  | in.the.js2-loop-set,.allowing... | 
| 5ad20 |  20 20 20 20 20 20 20 20 3b 3b 20 62 72 65 61 6b    2f 63 6f 6e 74 69 6e 75 65 20 73 74 61 74 65 6d  | ........;;.break/continue.statem | 
| 5ad40 |  65 6e 74 73 20 74 6f 20 66 69 6e 64 20 74 68 65    20 65 6e 63 6c 6f 73 69 6e 67 20 6c 6f 6f 70 2e  | ents.to.find.the.enclosing.loop. | 
| 5ad60 |  0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66    20 62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65  | ...........(setf.body.(js2-parse | 
| 5ad80 |  2d 73 74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | -statement).................(js2 | 
| 5ada0 |  2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 62 6f 64 79 20    70 6e 29 20 62 6f 64 79 0a 20 20 20 20 20 20 20  | -loop-node-body.pn).body........ | 
| 5adc0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 70 6e 29 20 66 6f 72 2d 70  | .........(js2-node-pos.pn).for-p | 
| 5ade0 |  6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e  | os.................(js2-node-len | 
| 5ae00 |  20 70 6e 29 20 28 2d 20 28 6a 73 32 2d 6e 6f 64    65 2d 65 6e 64 20 62 6f 64 79 29 20 66 6f 72 2d  | .pn).(-.(js2-node-end.body).for- | 
| 5ae20 |  70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68  | pos))...........(js2-node-add-ch | 
| 5ae40 |  69 6c 64 72 65 6e 20 70 6e 20 69 6e 69 74 20 63    6f 6e 64 20 69 6e 63 72 20 62 6f 64 79 29 29 0a  | ildren.pn.init.cond.incr.body)). | 
| 5ae60 |  20 20 20 20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79    0a 20 20 20 20 20 20 28 6a 73 32 2d 65 78 69 74  | ......;;.finally.......(js2-exit | 
| 5ae80 |  2d 6c 6f 6f 70 29 29 0a 20 20 20 20 70 6e 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72  | -loop)).....pn))..(defun.js2-par | 
| 5aea0 |  73 65 2d 74 72 79 20 28 29 0a 20 20 22 50 61 72    73 65 20 61 20 74 72 79 20 73 74 61 74 65 6d 65  | se-try.()..."Parse.a.try.stateme | 
| 5aec0 |  6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65    64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20  | nt...Last.matched.token.must.be. | 
| 5aee0 |  6a 73 32 2d 54 52 59 2e 22 0a 20 20 28 6c 65 74    20 28 28 74 72 79 2d 70 6f 73 20 28 6a 73 32 2d  | js2-TRY."...(let.((try-pos.(js2- | 
| 5af00 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65    67 29 29 0a 20 20 20 20 20 20 20 20 74 72 79 2d  | current-token-beg)).........try- | 
| 5af20 |  65 6e 64 0a 20 20 20 20 20 20 20 20 74 72 79 2d    62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 63 61  | end.........try-block.........ca | 
| 5af40 |  74 63 68 2d 62 6c 6f 63 6b 73 0a 20 20 20 20 20    20 20 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b  | tch-blocks.........finally-block | 
| 5af60 |  0a 20 20 20 20 20 20 20 20 73 61 77 2d 64 65 66    61 75 6c 74 2d 63 61 74 63 68 0a 20 20 20 20 20  | .........saw-default-catch...... | 
| 5af80 |  20 20 20 70 65 65 6b 29 0a 20 20 20 20 28 69 66    20 28 2f 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74  | ...peek).....(if.(/=.(js2-peek-t | 
| 5afa0 |  6f 6b 65 6e 29 20 6a 73 32 2d 4c 43 29 0a 20 20    20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72  | oken).js2-LC).........(js2-repor | 
| 5afc0 |  74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e    62 72 61 63 65 2e 74 72 79 22 29 29 0a 20 20 20  | t-error."msg.no.brace.try")).... | 
| 5afe0 |  20 28 73 65 74 71 20 74 72 79 2d 62 6c 6f 63 6b    20 28 6a 73 32 2d 70 61 72 73 65 2d 73 74 61 74  | .(setq.try-block.(js2-parse-stat | 
| 5b000 |  65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20    20 74 72 79 2d 65 6e 64 20 28 6a 73 32 2d 6e 6f  | ement)...........try-end.(js2-no | 
| 5b020 |  64 65 2d 65 6e 64 20 74 72 79 2d 62 6c 6f 63 6b    29 0a 20 20 20 20 20 20 20 20 20 20 70 65 65 6b  | de-end.try-block)...........peek | 
| 5b040 |  20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e    29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20  | .(js2-peek-token)).....(cond.... | 
| 5b060 |  20 20 28 28 3d 20 70 65 65 6b 20 6a 73 32 2d 43    41 54 43 48 29 0a 20 20 20 20 20 20 28 77 68 69  | ..((=.peek.js2-CATCH).......(whi | 
| 5b080 |  6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f    6b 65 6e 20 6a 73 32 2d 43 41 54 43 48 29 0a 20  | le.(js2-match-token.js2-CATCH).. | 
| 5b0a0 |  20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63    61 74 63 68 2d 70 6f 73 20 28 6a 73 32 2d 63 75  | .......(let*.((catch-pos.(js2-cu | 
| 5b0c0 |  72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rrent-token-beg))............... | 
| 5b0e0 |  20 28 63 61 74 63 68 2d 6e 6f 64 65 20 28 6d 61    6b 65 2d 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64  | .(catch-node.(make-js2-catch-nod | 
| 5b100 |  65 20 3a 70 6f 73 20 63 61 74 63 68 2d 70 6f 73    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.:pos.catch-pos)).............. | 
| 5b120 |  20 20 70 61 72 61 6d 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 67 75 61 72 64 2d 6b 77 64  | ..param................guard-kwd | 
| 5b140 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    63 61 74 63 68 2d 63 6f 6e 64 0a 20 20 20 20 20  | ................catch-cond...... | 
| 5b160 |  20 20 20 20 20 20 20 20 20 20 6c 70 20 72 70 29    0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73  | ..........lp.rp)...........(if.s | 
| 5b180 |  61 77 2d 64 65 66 61 75 6c 74 2d 63 61 74 63 68    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | aw-default-catch...............( | 
| 5b1a0 |  6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72    20 22 6d 73 67 2e 63 61 74 63 68 2e 75 6e 72 65  | js2-report-error."msg.catch.unre | 
| 5b1c0 |  61 63 68 61 62 6c 65 22 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73  | achable"))...........(js2-push-s | 
| 5b1e0 |  63 6f 70 65 20 63 61 74 63 68 2d 6e 6f 64 65 29    0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e  | cope.catch-node)...........(when | 
| 5b200 |  20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65    6e 20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20  | .(js2-match-token.js2-LP)....... | 
| 5b220 |  20 20 20 20 20 20 28 73 65 74 71 20 6c 70 20 28    2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | ......(setq.lp.(-.(js2-current-t | 
| 5b240 |  6f 6b 65 6e 2d 62 65 67 29 20 63 61 74 63 68 2d    70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20  | oken-beg).catch-pos))........... | 
| 5b260 |  20 20 28 6c 65 74 20 28 28 74 74 20 28 6a 73 32    2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 29 0a 20  | ..(let.((tt.(js2-peek-token))).. | 
| 5b280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .............(cond.............. | 
| 5b2a0 |  20 20 3b 3b 20 44 65 73 74 72 75 63 74 75 72 69    6e 67 20 70 61 74 74 65 72 6e 3a 0a 20 20 20 20  | ..;;.Destructuring.pattern:..... | 
| 5b2c0 |  20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20    20 20 63 61 74 63 68 20 28 7b 20 6d 65 73 73 61  | ...........;;.....catch.({.messa | 
| 5b2e0 |  67 65 2c 20 66 69 6c 65 20 7d 29 20 7b 20 2e 2e    2e 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ge,.file.}).{.....}............. | 
| 5b300 |  20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73    32 2d 4c 42 29 20 28 3d 20 74 74 20 6a 73 32 2d  | ...((or.(=.tt.js2-LB).(=.tt.js2- | 
| 5b320 |  4c 43 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f  | LC)).................(js2-get-to | 
| 5b340 |  6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d  | ken).................(setq.param | 
| 5b360 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 64 65 73 74    72 75 63 74 2d 70 72 69 6d 61 72 79 2d 65 78 70  | .(js2-parse-destruct-primary-exp | 
| 5b380 |  72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d  | r)).................(js2-define- | 
| 5b3a0 |  64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f 6c 73    20 70 61 72 61 6d 20 6a 73 32 2d 4c 45 54 20 6e  | destruct-symbols.param.js2-LET.n | 
| 5b3c0 |  69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 53 69 6d 70 6c 65 20 6e 61  | il))................;;.Simple.na | 
| 5b3e0 |  6d 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20  | me.................(t........... | 
| 5b400 |  20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d    6d 61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67 2e  | ......(js2-must-match-name."msg. | 
| 5b420 |  62 61 64 2e 63 61 74 63 68 63 6f 6e 64 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bad.catchcond")................. | 
| 5b440 |  28 73 65 74 71 20 70 61 72 61 6d 20 28 6a 73 32    2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64  | (setq.param.(js2-create-name-nod | 
| 5b460 |  65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d  | e)).................(js2-define- | 
| 5b480 |  73 79 6d 62 6f 6c 20 6a 73 32 2d 4c 45 54 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | symbol.js2-LET.(js2-current-toke | 
| 5b4a0 |  6e 2d 73 74 72 69 6e 67 29 20 70 61 72 61 6d 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-string).param)................ | 
| 5b4c0 |  20 28 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69    63 74 2d 69 64 65 6e 74 69 66 69 65 72 20 70 61  | .(js2-check-strict-identifier.pa | 
| 5b4e0 |  72 61 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 43 61 74 63 68 20 63 6f 6e  | ram)))).............;;.Catch.con | 
| 5b500 |  64 69 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 61 74  | dition..............(if.(js2-mat | 
| 5b520 |  63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 49 46 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ch-token.js2-IF)................ | 
| 5b540 |  20 28 73 65 74 71 20 67 75 61 72 64 2d 6b 77 64    20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | .(setq.guard-kwd.(-.(js2-current | 
| 5b560 |  2d 74 6f 6b 65 6e 2d 62 65 67 29 20 63 61 74 63    68 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20  | -token-beg).catch-pos).......... | 
| 5b580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74    63 68 2d 63 6f 6e 64 20 28 6a 73 32 2d 70 61 72  | .............catch-cond.(js2-par | 
| 5b5a0 |  73 65 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 61  | se-expr))...............(setq.sa | 
| 5b5c0 |  77 2d 64 65 66 61 75 6c 74 2d 63 61 74 63 68 20    74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | w-default-catch.t))............. | 
| 5b5e0 |  28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61    74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e  | (if.(js2-must-match.js2-RP."msg. | 
| 5b600 |  62 61 64 2e 63 61 74 63 68 63 6f 6e 64 22 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bad.catchcond")................. | 
| 5b620 |  28 73 65 74 71 20 72 70 20 28 2d 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | (setq.rp.(-.(js2-current-token-b | 
| 5b640 |  65 67 29 20 63 61 74 63 68 2d 70 6f 73 29 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | eg).catch-pos))))...........(js2 | 
| 5b660 |  2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d    4c 43 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65  | -must-match.js2-LC."msg.no.brace | 
| 5b680 |  2e 63 61 74 63 68 62 6c 6f 63 6b 22 29 0a 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72  | .catchblock")...........(js2-par | 
| 5b6a0 |  73 65 2d 73 74 61 74 65 6d 65 6e 74 73 20 63 61    74 63 68 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20  | se-statements.catch-node)....... | 
| 5b6c0 |  20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73    74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22  | ....(if.(js2-must-match.js2-RC." | 
| 5b6e0 |  6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 61 66 74    65 72 2e 62 6f 64 79 22 29 0a 20 20 20 20 20 20  | msg.no.brace.after.body")....... | 
| 5b700 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72    79 2d 65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65  | ........(setq.try-end.(js2-curre | 
| 5b720 |  6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70  | nt-token-end)))...........(js2-p | 
| 5b740 |  6f 70 2d 73 63 6f 70 65 29 0a 20 20 20 20 20 20    20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e  | op-scope)...........(setf.(js2-n | 
| 5b760 |  6f 64 65 2d 6c 65 6e 20 63 61 74 63 68 2d 6e 6f    64 65 29 20 28 2d 20 74 72 79 2d 65 6e 64 20 63  | ode-len.catch-node).(-.try-end.c | 
| 5b780 |  61 74 63 68 2d 70 6f 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63  | atch-pos).................(js2-c | 
| 5b7a0 |  61 74 63 68 2d 6e 6f 64 65 2d 70 61 72 61 6d 20    63 61 74 63 68 2d 6e 6f 64 65 29 20 70 61 72 61  | atch-node-param.catch-node).para | 
| 5b7c0 |  6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e 6f 64  | m.................(js2-catch-nod | 
| 5b7e0 |  65 2d 67 75 61 72 64 2d 65 78 70 72 20 63 61 74    63 68 2d 6e 6f 64 65 29 20 63 61 74 63 68 2d 63  | e-guard-expr.catch-node).catch-c | 
| 5b800 |  6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e  | ond.................(js2-catch-n | 
| 5b820 |  6f 64 65 2d 67 75 61 72 64 2d 6b 77 64 20 63 61    74 63 68 2d 6e 6f 64 65 29 20 67 75 61 72 64 2d  | ode-guard-kwd.catch-node).guard- | 
| 5b840 |  6b 77 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 63 61 74 63 68 2d 6e  | kwd.................(js2-catch-n | 
| 5b860 |  6f 64 65 2d 6c 70 20 63 61 74 63 68 2d 6e 6f 64    65 29 20 6c 70 0a 20 20 20 20 20 20 20 20 20 20  | ode-lp.catch-node).lp........... | 
| 5b880 |  20 20 20 20 20 20 28 6a 73 32 2d 63 61 74 63 68    2d 6e 6f 64 65 2d 72 70 20 63 61 74 63 68 2d 6e  | ......(js2-catch-node-rp.catch-n | 
| 5b8a0 |  6f 64 65 29 20 72 70 29 0a 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64  | ode).rp)...........(js2-node-add | 
| 5b8c0 |  2d 63 68 69 6c 64 72 65 6e 20 63 61 74 63 68 2d    6e 6f 64 65 20 70 61 72 61 6d 20 63 61 74 63 68  | -children.catch-node.param.catch | 
| 5b8e0 |  2d 63 6f 6e 64 29 0a 20 20 20 20 20 20 20 20 20    20 28 70 75 73 68 20 63 61 74 63 68 2d 6e 6f 64  | -cond)...........(push.catch-nod | 
| 5b900 |  65 20 63 61 74 63 68 2d 62 6c 6f 63 6b 73 29 29    29 29 0a 20 20 20 20 20 28 28 2f 3d 20 70 65 65  | e.catch-blocks))))......((/=.pee | 
| 5b920 |  6b 20 6a 73 32 2d 46 49 4e 41 4c 4c 59 29 0a 20    20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d  | k.js2-FINALLY).......(js2-must-m | 
| 5b940 |  61 74 63 68 20 6a 73 32 2d 46 49 4e 41 4c 4c 59    20 22 6d 73 67 2e 74 72 79 2e 6e 6f 2e 63 61 74  | atch.js2-FINALLY."msg.try.no.cat | 
| 5b960 |  63 68 66 69 6e 61 6c 6c 79 22 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | chfinally"...................... | 
| 5b980 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 74    72 79 2d 62 6c 6f 63 6b 29 0a 20 20 20 20 20 20  | .(js2-node-pos.try-block)....... | 
| 5b9a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 2d 20 28 73 65 74 71 20 74 72 79 2d 65 6e 64  | ................(-.(setq.try-end | 
| 5b9c0 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 74    72 79 2d 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20  | .(js2-node-end.try-block))...... | 
| 5b9e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f  | ....................(js2-node-po | 
| 5ba00 |  73 20 74 72 79 2d 62 6c 6f 63 6b 29 29 29 29 29    0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d  | s.try-block))))).....(when.(js2- | 
| 5ba20 |  6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d    46 49 4e 41 4c 4c 59 29 0a 20 20 20 20 20 20 28  | match-token.js2-FINALLY).......( | 
| 5ba40 |  6c 65 74 20 28 28 66 69 6e 61 6c 6c 79 2d 70 6f    73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | let.((finally-pos.(js2-current-t | 
| 5ba60 |  6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 62 6c 6f 63 6b 20 28 6a  | oken-beg)).............(block.(j | 
| 5ba80 |  73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65    6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 73  | s2-parse-statement))).........(s | 
| 5baa0 |  65 74 71 20 74 72 79 2d 65 6e 64 20 28 6a 73 32    2d 6e 6f 64 65 2d 65 6e 64 20 62 6c 6f 63 6b 29  | etq.try-end.(js2-node-end.block) | 
| 5bac0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66    69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20 28 6d 61  | ...............finally-block.(ma | 
| 5bae0 |  6b 65 2d 6a 73 32 2d 66 69 6e 61 6c 6c 79 2d 6e    6f 64 65 20 3a 70 6f 73 20 66 69 6e 61 6c 6c 79  | ke-js2-finally-node.:pos.finally | 
| 5bb00 |  2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -pos............................ | 
| 5bb20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20  | ........................:len.(-. | 
| 5bb40 |  74 72 79 2d 65 6e 64 20 66 69 6e 61 6c 6c 79 2d    70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20  | try-end.finally-pos)............ | 
| 5bb60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5bb80 |  20 20 20 20 20 20 20 20 3a 62 6f 64 79 20 62 6c    6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 28 6a  | ........:body.block)).........(j | 
| 5bba0 |  73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c    64 72 65 6e 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f  | s2-node-add-children.finally-blo | 
| 5bbc0 |  63 6b 20 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20    28 6c 65 74 20 28 28 70 6e 20 28 6d 61 6b 65 2d  | ck.block))).....(let.((pn.(make- | 
| 5bbe0 |  6a 73 32 2d 74 72 79 2d 6e 6f 64 65 20 3a 70 6f    73 20 74 72 79 2d 70 6f 73 0a 20 20 20 20 20 20  | js2-try-node.:pos.try-pos....... | 
| 5bc00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20  | ...........................:len. | 
| 5bc20 |  28 2d 20 74 72 79 2d 65 6e 64 20 74 72 79 2d 70    6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (-.try-end.try-pos)............. | 
| 5bc40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 74 72 79 2d 62 6c 6f 63 6b 20  | .....................:try-block. | 
| 5bc60 |  74 72 79 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | try-block....................... | 
| 5bc80 |  20 20 20 20 20 20 20 20 20 20 20 3a 66 69 6e 61    6c 6c 79 2d 62 6c 6f 63 6b 20 66 69 6e 61 6c 6c  | ...........:finally-block.finall | 
| 5bca0 |  79 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20    20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63  | y-block))).......(js2-node-add-c | 
| 5bcc0 |  68 69 6c 64 72 65 6e 20 70 6e 20 74 72 79 2d 62    6c 6f 63 6b 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f  | hildren.pn.try-block.finally-blo | 
| 5bce0 |  63 6b 29 0a 20 20 20 20 20 20 3b 3b 20 50 75 73    68 20 74 68 65 6d 20 6f 6e 74 6f 20 74 68 65 20  | ck).......;;.Push.them.onto.the. | 
| 5bd00 |  74 72 79 2d 6e 6f 64 65 2c 20 77 68 69 63 68 20    72 65 76 65 72 73 65 73 20 61 6e 64 20 63 6f 72  | try-node,.which.reverses.and.cor | 
| 5bd20 |  72 65 63 74 73 20 74 68 65 69 72 20 6f 72 64 65    72 2e 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74  | rects.their.order........(dolist | 
| 5bd40 |  20 28 63 62 20 63 61 74 63 68 2d 62 6c 6f 63 6b    73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | .(cb.catch-blocks).........(js2- | 
| 5bd60 |  6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65    6e 20 70 6e 20 63 62 29 0a 20 20 20 20 20 20 20  | node-add-children.pn.cb)........ | 
| 5bd80 |  20 28 70 75 73 68 20 63 62 20 28 6a 73 32 2d 74    72 79 2d 6e 6f 64 65 2d 63 61 74 63 68 2d 63 6c  | .(push.cb.(js2-try-node-catch-cl | 
| 5bda0 |  61 75 73 65 73 20 70 6e 29 29 29 0a 20 20 20 20    20 20 70 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20  | auses.pn))).......pn)))..(defun. | 
| 5bdc0 |  6a 73 32 2d 70 61 72 73 65 2d 74 68 72 6f 77 20    28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72  | js2-parse-throw.()..."Parser.for | 
| 5bde0 |  20 74 68 72 6f 77 2d 73 74 61 74 65 6d 65 6e 74    2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65 64 20  | .throw-statement...Last.matched. | 
| 5be00 |  74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20 6a 73    32 2d 54 48 52 4f 57 2e 22 0a 20 20 28 6c 65 74  | token.must.be.js2-THROW."...(let | 
| 5be20 |  20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a  | .((pos.(js2-current-token-beg)). | 
| 5be40 |  20 20 20 20 20 20 20 20 65 78 70 72 20 70 6e 29    0a 20 20 20 20 28 69 66 20 28 3d 20 28 6a 73 32  | ........expr.pn).....(if.(=.(js2 | 
| 5be60 |  2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65    6f 6c 29 20 6a 73 32 2d 45 4f 4c 29 0a 20 20 20  | -peek-token-or-eol).js2-EOL).... | 
| 5be80 |  20 20 20 20 20 3b 3b 20 45 43 4d 41 53 63 72 69    70 74 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f  | .....;;.ECMAScript.does.not.allo | 
| 5bea0 |  77 20 6e 65 77 20 6c 69 6e 65 73 20 62 65 66 6f    72 65 20 74 68 72 6f 77 20 65 78 70 72 65 73 73  | w.new.lines.before.throw.express | 
| 5bec0 |  69 6f 6e 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20    73 65 65 20 62 75 67 20 32 35 36 36 31 37 0a 20  | ion,.........;;.see.bug.256617.. | 
| 5bee0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f    72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61  | .......(js2-report-error."msg.ba | 
| 5bf00 |  64 2e 74 68 72 6f 77 2e 65 6f 6c 22 29 29 0a 20    20 20 20 28 73 65 74 71 20 65 78 70 72 20 28 6a  | d.throw.eol")).....(setq.expr.(j | 
| 5bf20 |  73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 0a 20    20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b  | s2-parse-expr)...........pn.(mak | 
| 5bf40 |  65 2d 6a 73 32 2d 74 68 72 6f 77 2d 6e 6f 64 65    20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20  | e-js2-throw-node.:pos.pos....... | 
| 5bf60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e  | ............................:len | 
| 5bf80 |  20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e    64 20 65 78 70 72 29 20 70 6f 73 29 0a 20 20 20  | .(-.(js2-node-end.expr).pos).... | 
| 5bfa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 5bfc0 |  65 78 70 72 20 65 78 70 72 29 29 0a 20 20 20 20    28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68  | expr.expr)).....(js2-node-add-ch | 
| 5bfe0 |  69 6c 64 72 65 6e 20 70 6e 20 65 78 70 72 29 0a    20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e  | ildren.pn.expr).....pn))..(defun | 
| 5c000 |  20 6a 73 32 2d 6d 61 74 63 68 2d 6a 75 6d 70 2d    6c 61 62 65 6c 2d 6e 61 6d 65 20 28 6c 61 62 65  | .js2-match-jump-label-name.(labe | 
| 5c020 |  6c 2d 6e 61 6d 65 29 0a 20 20 22 49 66 20 62 72    65 61 6b 2f 63 6f 6e 74 69 6e 75 65 20 73 70 65  | l-name)..."If.break/continue.spe | 
| 5c040 |  63 69 66 69 65 64 20 61 20 6c 61 62 65 6c 2c 20    72 65 74 75 72 6e 20 74 68 61 74 20 6c 61 62 65  | cified.a.label,.return.that.labe | 
| 5c060 |  6c 27 73 20 6c 61 62 65 6c 65 64 20 73 74 6d 74    2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 63 6f  | l's.labeled.stmt..Returns.the.co | 
| 5c080 |  72 72 65 73 70 6f 6e 64 69 6e 67 20 60 6a 73 32    2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f  | rresponding.`js2-labeled-stmt-no | 
| 5c0a0 |  64 65 27 2c 20 6f 72 20 69 66 20 4c 41 42 45 4c    2d 4e 41 4d 45 0a 64 6f 65 73 20 6e 6f 74 20 6d  | de',.or.if.LABEL-NAME.does.not.m | 
| 5c0c0 |  61 74 63 68 20 61 6e 20 65 78 69 73 74 69 6e 67    20 6c 61 62 65 6c 2c 20 72 65 70 6f 72 74 73 20  | atch.an.existing.label,.reports. | 
| 5c0e0 |  61 6e 20 65 72 72 6f 72 20 61 6e 64 20 72 65 74    75 72 6e 73 20 6e 69 6c 2e 22 0a 20 20 28 6c 65  | an.error.and.returns.nil."...(le | 
| 5c100 |  74 20 28 28 62 75 6e 64 6c 65 20 28 63 64 72 20    28 61 73 73 6f 63 20 6c 61 62 65 6c 2d 6e 61 6d  | t.((bundle.(cdr.(assoc.label-nam | 
| 5c120 |  65 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 29    29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c  | e.js2-label-set)))).....(if.(nul | 
| 5c140 |  6c 20 62 75 6e 64 6c 65 29 0a 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72  | l.bundle).........(js2-report-er | 
| 5c160 |  72 6f 72 20 22 6d 73 67 2e 75 6e 64 65 66 2e 6c    61 62 65 6c 22 29 29 0a 20 20 20 20 62 75 6e 64  | ror."msg.undef.label")).....bund | 
| 5c180 |  6c 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 70 61 72 73 65 2d 62 72 65 61 6b 20 28 29 0a  | le))..(defun.js2-parse-break.(). | 
| 5c1a0 |  20 20 22 50 61 72 73 65 72 20 66 6f 72 20 62 72    65 61 6b 2d 73 74 61 74 65 6d 65 6e 74 2e 20 20  | .."Parser.for.break-statement... | 
| 5c1c0 |  4c 61 73 74 20 6d 61 74 63 68 65 64 20 74 6f 6b    65 6e 20 6d 75 73 74 20 62 65 20 6a 73 32 2d 42  | Last.matched.token.must.be.js2-B | 
| 5c1e0 |  52 45 41 4b 2e 22 0a 20 20 28 6c 65 74 20 28 28    70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | REAK."...(let.((pos.(js2-current | 
| 5c200 |  2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20    20 20 20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63  | -token-beg)).........(end.(js2-c | 
| 5c220 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64    29 29 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b  | urrent-token-end)).........break | 
| 5c240 |  2d 74 61 72 67 65 74 20 3b 20 73 74 61 74 65 6d    65 6e 74 20 74 6f 20 62 72 65 61 6b 20 66 72 6f  | -target.;.statement.to.break.fro | 
| 5c260 |  6d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 2d    6c 61 62 65 6c 20 20 3b 20 69 6e 20 22 62 72 65  | m.........break-label..;.in."bre | 
| 5c280 |  61 6b 20 66 6f 6f 22 2c 20 6e 61 6d 65 2d 6e 6f    64 65 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20  | ak.foo",.name-node.representing. | 
| 5c2a0 |  74 68 65 20 66 6f 6f 0a 20 20 20 20 20 20 20 20    6c 61 62 65 6c 73 20 20 20 20 20 20 20 3b 20 6d  | the.foo.........labels.......;.m | 
| 5c2c0 |  61 74 63 68 69 6e 67 20 6c 61 62 65 6c 65 64 20    73 74 61 74 65 6d 65 6e 74 20 74 6f 20 62 72 65  | atching.labeled.statement.to.bre | 
| 5c2e0 |  61 6b 20 74 6f 0a 20 20 20 20 20 20 20 20 70 6e    29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20  | ak.to.........pn).....(when.(eq. | 
| 5c300 |  28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d    6f 72 2d 65 6f 6c 29 20 6a 73 32 2d 4e 41 4d 45  | (js2-peek-token-or-eol).js2-NAME | 
| 5c320 |  29 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74    2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73  | ).......(js2-get-token).......(s | 
| 5c340 |  65 74 71 20 62 72 65 61 6b 2d 6c 61 62 65 6c 20    28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65  | etq.break-label.(js2-create-name | 
| 5c360 |  2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65  | -node).............end.(js2-node | 
| 5c380 |  2d 65 6e 64 20 62 72 65 61 6b 2d 6c 61 62 65 6c    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | -end.break-label).............;; | 
| 5c3a0 |  20 6d 61 74 63 68 4a 75 6d 70 4c 61 62 65 6c 4e    61 6d 65 20 6f 6e 6c 79 20 6d 61 74 63 68 65 73  | .matchJumpLabelName.only.matches | 
| 5c3c0 |  20 69 66 20 74 68 65 72 65 20 69 73 20 6f 6e 65    0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 62  | .if.there.is.one.............lab | 
| 5c3e0 |  65 6c 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 6a    75 6d 70 2d 6c 61 62 65 6c 2d 6e 61 6d 65 20 28  | els.(js2-match-jump-label-name.( | 
| 5c400 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20  | js2-current-token-string))...... | 
| 5c420 |  20 20 20 20 20 20 20 62 72 65 61 6b 2d 74 61 72    67 65 74 20 28 69 66 20 6c 61 62 65 6c 73 20 28  | .......break-target.(if.labels.( | 
| 5c440 |  63 61 72 20 28 6a 73 32 2d 6c 61 62 65 6c 65 64    2d 73 74 6d 74 2d 6e 6f 64 65 2d 6c 61 62 65 6c  | car.(js2-labeled-stmt-node-label | 
| 5c460 |  73 20 6c 61 62 65 6c 73 29 29 29 29 29 0a 20 20    20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 62 72  | s.labels))))).....(unless.(or.br | 
| 5c480 |  65 61 6b 2d 74 61 72 67 65 74 20 62 72 65 61 6b    2d 6c 61 62 65 6c 29 0a 20 20 20 20 20 20 3b 3b  | eak-target.break-label).......;; | 
| 5c4a0 |  20 6e 6f 20 62 72 65 61 6b 20 74 61 72 67 65 74    20 73 70 65 63 69 66 69 65 64 20 2d 20 74 72 79  | .no.break.target.specified.-.try | 
| 5c4c0 |  20 66 6f 72 20 69 6e 6e 65 72 6d 6f 73 74 20 65    6e 63 6c 6f 73 69 6e 67 20 6c 6f 6f 70 2f 73 77  | .for.innermost.enclosing.loop/sw | 
| 5c4e0 |  69 74 63 68 0a 20 20 20 20 20 20 28 69 66 20 28    6e 75 6c 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e  | itch.......(if.(null.js2-loop-an | 
| 5c500 |  64 2d 73 77 69 74 63 68 2d 73 65 74 29 0a 20 20    20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20  | d-switch-set)...........(unless. | 
| 5c520 |  62 72 65 61 6b 2d 6c 61 62 65 6c 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70  | break-label.............(js2-rep | 
| 5c540 |  6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62    61 64 2e 62 72 65 61 6b 22 20 6e 69 6c 20 70 6f  | ort-error."msg.bad.break".nil.po | 
| 5c560 |  73 20 28 6c 65 6e 67 74 68 20 22 62 72 65 61 6b    22 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65  | s.(length."break"))).........(se | 
| 5c580 |  74 71 20 62 72 65 61 6b 2d 74 61 72 67 65 74 20    28 63 61 72 20 6a 73 32 2d 6c 6f 6f 70 2d 61 6e  | tq.break-target.(car.js2-loop-an | 
| 5c5a0 |  64 2d 73 77 69 74 63 68 2d 73 65 74 29 29 29 29    0a 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6d  | d-switch-set)))).....(setq.pn.(m | 
| 5c5c0 |  61 6b 65 2d 6a 73 32 2d 62 72 65 61 6b 2d 6e 6f    64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20  | ake-js2-break-node.:pos.pos..... | 
| 5c5e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c  | ..............................:l | 
| 5c600 |  65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en.(-.end.pos).................. | 
| 5c620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 6c 61 62 65 6c 20 62 72 65 61 6b 2d 6c 61  | .................:label.break-la | 
| 5c640 |  62 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bel............................. | 
| 5c660 |  20 20 20 20 20 20 3a 74 61 72 67 65 74 20 62 72    65 61 6b 2d 74 61 72 67 65 74 29 29 0a 20 20 20  | ......:target.break-target)).... | 
| 5c680 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63    68 69 6c 64 72 65 6e 20 70 6e 20 62 72 65 61 6b  | .(js2-node-add-children.pn.break | 
| 5c6a0 |  2d 6c 61 62 65 6c 29 20 20 3b 20 62 75 74 20 6e    6f 74 20 62 72 65 61 6b 2d 74 61 72 67 65 74 0a  | -label)..;.but.not.break-target. | 
| 5c6c0 |  20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6e 74 69  | ....pn))..(defun.js2-parse-conti | 
| 5c6e0 |  6e 75 65 20 28 29 0a 20 20 22 50 61 72 73 65 72    20 66 6f 72 20 63 6f 6e 74 69 6e 75 65 2d 73 74  | nue.()..."Parser.for.continue-st | 
| 5c700 |  61 74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d    61 74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73  | atement...Last.matched.token.mus | 
| 5c720 |  74 20 62 65 20 6a 73 32 2d 43 4f 4e 54 49 4e 55    45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73  | t.be.js2-CONTINUE."...(let.((pos | 
| 5c740 |  20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f    6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20  | .(js2-current-token-beg))....... | 
| 5c760 |  20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 0a  | ..(end.(js2-current-token-end)). | 
| 5c780 |  20 20 20 20 20 20 20 20 6c 61 62 65 6c 20 20 20    3b 20 6f 70 74 69 6f 6e 61 6c 20 75 73 65 72 2d  | ........label...;.optional.user- | 
| 5c7a0 |  73 70 65 63 69 66 69 65 64 20 6c 61 62 65 6c 2c    20 61 20 60 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64  | specified.label,.a.`js2-name-nod | 
| 5c7c0 |  65 27 0a 20 20 20 20 20 20 20 20 6c 61 62 65 6c    73 20 20 3b 20 63 75 72 72 65 6e 74 20 6d 61 74  | e'.........labels..;.current.mat | 
| 5c7e0 |  63 68 69 6e 67 20 6c 61 62 65 6c 65 64 20 73 74    6d 74 2c 20 69 66 20 61 6e 79 0a 20 20 20 20 20  | ching.labeled.stmt,.if.any...... | 
| 5c800 |  20 20 20 74 61 72 67 65 74 20 20 3b 20 74 68 65    20 60 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 27  | ...target..;.the.`js2-loop-node' | 
| 5c820 |  20 74 61 72 67 65 74 20 6f 66 20 74 68 69 73 20    63 6f 6e 74 69 6e 75 65 20 73 74 6d 74 0a 20 20  | .target.of.this.continue.stmt... | 
| 5c840 |  20 20 20 20 20 20 70 6e 29 0a 20 20 20 20 28 77    68 65 6e 20 28 3d 20 28 6a 73 32 2d 70 65 65 6b  | ......pn).....(when.(=.(js2-peek | 
| 5c860 |  2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f 6c 29 20 6a    73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 28  | -token-or-eol).js2-NAME).......( | 
| 5c880 |  6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20    20 20 20 20 20 28 73 65 74 71 20 6c 61 62 65 6c  | js2-get-token).......(setq.label | 
| 5c8a0 |  20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d    65 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20  | .(js2-create-name-node)......... | 
| 5c8c0 |  20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64    65 2d 65 6e 64 20 6c 61 62 65 6c 29 0a 20 20 20  | ....end.(js2-node-end.label).... | 
| 5c8e0 |  20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 74 63    68 4a 75 6d 70 4c 61 62 65 6c 4e 61 6d 65 20 6f  | .........;;.matchJumpLabelName.o | 
| 5c900 |  6e 6c 79 20 6d 61 74 63 68 65 73 20 69 66 20 74    68 65 72 65 20 69 73 20 6f 6e 65 0a 20 20 20 20  | nly.matches.if.there.is.one..... | 
| 5c920 |  20 20 20 20 20 20 20 20 6c 61 62 65 6c 73 20 28    6a 73 32 2d 6d 61 74 63 68 2d 6a 75 6d 70 2d 6c  | ........labels.(js2-match-jump-l | 
| 5c940 |  61 62 65 6c 2d 6e 61 6d 65 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72  | abel-name.(js2-current-token-str | 
| 5c960 |  69 6e 67 29 29 29 29 0a 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 6c 61  | ing)))).....(cond......((null.la | 
| 5c980 |  62 65 6c 73 29 20 20 3b 20 6e 6f 20 63 75 72 72    65 6e 74 20 6c 61 62 65 6c 20 74 6f 20 67 6f 20  | bels)..;.no.current.label.to.go. | 
| 5c9a0 |  74 6f 0a 20 20 20 20 20 20 28 69 66 20 28 6e 75    6c 6c 20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 29  | to.......(if.(null.js2-loop-set) | 
| 5c9c0 |  20 20 3b 20 6e 6f 20 6c 6f 6f 70 20 74 6f 20 63    6f 6e 74 69 6e 75 65 20 74 6f 0a 20 20 20 20 20  | ..;.no.loop.to.continue.to...... | 
| 5c9e0 |  20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74    2d 65 72 72 6f 72 20 22 6d 73 67 2e 63 6f 6e 74  | .....(js2-report-error."msg.cont | 
| 5ca00 |  69 6e 75 65 2e 6f 75 74 73 69 64 65 22 20 6e 69    6c 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20  | inue.outside".nil.pos........... | 
| 5ca20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6c 65 6e 67 74 68 20 22 63 6f 6e 74 69  | ..................(length."conti | 
| 5ca40 |  6e 75 65 22 29 29 0a 20 20 20 20 20 20 20 20 28    73 65 74 71 20 74 61 72 67 65 74 20 28 63 61 72  | nue")).........(setq.target.(car | 
| 5ca60 |  20 6a 73 32 2d 6c 6f 6f 70 2d 73 65 74 29 29 29    29 20 20 3b 20 69 6e 6e 65 72 6d 6f 73 74 20 65  | .js2-loop-set))))..;.innermost.e | 
| 5ca80 |  6e 63 6c 6f 73 69 6e 67 20 6c 6f 6f 70 0a 20 20    20 20 20 28 74 0a 20 20 20 20 20 20 28 69 66 20  | nclosing.loop......(t.......(if. | 
| 5caa0 |  28 6a 73 32 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70    20 28 6a 73 32 2d 6c 61 62 65 6c 65 64 2d 73 74  | (js2-loop-node-p.(js2-labeled-st | 
| 5cac0 |  6d 74 2d 6e 6f 64 65 2d 73 74 6d 74 20 6c 61 62    65 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20  | mt-node-stmt.labels))........... | 
| 5cae0 |  28 73 65 74 71 20 74 61 72 67 65 74 20 28 6a 73    32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e  | (setq.target.(js2-labeled-stmt-n | 
| 5cb00 |  6f 64 65 2d 73 74 6d 74 20 6c 61 62 65 6c 73 29    29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72  | ode-stmt.labels)).........(js2-r | 
| 5cb20 |  65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67    2e 63 6f 6e 74 69 6e 75 65 2e 6e 6f 6e 6c 6f 6f  | eport-error."msg.continue.nonloo | 
| 5cb40 |  70 22 20 6e 69 6c 20 70 6f 73 20 28 2d 20 65 6e    64 20 70 6f 73 29 29 29 29 29 0a 20 20 20 20 28  | p".nil.pos.(-.end.pos))))).....( | 
| 5cb60 |  73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a 73    32 2d 63 6f 6e 74 69 6e 75 65 2d 6e 6f 64 65 20  | setq.pn.(make-js2-continue-node. | 
| 5cb80 |  3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | :pos.pos........................ | 
| 5cba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c    65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a 20  | ..............:len.(-.end.pos).. | 
| 5cbc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5cbe0 |  20 20 20 20 3a 6c 61 62 65 6c 20 6c 61 62 65 6c    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....:label.label................ | 
| 5cc00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 74 61 72 67 65 74 20 74 61  | ......................:target.ta | 
| 5cc20 |  72 67 65 74 29 29 0a 20 20 20 20 28 6a 73 32 2d    6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65  | rget)).....(js2-node-add-childre | 
| 5cc40 |  6e 20 70 6e 20 6c 61 62 65 6c 29 20 20 3b 20 62    75 74 20 6e 6f 74 20 74 61 72 67 65 74 20 2d 20  | n.pn.label)..;.but.not.target.-. | 
| 5cc60 |  69 74 27 73 20 6e 6f 74 20 6f 75 72 20 63 68 69    6c 64 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65  | it's.not.our.child.....pn))..(de | 
| 5cc80 |  66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 77 69    74 68 20 28 29 0a 20 20 22 50 61 72 73 65 72 20  | fun.js2-parse-with.()..."Parser. | 
| 5cca0 |  66 6f 72 20 77 69 74 68 2d 73 74 61 74 65 6d 65    6e 74 2e 20 20 4c 61 73 74 20 6d 61 74 63 68 65  | for.with-statement...Last.matche | 
| 5ccc0 |  64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65 20    6a 73 32 2d 57 49 54 48 2e 22 0a 20 20 28 77 68  | d.token.must.be.js2-WITH."...(wh | 
| 5cce0 |  65 6e 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74    72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20  | en.js2-in-use-strict-directive.. | 
| 5cd00 |  20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65    72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 77 69 74  | ...(js2-report-error."msg.no.wit | 
| 5cd20 |  68 2e 73 74 72 69 63 74 22 29 29 0a 20 20 28 6c    65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75  | h.strict"))...(let.((pos.(js2-cu | 
| 5cd40 |  72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29    29 0a 20 20 20 20 20 20 20 20 6f 62 6a 20 62 6f  | rrent-token-beg)).........obj.bo | 
| 5cd60 |  64 79 20 70 6e 20 6c 70 20 72 70 29 0a 20 20 20    20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d  | dy.pn.lp.rp).....(if.(js2-must-m | 
| 5cd80 |  61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d 73 67    2e 6e 6f 2e 70 61 72 65 6e 2e 77 69 74 68 22 29  | atch.js2-LP."msg.no.paren.with") | 
| 5cda0 |  0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c    70 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | .........(setq.lp.(js2-current-t | 
| 5cdc0 |  6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20    28 73 65 74 71 20 6f 62 6a 20 28 6a 73 32 2d 70  | oken-beg))).....(setq.obj.(js2-p | 
| 5cde0 |  61 72 73 65 2d 65 78 70 72 29 29 0a 20 20 20 20    28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61  | arse-expr)).....(if.(js2-must-ma | 
| 5ce00 |  74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e    6e 6f 2e 70 61 72 65 6e 2e 61 66 74 65 72 2e 77  | tch.js2-RP."msg.no.paren.after.w | 
| 5ce20 |  69 74 68 22 29 0a 20 20 20 20 20 20 20 20 28 73    65 74 71 20 72 70 20 28 6a 73 32 2d 63 75 72 72  | ith").........(setq.rp.(js2-curr | 
| 5ce40 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29    0a 20 20 20 20 28 6c 65 74 20 28 28 6a 73 32 2d  | ent-token-beg))).....(let.((js2- | 
| 5ce60 |  6e 65 73 74 69 6e 67 2d 6f 66 2d 77 69 74 68 20    28 31 2b 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d  | nesting-of-with.(1+.js2-nesting- | 
| 5ce80 |  6f 66 2d 77 69 74 68 29 29 29 0a 20 20 20 20 20    20 20 20 28 73 65 74 71 20 62 6f 64 79 20 28 6a  | of-with))).........(setq.body.(j | 
| 5cea0 |  73 32 2d 70 61 72 73 65 2d 73 74 61 74 65 6d 65    6e 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20  | s2-parse-statement))).....(setq. | 
| 5cec0 |  70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 77 69 74    68 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a  | pn.(make-js2-with-node.:pos.pos. | 
| 5cee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5cf00 |  20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f    64 65 2d 65 6e 64 20 62 6f 64 79 29 20 70 6f 73  | .:len.(-.(js2-node-end.body).pos | 
| 5cf20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 5cf40 |  20 20 20 3a 6f 62 6a 65 63 74 20 6f 62 6a 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...:object.obj.................. | 
| 5cf60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 62 6f 64 79 20 62 6f 64 79 0a 20 20 20 20 20  | ................:body.body...... | 
| 5cf80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 70 20  | ............................:lp. | 
| 5cfa0 |  28 6a 73 32 2d 72 65 6c 70 6f 73 20 6c 70 20 70    6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-relpos.lp.pos)............. | 
| 5cfc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 72 70 20 28 6a 73 32 2d 72 65  | .....................:rp.(js2-re | 
| 5cfe0 |  6c 70 6f 73 20 72 70 20 70 6f 73 29 29 29 0a 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64  | lpos.rp.pos))).....(js2-node-add | 
| 5d000 |  2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 6f 62 6a    20 62 6f 64 79 29 0a 20 20 20 20 70 6e 29 29 0a  | -children.pn.obj.body).....pn)). | 
| 5d020 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73    65 2d 63 6f 6e 73 74 2d 76 61 72 20 28 29 0a 20  | .(defun.js2-parse-const-var.().. | 
| 5d040 |  20 22 50 61 72 73 65 72 20 66 6f 72 20 76 61 72    2d 20 6f 72 20 63 6f 6e 73 74 2d 73 74 61 74 65  | ."Parser.for.var-.or.const-state | 
| 5d060 |  6d 65 6e 74 2e 0a 4c 61 73 74 20 6d 61 74 63 68    65 64 20 74 6f 6b 65 6e 20 6d 75 73 74 20 62 65  | ment..Last.matched.token.must.be | 
| 5d080 |  20 6a 73 32 2d 43 4f 4e 53 54 20 6f 72 20 6a 73    32 2d 56 41 52 2e 22 0a 20 20 28 6c 65 74 20 28  | .js2-CONST.or.js2-VAR."...(let.( | 
| 5d0a0 |  28 74 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 0a 20 20  | (tt.(js2-current-token-type))... | 
| 5d0c0 |  20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65  | ......(pos.(js2-current-token-be | 
| 5d0e0 |  67 29 29 0a 20 20 20 20 20 20 20 20 65 78 70 72    20 70 6e 29 0a 20 20 20 20 28 73 65 74 71 20 65  | g)).........expr.pn).....(setq.e | 
| 5d100 |  78 70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 76    61 72 69 61 62 6c 65 73 20 74 74 20 28 6a 73 32  | xpr.(js2-parse-variables.tt.(js2 | 
| 5d120 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 70  | -current-token-beg))...........p | 
| 5d140 |  6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 72    2d 73 74 6d 74 2d 6e 6f 64 65 20 3a 70 6f 73 20  | n.(make-js2-expr-stmt-node.:pos. | 
| 5d160 |  70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos............................. | 
| 5d180 |  20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28    2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20  | ..........:len.(-.(js2-node-end. | 
| 5d1a0 |  65 78 70 72 29 20 70 6f 73 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | expr).pos)...................... | 
| 5d1c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 65 78 70 72 20 65 78 70 72 29 29 0a 20 20  | .................:expr.expr))... | 
| 5d1e0 |  20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d    63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78 70 72  | ..(js2-node-add-children.pn.expr | 
| 5d200 |  29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 77 72 61 70 2d 77 69 74 68  | ).....pn))..(defun.js2-wrap-with | 
| 5d220 |  2d 65 78 70 72 2d 73 74 6d 74 20 28 70 6f 73 20    65 78 70 72 20 26 6f 70 74 69 6f 6e 61 6c 20 61  | -expr-stmt.(pos.expr.&optional.a | 
| 5d240 |  64 64 2d 63 68 69 6c 64 29 0a 20 20 28 6c 65 74    20 28 28 70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d  | dd-child)...(let.((pn.(make-js2- | 
| 5d260 |  65 78 70 72 2d 73 74 6d 74 2d 6e 6f 64 65 20 3a    70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20  | expr-stmt-node.:pos.pos......... | 
| 5d280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65  | .............................:le | 
| 5d2a0 |  6e 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20    65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20  | n.(js2-node-len.expr)........... | 
| 5d2c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65  | ...........................:type | 
| 5d2e0 |  20 28 69 66 20 28 6a 73 32 2d 69 6e 73 69 64 65    2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20  | .(if.(js2-inside-function)...... | 
| 5d300 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5d320 |  20 20 20 20 20 20 20 20 20 20 6a 73 32 2d 45 58    50 52 5f 56 4f 49 44 0a 20 20 20 20 20 20 20 20  | ..........js2-EXPR_VOID......... | 
| 5d340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5d360 |  20 20 20 20 20 6a 73 32 2d 45 58 50 52 5f 52 45    53 55 4c 54 29 0a 20 20 20 20 20 20 20 20 20 20  | .....js2-EXPR_RESULT)........... | 
| 5d380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 65 78 70 72  | ...........................:expr | 
| 5d3a0 |  20 65 78 70 72 29 29 29 0a 20 20 20 20 28 69 66    20 61 64 64 2d 63 68 69 6c 64 0a 20 20 20 20 20  | .expr))).....(if.add-child...... | 
| 5d3c0 |  20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64    2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78 70  | ...(js2-node-add-children.pn.exp | 
| 5d3e0 |  72 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6c  | r)).....pn))..(defun.js2-parse-l | 
| 5d400 |  65 74 2d 73 74 6d 74 20 28 29 0a 20 20 22 50 61    72 73 65 72 20 66 6f 72 20 6c 65 74 2d 73 74 61  | et-stmt.()..."Parser.for.let-sta | 
| 5d420 |  74 65 6d 65 6e 74 2e 20 20 4c 61 73 74 20 6d 61    74 63 68 65 64 20 74 6f 6b 65 6e 20 6d 75 73 74  | tement...Last.matched.token.must | 
| 5d440 |  20 62 65 20 6a 73 32 2d 4c 45 54 2e 22 0a 20 20    28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d  | .be.js2-LET."...(let.((pos.(js2- | 
| 5d460 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65    67 29 29 0a 20 20 20 20 20 20 20 20 65 78 70 72  | current-token-beg)).........expr | 
| 5d480 |  20 70 6e 29 0a 20 20 20 20 28 69 66 20 28 3d 20    28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29  | .pn).....(if.(=.(js2-peek-token) | 
| 5d4a0 |  20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20    20 3b 3b 20 6c 65 74 20 65 78 70 72 65 73 73 69  | .js2-LP).........;;.let.expressi | 
| 5d4c0 |  6f 6e 20 69 6e 20 73 74 61 74 65 6d 65 6e 74 20    63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20  | on.in.statement.context......... | 
| 5d4e0 |  28 73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d    70 61 72 73 65 2d 6c 65 74 20 70 6f 73 20 27 73  | (setq.expr.(js2-parse-let.pos.'s | 
| 5d500 |  74 61 74 65 6d 65 6e 74 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 70 6e 20 28 6a 73 32 2d  | tatement)...............pn.(js2- | 
| 5d520 |  77 72 61 70 2d 77 69 74 68 2d 65 78 70 72 2d 73    74 6d 74 20 70 6f 73 20 65 78 70 72 20 74 29 29  | wrap-with-expr-stmt.pos.expr.t)) | 
| 5d540 |  0a 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20 77    65 27 72 65 20 6c 6f 6f 6b 69 6e 67 20 61 74 20  | .......;;.else.we're.looking.at. | 
| 5d560 |  61 20 73 74 61 74 65 6d 65 6e 74 20 6c 69 6b 65    20 6c 65 74 20 78 3d 36 2c 20 79 3d 37 3b 0a 20  | a.statement.like.let.x=6,.y=7;.. | 
| 5d580 |  20 20 20 20 20 28 73 65 74 66 20 65 78 70 72 20    28 6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61  | .....(setf.expr.(js2-parse-varia | 
| 5d5a0 |  62 6c 65 73 20 6a 73 32 2d 4c 45 54 20 70 6f 73    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 6e  | bles.js2-LET.pos).............pn | 
| 5d5c0 |  20 28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d    65 78 70 72 2d 73 74 6d 74 20 70 6f 73 20 65 78  | .(js2-wrap-with-expr-stmt.pos.ex | 
| 5d5e0 |  70 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65  | pr.t).............(js2-node-type | 
| 5d600 |  20 70 6e 29 20 6a 73 32 2d 45 58 50 52 5f 52 45    53 55 4c 54 29 29 0a 20 20 20 20 70 6e 29 29 0a  | .pn).js2-EXPR_RESULT)).....pn)). | 
| 5d620 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73    65 2d 72 65 74 2d 79 69 65 6c 64 20 28 29 0a 20  | .(defun.js2-parse-ret-yield.().. | 
| 5d640 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75    72 6e 2d 6f 72 2d 79 69 65 6c 64 20 28 6a 73 32  | .(js2-parse-return-or-yield.(js2 | 
| 5d660 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 74    79 70 65 29 20 6e 69 6c 29 29 0a 0a 28 64 65 66  | -current-token-type).nil))..(def | 
| 5d680 |  63 6f 6e 73 74 20 6a 73 32 2d 70 61 72 73 65 2d    72 65 74 75 72 6e 2d 73 74 6d 74 2d 65 6e 64 65  | const.js2-parse-return-stmt-ende | 
| 5d6a0 |  72 73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 53    45 4d 49 20 6a 73 32 2d 52 43 20 6a 73 32 2d 45  | rs...(list.js2-SEMI.js2-RC.js2-E | 
| 5d6c0 |  4f 46 20 6a 73 32 2d 45 4f 4c 20 6a 73 32 2d 45    52 52 4f 52 20 6a 73 32 2d 52 42 20 6a 73 32 2d  | OF.js2-EOL.js2-ERROR.js2-RB.js2- | 
| 5d6e0 |  52 50 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20    6a 73 32 2d 6e 6f 77 2d 61 6c 6c 2d 73 65 74 20  | RP))..(defsubst.js2-now-all-set. | 
| 5d700 |  28 62 65 66 6f 72 65 20 61 66 74 65 72 20 6d 61    73 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 77 68  | (before.after.mask)..."Return.wh | 
| 5d720 |  65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 65    20 62 69 74 73 20 69 6e 20 74 68 65 20 6d 61 73  | ether.or.not.the.bits.in.the.mas | 
| 5d740 |  6b 20 68 61 76 65 20 63 68 61 6e 67 65 64 20 74    6f 20 61 6c 6c 20 73 65 74 2e 0a 42 45 46 4f 52  | k.have.changed.to.all.set..BEFOR | 
| 5d760 |  45 20 69 73 20 62 69 74 73 20 62 65 66 6f 72 65    20 63 68 61 6e 67 65 2c 20 41 46 54 45 52 20 69  | E.is.bits.before.change,.AFTER.i | 
| 5d780 |  73 20 62 69 74 73 20 61 66 74 65 72 20 63 68 61    6e 67 65 2c 20 61 6e 64 20 4d 41 53 4b 20 69 73  | s.bits.after.change,.and.MASK.is | 
| 5d7a0 |  0a 74 68 65 20 6d 61 73 6b 20 66 6f 72 20 62 69    74 73 2e 20 20 52 65 74 75 72 6e 73 20 74 20 69  | .the.mask.for.bits...Returns.t.i | 
| 5d7c0 |  66 20 61 6c 6c 20 74 68 65 20 62 69 74 73 20 69    6e 20 74 68 65 20 6d 61 73 6b 20 61 72 65 20 73  | f.all.the.bits.in.the.mask.are.s | 
| 5d7e0 |  65 74 20 69 6e 20 41 46 54 45 52 0a 62 75 74 20    6e 6f 74 20 42 45 46 4f 52 45 2e 22 0a 20 20 28  | et.in.AFTER.but.not.BEFORE."...( | 
| 5d800 |  61 6e 64 20 28 2f 3d 20 28 6c 6f 67 61 6e 64 20    62 65 66 6f 72 65 20 6d 61 73 6b 29 20 6d 61 73  | and.(/=.(logand.before.mask).mas | 
| 5d820 |  6b 29 0a 20 20 20 20 20 20 20 28 3d 20 28 6c 6f    67 61 6e 64 20 61 66 74 65 72 20 6d 61 73 6b 29  | k)........(=.(logand.after.mask) | 
| 5d840 |  20 6d 61 73 6b 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 72 65 74 75 72  | .mask)))..(defun.js2-parse-retur | 
| 5d860 |  6e 2d 6f 72 2d 79 69 65 6c 64 20 28 74 74 20 65    78 70 72 2d 63 6f 6e 74 65 78 74 29 0a 20 20 28  | n-or-yield.(tt.expr-context)...( | 
| 5d880 |  6c 65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65  | let*.((pos.(js2-current-token-be | 
| 5d8a0 |  67 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e    64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | g))..........(end.(js2-current-t | 
| 5d8c0 |  6f 6b 65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20    20 20 20 20 28 62 65 66 6f 72 65 20 6a 73 32 2d  | oken-end))..........(before.js2- | 
| 5d8e0 |  65 6e 64 2d 66 6c 61 67 73 29 0a 20 20 20 20 20    20 20 20 20 28 69 6e 73 69 64 65 2d 66 75 6e 63  | end-flags)..........(inside-func | 
| 5d900 |  74 69 6f 6e 20 28 6a 73 32 2d 69 6e 73 69 64 65    2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20  | tion.(js2-inside-function))..... | 
| 5d920 |  20 20 20 20 20 28 67 65 6e 2d 74 79 70 65 20 28    61 6e 64 20 69 6e 73 69 64 65 2d 66 75 6e 63 74  | .....(gen-type.(and.inside-funct | 
| 5d940 |  69 6f 6e 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f    6e 2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72  | ion.(js2-function-node-generator | 
| 5d960 |  2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -type........................... | 
| 5d980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70  | ...............js2-current-scrip | 
| 5d9a0 |  74 2d 6f 72 2d 66 6e 29 29 29 0a 20 20 20 20 20    20 20 20 20 65 20 72 65 74 20 6e 61 6d 65 20 79  | t-or-fn)))..........e.ret.name.y | 
| 5d9c0 |  69 65 6c 64 2d 73 74 61 72 2d 70 29 0a 20 20 20    20 28 75 6e 6c 65 73 73 20 69 6e 73 69 64 65 2d  | ield-star-p).....(unless.inside- | 
| 5d9e0 |  66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28    6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72  | function.......(js2-report-error | 
| 5da00 |  20 28 69 66 20 28 65 71 20 74 74 20 6a 73 32 2d    52 45 54 55 52 4e 29 0a 20 20 20 20 20 20 20 20  | .(if.(eq.tt.js2-RETURN)......... | 
| 5da20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 22 6d 73 67 2e 62 61 64 2e 72 65 74  | ...................."msg.bad.ret | 
| 5da40 |  75 72 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22  | urn"..........................." | 
| 5da60 |  6d 73 67 2e 62 61 64 2e 79 69 65 6c 64 22 29 29    29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | msg.bad.yield"))).....(when.(and | 
| 5da80 |  20 69 6e 73 69 64 65 2d 66 75 6e 63 74 69 6f 6e    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .inside-function................ | 
| 5daa0 |  28 65 71 20 67 65 6e 2d 74 79 70 65 20 27 53 54    41 52 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (eq.gen-type.'STAR)............. | 
| 5dac0 |  20 20 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f    6b 65 6e 20 6a 73 32 2d 4d 55 4c 29 29 0a 20 20  | ...(js2-match-token.js2-MUL))... | 
| 5dae0 |  20 20 20 20 28 73 65 74 71 20 79 69 65 6c 64 2d    73 74 61 72 2d 70 20 74 29 29 0a 20 20 20 20 3b  | ....(setq.yield-star-p.t)).....; | 
| 5db00 |  3b 20 54 68 69 73 20 69 73 20 75 67 6c 79 2c 20    62 75 74 20 77 65 20 64 6f 6e 27 74 20 77 61 6e  | ;.This.is.ugly,.but.we.don't.wan | 
| 5db20 |  74 20 74 6f 20 72 65 71 75 69 72 65 20 61 20 73    65 6d 69 63 6f 6c 6f 6e 2e 0a 20 20 20 20 28 75  | t.to.require.a.semicolon......(u | 
| 5db40 |  6e 6c 65 73 73 20 28 6d 65 6d 71 20 28 6a 73 32    2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65  | nless.(memq.(js2-peek-token-or-e | 
| 5db60 |  6f 6c 29 20 6a 73 32 2d 70 61 72 73 65 2d 72 65    74 75 72 6e 2d 73 74 6d 74 2d 65 6e 64 65 72 73  | ol).js2-parse-return-stmt-enders | 
| 5db80 |  29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 20    28 69 66 20 28 65 71 20 67 65 6e 2d 74 79 70 65  | ).......(setq.e.(if.(eq.gen-type | 
| 5dba0 |  20 27 53 54 41 52 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70  | .'STAR)...................(js2-p | 
| 5dbc0 |  61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | arse-assign-expr)............... | 
| 5dbe0 |  20 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70    72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..(js2-parse-expr))............. | 
| 5dc00 |  65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e    64 20 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64  | end.(js2-node-end.e))).....(cond | 
| 5dc20 |  0a 20 20 20 20 20 28 28 65 71 20 74 74 20 6a 73    32 2d 52 45 54 55 52 4e 29 0a 20 20 20 20 20 20  | ......((eq.tt.js2-RETURN)....... | 
| 5dc40 |  28 6a 73 32 2d 73 65 74 2d 66 6c 61 67 20 6a 73    32 2d 65 6e 64 2d 66 6c 61 67 73 20 28 69 66 20  | (js2-set-flag.js2-end-flags.(if. | 
| 5dc60 |  28 6e 75 6c 6c 20 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (null.e)........................ | 
| 5dc80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a    73 32 2d 65 6e 64 2d 72 65 74 75 72 6e 73 0a 20  | ...............js2-end-returns.. | 
| 5dca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5dcc0 |  20 20 20 6a 73 32 2d 65 6e 64 2d 72 65 74 75 72    6e 73 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20  | ...js2-end-returns-value))...... | 
| 5dce0 |  20 28 73 65 74 71 20 72 65 74 20 28 6d 61 6b 65    2d 6a 73 32 2d 72 65 74 75 72 6e 2d 6e 6f 64 65  | .(setq.ret.(make-js2-return-node | 
| 5dd00 |  20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:pos.pos....................... | 
| 5dd20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29  | ................:len.(-.end.pos) | 
| 5dd40 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5dd60 |  20 20 20 20 20 20 20 3a 72 65 74 76 61 6c 20 65    29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f  | .......:retval.e)).......(js2-no | 
| 5dd80 |  64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20    72 65 74 20 65 29 0a 20 20 20 20 20 20 3b 3b 20  | de-add-children.ret.e).......;;. | 
| 5dda0 |  53 65 65 20 69 66 20 77 65 20 6e 65 65 64 20 61    20 73 74 72 69 63 74 20 6d 6f 64 65 20 77 61 72  | See.if.we.need.a.strict.mode.war | 
| 5ddc0 |  6e 69 6e 67 2e 0a 20 20 20 20 20 20 3b 3b 20 54    4f 44 4f 3a 20 20 54 68 65 20 61 6e 61 6c 79 73  | ning........;;.TODO:..The.analys | 
| 5dde0 |  69 73 20 64 6f 6e 65 20 62 79 20 60 6a 73 32 2d    68 61 73 2d 63 6f 6e 73 69 73 74 65 6e 74 2d 72  | is.done.by.`js2-has-consistent-r | 
| 5de00 |  65 74 75 72 6e 2d 75 73 61 67 65 27 20 69 73 0a    20 20 20 20 20 20 3b 3b 20 6d 6f 72 65 20 74 68  | eturn-usage'.is.......;;.more.th | 
| 5de20 |  6f 72 6f 75 67 68 20 61 6e 64 20 61 63 63 75 72    61 74 65 20 74 68 61 6e 20 74 68 69 73 20 62 65  | orough.and.accurate.than.this.be | 
| 5de40 |  66 6f 72 65 2f 61 66 74 65 72 20 66 6c 61 67 20    63 68 65 63 6b 2e 0a 20 20 20 20 20 20 3b 3b 20  | fore/after.flag.check........;;. | 
| 5de60 |  45 2e 67 2e 20 69 66 20 74 68 65 72 65 27 73 20    61 20 66 69 6e 61 6c 6c 79 2d 62 6c 6f 63 6b 20  | E.g..if.there's.a.finally-block. | 
| 5de80 |  74 68 61 74 20 61 6c 77 61 79 73 20 72 65 74 75    72 6e 73 2c 20 77 65 20 73 68 6f 75 6c 64 6e 27  | that.always.returns,.we.shouldn' | 
| 5dea0 |  74 0a 20 20 20 20 20 20 3b 3b 20 73 68 6f 77 20    61 20 77 61 72 6e 69 6e 67 20 67 65 6e 65 72 61  | t.......;;.show.a.warning.genera | 
| 5dec0 |  74 65 64 20 62 79 20 69 6e 63 6f 6e 73 69 73 74    65 6e 74 20 72 65 74 75 72 6e 73 20 69 6e 20 74  | ted.by.inconsistent.returns.in.t | 
| 5dee0 |  68 65 20 63 61 74 63 68 20 62 6c 6f 63 6b 73 2e    0a 20 20 20 20 20 20 3b 3b 20 42 61 73 69 63 61  | he.catch.blocks........;;.Basica | 
| 5df00 |  6c 6c 79 20 60 6a 73 32 2d 68 61 73 2d 63 6f 6e    73 69 73 74 65 6e 74 2d 72 65 74 75 72 6e 2d 75  | lly.`js2-has-consistent-return-u | 
| 5df20 |  73 61 67 65 27 20 6e 65 65 64 73 20 74 6f 20 6b    65 65 70 20 6d 6f 72 65 20 73 74 61 74 65 2c 0a  | sage'.needs.to.keep.more.state,. | 
| 5df40 |  20 20 20 20 20 20 3b 3b 20 73 6f 20 77 65 20 6b    6e 6f 77 20 77 68 69 63 68 20 72 65 74 75 72 6e  | ......;;.so.we.know.which.return | 
| 5df60 |  73 2f 79 69 65 6c 64 73 20 74 6f 20 68 69 67 68    6c 69 67 68 74 2c 20 61 6e 64 20 77 65 20 73 68  | s/yields.to.highlight,.and.we.sh | 
| 5df80 |  6f 75 6c 64 20 67 65 74 20 72 69 64 20 6f 66 0a    20 20 20 20 20 20 3b 3b 20 61 6c 6c 20 74 68 65  | ould.get.rid.of.......;;.all.the | 
| 5dfa0 |  20 63 68 65 63 6b 69 6e 67 20 69 6e 20 60 6a 73    32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d 6f  | .checking.in.`js2-parse-return-o | 
| 5dfc0 |  72 2d 79 69 65 6c 64 27 2e 0a 20 20 20 20 20 20    28 69 66 20 28 61 6e 64 20 6a 73 32 2d 73 74 72  | r-yield'........(if.(and.js2-str | 
| 5dfe0 |  69 63 74 2d 69 6e 63 6f 6e 73 69 73 74 65 6e 74    2d 72 65 74 75 72 6e 2d 77 61 72 6e 69 6e 67 0a  | ict-inconsistent-return-warning. | 
| 5e000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 6e 6f 77 2d 61 6c 6c 2d 73 65 74 20  | ...............(js2-now-all-set. | 
| 5e020 |  62 65 66 6f 72 65 20 6a 73 32 2d 65 6e 64 2d 66    6c 61 67 73 0a 20 20 20 20 20 20 20 20 20 20 20  | before.js2-end-flags............ | 
| 5e040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6c 6f 67 69 6f 72 20 6a 73 32  | .....................(logior.js2 | 
| 5e060 |  2d 65 6e 64 2d 72 65 74 75 72 6e 73 20 6a 73 32    2d 65 6e 64 2d 72 65 74 75 72 6e 73 2d 76 61 6c  | -end-returns.js2-end-returns-val | 
| 5e080 |  75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 61 64 64 2d 73 74 72 69 63 74 2d  | ue)))...........(js2-add-strict- | 
| 5e0a0 |  77 61 72 6e 69 6e 67 20 22 6d 73 67 2e 72 65 74    75 72 6e 2e 69 6e 63 6f 6e 73 69 73 74 65 6e 74  | warning."msg.return.inconsistent | 
| 5e0c0 |  22 20 6e 69 6c 20 70 6f 73 20 65 6e 64 29 29 29    0a 20 20 20 20 20 28 28 65 71 20 67 65 6e 2d 74  | ".nil.pos.end)))......((eq.gen-t | 
| 5e0e0 |  79 70 65 20 27 43 4f 4d 50 52 45 48 45 4e 53 49    4f 4e 29 0a 20 20 20 20 20 20 3b 3b 20 46 49 58  | ype.'COMPREHENSION).......;;.FIX | 
| 5e100 |  4d 45 3a 20 57 65 20 73 68 6f 75 6c 64 20 70 72    6f 62 61 62 6c 79 20 73 77 69 74 63 68 20 74 6f  | ME:.We.should.probably.switch.to | 
| 5e120 |  20 73 61 76 69 6e 67 20 61 6e 64 20 75 73 69 6e    67 20 6c 61 73 74 59 69 65 6c 64 4f 66 66 73 65  | .saving.and.using.lastYieldOffse | 
| 5e140 |  74 2c 0a 20 20 20 20 20 20 3b 3b 20 6c 69 6b 65    20 53 70 69 64 65 72 4d 6f 6e 6b 65 79 20 64 6f  | t,.......;;.like.SpiderMonkey.do | 
| 5e160 |  65 73 2e 0a 20 20 20 20 20 20 28 6a 73 32 2d 72    65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67  | es........(js2-report-error."msg | 
| 5e180 |  2e 73 79 6e 74 61 78 22 20 6e 69 6c 20 70 6f 73    20 35 29 29 0a 20 20 20 20 20 28 74 0a 20 20 20  | .syntax".nil.pos.5))......(t.... | 
| 5e1a0 |  20 20 20 28 73 65 74 71 20 72 65 74 20 28 6d 61    6b 65 2d 6a 73 32 2d 79 69 65 6c 64 2d 6e 6f 64  | ...(setq.ret.(make-js2-yield-nod | 
| 5e1c0 |  65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.:pos.pos...................... | 
| 5e1e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29  | ................:len.(-.end.pos) | 
| 5e200 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5e220 |  20 20 20 20 20 20 3a 76 61 6c 75 65 20 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......:value.e.................. | 
| 5e240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 73 74 61 72 2d 70 20 79 69 65 6c  | ....................:star-p.yiel | 
| 5e260 |  64 2d 73 74 61 72 2d 70 29 29 0a 20 20 20 20 20    20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63  | d-star-p)).......(js2-node-add-c | 
| 5e280 |  68 69 6c 64 72 65 6e 20 72 65 74 20 65 29 0a 20    20 20 20 20 20 28 75 6e 6c 65 73 73 20 65 78 70  | hildren.ret.e).......(unless.exp | 
| 5e2a0 |  72 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20    20 20 28 73 65 74 71 20 65 20 72 65 74 0a 20 20  | r-context.........(setq.e.ret... | 
| 5e2c0 |  20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 20    28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d 65  | ............ret.(js2-wrap-with-e | 
| 5e2e0 |  78 70 72 2d 73 74 6d 74 20 70 6f 73 20 65 20 74    29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 73 65  | xpr-stmt.pos.e.t)).......(js2-se | 
| 5e300 |  74 2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76    61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6a 73  | t-requires-activation).......(js | 
| 5e320 |  32 2d 73 65 74 2d 69 73 2d 67 65 6e 65 72 61 74    6f 72 29 29 29 29 0a 20 20 20 20 3b 3b 20 73 65  | 2-set-is-generator)))).....;;.se | 
| 5e340 |  65 20 69 66 20 77 65 20 61 72 65 20 6d 69 78 69    6e 67 20 79 69 65 6c 64 73 20 61 6e 64 20 76 61  | e.if.we.are.mixing.yields.and.va | 
| 5e360 |  6c 75 65 20 72 65 74 75 72 6e 73 2e 0a 20 20 20    20 28 77 68 65 6e 20 28 61 6e 64 20 69 6e 73 69  | lue.returns......(when.(and.insi | 
| 5e380 |  64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | de-function................(js2- | 
| 5e3a0 |  66 6c 61 67 2d 73 65 74 2d 70 20 6a 73 32 2d 65    6e 64 2d 66 6c 61 67 73 20 6a 73 32 2d 65 6e 64  | flag-set-p.js2-end-flags.js2-end | 
| 5e3c0 |  2d 72 65 74 75 72 6e 73 2d 76 61 6c 75 65 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | -returns-value)................( | 
| 5e3e0 |  65 71 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e    2d 6e 6f 64 65 2d 67 65 6e 65 72 61 74 6f 72 2d  | eq.(js2-function-node-generator- | 
| 5e400 |  74 79 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74    2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 29 0a 20  | type.js2-current-script-or-fn).. | 
| 5e420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 27 4c 45 47 41 43 59 29 29 0a 20 20 20 20  | ..................'LEGACY))..... | 
| 5e440 |  20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73    32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 20  | ..(setq.name.(js2-function-name. | 
| 5e460 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 73 63 72 69    70 74 2d 6f 72 2d 66 6e 29 29 0a 20 20 20 20 20  | js2-current-script-or-fn))...... | 
| 5e480 |  20 28 69 66 20 28 7a 65 72 6f 70 20 28 6c 65 6e    67 74 68 20 6e 61 6d 65 29 29 0a 20 20 20 20 20  | .(if.(zerop.(length.name))...... | 
| 5e4a0 |  20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74    2d 65 72 72 6f 72 20 22 6d 73 67 2e 61 6e 6f 6e  | .....(js2-report-error."msg.anon | 
| 5e4c0 |  2e 67 65 6e 65 72 61 74 6f 72 2e 72 65 74 75 72    6e 73 22 20 6e 69 6c 20 70 6f 73 20 28 2d 20 65  | .generator.returns".nil.pos.(-.e | 
| 5e4e0 |  6e 64 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20    20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72  | nd.pos)).........(js2-report-err | 
| 5e500 |  6f 72 20 22 6d 73 67 2e 67 65 6e 65 72 61 74 6f    72 2e 72 65 74 75 72 6e 73 22 20 6e 61 6d 65 20  | or."msg.generator.returns".name. | 
| 5e520 |  70 6f 73 20 28 2d 20 65 6e 64 20 70 6f 73 29 29    29 29 0a 20 20 20 20 72 65 74 29 29 0a 0a 28 64  | pos.(-.end.pos)))).....ret))..(d | 
| 5e540 |  65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 64    65 62 75 67 67 65 72 20 28 29 0a 20 20 28 6d 61  | efun.js2-parse-debugger.()...(ma | 
| 5e560 |  6b 65 2d 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e    6f 64 65 20 3a 74 79 70 65 20 6a 73 32 2d 44 45  | ke-js2-keyword-node.:type.js2-DE | 
| 5e580 |  42 55 47 47 45 52 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 62 6c 6f 63 6b  | BUGGER))..(defun.js2-parse-block | 
| 5e5a0 |  20 28 29 0a 20 20 22 50 61 72 73 65 72 20 66 6f    72 20 61 20 63 75 72 6c 79 2d 64 65 6c 69 6d 69  | .()..."Parser.for.a.curly-delimi | 
| 5e5c0 |  74 65 64 20 73 74 61 74 65 6d 65 6e 74 20 62 6c    6f 63 6b 2e 0a 4c 61 73 74 20 74 6f 6b 65 6e 20  | ted.statement.block..Last.token. | 
| 5e5e0 |  6d 61 74 63 68 65 64 20 6d 75 73 74 20 62 65 20    60 6a 73 32 2d 4c 43 27 2e 22 0a 20 20 28 6c 65  | matched.must.be.`js2-LC'."...(le | 
| 5e600 |  74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29  | t.((pos.(js2-current-token-beg)) | 
| 5e620 |  0a 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d 61    6b 65 2d 6a 73 32 2d 73 63 6f 70 65 29 29 29 0a  | .........(pn.(make-js2-scope))). | 
| 5e640 |  20 20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63    6f 70 65 20 70 6e 29 0a 20 20 20 20 28 75 6e 77  | ....(js2-push-scope.pn).....(unw | 
| 5e660 |  69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20    20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20  | ind-protect.........(progn...... | 
| 5e680 |  20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d    73 74 61 74 65 6d 65 6e 74 73 20 70 6e 29 0a 20  | .....(js2-parse-statements.pn).. | 
| 5e6a0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 75    73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20  | .........(js2-must-match.js2-RC. | 
| 5e6c0 |  22 6d 73 67 2e 6e 6f 2e 62 72 61 63 65 2e 62 6c    6f 63 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20  | "msg.no.brace.block")........... | 
| 5e6e0 |  28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d    6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d  | (setf.(js2-node-len.pn).(-.(js2- | 
| 5e700 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e    64 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20  | current-token-end).pos)))....... | 
| 5e720 |  28 6a 73 32 2d 70 6f 70 2d 73 63 6f 70 65 29 29    0a 20 20 20 20 70 6e 29 29 0a 0a 3b 3b 20 46 6f  | (js2-pop-scope)).....pn))..;;.Fo | 
| 5e740 |  72 20 60 6a 73 32 2d 45 52 52 4f 52 27 20 74 6f    6f 2c 20 74 6f 20 68 61 76 65 20 61 20 6e 6f 64  | r.`js2-ERROR'.too,.to.have.a.nod | 
| 5e760 |  65 20 66 6f 72 20 65 72 72 6f 72 20 72 65 63 6f    76 65 72 79 20 74 6f 20 77 6f 72 6b 20 6f 6e 2e  | e.for.error.recovery.to.work.on. | 
| 5e780 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73    65 2d 73 65 6d 69 20 28 29 0a 20 20 22 50 61 72  | .(defun.js2-parse-semi.()..."Par | 
| 5e7a0 |  73 65 20 61 20 73 74 61 74 65 6d 65 6e 74 20 6f    72 20 68 61 6e 64 6c 65 20 61 6e 20 65 72 72 6f  | se.a.statement.or.handle.an.erro | 
| 5e7c0 |  72 2e 0a 43 75 72 72 65 6e 74 20 74 6f 6b 65 6e    20 74 79 70 65 20 69 73 20 60 6a 73 32 2d 53 45  | r..Current.token.type.is.`js2-SE | 
| 5e7e0 |  4d 49 27 20 6f 72 20 60 6a 73 32 2d 45 52 52 4f    52 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 74  | MI'.or.`js2-ERROR'."...(let.((tt | 
| 5e800 |  20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f    6b 65 6e 2d 74 79 70 65 29 29 20 70 6f 73 20 6c  | .(js2-current-token-type)).pos.l | 
| 5e820 |  65 6e 29 0a 20 20 20 20 28 69 66 20 28 65 71 20    74 74 20 6a 73 32 2d 53 45 4d 49 29 0a 20 20 20  | en).....(if.(eq.tt.js2-SEMI).... | 
| 5e840 |  20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 65    6d 70 74 79 2d 65 78 70 72 2d 6e 6f 64 65 20 3a  | .....(make-js2-empty-expr-node.: | 
| 5e860 |  6c 65 6e 20 31 29 0a 20 20 20 20 20 20 28 73 65    74 71 20 70 6f 73 20 28 6a 73 32 2d 63 75 72 72  | len.1).......(setq.pos.(js2-curr | 
| 5e880 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 20 28  | ent-token-beg).............len.( | 
| 5e8a0 |  2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 65 6e 64 29 20 70 6f 73 29 29 0a  | -.(js2-current-token-end).pos)). | 
| 5e8c0 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72    74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e  | ......(js2-report-error."msg.syn | 
| 5e8e0 |  74 61 78 22 20 6e 69 6c 20 70 6f 73 20 6c 65 6e    29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73  | tax".nil.pos.len).......(make-js | 
| 5e900 |  32 2d 65 72 72 6f 72 2d 6e 6f 64 65 20 3a 70 6f    73 20 70 6f 73 20 3a 6c 65 6e 20 6c 65 6e 29 29  | 2-error-node.:pos.pos.:len.len)) | 
| 5e920 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    61 72 73 65 2d 64 65 66 61 75 6c 74 2d 78 6d 6c  | ))..(defun.js2-parse-default-xml | 
| 5e940 |  2d 6e 61 6d 65 73 70 61 63 65 20 28 29 0a 20 20    22 50 61 72 73 65 20 61 20 60 64 65 66 61 75 6c  | -namespace.()..."Parse.a.`defaul | 
| 5e960 |  74 20 78 6d 6c 20 6e 61 6d 65 73 70 61 63 65 20    3d 20 3c 65 78 70 72 3e 27 20 65 34 78 20 73 74  | t.xml.namespace.=.<expr>'.e4x.st | 
| 5e980 |  61 74 65 6d 65 6e 74 2e 22 0a 20 20 28 6c 65 74    20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72  | atement."...(let.((pos.(js2-curr | 
| 5e9a0 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a    20 20 20 20 20 20 20 20 65 6e 64 20 6c 65 6e 20  | ent-token-beg)).........end.len. | 
| 5e9c0 |  65 78 70 72 20 75 6e 61 72 79 29 0a 20 20 20 20    28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d 78  | expr.unary).....(js2-must-have-x | 
| 5e9e0 |  6d 6c 29 0a 20 20 20 20 28 6a 73 32 2d 73 65 74    2d 72 65 71 75 69 72 65 73 2d 61 63 74 69 76 61  | ml).....(js2-set-requires-activa | 
| 5ea00 |  74 69 6f 6e 29 0a 20 20 20 20 28 73 65 74 71 20    6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75  | tion).....(setq.len.(-.js2-ts-cu | 
| 5ea20 |  72 73 6f 72 20 70 6f 73 29 29 0a 20 20 20 20 28    75 6e 6c 65 73 73 20 28 61 6e 64 20 28 6a 73 32  | rsor.pos)).....(unless.(and.(js2 | 
| 5ea40 |  2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32    2d 4e 41 4d 45 29 0a 20 20 20 20 20 20 20 20 20  | -match-token.js2-NAME).......... | 
| 5ea60 |  20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 3d    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | ........(string=.(js2-current-to | 
| 5ea80 |  6b 65 6e 2d 73 74 72 69 6e 67 29 20 22 78 6d 6c    22 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72  | ken-string)."xml")).......(js2-r | 
| 5eaa0 |  65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67    2e 62 61 64 2e 6e 61 6d 65 73 70 61 63 65 22 20  | eport-error."msg.bad.namespace". | 
| 5eac0 |  6e 69 6c 20 70 6f 73 20 6c 65 6e 29 29 0a 20 20    20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28  | nil.pos.len)).....(unless.(and.( | 
| 5eae0 |  6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20    6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20 20  | js2-match-token.js2-NAME)....... | 
| 5eb00 |  20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69    6e 67 3d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | ...........(string=.(js2-current | 
| 5eb20 |  2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 20 22    6e 61 6d 65 73 70 61 63 65 22 29 29 0a 20 20 20  | -token-string)."namespace")).... | 
| 5eb40 |  20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65    72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 6e 61  | ...(js2-report-error."msg.bad.na | 
| 5eb60 |  6d 65 73 70 61 63 65 22 20 6e 69 6c 20 70 6f 73    20 6c 65 6e 29 29 0a 20 20 20 20 28 75 6e 6c 65  | mespace".nil.pos.len)).....(unle | 
| 5eb80 |  73 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f    6b 65 6e 20 6a 73 32 2d 41 53 53 49 47 4e 29 0a  | ss.(js2-match-token.js2-ASSIGN). | 
| 5eba0 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72    74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64  | ......(js2-report-error."msg.bad | 
| 5ebc0 |  2e 6e 61 6d 65 73 70 61 63 65 22 20 6e 69 6c 20    70 6f 73 20 6c 65 6e 29 29 0a 20 20 20 20 28 73  | .namespace".nil.pos.len)).....(s | 
| 5ebe0 |  65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 70 61    72 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20 20  | etq.expr.(js2-parse-expr)....... | 
| 5ec00 |  20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64    65 2d 65 6e 64 20 65 78 70 72 29 0a 20 20 20 20  | ....end.(js2-node-end.expr)..... | 
| 5ec20 |  20 20 20 20 20 20 75 6e 61 72 79 20 28 6d 61 6b    65 2d 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65  | ......unary.(make-js2-unary-node | 
| 5ec40 |  20 3a 74 79 70 65 20 6a 73 32 2d 44 45 46 41 55    4c 54 4e 41 4d 45 53 50 41 43 45 0a 20 20 20 20  | .:type.js2-DEFAULTNAMESPACE..... | 
| 5ec60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5ec80 |  20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:pos.pos....................... | 
| 5eca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a  | ...............:len.(-.end.pos). | 
| 5ecc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5ece0 |  20 20 20 20 20 3a 6f 70 65 72 61 6e 64 20 65 78    70 72 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f  | .....:operand.expr)).....(js2-no | 
| 5ed00 |  64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20    75 6e 61 72 79 20 65 78 70 72 29 0a 20 20 20 20  | de-add-children.unary.expr)..... | 
| 5ed20 |  28 6d 61 6b 65 2d 6a 73 32 2d 65 78 70 72 2d 73    74 6d 74 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f  | (make-js2-expr-stmt-node.:pos.po | 
| 5ed40 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | s..............................: | 
| 5ed60 |  6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | len.(-.end.pos)................. | 
| 5ed80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78    70 72 20 75 6e 61 72 79 29 29 29 0a 0a 28 64 65  | .............:expr.unary)))..(de | 
| 5eda0 |  66 75 6e 20 6a 73 32 2d 72 65 63 6f 72 64 2d 6c    61 62 65 6c 20 28 6c 61 62 65 6c 20 62 75 6e 64  | fun.js2-record-label.(label.bund | 
| 5edc0 |  6c 65 29 0a 20 20 3b 3b 20 63 75 72 72 65 6e 74    20 74 6f 6b 65 6e 20 73 68 6f 75 6c 64 20 62 65  | le)...;;.current.token.should.be | 
| 5ede0 |  20 63 6f 6c 6f 6e 20 74 68 61 74 20 60 6a 73 32    2d 70 61 72 73 65 2d 70 72 69 6d 61 72 79 2d 65  | .colon.that.`js2-parse-primary-e | 
| 5ee00 |  78 70 72 27 20 6c 65 66 74 20 75 6e 74 6f 75 63    68 65 64 0a 20 20 28 6a 73 32 2d 67 65 74 2d 74  | xpr'.left.untouched...(js2-get-t | 
| 5ee20 |  6f 6b 65 6e 29 0a 20 20 28 6c 65 74 20 28 28 6e    61 6d 65 20 28 6a 73 32 2d 6c 61 62 65 6c 2d 6e  | oken)...(let.((name.(js2-label-n | 
| 5ee40 |  6f 64 65 2d 6e 61 6d 65 20 6c 61 62 65 6c 29 29    0a 20 20 20 20 20 20 20 20 6c 61 62 65 6c 65 64  | ode-name.label)).........labeled | 
| 5ee60 |  2d 73 74 6d 74 0a 20 20 20 20 20 20 20 20 64 75    70 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 65  | -stmt.........dup).....(when.(se | 
| 5ee80 |  74 71 20 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20    28 63 64 72 20 28 61 73 73 6f 63 20 6e 61 6d 65  | tq.labeled-stmt.(cdr.(assoc.name | 
| 5eea0 |  20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 29 29    29 0a 20 20 20 20 20 20 3b 3b 20 66 6c 61 67 20  | .js2-label-set))).......;;.flag. | 
| 5eec0 |  62 6f 74 68 20 6c 61 62 65 6c 73 20 69 66 20 70    6f 73 73 69 62 6c 65 20 77 68 65 6e 20 75 73 65  | both.labels.if.possible.when.use | 
| 5eee0 |  64 20 69 6e 20 65 64 69 74 69 6e 67 20 6d 6f 64    65 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64  | d.in.editing.mode.......(if.(and | 
| 5ef00 |  20 6a 73 32 2d 70 61 72 73 65 2d 69 64 65 2d 6d    6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-parse-ide-mode............. | 
| 5ef20 |  20 20 20 28 73 65 74 71 20 64 75 70 20 28 6a 73    32 2d 67 65 74 2d 6c 61 62 65 6c 2d 62 79 2d 6e  | ...(setq.dup.(js2-get-label-by-n | 
| 5ef40 |  61 6d 65 20 6c 61 62 65 6c 65 64 2d 73 74 6d 74    20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20  | ame.labeled-stmt.name)))........ | 
| 5ef60 |  20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65    72 72 6f 72 20 22 6d 73 67 2e 64 75 70 2e 6c 61  | ...(js2-report-error."msg.dup.la | 
| 5ef80 |  62 65 6c 22 20 6e 69 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | bel".nil........................ | 
| 5efa0 |  20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61    62 73 2d 70 6f 73 20 64 75 70 29 20 28 6a 73 32  | .....(js2-node-abs-pos.dup).(js2 | 
| 5efc0 |  2d 6e 6f 64 65 2d 6c 65 6e 20 64 75 70 29 29 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | -node-len.dup))).......(js2-repo | 
| 5efe0 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64 75    70 2e 6c 61 62 65 6c 22 20 6e 69 6c 0a 20 20 20  | rt-error."msg.dup.label".nil.... | 
| 5f000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 70  | .....................(js2-node-p | 
| 5f020 |  6f 73 20 6c 61 62 65 6c 29 20 28 6a 73 32 2d 6e    6f 64 65 2d 6c 65 6e 20 6c 61 62 65 6c 29 29 29  | os.label).(js2-node-len.label))) | 
| 5f040 |  0a 20 20 20 20 28 6a 73 32 2d 6c 61 62 65 6c 65    64 2d 73 74 6d 74 2d 6e 6f 64 65 2d 61 64 64 2d  | .....(js2-labeled-stmt-node-add- | 
| 5f060 |  6c 61 62 65 6c 20 62 75 6e 64 6c 65 20 6c 61 62    65 6c 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | label.bundle.label).....(js2-nod | 
| 5f080 |  65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 62    75 6e 64 6c 65 20 6c 61 62 65 6c 29 0a 20 20 20  | e-add-children.bundle.label).... | 
| 5f0a0 |  20 3b 3b 20 41 64 64 20 6f 6e 65 20 72 65 66 65    72 65 6e 63 65 20 74 6f 20 74 68 65 20 62 75 6e  | .;;.Add.one.reference.to.the.bun | 
| 5f0c0 |  64 6c 65 20 70 65 72 20 6c 61 62 65 6c 20 69 6e    20 60 6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 27  | dle.per.label.in.`js2-label-set' | 
| 5f0e0 |  0a 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73    20 6e 61 6d 65 20 62 75 6e 64 6c 65 29 20 6a 73  | .....(push.(cons.name.bundle).js | 
| 5f100 |  32 2d 6c 61 62 65 6c 2d 73 65 74 29 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65  | 2-label-set)))..(defun.js2-parse | 
| 5f120 |  2d 6e 61 6d 65 2d 6f 72 2d 6c 61 62 65 6c 20 28    29 0a 20 20 22 50 61 72 73 65 72 20 66 6f 72 20  | -name-or-label.()..."Parser.for. | 
| 5f140 |  69 64 65 6e 74 69 66 69 65 72 20 6f 72 20 6c 61    62 65 6c 2e 20 20 4c 61 73 74 20 74 6f 6b 65 6e  | identifier.or.label...Last.token | 
| 5f160 |  20 6d 61 74 63 68 65 64 20 6d 75 73 74 20 62 65    20 6a 73 32 2d 4e 41 4d 45 2e 0a 43 61 6c 6c 65  | .matched.must.be.js2-NAME..Calle | 
| 5f180 |  64 20 77 68 65 6e 20 77 65 20 66 6f 75 6e 64 20    61 20 6e 61 6d 65 20 69 6e 20 61 20 73 74 61 74  | d.when.we.found.a.name.in.a.stat | 
| 5f1a0 |  65 6d 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20    49 66 20 69 74 27 73 20 61 20 6c 61 62 65 6c 2c  | ement.context...If.it's.a.label, | 
| 5f1c0 |  20 77 65 20 67 61 74 68 65 72 0a 75 70 20 61 6e    79 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 61 62 65  | .we.gather.up.any.following.labe | 
| 5f1e0 |  6c 73 20 61 6e 64 20 74 68 65 20 6e 65 78 74 20    6e 6f 6e 2d 6c 61 62 65 6c 20 73 74 61 74 65 6d  | ls.and.the.next.non-label.statem | 
| 5f200 |  65 6e 74 20 69 6e 74 6f 20 61 0a 60 6a 73 32 2d    6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f 64  | ent.into.a.`js2-labeled-stmt-nod | 
| 5f220 |  65 27 20 62 75 6e 64 6c 65 20 61 6e 64 20 72 65    74 75 72 6e 20 74 68 61 74 2e 20 20 4f 74 68 65  | e'.bundle.and.return.that...Othe | 
| 5f240 |  72 77 69 73 65 20 77 65 20 70 61 72 73 65 20 61    6e 0a 65 78 70 72 65 73 73 69 6f 6e 20 61 6e 64  | rwise.we.parse.an.expression.and | 
| 5f260 |  20 72 65 74 75 72 6e 20 69 74 20 77 72 61 70 70    65 64 20 69 6e 20 61 20 60 6a 73 32 2d 65 78 70  | .return.it.wrapped.in.a.`js2-exp | 
| 5f280 |  72 2d 73 74 6d 74 2d 6e 6f 64 65 27 2e 22 0a 20    20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32  | r-stmt-node'."...(let.((pos.(js2 | 
| 5f2a0 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 29 0a 20 20 20 20 20 20 20 20 65 78 70  | -current-token-beg)).........exp | 
| 5f2c0 |  72 20 73 74 6d 74 20 62 75 6e 64 6c 65 0a 20 20    20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20  | r.stmt.bundle.........(continue. | 
| 5f2e0 |  74 29 29 0a 20 20 20 20 3b 3b 20 73 65 74 20 63    68 65 63 6b 20 66 6f 72 20 6c 61 62 65 6c 20 61  | t)).....;;.set.check.for.label.a | 
| 5f300 |  6e 64 20 63 61 6c 6c 20 64 6f 77 6e 20 74 6f 20    60 6a 73 32 2d 70 61 72 73 65 2d 70 72 69 6d 61  | nd.call.down.to.`js2-parse-prima | 
| 5f320 |  72 79 2d 65 78 70 72 27 0a 20 20 20 20 28 73 65    74 71 20 65 78 70 72 20 28 6a 73 32 2d 6d 61 79  | ry-expr'.....(setq.expr.(js2-may | 
| 5f340 |  62 65 2d 70 61 72 73 65 2d 6c 61 62 65 6c 29 29    0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 65  | be-parse-label)).....(if.(null.e | 
| 5f360 |  78 70 72 29 0a 20 20 20 20 20 20 20 20 3b 3b 20    50 61 72 73 65 20 74 68 65 20 6e 6f 6e 2d 6c 61  | xpr).........;;.Parse.the.non-la | 
| 5f380 |  62 65 6c 20 65 78 70 72 65 73 73 69 6f 6e 20 61    6e 64 20 77 72 61 70 20 77 69 74 68 20 65 78 70  | bel.expression.and.wrap.with.exp | 
| 5f3a0 |  72 65 73 73 69 6f 6e 20 73 74 6d 74 2e 0a 20 20    20 20 20 20 20 20 28 6a 73 32 2d 77 72 61 70 2d  | ression.stmt..........(js2-wrap- | 
| 5f3c0 |  77 69 74 68 2d 65 78 70 72 2d 73 74 6d 74 20 70    6f 73 20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78  | with-expr-stmt.pos.(js2-parse-ex | 
| 5f3e0 |  70 72 29 20 74 29 0a 20 20 20 20 20 20 3b 3b 20    65 6c 73 65 20 70 61 72 73 65 64 20 61 20 6c 61  | pr).t).......;;.else.parsed.a.la | 
| 5f400 |  62 65 6c 0a 20 20 20 20 20 20 28 73 65 74 71 20    62 75 6e 64 6c 65 20 28 6d 61 6b 65 2d 6a 73 32  | bel.......(setq.bundle.(make-js2 | 
| 5f420 |  2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e 6f    64 65 20 3a 70 6f 73 20 70 6f 73 29 29 0a 20 20  | -labeled-stmt-node.:pos.pos))... | 
| 5f440 |  20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d    6c 61 62 65 6c 20 65 78 70 72 20 62 75 6e 64 6c  | ....(js2-record-label.expr.bundl | 
| 5f460 |  65 29 0a 20 20 20 20 20 20 3b 3b 20 6c 6f 6f 6b    20 66 6f 72 20 6d 6f 72 65 20 6c 61 62 65 6c 73  | e).......;;.look.for.more.labels | 
| 5f480 |  0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61    6e 64 20 63 6f 6e 74 69 6e 75 65 20 28 3d 20 28  | .......(while.(and.continue.(=.( | 
| 5f4a0 |  6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 20 6a    73 32 2d 4e 41 4d 45 29 29 0a 20 20 20 20 20 20  | js2-get-token).js2-NAME))....... | 
| 5f4c0 |  20 20 28 69 66 20 28 73 65 74 71 20 65 78 70 72    20 28 6a 73 32 2d 6d 61 79 62 65 2d 70 61 72 73  | ..(if.(setq.expr.(js2-maybe-pars | 
| 5f4e0 |  65 2d 6c 61 62 65 6c 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72  | e-label)).............(js2-recor | 
| 5f500 |  64 2d 6c 61 62 65 6c 20 65 78 70 72 20 62 75 6e    64 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28  | d-label.expr.bundle)...........( | 
| 5f520 |  73 65 74 71 20 65 78 70 72 20 28 6a 73 32 2d 70    61 72 73 65 2d 65 78 70 72 29 0a 20 20 20 20 20  | setq.expr.(js2-parse-expr)...... | 
| 5f540 |  20 20 20 20 20 20 20 20 20 20 20 73 74 6d 74 20    28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68 2d 65  | ...........stmt.(js2-wrap-with-e | 
| 5f560 |  78 70 72 2d 73 74 6d 74 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 65 78 70 72 29 20 65 78 70  | xpr-stmt.(js2-node-pos.expr).exp | 
| 5f580 |  72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 63 6f 6e 74 69 6e 75 65 20 6e 69  | r.t).................continue.ni | 
| 5f5a0 |  6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 75 74 6f 2d 69 6e 73 65 72 74 2d 73 65  | l)...........(js2-auto-insert-se | 
| 5f5c0 |  6d 69 63 6f 6c 6f 6e 20 73 74 6d 74 29 29 29 0a    20 20 20 20 20 20 3b 3b 20 6e 6f 20 6d 6f 72 65  | micolon.stmt))).......;;.no.more | 
| 5f5e0 |  20 6c 61 62 65 6c 73 3b 20 6e 6f 77 20 70 61 72    73 65 20 74 68 65 20 6c 61 62 65 6c 65 64 20 73  | .labels;.now.parse.the.labeled.s | 
| 5f600 |  74 61 74 65 6d 65 6e 74 0a 20 20 20 20 20 20 28    75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20  | tatement.......(unwind-protect.. | 
| 5f620 |  20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65    73 73 20 73 74 6d 74 0a 20 20 20 20 20 20 20 20  | ...........(unless.stmt......... | 
| 5f640 |  20 20 20 20 20 20 28 6c 65 74 20 28 28 6a 73 32    2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 20 62 75  | ......(let.((js2-labeled-stmt.bu | 
| 5f660 |  6e 64 6c 65 29 29 20 20 3b 20 62 69 6e 64 20 64    79 6e 61 6d 69 63 61 6c 6c 79 0a 20 20 20 20 20  | ndle))..;.bind.dynamically...... | 
| 5f680 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20  | ...........(js2-unget-token).... | 
| 5f6a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 73 74 6d 74 20 28 6a 73 32 2d 73 74 61  | .............(setq.stmt.(js2-sta | 
| 5f6c0 |  74 65 6d 65 6e 74 2d 68 65 6c 70 65 72 29 29 29    29 0a 20 20 20 20 20 20 20 20 3b 3b 20 72 65 6d  | tement-helper)))).........;;.rem | 
| 5f6e0 |  6f 76 65 20 74 68 65 20 6c 61 62 65 6c 73 20 66    6f 72 20 74 68 69 73 20 73 74 61 74 65 6d 65 6e  | ove.the.labels.for.this.statemen | 
| 5f700 |  74 20 66 72 6f 6d 20 74 68 65 20 67 6c 6f 62 61    6c 20 73 65 74 0a 20 20 20 20 20 20 20 20 28 64  | t.from.the.global.set.........(d | 
| 5f720 |  6f 6c 69 73 74 20 28 6c 61 62 65 6c 20 28 6a 73    32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d 6e  | olist.(label.(js2-labeled-stmt-n | 
| 5f740 |  6f 64 65 2d 6c 61 62 65 6c 73 20 62 75 6e 64 6c    65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73  | ode-labels.bundle))...........(s | 
| 5f760 |  65 74 71 20 6a 73 32 2d 6c 61 62 65 6c 2d 73 65    74 20 28 72 65 6d 6f 76 65 20 6c 61 62 65 6c 20  | etq.js2-label-set.(remove.label. | 
| 5f780 |  6a 73 32 2d 6c 61 62 65 6c 2d 73 65 74 29 29 29    29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 6a  | js2-label-set)))).......(setf.(j | 
| 5f7a0 |  73 32 2d 6c 61 62 65 6c 65 64 2d 73 74 6d 74 2d    6e 6f 64 65 2d 73 74 6d 74 20 62 75 6e 64 6c 65  | s2-labeled-stmt-node-stmt.bundle | 
| 5f7c0 |  29 20 73 74 6d 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e  | ).stmt.............(js2-node-len | 
| 5f7e0 |  20 62 75 6e 64 6c 65 29 20 28 2d 20 28 6a 73 32    2d 6e 6f 64 65 2d 65 6e 64 20 73 74 6d 74 29 20  | .bundle).(-.(js2-node-end.stmt). | 
| 5f800 |  70 6f 73 29 29 0a 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72  | pos)).......(js2-node-add-childr | 
| 5f820 |  65 6e 20 62 75 6e 64 6c 65 20 73 74 6d 74 29 0a    20 20 20 20 20 20 62 75 6e 64 6c 65 29 29 29 0a  | en.bundle.stmt).......bundle))). | 
| 5f840 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 79 62    65 2d 70 61 72 73 65 2d 6c 61 62 65 6c 20 28 29  | .(defun.js2-maybe-parse-label.() | 
| 5f860 |  0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 3d    20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f  | ...(cl-assert.(=.(js2-current-to | 
| 5f880 |  6b 65 6e 2d 74 79 70 65 29 20 6a 73 32 2d 4e 41    4d 45 29 29 0a 20 20 28 6c 65 74 20 28 6c 61 62  | ken-type).js2-NAME))...(let.(lab | 
| 5f8a0 |  65 6c 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 28    6e 65 78 74 2d 74 74 20 28 6a 73 32 2d 67 65 74  | el-pos.........(next-tt.(js2-get | 
| 5f8c0 |  2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20    20 28 6c 61 62 65 6c 2d 65 6e 64 20 28 6a 73 32  | -token)).........(label-end.(js2 | 
| 5f8e0 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65    6e 64 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 20  | -current-token-end))).....;;.Do. | 
| 5f900 |  6e 6f 74 20 63 6f 6e 73 75 6d 65 20 63 6f 6c 6f    6e 2c 20 69 74 20 69 73 20 75 73 65 64 20 61 73  | not.consume.colon,.it.is.used.as | 
| 5f920 |  20 75 6e 77 69 6e 64 20 69 6e 64 69 63 61 74 6f    72 0a 20 20 20 20 3b 3b 20 74 6f 20 72 65 74 75  | .unwind.indicator.....;;.to.retu | 
| 5f940 |  72 6e 20 74 6f 20 73 74 61 74 65 6d 65 6e 74 48    65 6c 70 65 72 2e 0a 20 20 20 20 28 6a 73 32 2d  | rn.to.statementHelper......(js2- | 
| 5f960 |  75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20    20 28 69 66 20 28 3d 20 6e 65 78 74 2d 74 74 20  | unget-token).....(if.(=.next-tt. | 
| 5f980 |  6a 73 32 2d 43 4f 4c 4f 4e 29 0a 20 20 20 20 20    20 20 20 28 70 72 6f 67 32 0a 20 20 20 20 20 20  | js2-COLON).........(prog2....... | 
| 5f9a0 |  20 20 20 20 20 20 28 73 65 74 71 20 6c 61 62 65    6c 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65  | ......(setq.label-pos.(js2-curre | 
| 5f9c0 |  6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65  | nt-token-beg)).............(make | 
| 5f9e0 |  2d 6a 73 32 2d 6c 61 62 65 6c 2d 6e 6f 64 65 20    3a 70 6f 73 20 6c 61 62 65 6c 2d 70 6f 73 0a 20  | -js2-label-node.:pos.label-pos.. | 
| 5fa00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 5fa20 |  3a 6c 65 6e 20 28 2d 20 6c 61 62 65 6c 2d 65 6e    64 20 6c 61 62 65 6c 2d 70 6f 73 29 0a 20 20 20  | :len.(-.label-end.label-pos).... | 
| 5fa40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e  | ..............................:n | 
| 5fa60 |  61 6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67 29 29 0a  | ame.(js2-current-token-string)). | 
| 5fa80 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73    65 74 2d 66 61 63 65 20 6c 61 62 65 6c 2d 70 6f  | ..........(js2-set-face.label-po | 
| 5faa0 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 2d  | s.........................label- | 
| 5fac0 |  65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e  | end.........................'fon | 
| 5fae0 |  74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d    6e 61 6d 65 2d 66 61 63 65 20 27 72 65 63 6f 72  | t-lock-variable-name-face.'recor | 
| 5fb00 |  64 29 29 0a 20 20 20 20 20 20 3b 3b 20 42 61 63    6b 74 72 61 63 6b 20 66 72 6f 6d 20 74 68 65 20  | d)).......;;.Backtrack.from.the. | 
| 5fb20 |  6e 61 6d 65 20 74 6f 6b 65 6e 2c 20 74 6f 6f 2e    0a 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65  | name.token,.too........(js2-unge | 
| 5fb40 |  74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 6e    69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | t-token).......nil)))..(defun.js | 
| 5fb60 |  32 2d 70 61 72 73 65 2d 65 78 70 72 2d 73 74 6d    74 20 28 29 0a 20 20 22 44 65 66 61 75 6c 74 20  | 2-parse-expr-stmt.()..."Default. | 
| 5fb80 |  70 61 72 73 65 72 20 69 6e 20 73 74 61 74 65 6d    65 6e 74 20 63 6f 6e 74 65 78 74 2c 20 69 66 20  | parser.in.statement.context,.if. | 
| 5fba0 |  6e 6f 20 72 65 63 6f 67 6e 69 7a 65 64 20 73 74    61 74 65 6d 65 6e 74 20 66 6f 75 6e 64 2e 22 0a  | no.recognized.statement.found.". | 
| 5fbc0 |  20 20 28 6a 73 32 2d 77 72 61 70 2d 77 69 74 68    2d 65 78 70 72 2d 73 74 6d 74 20 28 6a 73 32 2d  | ..(js2-wrap-with-expr-stmt.(js2- | 
| 5fbe0 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65    67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | current-token-beg).............. | 
| 5fc00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20  | ..............(progn............ | 
| 5fc20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b  | ..................(js2-unget-tok | 
| 5fc40 |  65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en)............................. | 
| 5fc60 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72    29 29 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | .(js2-parse-expr)).t))..(defun.j | 
| 5fc80 |  73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 62 6c    65 73 20 28 64 65 63 6c 2d 74 79 70 65 20 70 6f  | s2-parse-variables.(decl-type.po | 
| 5fca0 |  73 29 0a 20 20 22 50 61 72 73 65 20 61 20 63 6f    6d 6d 61 2d 73 65 70 61 72 61 74 65 64 20 6c 69  | s)..."Parse.a.comma-separated.li | 
| 5fcc0 |  73 74 20 6f 66 20 76 61 72 69 61 62 6c 65 20 64    65 63 6c 61 72 61 74 69 6f 6e 73 2e 0a 43 6f 75  | st.of.variable.declarations..Cou | 
| 5fce0 |  6c 64 20 62 65 20 61 20 60 76 61 72 27 2c 20 60    63 6f 6e 73 74 27 20 6f 72 20 60 6c 65 74 27 20  | ld.be.a.`var',.`const'.or.`let'. | 
| 5fd00 |  65 78 70 72 65 73 73 69 6f 6e 2c 20 70 6f 73 73    69 62 6c 79 20 69 6e 20 61 20 66 6f 72 2d 6c 6f  | expression,.possibly.in.a.for-lo | 
| 5fd20 |  6f 70 20 69 6e 69 74 69 61 6c 69 7a 65 72 2e 0a    0a 44 45 43 4c 2d 54 59 50 45 20 69 73 20 61 20  | op.initializer...DECL-TYPE.is.a. | 
| 5fd40 |  74 6f 6b 65 6e 20 76 61 6c 75 65 3a 20 65 69 74    68 65 72 20 56 41 52 2c 20 43 4f 4e 53 54 2c 20  | token.value:.either.VAR,.CONST,. | 
| 5fd60 |  6f 72 20 4c 45 54 20 64 65 70 65 6e 64 69 6e 67    20 6f 6e 20 63 6f 6e 74 65 78 74 2e 0a 46 6f 72  | or.LET.depending.on.context..For | 
| 5fd80 |  20 60 76 61 72 27 20 6f 72 20 60 63 6f 6e 73 74    27 2c 20 74 68 65 20 6b 65 79 77 6f 72 64 20 73  | .`var'.or.`const',.the.keyword.s | 
| 5fda0 |  68 6f 75 6c 64 20 62 65 20 74 68 65 20 74 6f 6b    65 6e 20 6c 61 73 74 20 73 63 61 6e 6e 65 64 2e  | hould.be.the.token.last.scanned. | 
| 5fdc0 |  0a 0a 50 4f 53 20 69 73 20 74 68 65 20 70 6f 73    69 74 69 6f 6e 20 77 68 65 72 65 20 74 68 65 20  | ..POS.is.the.position.where.the. | 
| 5fde0 |  6e 6f 64 65 20 73 68 6f 75 6c 64 20 73 74 61 72    74 2e 20 49 74 27 73 20 73 6f 6d 65 74 69 6d 65  | node.should.start..It's.sometime | 
| 5fe00 |  73 20 74 68 65 0a 76 61 72 2f 63 6f 6e 73 74 2f    6c 65 74 20 6b 65 79 77 6f 72 64 2c 20 61 6e 64  | s.the.var/const/let.keyword,.and | 
| 5fe20 |  20 6f 74 68 65 72 20 74 69 6d 65 73 20 74 68 65    20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68  | .other.times.the.beginning.of.th | 
| 5fe40 |  65 20 66 69 72 73 74 20 74 6f 6b 65 6e 0a 69 6e    20 74 68 65 20 66 69 72 73 74 20 76 61 72 69 61  | e.first.token.in.the.first.varia | 
| 5fe60 |  62 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 2e    0a 0a 52 65 74 75 72 6e 73 20 74 68 65 20 70 61  | ble.declaration...Returns.the.pa | 
| 5fe80 |  72 73 65 64 20 60 6a 73 32 2d 76 61 72 2d 64 65    63 6c 2d 6e 6f 64 65 27 20 65 78 70 72 65 73 73  | rsed.`js2-var-decl-node'.express | 
| 5fea0 |  69 6f 6e 20 6e 6f 64 65 2e 22 0a 20 20 28 6c 65    74 2a 20 28 28 72 65 73 75 6c 74 20 28 6d 61 6b  | ion.node."...(let*.((result.(mak | 
| 5fec0 |  65 2d 6a 73 32 2d 76 61 72 2d 64 65 63 6c 2d 6e    6f 64 65 20 3a 64 65 63 6c 2d 74 79 70 65 20 64  | e-js2-var-decl-node.:decl-type.d | 
| 5fee0 |  65 63 6c 2d 74 79 70 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ecl-type........................ | 
| 5ff00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 70 6f 73 20 70 6f 73 29 29 0a 20 20 20  | ..................:pos.pos)).... | 
| 5ff20 |  20 20 20 20 20 20 64 65 73 74 72 75 63 74 75 72    69 6e 67 20 6b 69 64 2d 70 6f 73 20 74 74 20 69  | ......destructuring.kid-pos.tt.i | 
| 5ff40 |  6e 69 74 20 6e 61 6d 65 20 65 6e 64 20 6e 62 65    67 20 6e 65 6e 64 20 76 69 0a 20 20 20 20 20 20  | nit.name.end.nbeg.nend.vi....... | 
| 5ff60 |  20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29    0a 20 20 20 20 3b 3b 20 45 78 61 6d 70 6c 65 3a  | ...(continue.t)).....;;.Example: | 
| 5ff80 |  0a 20 20 20 20 3b 3b 20 76 61 72 20 66 6f 6f 20    3d 20 7b 61 3a 20 31 2c 20 62 3a 20 32 7d 2c 20  | .....;;.var.foo.=.{a:.1,.b:.2},. | 
| 5ffa0 |  62 61 72 20 3d 20 5b 33 2c 20 34 5d 3b 0a 20 20    20 20 3b 3b 20 76 61 72 20 7b 62 3a 20 73 32 2c  | bar.=.[3,.4];.....;;.var.{b:.s2, | 
| 5ffc0 |  20 61 3a 20 73 31 7d 20 3d 20 66 6f 6f 2c 20 78    20 3d 20 36 2c 20 79 2c 20 5b 73 33 2c 20 73 34  | .a:.s1}.=.foo,.x.=.6,.y,.[s3,.s4 | 
| 5ffe0 |  5d 20 3d 20 62 61 72 3b 0a 20 20 20 20 3b 3b 20    76 61 72 20 7b 61 2c 20 62 7d 20 3d 20 62 61 7a  | ].=.bar;.....;;.var.{a,.b}.=.baz | 
| 60000 |  3b 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e    74 69 6e 75 65 0a 20 20 20 20 20 20 28 73 65 74  | ;.....(while.continue.......(set | 
| 60020 |  71 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20    6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20  | q.destructuring.nil............. | 
| 60040 |  6e 61 6d 65 20 6e 69 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65 74  | name.nil.............tt.(js2-get | 
| 60060 |  2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 6b 69 64 2d 70 6f 73 20 28 6a 73 32  | -token).............kid-pos.(js2 | 
| 60080 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -current-token-beg)............. | 
| 600a0 |  65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20 20 20 20  | end.(js2-current-token-end)..... | 
| 600c0 |  20 20 20 20 20 20 20 20 69 6e 69 74 20 6e 69 6c    29 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 20  | ........init.nil).......(if.(or. | 
| 600e0 |  28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 20 28 3d    20 74 74 20 6a 73 32 2d 4c 43 29 29 0a 20 20 20  | (=.tt.js2-LB).(=.tt.js2-LC)).... | 
| 60100 |  20 20 20 20 20 20 20 3b 3b 20 44 65 73 74 72 75    63 74 75 72 69 6e 67 20 61 73 73 69 67 6e 6d 65  | .......;;.Destructuring.assignme | 
| 60120 |  6e 74 2c 20 65 2e 67 2e 2c 20 76 61 72 20 5b 61    2c 20 62 5d 20 3d 20 2e 2e 2e 0a 20 20 20 20 20  | nt,.e.g.,.var.[a,.b].=.......... | 
| 60140 |  20 20 20 20 20 28 73 65 74 71 20 64 65 73 74 72    75 63 74 75 72 69 6e 67 20 28 6a 73 32 2d 70 61  | .....(setq.destructuring.(js2-pa | 
| 60160 |  72 73 65 2d 64 65 73 74 72 75 63 74 2d 70 72 69    6d 61 72 79 2d 65 78 70 72 29 0a 20 20 20 20 20  | rse-destruct-primary-expr)...... | 
| 60180 |  20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28    6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 64 65 73  | ...........end.(js2-node-end.des | 
| 601a0 |  74 72 75 63 74 75 72 69 6e 67 29 29 0a 20 20 20    20 20 20 20 20 3b 3b 20 53 69 6d 70 6c 65 20 76  | tructuring)).........;;.Simple.v | 
| 601c0 |  61 72 69 61 62 6c 65 20 6e 61 6d 65 0a 20 20 20    20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d  | ariable.name.........(js2-unget- | 
| 601e0 |  74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 6a 73 32 2d 6d 75 73 74 2d 6d  | token).........(when.(js2-must-m | 
| 60200 |  61 74 63 68 2d 6e 61 6d 65 20 22 6d 73 67 2e 62    61 64 2e 76 61 72 22 29 0a 20 20 20 20 20 20 20  | atch-name."msg.bad.var")........ | 
| 60220 |  20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a    73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e  | ...(setq.name.(js2-create-name-n | 
| 60240 |  6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 6e 62 65 67 20 28 6a 73 32 2d 63  | ode).................nbeg.(js2-c | 
| 60260 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | urrent-token-beg)............... | 
| 60280 |  20 20 6e 65 6e 64 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 0a 20  | ..nend.(js2-current-token-end).. | 
| 602a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65    6e 64 20 6e 65 6e 64 29 0a 20 20 20 20 20 20 20  | ...............end.nend)........ | 
| 602c0 |  20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73    79 6d 62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20  | ...(js2-define-symbol.decl-type. | 
| 602e0 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 73 74 72 69 6e 67 29 20 6e 61 6d 65 20  | (js2-current-token-string).name. | 
| 60300 |  6a 73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 29    0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | js2-in-for-init)...........(js2- | 
| 60320 |  63 68 65 63 6b 2d 73 74 72 69 63 74 2d 69 64 65    6e 74 69 66 69 65 72 20 6e 61 6d 65 29 29 29 0a  | check-strict-identifier.name))). | 
| 60340 |  20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32    2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32  | ......(when.(js2-match-token.js2 | 
| 60360 |  2d 41 53 53 49 47 4e 29 0a 20 20 20 20 20 20 20    20 28 73 65 74 71 20 69 6e 69 74 20 28 6a 73 32  | -ASSIGN).........(setq.init.(js2 | 
| 60380 |  2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65 78    70 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -parse-assign-expr)............. | 
| 603a0 |  20 20 65 6e 64 20 28 6a 73 32 2d 6e 6f 64 65 2d    65 6e 64 20 69 6e 69 74 29 29 0a 20 20 20 20 20  | ..end.(js2-node-end.init))...... | 
| 603c0 |  20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 69    6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 73 20 69  | ...(js2-record-imenu-functions.i | 
| 603e0 |  6e 69 74 20 6e 61 6d 65 29 29 0a 20 20 20 20 20    20 28 77 68 65 6e 20 6e 61 6d 65 0a 20 20 20 20  | nit.name)).......(when.name..... | 
| 60400 |  20 20 20 20 28 6a 73 32 2d 73 65 74 2d 66 61 63    65 20 6e 62 65 67 20 6e 65 6e 64 20 28 69 66 20  | ....(js2-set-face.nbeg.nend.(if. | 
| 60420 |  28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f    64 65 2d 70 20 69 6e 69 74 29 0a 20 20 20 20 20  | (js2-function-node-p.init)...... | 
| 60440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27  | ...............................' | 
| 60460 |  66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69    6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 20  | font-lock-function-name-face.... | 
| 60480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27  | ...............................' | 
| 604a0 |  66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62    6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20  | font-lock-variable-name-face)... | 
| 604c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 27 72 65 63 6f 72 64 29 29 0a 20 20  | ....................'record))... | 
| 604e0 |  20 20 20 20 28 73 65 74 71 20 76 69 20 28 6d 61    6b 65 2d 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d  | ....(setq.vi.(make-js2-var-init- | 
| 60500 |  6e 6f 64 65 20 3a 70 6f 73 20 6b 69 64 2d 70 6f    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | node.:pos.kid-pos............... | 
| 60520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d  | .........................:len.(- | 
| 60540 |  20 65 6e 64 20 6b 69 64 2d 70 6f 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .end.kid-pos)................... | 
| 60560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 74 79 70 65 20 64 65 63 6c 2d  | .....................:type.decl- | 
| 60580 |  74 79 70 65 29 29 0a 20 20 20 20 20 20 28 69 66    20 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20  | type)).......(if.destructuring.. | 
| 605a0 |  20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20  | .........(progn.............(if. | 
| 605c0 |  28 61 6e 64 20 28 6e 75 6c 6c 20 69 6e 69 74 29    20 28 6e 6f 74 20 6a 73 32 2d 69 6e 2d 66 6f 72  | (and.(null.init).(not.js2-in-for | 
| 605e0 |  2d 69 6e 69 74 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70  | -init)).................(js2-rep | 
| 60600 |  6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 64    65 73 74 72 75 63 74 2e 61 73 73 69 67 6e 2e 6e  | ort-error."msg.destruct.assign.n | 
| 60620 |  6f 2e 69 6e 69 74 22 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e  | o.init")).............(js2-defin | 
| 60640 |  65 2d 64 65 73 74 72 75 63 74 2d 73 79 6d 62 6f    6c 73 20 64 65 73 74 72 75 63 74 75 72 69 6e 67  | e-destruct-symbols.destructuring | 
| 60660 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 60680 |  20 20 20 20 20 20 20 20 20 20 64 65 63 6c 2d 74    79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ..........decl-type............. | 
| 606a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f  | .............................'fo | 
| 606c0 |  6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65    2d 6e 61 6d 65 2d 66 61 63 65 29 0a 20 20 20 20  | nt-lock-variable-name-face)..... | 
| 606e0 |  20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a    73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65  | ........(setf.(js2-var-init-node | 
| 60700 |  2d 74 61 72 67 65 74 20 76 69 29 20 64 65 73 74    72 75 63 74 75 72 69 6e 67 29 29 0a 20 20 20 20  | -target.vi).destructuring))..... | 
| 60720 |  20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 76    61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72  | ....(setf.(js2-var-init-node-tar | 
| 60740 |  67 65 74 20 76 69 29 20 6e 61 6d 65 29 29 0a 20    20 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d  | get.vi).name)).......(setf.(js2- | 
| 60760 |  76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e    69 74 69 61 6c 69 7a 65 72 20 76 69 29 20 69 6e  | var-init-node-initializer.vi).in | 
| 60780 |  69 74 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6e    6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e  | it).......(js2-node-add-children | 
| 607a0 |  20 76 69 20 6e 61 6d 65 20 64 65 73 74 72 75 63    74 75 72 69 6e 67 20 69 6e 69 74 29 0a 20 20 20  | .vi.name.destructuring.init).... | 
| 607c0 |  20 20 20 28 6a 73 32 2d 62 6c 6f 63 6b 2d 6e 6f    64 65 2d 70 75 73 68 20 72 65 73 75 6c 74 20 76  | ...(js2-block-node-push.result.v | 
| 607e0 |  69 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73    20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65  | i).......(unless.(js2-match-toke | 
| 60800 |  6e 20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20    20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69  | n.js2-COMMA).........(setq.conti | 
| 60820 |  6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 28    73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c  | nue.nil))).....(setf.(js2-node-l | 
| 60840 |  65 6e 20 72 65 73 75 6c 74 29 20 28 2d 20 65 6e    64 20 70 6f 73 29 29 0a 20 20 20 20 72 65 73 75  | en.result).(-.end.pos)).....resu | 
| 60860 |  6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 70 61 72 73 65 2d 6c 65 74 20 28 70 6f 73 20  | lt))..(defun.js2-parse-let.(pos. | 
| 60880 |  26 6f 70 74 69 6f 6e 61 6c 20 73 74 6d 74 2d 70    29 0a 20 20 22 50 61 72 73 65 20 61 20 6c 65 74  | &optional.stmt-p)..."Parse.a.let | 
| 608a0 |  20 65 78 70 72 65 73 73 69 6f 6e 20 6f 72 20 73    74 61 74 65 6d 65 6e 74 2e 0a 41 20 6c 65 74 2d  | .expression.or.statement..A.let- | 
| 608c0 |  65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6f 66    20 74 68 65 20 66 6f 72 6d 20 60 6c 65 74 20 28  | expression.is.of.the.form.`let.( | 
| 608e0 |  76 61 72 73 29 20 65 78 70 72 27 2e 0a 41 20 6c    65 74 2d 73 74 61 74 65 6d 65 6e 74 20 69 73 20  | vars).expr'..A.let-statement.is. | 
| 60900 |  6f 66 20 74 68 65 20 66 6f 72 6d 20 60 6c 65 74    20 28 76 61 72 73 29 20 7b 73 74 61 74 65 6d 65  | of.the.form.`let.(vars).{stateme | 
| 60920 |  6e 74 73 7d 27 2e 0a 54 68 65 20 74 68 69 72 64    20 66 6f 72 6d 20 6f 66 20 6c 65 74 20 69 73 20  | nts}'..The.third.form.of.let.is. | 
| 60940 |  61 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c 61    72 61 74 69 6f 6e 20 6c 69 73 74 2c 20 68 61 6e  | a.variable.declaration.list,.han | 
| 60960 |  64 6c 65 64 0a 62 79 20 60 6a 73 32 2d 70 61 72    73 65 2d 76 61 72 69 61 62 6c 65 73 27 2e 22 0a  | dled.by.`js2-parse-variables'.". | 
| 60980 |  20 20 28 6c 65 74 20 28 28 70 6e 20 28 6d 61 6b    65 2d 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 20 3a  | ..(let.((pn.(make-js2-let-node.: | 
| 609a0 |  70 6f 73 20 70 6f 73 29 29 0a 20 20 20 20 20 20    20 20 62 65 67 20 76 61 72 73 20 62 6f 64 79 29  | pos.pos)).........beg.vars.body) | 
| 609c0 |  0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75    73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20  | .....(if.(js2-must-match.js2-LP. | 
| 609e0 |  22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 61 66    74 65 72 2e 6c 65 74 22 29 0a 20 20 20 20 20 20  | "msg.no.paren.after.let")....... | 
| 60a00 |  20 20 28 73 65 74 66 20 28 6a 73 32 2d 6c 65 74    2d 6e 6f 64 65 2d 6c 70 20 70 6e 29 20 28 2d 20  | ..(setf.(js2-let-node-lp.pn).(-. | 
| 60a20 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29 0a 20  | (js2-current-token-beg).pos))).. | 
| 60a40 |  20 20 20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f    70 65 20 70 6e 29 0a 20 20 20 20 28 75 6e 77 69  | ...(js2-push-scope.pn).....(unwi | 
| 60a60 |  6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20    20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20  | nd-protect.........(progn....... | 
| 60a80 |  20 20 20 20 28 73 65 74 71 20 76 61 72 73 20 28    6a 73 32 2d 70 61 72 73 65 2d 76 61 72 69 61 62  | ....(setq.vars.(js2-parse-variab | 
| 60aa0 |  6c 65 73 20 6a 73 32 2d 4c 45 54 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | les.js2-LET.(js2-current-token-b | 
| 60ac0 |  65 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61  | eg)))...........(if.(js2-must-ma | 
| 60ae0 |  74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e    6e 6f 2e 70 61 72 65 6e 2e 6c 65 74 22 29 0a 20  | tch.js2-RP."msg.no.paren.let").. | 
| 60b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65    74 66 20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65  | .............(setf.(js2-let-node | 
| 60b20 |  2d 72 70 20 70 6e 29 20 28 2d 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65  | -rp.pn).(-.(js2-current-token-be | 
| 60b40 |  67 29 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 6d  | g).pos)))...........(if.(and.stm | 
| 60b60 |  74 2d 70 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74    6f 6b 65 6e 20 6a 73 32 2d 4c 43 29 29 0a 20 20  | t-p.(js2-match-token.js2-LC))... | 
| 60b80 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c    65 74 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 20  | ............;;.let.statement.... | 
| 60ba0 |  20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........(progn............... | 
| 60bc0 |  20 20 28 73 65 74 66 20 62 65 67 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | ..(setf.beg.(js2-current-token-b | 
| 60be0 |  65 67 29 20 20 3b 20 70 6f 73 69 74 69 6f 6e 20    73 74 6d 74 20 61 74 20 4c 43 0a 20 20 20 20 20  | eg)..;.position.stmt.at.LC...... | 
| 60c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65  | .................body.(js2-parse | 
| 60c20 |  2d 73 74 61 74 65 6d 65 6e 74 73 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | -statements)).................(j | 
| 60c40 |  73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73    32 2d 52 43 20 22 6d 73 67 2e 6e 6f 2e 63 75 72  | s2-must-match.js2-RC."msg.no.cur | 
| 60c60 |  6c 79 2e 6c 65 74 22 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28  | ly.let").................(setf.( | 
| 60c80 |  6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 62 6f 64    79 29 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65  | js2-node-len.body).(-.(js2-curre | 
| 60ca0 |  6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 62 65    67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt-token-end).beg).............. | 
| 60cc0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a  | .........(js2-node-len.pn).(-.(j | 
| 60ce0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 65 6e 64 29 20 70 6f 73 29 0a 20 20 20 20 20  | s2-current-token-end).pos)...... | 
| 60d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 6c 65 74 2d 6e 6f 64 65 2d 62  | .................(js2-let-node-b | 
| 60d20 |  6f 64 79 20 70 6e 29 20 62 6f 64 79 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ody.pn).body.................... | 
| 60d40 |  20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70    65 20 70 6e 29 20 6a 73 32 2d 4c 45 54 29 29 0a  | ...(js2-node-type.pn).js2-LET)). | 
| 60d60 |  20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c    65 74 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20  | ............;;.let.expression... | 
| 60d80 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20    62 6f 64 79 20 28 6a 73 32 2d 70 61 72 73 65 2d  | ..........(setf.body.(js2-parse- | 
| 60da0 |  65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | expr)...................(js2-nod | 
| 60dc0 |  65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73    32 2d 6e 6f 64 65 2d 65 6e 64 20 62 6f 64 79 29  | e-len.pn).(-.(js2-node-end.body) | 
| 60de0 |  20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6c 65 74  | .pos)...................(js2-let | 
| 60e00 |  2d 6e 6f 64 65 2d 62 6f 64 79 20 70 6e 29 20 62    6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20  | -node-body.pn).body))........... | 
| 60e20 |  28 73 65 74 66 20 28 6a 73 32 2d 6c 65 74 2d 6e    6f 64 65 2d 76 61 72 73 20 70 6e 29 20 76 61 72  | (setf.(js2-let-node-vars.pn).var | 
| 60e40 |  73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64  | s)...........(js2-node-add-child | 
| 60e60 |  72 65 6e 20 70 6e 20 76 61 72 73 20 62 6f 64 79    29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 6f  | ren.pn.vars.body)).......(js2-po | 
| 60e80 |  70 2d 73 63 6f 70 65 29 29 0a 20 20 20 20 70 6e    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 64  | p-scope)).....pn))..(defun.js2-d | 
| 60ea0 |  65 66 69 6e 65 2d 6e 65 77 2d 73 79 6d 62 6f 6c    20 28 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65  | efine-new-symbol.(decl-type.name | 
| 60ec0 |  20 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c 20    73 63 6f 70 65 29 0a 20 20 28 6a 73 32 2d 73 63  | .node.&optional.scope)...(js2-sc | 
| 60ee0 |  6f 70 65 2d 70 75 74 2d 73 79 6d 62 6f 6c 20 28    6f 72 20 73 63 6f 70 65 20 6a 73 32 2d 63 75 72  | ope-put-symbol.(or.scope.js2-cur | 
| 60f00 |  72 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rent-scope)..................... | 
| 60f20 |  20 20 20 20 6e 61 6d 65 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....name........................ | 
| 60f40 |  20 28 6d 61 6b 65 2d 6a 73 32 2d 73 79 6d 62 6f    6c 20 64 65 63 6c 2d 74 79 70 65 20 6e 61 6d 65  | .(make-js2-symbol.decl-type.name | 
| 60f60 |  20 6e 6f 64 65 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 64 65 66 69 6e 65 2d 73 79 6d 62  | .node)))..(defun.js2-define-symb | 
| 60f80 |  6f 6c 20 28 64 65 63 6c 2d 74 79 70 65 20 6e 61    6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 6f 64  | ol.(decl-type.name.&optional.nod | 
| 60fa0 |  65 20 69 67 6e 6f 72 65 2d 6e 6f 74 2d 69 6e 2d    62 6c 6f 63 6b 29 0a 20 20 22 44 65 66 69 6e 65  | e.ignore-not-in-block)..."Define | 
| 60fc0 |  20 61 20 73 79 6d 62 6f 6c 20 69 6e 20 74 68 65    20 63 75 72 72 65 6e 74 20 73 63 6f 70 65 2e 0a  | .a.symbol.in.the.current.scope.. | 
| 60fe0 |  49 66 20 4e 4f 44 45 20 69 73 20 6e 6f 6e 2d 6e    69 6c 2c 20 69 74 20 69 73 20 74 68 65 20 41 53  | If.NODE.is.non-nil,.it.is.the.AS | 
| 61000 |  54 20 6e 6f 64 65 20 61 73 73 6f 63 69 61 74 65    64 20 77 69 74 68 20 74 68 65 20 73 79 6d 62 6f  | T.node.associated.with.the.symbo | 
| 61020 |  6c 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 65    66 69 6e 69 6e 67 2d 73 63 6f 70 65 20 28 6a 73  | l."...(let*.((defining-scope.(js | 
| 61040 |  32 2d 67 65 74 2d 64 65 66 69 6e 69 6e 67 2d 73    63 6f 70 65 20 6a 73 32 2d 63 75 72 72 65 6e 74  | 2-get-defining-scope.js2-current | 
| 61060 |  2d 73 63 6f 70 65 20 6e 61 6d 65 29 29 0a 20 20    20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28  | -scope.name))..........(symbol.( | 
| 61080 |  69 66 20 64 65 66 69 6e 69 6e 67 2d 73 63 6f 70    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | if.defining-scope............... | 
| 610a0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 73 63 6f 70    65 2d 67 65 74 2d 73 79 6d 62 6f 6c 20 64 65 66  | .......(js2-scope-get-symbol.def | 
| 610c0 |  69 6e 69 6e 67 2d 73 63 6f 70 65 20 6e 61 6d 65    29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 64  | ining-scope.name)))..........(sd | 
| 610e0 |  74 20 28 69 66 20 73 79 6d 62 6f 6c 20 28 6a 73    32 2d 73 79 6d 62 6f 6c 2d 64 65 63 6c 2d 74 79  | t.(if.symbol.(js2-symbol-decl-ty | 
| 61100 |  70 65 20 73 79 6d 62 6f 6c 29 20 2d 31 29 29 0a    20 20 20 20 20 20 20 20 20 28 70 6f 73 20 28 69  | pe.symbol).-1))..........(pos.(i | 
| 61120 |  66 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65    2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29 29 29  | f.node.(js2-node-abs-pos.node))) | 
| 61140 |  0a 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28    69 66 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64  | ..........(len.(if.node.(js2-nod | 
| 61160 |  65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 29 0a 20    20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28  | e-len.node)))).....(cond......(( | 
| 61180 |  61 6e 64 20 73 79 6d 62 6f 6c 20 3b 20 61 6c 72    65 61 64 79 20 64 65 66 69 6e 65 64 20 69 6e 20  | and.symbol.;.already.defined.in. | 
| 611a0 |  74 68 69 73 20 62 6c 6f 63 6b 0a 20 20 20 20 20    20 20 20 20 20 20 28 6f 72 20 28 3d 20 73 64 74  | this.block............(or.(=.sdt | 
| 611c0 |  20 6a 73 32 2d 4c 45 54 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3d 20 73 64 74 20  | .js2-LET)................(=.sdt. | 
| 611e0 |  6a 73 32 2d 43 4f 4e 53 54 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 65 71 20 64 65 66 69 6e  | js2-CONST))............(eq.defin | 
| 61200 |  69 6e 67 2d 73 63 6f 70 65 20 6a 73 32 2d 63 75    72 72 65 6e 74 2d 73 63 6f 70 65 29 29 0a 20 20  | ing-scope.js2-current-scope))... | 
| 61220 |  20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d    65 72 72 6f 72 0a 20 20 20 20 20 20 20 28 63 6f  | ....(js2-report-error........(co | 
| 61240 |  6e 64 0a 20 20 20 20 20 20 20 20 28 28 3d 20 73    64 74 20 6a 73 32 2d 43 4f 4e 53 54 29 20 22 6d  | nd.........((=.sdt.js2-CONST)."m | 
| 61260 |  73 67 2e 63 6f 6e 73 74 2e 72 65 64 65 63 6c 22    29 0a 20 20 20 20 20 20 20 20 28 28 3d 20 73 64  | sg.const.redecl").........((=.sd | 
| 61280 |  74 20 6a 73 32 2d 4c 45 54 29 20 22 6d 73 67 2e    6c 65 74 2e 72 65 64 65 63 6c 22 29 0a 20 20 20  | t.js2-LET)."msg.let.redecl").... | 
| 612a0 |  20 20 20 20 20 28 28 3d 20 73 64 74 20 6a 73 32    2d 56 41 52 29 20 22 6d 73 67 2e 76 61 72 2e 72  | .....((=.sdt.js2-VAR)."msg.var.r | 
| 612c0 |  65 64 65 63 6c 22 29 0a 20 20 20 20 20 20 20 20    28 28 3d 20 73 64 74 20 6a 73 32 2d 46 55 4e 43  | edecl").........((=.sdt.js2-FUNC | 
| 612e0 |  54 49 4f 4e 29 20 22 6d 73 67 2e 66 75 6e 63 74    69 6f 6e 2e 72 65 64 65 63 6c 22 29 0a 20 20 20  | TION)."msg.function.redecl").... | 
| 61300 |  20 20 20 20 20 28 74 20 22 6d 73 67 2e 70 61 72    6d 2e 72 65 64 65 63 6c 22 29 29 0a 20 20 20 20  | .....(t."msg.parm.redecl"))..... | 
| 61320 |  20 20 20 6e 61 6d 65 20 70 6f 73 20 6c 65 6e 29    29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20 64  | ...name.pos.len))......((or.(=.d | 
| 61340 |  65 63 6c 2d 74 79 70 65 20 6a 73 32 2d 4c 45 54    29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20 64  | ecl-type.js2-LET)...........(=.d | 
| 61360 |  65 63 6c 2d 74 79 70 65 20 6a 73 32 2d 43 4f 4e    53 54 29 29 0a 20 20 20 20 20 20 28 69 66 20 28  | ecl-type.js2-CONST)).......(if.( | 
| 61380 |  61 6e 64 20 28 3d 20 64 65 63 6c 2d 74 79 70 65    20 6a 73 32 2d 4c 45 54 29 0a 20 20 20 20 20 20  | and.(=.decl-type.js2-LET)....... | 
| 613a0 |  20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 69 67    6e 6f 72 65 2d 6e 6f 74 2d 69 6e 2d 62 6c 6f 63  | .........(not.ignore-not-in-bloc | 
| 613c0 |  6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6f 72 20 28 3d 20 28 6a 73 32 2d 6e 6f  | k)................(or.(=.(js2-no | 
| 613e0 |  64 65 2d 74 79 70 65 20 6a 73 32 2d 63 75 72 72    65 6e 74 2d 73 63 6f 70 65 29 20 6a 73 32 2d 49  | de-type.js2-current-scope).js2-I | 
| 61400 |  46 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 6c 6f 6f 70 2d  | F)....................(js2-loop- | 
| 61420 |  6e 6f 64 65 2d 70 20 6a 73 32 2d 63 75 72 72 65    6e 74 2d 73 63 6f 70 65 29 29 29 0a 20 20 20 20  | node-p.js2-current-scope)))..... | 
| 61440 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72    74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6c 65 74  | ......(js2-report-error."msg.let | 
| 61460 |  2e 64 65 63 6c 2e 6e 6f 74 2e 69 6e 2e 62 6c 6f    63 6b 22 29 0a 20 20 20 20 20 20 20 20 28 6a 73  | .decl.not.in.block").........(js | 
| 61480 |  32 2d 64 65 66 69 6e 65 2d 6e 65 77 2d 73 79 6d    62 6f 6c 20 64 65 63 6c 2d 74 79 70 65 20 6e 61  | 2-define-new-symbol.decl-type.na | 
| 614a0 |  6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20    28 28 6f 72 20 28 3d 20 64 65 63 6c 2d 74 79 70  | me.node)))......((or.(=.decl-typ | 
| 614c0 |  65 20 6a 73 32 2d 56 41 52 29 0a 20 20 20 20 20    20 20 20 20 20 28 3d 20 64 65 63 6c 2d 74 79 70  | e.js2-VAR)...........(=.decl-typ | 
| 614e0 |  65 20 6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 29    0a 20 20 20 20 20 20 28 69 66 20 73 79 6d 62 6f  | e.js2-FUNCTION)).......(if.symbo | 
| 61500 |  6c 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 61 6e 64 20 6a 73 32 2d 73 74 72 69 63 74 2d  | l...........(if.(and.js2-strict- | 
| 61520 |  76 61 72 2d 72 65 64 65 63 6c 61 72 61 74 69 6f    6e 2d 77 61 72 6e 69 6e 67 20 28 3d 20 73 64 74  | var-redeclaration-warning.(=.sdt | 
| 61540 |  20 6a 73 32 2d 56 41 52 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 64  | .js2-VAR))...............(js2-ad | 
| 61560 |  64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67    20 22 6d 73 67 2e 76 61 72 2e 72 65 64 65 63 6c  | d-strict-warning."msg.var.redecl | 
| 61580 |  22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73 32  | ".name).............(if.(and.js2 | 
| 615a0 |  2d 73 74 72 69 63 74 2d 76 61 72 2d 68 69 64 65    73 2d 66 75 6e 63 74 69 6f 6e 2d 61 72 67 2d 77  | -strict-var-hides-function-arg-w | 
| 615c0 |  61 72 6e 69 6e 67 20 28 3d 20 73 64 74 20 6a 73    32 2d 4c 50 29 29 0a 20 20 20 20 20 20 20 20 20  | arning.(=.sdt.js2-LP)).......... | 
| 615e0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 61 64 64 2d    73 74 72 69 63 74 2d 77 61 72 6e 69 6e 67 20 22  | .......(js2-add-strict-warning." | 
| 61600 |  6d 73 67 2e 76 61 72 2e 68 69 64 65 73 2e 61 72    67 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20  | msg.var.hides.arg".name)))...... | 
| 61620 |  20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 6e    65 77 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d 74  | ...(js2-define-new-symbol.decl-t | 
| 61640 |  79 70 65 20 6e 61 6d 65 20 6e 6f 64 65 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ype.name.node................... | 
| 61660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6a 73 32    2d 63 75 72 72 65 6e 74 2d 73 63 72 69 70 74 2d  | .............js2-current-script- | 
| 61680 |  6f 72 2d 66 6e 29 29 29 0a 20 20 20 20 20 28 28    3d 20 64 65 63 6c 2d 74 79 70 65 20 6a 73 32 2d  | or-fn)))......((=.decl-type.js2- | 
| 616a0 |  4c 50 29 0a 20 20 20 20 20 20 28 69 66 20 73 79    6d 62 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 3b  | LP).......(if.symbol...........; | 
| 616c0 |  3b 20 6d 75 73 74 20 62 65 20 64 75 70 6c 69 63    61 74 65 20 70 61 72 61 6d 65 74 65 72 2e 20 53  | ;.must.be.duplicate.parameter..S | 
| 616e0 |  65 63 6f 6e 64 20 70 61 72 61 6d 65 74 65 72 20    68 69 64 65 73 20 74 68 65 0a 20 20 20 20 20 20  | econd.parameter.hides.the....... | 
| 61700 |  20 20 20 20 3b 3b 20 66 69 72 73 74 2c 20 73 6f    20 67 6f 20 61 68 65 61 64 20 61 6e 64 20 61 64  | ....;;.first,.so.go.ahead.and.ad | 
| 61720 |  64 20 74 68 65 20 73 65 63 6f 6e 64 20 70 61 72    61 72 61 6d 65 74 65 72 0a 20 20 20 20 20 20 20  | d.the.second.pararameter........ | 
| 61740 |  20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 77    61 72 6e 69 6e 67 20 22 6d 73 67 2e 64 75 70 2e  | ...(js2-report-warning."msg.dup. | 
| 61760 |  70 61 72 6d 73 22 20 6e 61 6d 65 29 29 0a 20 20    20 20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d  | parms".name)).......(js2-define- | 
| 61780 |  6e 65 77 2d 73 79 6d 62 6f 6c 20 64 65 63 6c 2d    74 79 70 65 20 6e 61 6d 65 20 6e 6f 64 65 29 29  | new-symbol.decl-type.name.node)) | 
| 617a0 |  0a 20 20 20 20 20 28 74 20 28 6a 73 32 2d 63 6f    64 65 2d 62 75 67 29 29 29 29 29 0a 0a 28 64 65  | ......(t.(js2-code-bug)))))..(de | 
| 617c0 |  66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 61    72 65 6e 2d 65 78 70 72 2d 6f 72 2d 67 65 6e 65  | fun.js2-parse-paren-expr-or-gene | 
| 617e0 |  72 61 74 6f 72 2d 63 6f 6d 70 20 28 29 0a 20 20    28 6c 65 74 20 28 28 70 78 2d 70 6f 73 20 28 6a  | rator-comp.()...(let.((px-pos.(j | 
| 61800 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 29 29 0a 20 20 20 20 28 63 6f 6e  | s2-current-token-beg))).....(con | 
| 61820 |  64 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3e 3d    20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65  | d......((and.(>=.js2-language-ve | 
| 61840 |  72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 6d 61 74 63 68  | rsion.200)............(js2-match | 
| 61860 |  2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 4f 52 29 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73  | -token.js2-FOR)).......(js2-pars | 
| 61880 |  65 2d 67 65 6e 65 72 61 74 6f 72 2d 63 6f 6d 70    20 70 78 2d 70 6f 73 29 29 0a 20 20 20 20 20 28  | e-generator-comp.px-pos))......( | 
| 618a0 |  28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e    67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30  | (and.(>=.js2-language-version.20 | 
| 618c0 |  30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a  | 0)............(js2-match-token.j | 
| 618e0 |  73 32 2d 52 50 29 29 0a 20 20 20 20 20 20 3b 3b    20 4e 6f 74 20 76 61 6c 69 64 20 65 78 70 72 65  | s2-RP)).......;;.Not.valid.expre | 
| 61900 |  73 73 69 6f 6e 20 73 79 6e 74 61 78 2c 20 62 75    74 20 74 68 69 73 20 69 73 20 76 61 6c 69 64 20  | ssion.syntax,.but.this.is.valid. | 
| 61920 |  69 6e 20 61 6e 20 61 72 72 6f 77 0a 20 20 20 20    20 20 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 77 69  | in.an.arrow.......;;.function.wi | 
| 61940 |  74 68 20 6e 6f 20 70 61 72 61 6d 73 3a 20 28 29    20 3d 3e 20 62 6f 64 79 2e 0a 20 20 20 20 20 20  | th.no.params:.().=>.body........ | 
| 61960 |  28 69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65    6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 41 52 52  | (if.(eq.(js2-peek-token).js2-ARR | 
| 61980 |  4f 57 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b    20 52 65 74 75 72 6e 20 77 68 61 74 65 76 65 72  | OW)...........;;.Return.whatever | 
| 619a0 |  2c 20 69 74 20 77 69 6c 6c 20 68 6f 70 65 66 75    6c 6c 79 20 62 65 20 72 65 77 69 6e 64 65 64 20  | ,.it.will.hopefully.be.rewinded. | 
| 619c0 |  61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b    20 72 65 70 61 72 73 65 64 20 77 68 65 6e 20 77  | and...........;;.reparsed.when.w | 
| 619e0 |  65 20 72 65 61 63 68 20 74 68 65 20 3d 3e 2e 0a    20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d  | e.reach.the.=>............(make- | 
| 61a00 |  6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65    20 3a 74 79 70 65 20 6a 73 32 2d 4e 55 4c 4c 29  | js2-keyword-node.:type.js2-NULL) | 
| 61a20 |  0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65    70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e  | .........(js2-report-error."msg. | 
| 61a40 |  73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20    20 28 6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72  | syntax").........(make-js2-error | 
| 61a60 |  2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 74    0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6a  | -node)))......(t.......(let*.((j | 
| 61a80 |  73 32 2d 69 6e 2d 66 6f 72 2d 69 6e 69 74 20 6e    69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | s2-in-for-init.nil)............. | 
| 61aa0 |  20 28 65 78 70 72 20 28 6a 73 32 2d 70 61 72 73    65 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20  | .(expr.(js2-parse-expr))........ | 
| 61ac0 |  20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d    6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 20 3a  | ......(pn.(make-js2-paren-node.: | 
| 61ae0 |  70 6f 73 20 70 78 2d 70 6f 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pos.px-pos...................... | 
| 61b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 65 78 70 72 20 65 78 70 72 29 29 29 0a 20  | .................:expr.expr))).. | 
| 61b20 |  20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65    2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e  | .......(js2-node-add-children.pn | 
| 61b40 |  20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65    2d 65 78 70 72 20 70 6e 29 29 0a 20 20 20 20 20  | .(js2-paren-node-expr.pn))...... | 
| 61b60 |  20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74    63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e 6e  | ...(js2-must-match.js2-RP."msg.n | 
| 61b80 |  6f 2e 70 61 72 65 6e 22 29 0a 20 20 20 20 20 20    20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64  | o.paren").........(setf.(js2-nod | 
| 61ba0 |  65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | e-len.pn).(-.(js2-current-token- | 
| 61bc0 |  65 6e 64 29 20 70 78 2d 70 6f 73 29 29 0a 20 20    20 20 20 20 20 20 70 6e 29 29 29 29 29 0a 0a 28  | end).px-pos)).........pn)))))..( | 
| 61be0 |  64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d    65 78 70 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20  | defun.js2-parse-expr.(&optional. | 
| 61c00 |  6f 6e 65 73 68 6f 74 29 0a 20 20 28 6c 65 74 2a    20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65  | oneshot)...(let*.((pn.(js2-parse | 
| 61c20 |  2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29 0a 20    20 20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73  | -assign-expr))..........(pos.(js | 
| 61c40 |  32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a    20 20 20 20 20 20 20 20 20 6c 65 66 74 0a 20 20  | 2-node-pos.pn))..........left... | 
| 61c60 |  20 20 20 20 20 20 20 72 69 67 68 74 0a 20 20 20    20 20 20 20 20 20 6f 70 2d 70 6f 73 29 0a 20 20  | .......right..........op-pos)... | 
| 61c80 |  20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e    6f 74 20 6f 6e 65 73 68 6f 74 29 0a 20 20 20 20  | ..(while.(and.(not.oneshot)..... | 
| 61ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32  | ............(js2-match-token.js2 | 
| 61cc0 |  2d 43 4f 4d 4d 41 29 29 0a 20 20 20 20 20 20 28    73 65 74 71 20 6f 70 2d 70 6f 73 20 28 2d 20 28  | -COMMA)).......(setq.op-pos.(-.( | 
| 61ce0 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 2d 62 65 67 29 20 70 6f 73 29 29 20 20 3b 20  | js2-current-token-beg).pos))..;. | 
| 61d00 |  72 65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 28    69 66 20 28 65 71 20 28 6a 73 32 2d 70 65 65 6b  | relative.......(if.(eq.(js2-peek | 
| 61d20 |  2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 52 50 29 0a    20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 6f  | -token).js2-RP)...........;;.Sto | 
| 61d40 |  70 20 74 68 65 20 70 61 72 73 65 72 20 66 72 6f    6d 20 73 63 61 6e 6e 69 6e 67 20 74 6f 6f 20 66  | p.the.parser.from.scanning.too.f | 
| 61d60 |  61 72 3a 20 69 74 27 73 20 61 63 74 75 61 6c 6c    79 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 76  | ar:.it's.actually...........;;.v | 
| 61d80 |  61 6c 69 64 20 73 79 6e 74 61 78 20 69 6e 20 61    72 72 6f 77 20 66 75 6e 20 61 72 67 75 6d 65 6e  | alid.syntax.in.arrow.fun.argumen | 
| 61da0 |  74 73 2c 20 61 6e 64 20 77 65 20 64 6f 6e 27 74    20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20  | ts,.and.we.don't.want........... | 
| 61dc0 |  3b 3b 20 74 68 65 20 52 50 20 74 6f 6b 65 6e 20    74 6f 20 67 65 74 20 63 6f 6e 73 75 6d 65 64 2e  | ;;.the.RP.token.to.get.consumed. | 
| 61de0 |  0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73  | ...........(js2-report-error."ms | 
| 61e00 |  67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20    20 20 20 28 73 65 74 71 20 72 69 67 68 74 20 28  | g.syntax").........(setq.right.( | 
| 61e20 |  6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e    2d 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20  | js2-parse-assign-expr).......... | 
| 61e40 |  20 20 20 20 20 6c 65 66 74 20 70 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d  | .....left.pn...............pn.(m | 
| 61e60 |  61 6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f    64 65 20 3a 74 79 70 65 20 6a 73 32 2d 43 4f 4d  | ake-js2-infix-node.:type.js2-COM | 
| 61e80 |  4d 41 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | MA.............................. | 
| 61ea0 |  20 20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........:pos.pos............... | 
| 61ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20  | ........................:len.(-. | 
| 61ee0 |  6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | js2-ts-cursor.pos).............. | 
| 61f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6f 70 2d 70 6f 73  | .........................:op-pos | 
| 61f20 |  20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .op-pos......................... | 
| 61f40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c    65 66 74 20 6c 65 66 74 0a 20 20 20 20 20 20 20  | ..............:left.left........ | 
| 61f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 61f80 |  72 69 67 68 74 20 72 69 67 68 74 29 29 0a 20 20    20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d  | right.right)).........(js2-node- | 
| 61fa0 |  61 64 64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20    6c 65 66 74 20 72 69 67 68 74 29 29 29 0a 20 20  | add-children.pn.left.right)))... | 
| 61fc0 |  20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d  | ..pn))..(defun.js2-parse-assign- | 
| 61fe0 |  65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28    28 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b  | expr.()...(let.((tt.(js2-get-tok | 
| 62000 |  65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 6f    73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | en)).........(pos.(js2-current-t | 
| 62020 |  6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20    20 20 20 70 6e 20 6c 65 66 74 20 72 69 67 68 74  | oken-beg)).........pn.left.right | 
| 62040 |  20 6f 70 2d 70 6f 73 0a 20 20 20 20 20 20 20 20    74 73 2d 73 74 61 74 65 20 72 65 63 6f 72 64 65  | .op-pos.........ts-state.recorde | 
| 62060 |  64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 70 61    72 73 65 64 2d 65 72 72 6f 72 73 0a 20 20 20 20  | d-identifiers.parsed-errors..... | 
| 62080 |  20 20 20 20 61 73 79 6e 63 2d 70 29 0a 20 20 20    20 28 69 66 20 28 3d 20 74 74 20 6a 73 32 2d 59  | ....async-p).....(if.(=.tt.js2-Y | 
| 620a0 |  49 45 4c 44 29 0a 20 20 20 20 20 20 20 20 28 6a    73 32 2d 70 61 72 73 65 2d 72 65 74 75 72 6e 2d  | IELD).........(js2-parse-return- | 
| 620c0 |  6f 72 2d 79 69 65 6c 64 20 74 74 20 74 29 0a 20    20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 6d 6f 6f  | or-yield.tt.t).......;;.TODO(moo | 
| 620e0 |  7a 29 3a 20 42 69 74 20 63 6f 6e 66 75 73 69 6e    67 2e 0a 20 20 20 20 20 20 3b 3b 20 49 66 20 77  | z):.Bit.confusing........;;.If.w | 
| 62100 |  65 20 6d 65 65 74 20 60 61 73 79 6e 63 60 20 74    6f 6b 65 6e 20 61 6e 64 20 69 74 27 73 20 6e 6f  | e.meet.`async`.token.and.it's.no | 
| 62120 |  74 20 70 61 72 74 20 6f 66 20 60 61 73 79 6e 63    0a 20 20 20 20 20 20 3b 3b 20 66 75 6e 63 74 69  | t.part.of.`async.......;;.functi | 
| 62140 |  6f 6e 60 2c 20 74 68 65 6e 20 74 68 69 73 20 60    61 73 79 6e 63 60 20 69 73 20 66 6f 72 20 61 20  | on`,.then.this.`async`.is.for.a. | 
| 62160 |  73 75 63 63 65 65 64 69 6e 67 20 61 73 79 6e 63    20 61 72 72 6f 77 0a 20 20 20 20 20 20 3b 3b 20  | succeeding.async.arrow.......;;. | 
| 62180 |  66 75 6e 63 74 69 6f 6e 2e 0a 20 20 20 20 20 20    3b 3b 20 53 69 6e 63 65 20 61 72 72 6f 77 20 66  | function........;;.Since.arrow.f | 
| 621a0 |  75 6e 63 74 69 6f 6e 20 70 61 72 73 69 6e 67 20    64 6f 65 73 6e 27 74 20 72 65 6c 79 20 6f 6e 20  | unction.parsing.doesn't.rely.on. | 
| 621c0 |  6e 65 69 74 68 65 72 0a 20 20 20 20 20 20 3b 3b    20 60 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63  | neither.......;;.`js2-parse-func | 
| 621e0 |  74 69 6f 6e 2d 73 74 6d 74 27 20 6e 6f 72 20 60    6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69  | tion-stmt'.nor.`js2-parse-functi | 
| 62200 |  6f 6e 2d 65 78 70 72 27 20 74 68 61 74 0a 20 20    20 20 20 20 3b 3b 20 69 6e 74 65 72 70 72 65 74  | on-expr'.that.......;;.interpret | 
| 62220 |  20 60 61 73 79 6e 63 60 20 74 6f 6b 65 6e 2c 20    77 65 20 74 72 61 73 68 20 60 61 73 79 6e 63 60  | .`async`.token,.we.trash.`async` | 
| 62240 |  20 61 6e 64 20 6a 75 73 74 20 72 65 6d 65 6d 62    65 72 0a 20 20 20 20 20 20 3b 3b 20 77 65 20 6d  | .and.just.remember.......;;.we.m | 
| 62260 |  65 74 20 60 61 73 79 6e 63 60 20 6b 65 79 77 6f    72 64 20 74 6f 20 60 61 73 79 6e 63 2d 70 27 2e  | et.`async`.keyword.to.`async-p'. | 
| 62280 |  0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73    32 2d 6d 61 74 63 68 2d 61 73 79 6e 63 2d 61 72  | .......(when.(js2-match-async-ar | 
| 622a0 |  72 6f 77 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 61 73 79 6e  | row-function).........(setq.asyn | 
| 622c0 |  63 2d 70 20 74 29 29 0a 20 20 20 20 20 20 3b 3b    20 53 61 76 65 20 74 68 65 20 74 6f 6b 65 6e 69  | c-p.t)).......;;.Save.the.tokeni | 
| 622e0 |  7a 65 72 20 73 74 61 74 65 20 69 6e 20 63 61 73    65 20 77 65 20 66 69 6e 64 20 61 6e 20 61 72 72  | zer.state.in.case.we.find.an.arr | 
| 62300 |  6f 77 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20    20 20 3b 3b 20 61 6e 64 20 68 61 76 65 20 74 6f  | ow.function.......;;.and.have.to | 
| 62320 |  20 72 65 77 69 6e 64 2e 0a 20 20 20 20 20 20 28    73 65 74 71 20 74 73 2d 73 74 61 74 65 20 28 6d  | .rewind........(setq.ts-state.(m | 
| 62340 |  61 6b 65 2d 6a 73 32 2d 74 73 2d 73 74 61 74 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65  | ake-js2-ts-state).............re | 
| 62360 |  63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65    72 73 20 6a 73 32 2d 72 65 63 6f 72 64 65 64 2d  | corded-identifiers.js2-recorded- | 
| 62380 |  69 64 65 6e 74 69 66 69 65 72 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 70 61 72 73 65 64 2d 65  | identifiers.............parsed-e | 
| 623a0 |  72 72 6f 72 73 20 6a 73 32 2d 70 61 72 73 65 64    2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20 20 3b  | rrors.js2-parsed-errors).......; | 
| 623c0 |  3b 20 6e 6f 74 20 79 69 65 6c 64 20 2d 20 70 61    72 73 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 65  | ;.not.yield.-.parse.assignment.e | 
| 623e0 |  78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20 20 20    28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61  | xpression.......(setq.pn.(js2-pa | 
| 62400 |  72 73 65 2d 63 6f 6e 64 2d 65 78 70 72 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 74 74 20 28 6a  | rse-cond-expr).............tt.(j | 
| 62420 |  73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20    20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20  | s2-get-token)).......(cond...... | 
| 62440 |  20 20 28 28 61 6e 64 20 28 3c 3d 20 6a 73 32 2d    66 69 72 73 74 2d 61 73 73 69 67 6e 20 74 74 29  | ..((and.(<=.js2-first-assign.tt) | 
| 62460 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c    3d 20 74 74 20 6a 73 32 2d 6c 61 73 74 2d 61 73  | ..............(<=.tt.js2-last-as | 
| 62480 |  73 69 67 6e 29 29 0a 20 20 20 20 20 20 20 20 3b    3b 20 74 74 20 65 78 70 72 65 73 73 20 61 73 73  | sign)).........;;.tt.express.ass | 
| 624a0 |  69 67 6e 6d 65 6e 74 20 28 3d 2c 20 7c 3d 2c 20    5e 3d 2c 20 2e 2e 2e 2c 20 25 3d 29 0a 20 20 20  | ignment.(=,.|=,.^=,....,.%=).... | 
| 624c0 |  20 20 20 20 20 28 73 65 74 71 20 6f 70 2d 70 6f    73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65 6e  | .....(setq.op-pos.(-.(js2-curren | 
| 624e0 |  74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73    29 20 20 3b 20 72 65 6c 61 74 69 76 65 0a 20 20  | t-token-beg).pos)..;.relative... | 
| 62500 |  20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74    20 70 6e 29 0a 20 20 20 20 20 20 20 20 3b 3b 20  | ............left.pn).........;;. | 
| 62520 |  54 68 65 20 61 73 73 69 67 6e 65 64 20 6e 6f 64    65 20 63 6f 75 6c 64 20 62 65 20 61 20 6a 73 32  | The.assigned.node.could.be.a.js2 | 
| 62540 |  2d 70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 20 28    66 6f 6f 2e 62 61 72 20 3d 20 30 29 2c 20 77 65  | -prop-get-node.(foo.bar.=.0),.we | 
| 62560 |  20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 3b 3b    20 63 61 72 65 20 61 62 6f 75 74 20 61 73 73 69  | .only.........;;.care.about.assi | 
| 62580 |  67 6e 6d 65 6e 74 20 74 6f 20 73 74 72 69 63 74    20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 73 2e  | gnment.to.strict.variable.names. | 
| 625a0 |  0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28    6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20  | .........(when.(js2-name-node-p. | 
| 625c0 |  6c 65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 63 68 65 63 6b 2d 73 74 72 69 63  | left)...........(js2-check-stric | 
| 625e0 |  74 2d 69 64 65 6e 74 69 66 69 65 72 20 6c 65 66    74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74  | t-identifier.left)).........(set | 
| 62600 |  71 20 72 69 67 68 74 20 28 6a 73 32 2d 70 61 72    73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a  | q.right.(js2-parse-assign-expr). | 
| 62620 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e    20 28 6d 61 6b 65 2d 6a 73 32 2d 61 73 73 69 67  | ..............pn.(make-js2-assig | 
| 62640 |  6e 2d 6e 6f 64 65 20 3a 74 79 70 65 20 74 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-node.:type.tt................. | 
| 62660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73 0a  | .......................:pos.pos. | 
| 62680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 626a0 |  20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28    6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 72 69 67  | .......:len.(-.(js2-node-end.rig | 
| 626c0 |  68 74 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ht).pos)........................ | 
| 626e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 6f 70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20  | ................:op-pos.op-pos.. | 
| 62700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 62720 |  20 20 20 20 20 20 3a 6c 65 66 74 20 6c 65 66 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......:left.left................ | 
| 62740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 72 69 67 68 74 20 72  | ........................:right.r | 
| 62760 |  69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 6a 73 32 2d 70 61 72 73 65 2d 69  | ight)).........(when.js2-parse-i | 
| 62780 |  64 65 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 68 69 67 68 6c 69 67 68 74  | de-mode...........(js2-highlight | 
| 627a0 |  2d 61 73 73 69 67 6e 2d 74 61 72 67 65 74 73 20    70 6e 20 6c 65 66 74 20 72 69 67 68 74 29 0a 20  | -assign-targets.pn.left.right).. | 
| 627c0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65    63 6f 72 64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74  | .........(js2-record-imenu-funct | 
| 627e0 |  69 6f 6e 73 20 72 69 67 68 74 20 6c 65 66 74 29    29 0a 20 20 20 20 20 20 20 20 3b 3b 20 64 6f 20  | ions.right.left)).........;;.do. | 
| 62800 |  74 68 69 73 20 6c 61 73 74 20 73 6f 20 69 64 65    20 63 68 65 63 6b 73 20 61 62 6f 76 65 20 63 61  | this.last.so.ide.checks.above.ca | 
| 62820 |  6e 20 75 73 65 20 61 62 73 6f 6c 75 74 65 20 70    6f 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 20 20  | n.use.absolute.positions........ | 
| 62840 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63    68 69 6c 64 72 65 6e 20 70 6e 20 6c 65 66 74 20  | .(js2-node-add-children.pn.left. | 
| 62860 |  72 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 28    28 61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e  | right))........((and.(>=.js2-lan | 
| 62880 |  67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30    30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | guage-version.200).............. | 
| 628a0 |  28 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3d 20 74 74 20 6a 73 32 2d 41 52 52 4f  | (or...............(=.tt.js2-ARRO | 
| 628c0 |  57 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 61 6e 64 20 61 73 79 6e 63 2d 70 0a 20 20  | W)...............(and.async-p... | 
| 628e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 3d 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f  | .................(=.(js2-peek-to | 
| 62900 |  6b 65 6e 29 20 6a 73 32 2d 41 52 52 4f 57 29 29    29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ken).js2-ARROW)))).........(js2- | 
| 62920 |  74 73 2d 73 65 65 6b 20 74 73 2d 73 74 61 74 65    29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | ts-seek.ts-state).........(when. | 
| 62940 |  61 73 79 6e 63 2d 70 0a 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61  | async-p...........(js2-record-fa | 
| 62960 |  63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65    79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20  | ce.'font-lock-keyword-face)..... | 
| 62980 |  20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28  | ......(js2-get-token)).........( | 
| 629a0 |  73 65 74 71 20 6a 73 32 2d 72 65 63 6f 72 64 65    64 2d 69 64 65 6e 74 69 66 69 65 72 73 20 72 65  | setq.js2-recorded-identifiers.re | 
| 629c0 |  63 6f 72 64 65 64 2d 69 64 65 6e 74 69 66 69 65    72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | corded-identifiers.............. | 
| 629e0 |  20 6a 73 32 2d 70 61 72 73 65 64 2d 65 72 72 6f    72 73 20 70 61 72 73 65 64 2d 65 72 72 6f 72 73  | .js2-parsed-errors.parsed-errors | 
| 62a00 |  29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20    70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75  | ).........(setq.pn.(js2-parse-fu | 
| 62a20 |  6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f 4e    5f 41 52 52 4f 57 20 28 6a 73 32 2d 63 75 72 72  | nction.'FUNCTION_ARROW.(js2-curr | 
| 62a40 |  65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 6e    69 6c 20 61 73 79 6e 63 2d 70 29 29 29 0a 20 20  | ent-token-beg).nil.async-p)))... | 
| 62a60 |  20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e  | .....(t.........(js2-unget-token | 
| 62a80 |  29 29 29 0a 20 20 20 20 20 20 70 6e 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73  | ))).......pn)))..(defun.js2-pars | 
| 62aa0 |  65 2d 63 6f 6e 64 2d 65 78 70 72 20 28 29 0a 20    20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32  | e-cond-expr.()...(let.((pos.(js2 | 
| 62ac0 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 29 0a 20 20 20 20 20 20 20 20 28 70 6e  | -current-token-beg)).........(pn | 
| 62ae0 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 6e 75 6c 6c    69 73 68 2d 63 6f 61 6c 65 73 63 69 6e 67 2d 65  | .(js2-parse-nullish-coalescing-e | 
| 62b00 |  78 70 72 29 29 0a 20 20 20 20 20 20 20 20 74 65    73 74 2d 65 78 70 72 0a 20 20 20 20 20 20 20 20  | xpr)).........test-expr......... | 
| 62b20 |  69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 20    69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20  | if-true.........if-false........ | 
| 62b40 |  20 71 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 63    2d 70 6f 73 29 0a 20 20 20 20 28 77 68 65 6e 20  | .q-pos.........c-pos).....(when. | 
| 62b60 |  28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e    20 6a 73 32 2d 48 4f 4f 4b 29 0a 20 20 20 20 20  | (js2-match-token.js2-HOOK)...... | 
| 62b80 |  20 28 73 65 74 71 20 71 2d 70 6f 73 20 28 2d 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | .(setq.q-pos.(-.(js2-current-tok | 
| 62ba0 |  65 6e 2d 62 65 67 29 20 70 6f 73 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 69 66 2d 74 72 75 65  | en-beg).pos).............if-true | 
| 62bc0 |  20 28 6c 65 74 20 28 6a 73 32 2d 69 6e 2d 66 6f    72 2d 69 6e 69 74 29 20 28 6a 73 32 2d 70 61 72  | .(let.(js2-in-for-init).(js2-par | 
| 62be0 |  73 65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 29    29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73  | se-assign-expr))).......(js2-mus | 
| 62c00 |  74 2d 6d 61 74 63 68 20 6a 73 32 2d 43 4f 4c 4f    4e 20 22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e  | t-match.js2-COLON."msg.no.colon. | 
| 62c20 |  63 6f 6e 64 22 29 0a 20 20 20 20 20 20 28 73 65    74 71 20 63 2d 70 6f 73 20 28 2d 20 28 6a 73 32  | cond").......(setq.c-pos.(-.(js2 | 
| 62c40 |  2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62    65 67 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20  | -current-token-beg).pos)........ | 
| 62c60 |  20 20 20 20 20 69 66 2d 66 61 6c 73 65 20 28 6a    73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d  | .....if-false.(js2-parse-assign- | 
| 62c80 |  65 78 70 72 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 74 65 73 74 2d 65 78 70 72 20 70 6e 0a 20  | expr).............test-expr.pn.. | 
| 62ca0 |  20 20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d    61 6b 65 2d 6a 73 32 2d 63 6f 6e 64 2d 6e 6f 64  | ...........pn.(make-js2-cond-nod | 
| 62cc0 |  65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.:pos.pos...................... | 
| 62ce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c    65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64 65 2d  | ..............:len.(-.(js2-node- | 
| 62d00 |  65 6e 64 20 69 66 2d 66 61 6c 73 65 29 20 70 6f    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | end.if-false).pos).............. | 
| 62d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 74 65 73 74 2d 65 78 70 72  | ......................:test-expr | 
| 62d40 |  20 74 65 73 74 2d 65 78 70 72 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .test-expr...................... | 
| 62d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74    72 75 65 2d 65 78 70 72 20 69 66 2d 74 72 75 65  | ..............:true-expr.if-true | 
| 62d80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 62da0 |  20 20 20 20 3a 66 61 6c 73 65 2d 65 78 70 72 20    69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20  | ....:false-expr.if-false........ | 
| 62dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 71 2d 70  | ............................:q-p | 
| 62de0 |  6f 73 20 71 2d 70 6f 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | os.q-pos........................ | 
| 62e00 |  20 20 20 20 20 20 20 20 20 20 20 20 3a 63 2d 70    6f 73 20 63 2d 70 6f 73 29 29 0a 20 20 20 20 20  | ............:c-pos.c-pos))...... | 
| 62e20 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63    68 69 6c 64 72 65 6e 20 70 6e 20 74 65 73 74 2d  | .(js2-node-add-children.pn.test- | 
| 62e40 |  65 78 70 72 20 69 66 2d 74 72 75 65 20 69 66 2d    66 61 6c 73 65 29 29 0a 20 20 20 20 70 6e 29 29  | expr.if-true.if-false)).....pn)) | 
| 62e60 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 6b    65 2d 62 69 6e 61 72 79 20 28 74 79 70 65 20 6c  | ..(defun.js2-make-binary.(type.l | 
| 62e80 |  65 66 74 20 70 61 72 73 65 72 20 26 6f 70 74 69    6f 6e 61 6c 20 6e 6f 2d 67 65 74 29 0a 20 20 22  | eft.parser.&optional.no-get)..." | 
| 62ea0 |  48 65 6c 70 65 72 20 66 6f 72 20 63 6f 6e 73 74    72 75 63 74 69 6e 67 20 61 20 62 69 6e 61 72 79  | Helper.for.constructing.a.binary | 
| 62ec0 |  2d 6f 70 65 72 61 74 6f 72 20 41 53 54 20 6e 6f    64 65 2e 0a 4c 45 46 54 20 69 73 20 74 68 65 20  | -operator.AST.node..LEFT.is.the. | 
| 62ee0 |  6c 65 66 74 2d 73 69 64 65 2d 65 78 70 72 65 73    73 69 6f 6e 2c 20 61 6c 72 65 61 64 79 20 70 61  | left-side-expression,.already.pa | 
| 62f00 |  72 73 65 64 2c 20 61 6e 64 20 74 68 65 0a 62 69    6e 61 72 79 20 6f 70 65 72 61 74 6f 72 20 73 68  | rsed,.and.the.binary.operator.sh | 
| 62f20 |  6f 75 6c 64 20 68 61 76 65 20 6a 75 73 74 20 62    65 65 6e 20 6d 61 74 63 68 65 64 2e 0a 50 41 52  | ould.have.just.been.matched..PAR | 
| 62f40 |  53 45 52 20 69 73 20 61 20 66 75 6e 63 74 69 6f    6e 20 74 6f 20 63 61 6c 6c 20 74 6f 20 70 61 72  | SER.is.a.function.to.call.to.par | 
| 62f60 |  73 65 20 74 68 65 20 72 69 67 68 74 20 6f 70 65    72 61 6e 64 2c 0a 6f 72 20 61 20 60 6a 73 32 2d  | se.the.right.operand,.or.a.`js2- | 
| 62f80 |  6e 6f 64 65 27 20 73 74 72 75 63 74 20 69 66 20    69 74 20 68 61 73 20 61 6c 72 65 61 64 79 20 62  | node'.struct.if.it.has.already.b | 
| 62fa0 |  65 65 6e 20 70 61 72 73 65 64 2e 0a 46 49 58 4d    45 3a 20 54 68 65 20 6c 61 74 74 65 72 20 6f 70  | een.parsed..FIXME:.The.latter.op | 
| 62fc0 |  74 69 6f 6e 20 69 73 20 75 6e 75 73 65 64 3f 22    0a 20 20 28 6c 65 74 2a 20 28 28 70 6f 73 20 28  | tion.is.unused?"...(let*.((pos.( | 
| 62fe0 |  6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 6c 65 66    74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 70  | js2-node-pos.left))..........(op | 
| 63000 |  2d 70 6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20  | -pos.(-.(js2-current-token-beg). | 
| 63020 |  70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28    72 69 67 68 74 20 28 69 66 20 28 6a 73 32 2d 6e  | pos))..........(right.(if.(js2-n | 
| 63040 |  6f 64 65 2d 70 20 70 61 72 73 65 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ode-p.parser)................... | 
| 63060 |  20 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65  | ..parser...................(unle | 
| 63080 |  73 73 20 6e 6f 2d 67 65 74 20 28 6a 73 32 2d 67    65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20  | ss.no-get.(js2-get-token))...... | 
| 630a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75    6e 63 61 6c 6c 20 70 61 72 73 65 72 29 29 29 0a  | .............(funcall.parser))). | 
| 630c0 |  20 20 20 20 20 20 20 20 20 28 70 6e 20 28 6d 61    6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64  | .........(pn.(make-js2-infix-nod | 
| 630e0 |  65 20 3a 74 79 70 65 20 74 79 70 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.:type.type.................... | 
| 63100 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20  | ...............:pos.pos......... | 
| 63120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28  | ..........................:len.( | 
| 63140 |  2d 20 28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20    72 69 67 68 74 29 20 70 6f 73 29 0a 20 20 20 20  | -.(js2-node-end.right).pos)..... | 
| 63160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f  | ..............................:o | 
| 63180 |  70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p-pos.op-pos.................... | 
| 631a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    6c 65 66 74 20 6c 65 66 74 0a 20 20 20 20 20 20  | ...............:left.left....... | 
| 631c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67  | ............................:rig | 
| 631e0 |  68 74 20 72 69 67 68 74 29 29 29 0a 20 20 20 20    28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68  | ht.right))).....(js2-node-add-ch | 
| 63200 |  69 6c 64 72 65 6e 20 70 6e 20 6c 65 66 74 20 72    69 67 68 74 29 0a 20 20 20 20 70 6e 29 29 0a 0a  | ildren.pn.left.right).....pn)).. | 
| 63220 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65    2d 6f 72 2d 65 78 70 72 20 28 29 0a 20 20 28 6c  | (defun.js2-parse-or-expr.()...(l | 
| 63240 |  65 74 20 28 28 70 6e 20 28 6a 73 32 2d 70 61 72    73 65 2d 61 6e 64 2d 65 78 70 72 29 29 29 0a 20  | et.((pn.(js2-parse-and-expr))).. | 
| 63260 |  20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61    74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 4f 52  | ...(when.(js2-match-token.js2-OR | 
| 63280 |  29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 6e    20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72  | ).......(setq.pn.(js2-make-binar | 
| 632a0 |  79 20 6a 73 32 2d 4f 52 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | y.js2-OR........................ | 
| 632c0 |  20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........pn..................... | 
| 632e0 |  20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32    2d 70 61 72 73 65 2d 6f 72 2d 65 78 70 72 29 29  | ............'js2-parse-or-expr)) | 
| 63300 |  29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 6e 64  | ).....pn))..(defun.js2-parse-and | 
| 63320 |  2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20    28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d  | -expr.()...(let.((pn.(js2-parse- | 
| 63340 |  62 69 74 2d 6f 72 2d 65 78 70 72 29 29 29 0a 20    20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6d 61  | bit-or-expr))).....(when.(js2-ma | 
| 63360 |  74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 41 4e    44 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70  | tch-token.js2-AND).......(setq.p | 
| 63380 |  6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61    72 79 20 6a 73 32 2d 41 4e 44 0a 20 20 20 20 20  | n.(js2-make-binary.js2-AND...... | 
| 633a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20  | ...........................pn... | 
| 633c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a  | ..............................'j | 
| 633e0 |  73 32 2d 70 61 72 73 65 2d 61 6e 64 2d 65 78 70    72 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28  | s2-parse-and-expr))).....pn))..( | 
| 63400 |  64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d    62 69 74 2d 6f 72 2d 65 78 70 72 20 28 29 0a 20  | defun.js2-parse-bit-or-expr.().. | 
| 63420 |  20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d    70 61 72 73 65 2d 62 69 74 2d 78 6f 72 2d 65 78  | .(let.((pn.(js2-parse-bit-xor-ex | 
| 63440 |  70 72 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65    20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65  | pr))).....(while.(js2-match-toke | 
| 63460 |  6e 20 6a 73 32 2d 42 49 54 4f 52 29 0a 20 20 20    20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32  | n.js2-BITOR).......(setq.pn.(js2 | 
| 63480 |  2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32    2d 42 49 54 4f 52 0a 20 20 20 20 20 20 20 20 20  | -make-binary.js2-BITOR.......... | 
| 634a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20  | .......................pn....... | 
| 634c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 70  | ..........................'js2-p | 
| 634e0 |  61 72 73 65 2d 62 69 74 2d 78 6f 72 2d 65 78 70    72 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28  | arse-bit-xor-expr))).....pn))..( | 
| 63500 |  64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d    62 69 74 2d 78 6f 72 2d 65 78 70 72 20 28 29 0a  | defun.js2-parse-bit-xor-expr.(). | 
| 63520 |  20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32    2d 70 61 72 73 65 2d 62 69 74 2d 61 6e 64 2d 65  | ..(let.((pn.(js2-parse-bit-and-e | 
| 63540 |  78 70 72 29 29 29 0a 20 20 20 20 28 77 68 69 6c    65 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b  | xpr))).....(while.(js2-match-tok | 
| 63560 |  65 6e 20 6a 73 32 2d 42 49 54 58 4f 52 29 0a 20    20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a  | en.js2-BITXOR).......(setq.pn.(j | 
| 63580 |  73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a    73 32 2d 42 49 54 58 4f 52 0a 20 20 20 20 20 20  | s2-make-binary.js2-BITXOR....... | 
| 635a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 70 6e 0a 20 20 20  | ..........................pn.... | 
| 635c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73  | .............................'js | 
| 635e0 |  32 2d 70 61 72 73 65 2d 62 69 74 2d 61 6e 64 2d    65 78 70 72 29 29 29 0a 20 20 20 20 70 6e 29 29  | 2-parse-bit-and-expr))).....pn)) | 
| 63600 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72    73 65 2d 62 69 74 2d 61 6e 64 2d 65 78 70 72 20  | ..(defun.js2-parse-bit-and-expr. | 
| 63620 |  28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28    6a 73 32 2d 70 61 72 73 65 2d 65 71 2d 65 78 70  | ()...(let.((pn.(js2-parse-eq-exp | 
| 63640 |  72 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | r))).....(while.(js2-match-token | 
| 63660 |  20 6a 73 32 2d 42 49 54 41 4e 44 29 0a 20 20 20    20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32  | .js2-BITAND).......(setq.pn.(js2 | 
| 63680 |  2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32    2d 42 49 54 41 4e 44 0a 20 20 20 20 20 20 20 20  | -make-binary.js2-BITAND......... | 
| 636a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20  | ........................pn...... | 
| 636c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d  | ...........................'js2- | 
| 636e0 |  70 61 72 73 65 2d 65 71 2d 65 78 70 72 29 29 29    0a 20 20 20 20 70 6e 29 29 0a 0a 0a 28 64 65 66  | parse-eq-expr))).....pn))...(def | 
| 63700 |  75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6e 75 6c    6c 69 73 68 2d 63 6f 61 6c 65 73 63 69 6e 67 2d  | un.js2-parse-nullish-coalescing- | 
| 63720 |  65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28    28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f  | expr.()...(let.((pn.(js2-parse-o | 
| 63740 |  72 2d 65 78 70 72 29 29 29 0a 20 20 20 20 28 77    68 65 6e 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74  | r-expr))).....(when.(js2-match-t | 
| 63760 |  6f 6b 65 6e 20 6a 73 32 2d 4e 55 4c 4c 49 53 48    2d 43 4f 41 4c 45 53 43 49 4e 47 29 0a 20 20 20  | oken.js2-NULLISH-COALESCING).... | 
| 63780 |  20 20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32    2d 6d 61 6b 65 2d 62 69 6e 61 72 79 20 6a 73 32  | ...(setq.pn.(js2-make-binary.js2 | 
| 637a0 |  2d 4e 55 4c 4c 49 53 48 2d 43 4f 41 4c 45 53 43    49 4e 47 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -NULLISH-COALESCING............. | 
| 637c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 70 6e 0a 20 20 20 20 20 20 20 20 20  | ....................pn.......... | 
| 637e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 27 6a 73 32 2d 70 61 72 73  | .......................'js2-pars | 
| 63800 |  65 2d 6e 75 6c 6c 69 73 68 2d 63 6f 61 6c 65 73    63 69 6e 67 2d 65 78 70 72 29 29 29 0a 20 20 20  | e-nullish-coalescing-expr))).... | 
| 63820 |  20 70 6e 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74    20 6a 73 32 2d 70 61 72 73 65 2d 65 71 2d 6f 70  | .pn))..(defconst.js2-parse-eq-op | 
| 63840 |  73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 45 51    20 6a 73 32 2d 4e 45 20 6a 73 32 2d 53 48 45 51  | s...(list.js2-EQ.js2-NE.js2-SHEQ | 
| 63860 |  20 6a 73 32 2d 53 48 4e 45 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 65 71  | .js2-SHNE))..(defun.js2-parse-eq | 
| 63880 |  2d 65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20    28 28 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d  | -expr.()...(let.((pn.(js2-parse- | 
| 638a0 |  72 65 6c 2d 65 78 70 72 29 29 0a 20 20 20 20 20    20 20 20 74 74 29 0a 20 20 20 20 28 77 68 69 6c  | rel-expr)).........tt).....(whil | 
| 638c0 |  65 20 28 6d 65 6d 71 20 28 73 65 74 71 20 74 74    20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29  | e.(memq.(setq.tt.(js2-get-token) | 
| 638e0 |  29 20 6a 73 32 2d 70 61 72 73 65 2d 65 71 2d 6f    70 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20  | ).js2-parse-eq-ops).......(setq. | 
| 63900 |  70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e    61 72 79 20 74 74 0a 20 20 20 20 20 20 20 20 20  | pn.(js2-make-binary.tt.......... | 
| 63920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 70 6e 0a 20 20 20 20 20 20  | .......................pn....... | 
| 63940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 70  | ..........................'js2-p | 
| 63960 |  61 72 73 65 2d 72 65 6c 2d 65 78 70 72 29 29 29    0a 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d  | arse-rel-expr))).....(js2-unget- | 
| 63980 |  74 6f 6b 65 6e 29 0a 20 20 20 20 70 6e 29 29 0a    0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70  | token).....pn))..(defconst.js2-p | 
| 639a0 |  61 72 73 65 2d 72 65 6c 2d 6f 70 73 0a 20 20 28    6c 69 73 74 20 6a 73 32 2d 49 4e 20 6a 73 32 2d  | arse-rel-ops...(list.js2-IN.js2- | 
| 639c0 |  49 4e 53 54 41 4e 43 45 4f 46 20 6a 73 32 2d 4c    45 20 6a 73 32 2d 4c 54 20 6a 73 32 2d 47 45 20  | INSTANCEOF.js2-LE.js2-LT.js2-GE. | 
| 639e0 |  6a 73 32 2d 47 54 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 72 65 6c 2d 65  | js2-GT))..(defun.js2-parse-rel-e | 
| 63a00 |  78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28    70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 73 68  | xpr.()...(let.((pn.(js2-parse-sh | 
| 63a20 |  69 66 74 2d 65 78 70 72 29 29 0a 20 20 20 20 20    20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 0a  | ift-expr)).........(continue.t). | 
| 63a40 |  20 20 20 20 20 20 20 20 74 74 29 0a 20 20 20 20    28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a  | ........tt).....(while.continue. | 
| 63a60 |  20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 28    6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a  | ......(setq.tt.(js2-get-token)). | 
| 63a80 |  20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 20 20 28 28 61 6e 64 20 6a 73 32 2d 69 6e 2d  | ......(cond........((and.js2-in- | 
| 63aa0 |  66 6f 72 2d 69 6e 69 74 20 28 3d 20 74 74 20 6a    73 32 2d 49 4e 29 29 0a 20 20 20 20 20 20 20 20  | for-init.(=.tt.js2-IN))......... | 
| 63ac0 |  28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f 6b 65 6e    29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | (js2-unget-token).........(setq. | 
| 63ae0 |  63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a 20    20 20 20 20 20 20 28 28 6d 65 6d 71 20 74 74 20  | continue.nil))........((memq.tt. | 
| 63b00 |  6a 73 32 2d 70 61 72 73 65 2d 72 65 6c 2d 6f 70    73 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71  | js2-parse-rel-ops).........(setq | 
| 63b20 |  20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69    6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d  | .pn.(js2-make-binary.tt.pn.'js2- | 
| 63b40 |  70 61 72 73 65 2d 73 68 69 66 74 2d 65 78 70 72    29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20  | parse-shift-expr)))........(t... | 
| 63b60 |  20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74    2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20  | ......(js2-unget-token)......... | 
| 63b80 |  28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e    69 6c 29 29 29 29 0a 20 20 20 20 70 6e 29 29 0a  | (setq.continue.nil)))).....pn)). | 
| 63ba0 |  0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 70    61 72 73 65 2d 73 68 69 66 74 2d 6f 70 73 0a 20  | .(defconst.js2-parse-shift-ops.. | 
| 63bc0 |  20 28 6c 69 73 74 20 6a 73 32 2d 4c 53 48 20 6a    73 32 2d 55 52 53 48 20 6a 73 32 2d 52 53 48 29  | .(list.js2-LSH.js2-URSH.js2-RSH) | 
| 63be0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61    72 73 65 2d 73 68 69 66 74 2d 65 78 70 72 20 28  | )..(defun.js2-parse-shift-expr.( | 
| 63c00 |  29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a    73 32 2d 70 61 72 73 65 2d 61 64 64 2d 65 78 70  | )...(let.((pn.(js2-parse-add-exp | 
| 63c20 |  72 29 29 0a 20 20 20 20 20 20 20 20 74 74 0a 20    20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65  | r)).........tt.........(continue | 
| 63c40 |  20 74 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20    63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28  | .t)).....(while.continue.......( | 
| 63c60 |  73 65 74 71 20 74 74 20 28 6a 73 32 2d 67 65 74    2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28  | setq.tt.(js2-get-token)).......( | 
| 63c80 |  69 66 20 28 6d 65 6d 71 20 74 74 20 6a 73 32 2d    70 61 72 73 65 2d 73 68 69 66 74 2d 6f 70 73 29  | if.(memq.tt.js2-parse-shift-ops) | 
| 63ca0 |  0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69  | ...........(setq.pn.(js2-make-bi | 
| 63cc0 |  6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d    70 61 72 73 65 2d 61 64 64 2d 65 78 70 72 29 29  | nary.tt.pn.'js2-parse-add-expr)) | 
| 63ce0 |  0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e    67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20  | .........(js2-unget-token)...... | 
| 63d00 |  20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75    65 20 6e 69 6c 29 29 29 0a 20 20 20 20 70 6e 29  | ...(setq.continue.nil))).....pn) | 
| 63d20 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61    72 73 65 2d 61 64 64 2d 65 78 70 72 20 28 29 0a  | )..(defun.js2-parse-add-expr.(). | 
| 63d40 |  20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32    2d 70 61 72 73 65 2d 6d 75 6c 2d 65 78 70 72 29  | ..(let.((pn.(js2-parse-mul-expr) | 
| 63d60 |  29 0a 20 20 20 20 20 20 20 20 74 74 0a 20 20 20    20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74  | ).........tt.........(continue.t | 
| 63d80 |  29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f    6e 74 69 6e 75 65 0a 20 20 20 20 20 20 28 73 65  | )).....(while.continue.......(se | 
| 63da0 |  74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 69 66  | tq.tt.(js2-get-token)).......(if | 
| 63dc0 |  20 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 41    44 44 29 20 28 3d 20 74 74 20 6a 73 32 2d 53 55  | .(or.(=.tt.js2-ADD).(=.tt.js2-SU | 
| 63de0 |  42 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65  | B))...........(setq.pn.(js2-make | 
| 63e00 |  2d 62 69 6e 61 72 79 20 74 74 20 70 6e 20 27 6a    73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 65 78 70  | -binary.tt.pn.'js2-parse-mul-exp | 
| 63e20 |  72 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20  | r)).........(js2-unget-token)... | 
| 63e40 |  20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74    69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20  | ......(setq.continue.nil)))..... | 
| 63e60 |  70 6e 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20    6a 73 32 2d 70 61 72 73 65 2d 6d 75 6c 2d 6f 70  | pn))..(defconst.js2-parse-mul-op | 
| 63e80 |  73 0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 4d 55    4c 20 6a 73 32 2d 44 49 56 20 6a 73 32 2d 4d 4f  | s...(list.js2-MUL.js2-DIV.js2-MO | 
| 63ea0 |  44 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 61 72 73 65 2d 6d 75 6c 2d 65 78 70 72 20 28  | D))..(defun.js2-parse-mul-expr.( | 
| 63ec0 |  29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20 28 6a    73 32 2d 70 61 72 73 65 2d 65 78 70 6f 6e 2d 65  | )...(let.((pn.(js2-parse-expon-e | 
| 63ee0 |  78 70 72 29 29 0a 20 20 20 20 20 20 20 20 74 74    0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e  | xpr)).........tt.........(contin | 
| 63f00 |  75 65 20 74 29 29 0a 20 20 20 20 28 77 68 69 6c    65 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 20 20  | ue.t)).....(while.continue...... | 
| 63f20 |  20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d 67    65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20  | .(setq.tt.(js2-get-token))...... | 
| 63f40 |  20 28 69 66 20 28 6d 65 6d 71 20 74 74 20 6a 73    32 2d 70 61 72 73 65 2d 6d 75 6c 2d 6f 70 73 29  | .(if.(memq.tt.js2-parse-mul-ops) | 
| 63f60 |  0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69  | ...........(setq.pn.(js2-make-bi | 
| 63f80 |  6e 61 72 79 20 74 74 20 70 6e 20 27 6a 73 32 2d    70 61 72 73 65 2d 65 78 70 6f 6e 2d 65 78 70 72  | nary.tt.pn.'js2-parse-expon-expr | 
| 63fa0 |  29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d    75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20  | )).........(js2-unget-token).... | 
| 63fc0 |  20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69    6e 75 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 70  | .....(setq.continue.nil))).....p | 
| 63fe0 |  6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 61 72 73 65 2d 65 78 70 6f 6e 2d 65 78 70 72  | n))..(defun.js2-parse-expon-expr | 
| 64000 |  20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 6e 20    28 6a 73 32 2d 70 61 72 73 65 2d 75 6e 61 72 79  | .()...(let.((pn.(js2-parse-unary | 
| 64020 |  2d 65 78 70 72 29 29 29 0a 20 20 20 20 28 77 68    65 6e 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75  | -expr))).....(when.(>=.js2-langu | 
| 64040 |  61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29    0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6a  | age-version.200).......(while.(j | 
| 64060 |  73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a    73 32 2d 45 58 50 4f 4e 29 0a 20 20 20 20 20 20  | s2-match-token.js2-EXPON)....... | 
| 64080 |  20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6a 73    32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 70 20 70  | ..(when.(and.(js2-unary-node-p.p | 
| 640a0 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6e 6f 74 20 28 6d 65 6d 71  | n)....................(not.(memq | 
| 640c0 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20    70 6e 29 20 27 28 6a 73 32 2d 49 4e 43 20 6a 73  | .(js2-node-type.pn).'(js2-INC.js | 
| 640e0 |  32 2d 44 45 43 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | 2-DEC))))...........(js2-report- | 
| 64100 |  65 72 72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61    78 22 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20  | error."msg.syntax".nil.......... | 
| 64120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73  | ...................(js2-node-abs | 
| 64140 |  2d 70 6f 73 20 70 6e 29 20 28 6a 73 32 2d 6e 6f    64 65 2d 6c 65 6e 20 70 6e 29 29 29 0a 20 20 20  | -pos.pn).(js2-node-len.pn))).... | 
| 64160 |  20 20 20 20 20 3b 3b 20 4d 61 6b 65 20 69 74 20    72 69 67 68 74 2d 61 73 73 6f 63 69 61 74 69 76  | .....;;.Make.it.right-associativ | 
| 64180 |  65 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 71    20 70 6e 20 28 6a 73 32 2d 6d 61 6b 65 2d 62 69  | e..........(setq.pn.(js2-make-bi | 
| 641a0 |  6e 61 72 79 20 6a 73 32 2d 45 58 50 4f 4e 20 70    6e 20 27 6a 73 32 2d 70 61 72 73 65 2d 65 78 70  | nary.js2-EXPON.pn.'js2-parse-exp | 
| 641c0 |  6f 6e 2d 65 78 70 72 29 29 29 29 0a 20 20 20 20    70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | on-expr)))).....pn))..(defun.js2 | 
| 641e0 |  2d 6d 61 6b 65 2d 75 6e 61 72 79 20 28 62 65 67    20 74 79 70 65 20 70 61 72 73 65 72 20 26 72 65  | -make-unary.(beg.type.parser.&re | 
| 64200 |  73 74 20 61 72 67 73 29 0a 20 20 22 4d 61 6b 65    20 61 20 75 6e 61 72 79 20 6e 6f 64 65 20 73 74  | st.args)..."Make.a.unary.node.st | 
| 64220 |  61 72 74 69 6e 67 20 61 74 20 42 45 47 20 6f 66    20 74 79 70 65 20 54 59 50 45 2e 0a 49 66 20 42  | arting.at.BEG.of.type.TYPE..If.B | 
| 64240 |  45 47 20 69 73 20 6e 69 6c 2c 20 60 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | EG.is.nil,.`(js2-current-token-b | 
| 64260 |  65 67 29 27 20 69 73 20 75 73 65 64 20 66 6f 72    20 74 68 65 20 6e 6f 64 65 0a 73 74 61 72 74 20  | eg)'.is.used.for.the.node.start. | 
| 64280 |  70 6f 73 69 74 69 6f 6e 2e 20 20 50 41 52 53 45    52 20 69 73 20 65 69 74 68 65 72 20 61 20 6e 6f  | position...PARSER.is.either.a.no | 
| 642a0 |  64 65 20 28 66 6f 72 20 70 6f 73 74 66 69 78 20    6f 70 65 72 61 74 6f 72 73 29 0a 6f 72 20 61 20  | de.(for.postfix.operators).or.a. | 
| 642c0 |  66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 61 6c 6c    20 74 6f 20 70 61 72 73 65 20 74 68 65 20 6f 70  | function.to.call.to.parse.the.op | 
| 642e0 |  65 72 61 6e 64 20 28 66 6f 72 20 70 72 65 66 69    78 0a 6f 70 65 72 61 74 6f 72 73 29 2e 22 0a 20  | erand.(for.prefix.operators).".. | 
| 64300 |  20 28 6c 65 74 2a 20 28 28 70 6f 73 20 28 6f 72    20 62 65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e  | .(let*.((pos.(or.beg.(js2-curren | 
| 64320 |  74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20    20 20 20 20 20 20 20 20 28 70 6f 73 74 66 69 78  | t-token-beg)))..........(postfix | 
| 64340 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 70 20 70 61 72    73 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28  | .(js2-node-p.parser))..........( | 
| 64360 |  65 78 70 72 20 28 69 66 20 70 6f 73 74 66 69 78    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | expr.(if.postfix................ | 
| 64380 |  20 20 20 20 70 61 72 73 65 72 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70  | ....parser..................(app | 
| 643a0 |  6c 79 20 70 61 72 73 65 72 20 61 72 67 73 29 29    29 0a 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20  | ly.parser.args)))..........end.. | 
| 643c0 |  20 20 20 20 20 20 20 20 70 6e 29 0a 20 20 20 20    28 69 66 20 70 6f 73 74 66 69 78 20 20 3b 20 65  | ........pn).....(if.postfix..;.e | 
| 643e0 |  2e 67 2e 20 69 2b 2b 0a 20 20 20 20 20 20 20 20    28 73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e  | .g..i++.........(setq.pos.(js2-n | 
| 64400 |  6f 64 65 2d 70 6f 73 20 65 78 70 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20  | ode-pos.expr)...............end. | 
| 64420 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 28  | (js2-current-token-end)).......( | 
| 64440 |  73 65 74 71 20 65 6e 64 20 28 6a 73 32 2d 6e 6f    64 65 2d 65 6e 64 20 65 78 70 72 29 29 29 0a 20  | setq.end.(js2-node-end.expr))).. | 
| 64460 |  20 20 20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b    65 2d 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65  | ...(setq.pn.(make-js2-unary-node | 
| 64480 |  20 3a 74 79 70 65 20 74 79 70 65 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:type.type..................... | 
| 644a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70    6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20  | ..............:pos.pos.......... | 
| 644c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d  | .........................:len.(- | 
| 644e0 |  20 65 6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .end.pos)....................... | 
| 64500 |  20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 65    72 61 6e 64 20 65 78 70 72 29 29 0a 20 20 20 20  | ............:operand.expr))..... | 
| 64520 |  28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68    69 6c 64 72 65 6e 20 70 6e 20 65 78 70 72 29 0a  | (js2-node-add-children.pn.expr). | 
| 64540 |  20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 63 6f    6e 73 74 20 6a 73 32 2d 69 6e 63 72 65 6d 65 6e  | ....pn))..(defconst.js2-incremen | 
| 64560 |  74 61 62 6c 65 2d 6e 6f 64 65 2d 74 79 70 65 73    0a 20 20 28 6c 69 73 74 20 6a 73 32 2d 4e 41 4d  | table-node-types...(list.js2-NAM | 
| 64580 |  45 20 6a 73 32 2d 47 45 54 50 52 4f 50 20 6a 73    32 2d 47 45 54 45 4c 45 4d 20 6a 73 32 2d 47 45  | E.js2-GETPROP.js2-GETELEM.js2-GE | 
| 645a0 |  54 5f 52 45 46 20 6a 73 32 2d 43 41 4c 4c 29 0a    20 20 22 4e 6f 64 65 20 74 79 70 65 73 20 74 68  | T_REF.js2-CALL)..."Node.types.th | 
| 645c0 |  61 74 20 63 61 6e 20 62 65 20 74 68 65 20 6f 70    65 72 61 6e 64 20 6f 66 20 61 20 2b 2b 20 6f 72  | at.can.be.the.operand.of.a.++.or | 
| 645e0 |  20 2d 2d 20 6f 70 65 72 61 74 6f 72 2e 22 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 63 68 65 63  | .--.operator.")..(defun.js2-chec | 
| 64600 |  6b 2d 62 61 64 2d 69 6e 63 2d 64 65 63 20 28 74    74 20 62 65 67 20 65 6e 64 20 75 6e 61 72 79 29  | k-bad-inc-dec.(tt.beg.end.unary) | 
| 64620 |  0a 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71    20 28 6a 73 32 2d 6e 6f 64 65 2d 74 79 70 65 20  | ...(unless.(memq.(js2-node-type. | 
| 64640 |  28 6a 73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d    6f 70 65 72 61 6e 64 20 75 6e 61 72 79 29 29 0a  | (js2-unary-node-operand.unary)). | 
| 64660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    6a 73 32 2d 69 6e 63 72 65 6d 65 6e 74 61 62 6c  | ................js2-incrementabl | 
| 64680 |  65 2d 6e 6f 64 65 2d 74 79 70 65 73 29 0a 20 20    20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72  | e-node-types).....(js2-report-er | 
| 646a0 |  72 6f 72 20 28 69 66 20 28 3d 20 74 74 20 6a 73    32 2d 49 4e 43 29 0a 20 20 20 20 20 20 20 20 20  | ror.(if.(=.tt.js2-INC).......... | 
| 646c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 22 6d 73 67 2e 62 61 64 2e 69 6e 63 72 22 0a  | ................."msg.bad.incr". | 
| 646e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 22 6d 73 67 2e 62 61 64  | ........................"msg.bad | 
| 64700 |  2e 64 65 63 72 22 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69  | .decr").......................ni | 
| 64720 |  6c 20 62 65 67 20 28 2d 20 65 6e 64 20 62 65 67    29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | l.beg.(-.end.beg))))..(defun.js2 | 
| 64740 |  2d 70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70    72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 74 74  | -parse-unary-expr.()...(let.((tt | 
| 64760 |  20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f    6b 65 6e 2d 74 79 70 65 29 29 0a 20 20 20 20 20  | .(js2-current-token-type))...... | 
| 64780 |  20 20 20 28 62 65 67 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29  | ...(beg.(js2-current-token-beg)) | 
| 647a0 |  29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d  | ).....(cond......((or.(=.tt.js2- | 
| 647c0 |  56 4f 49 44 29 0a 20 20 20 20 20 20 20 20 20 20    28 3d 20 74 74 20 6a 73 32 2d 4e 4f 54 29 0a 20  | VOID)...........(=.tt.js2-NOT).. | 
| 647e0 |  20 20 20 20 20 20 20 20 20 28 3d 20 74 74 20 6a    73 32 2d 42 49 54 4e 4f 54 29 0a 20 20 20 20 20  | .........(=.tt.js2-BITNOT)...... | 
| 64800 |  20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d 54    59 50 45 4f 46 29 29 0a 20 20 20 20 20 20 28 6a  | .....(=.tt.js2-TYPEOF)).......(j | 
| 64820 |  73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20    20 20 20 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e  | s2-get-token).......(js2-make-un | 
| 64840 |  61 72 79 20 62 65 67 20 74 74 20 27 6a 73 32 2d    70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72  | ary.beg.tt.'js2-parse-unary-expr | 
| 64860 |  29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a    73 32 2d 41 44 44 29 0a 20 20 20 20 20 20 28 6a  | ))......((=.tt.js2-ADD).......(j | 
| 64880 |  73 32 2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20    20 20 20 20 3b 3b 20 43 6f 6e 76 65 72 74 20 74  | s2-get-token).......;;.Convert.t | 
| 648a0 |  6f 20 73 70 65 63 69 61 6c 20 50 4f 53 20 74 6f    6b 65 6e 20 69 6e 20 64 65 63 6f 6d 70 69 6c 65  | o.special.POS.token.in.decompile | 
| 648c0 |  72 20 61 6e 64 20 70 61 72 73 65 20 74 72 65 65    0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 61 6b 65  | r.and.parse.tree.......(js2-make | 
| 648e0 |  2d 75 6e 61 72 79 20 62 65 67 20 6a 73 32 2d 50    4f 53 20 27 6a 73 32 2d 70 61 72 73 65 2d 75 6e  | -unary.beg.js2-POS.'js2-parse-un | 
| 64900 |  61 72 79 2d 65 78 70 72 29 29 0a 20 20 20 20 20    28 28 3d 20 74 74 20 6a 73 32 2d 53 55 42 29 0a  | ary-expr))......((=.tt.js2-SUB). | 
| 64920 |  20 20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 29 0a 20 20 20 20 20 20 3b 3b 20 43  | ......(js2-get-token).......;;.C | 
| 64940 |  6f 6e 76 65 72 74 20 74 6f 20 73 70 65 63 69 61    6c 20 4e 45 47 20 74 6f 6b 65 6e 20 69 6e 20 64  | onvert.to.special.NEG.token.in.d | 
| 64960 |  65 63 6f 6d 70 69 6c 65 72 20 61 6e 64 20 70 61    72 73 65 20 74 72 65 65 0a 20 20 20 20 20 20 28  | ecompiler.and.parse.tree.......( | 
| 64980 |  6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 62    65 67 20 6a 73 32 2d 4e 45 47 20 27 6a 73 32 2d  | js2-make-unary.beg.js2-NEG.'js2- | 
| 649a0 |  70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72    29 29 0a 20 20 20 20 20 28 28 6f 72 20 28 3d 20  | parse-unary-expr))......((or.(=. | 
| 649c0 |  74 74 20 6a 73 32 2d 49 4e 43 29 0a 20 20 20 20    20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32 2d  | tt.js2-INC)...........(=.tt.js2- | 
| 649e0 |  44 45 43 29 29 0a 20 20 20 20 20 20 28 6a 73 32    2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20  | DEC)).......(js2-get-token)..... | 
| 64a00 |  20 20 28 6c 65 74 20 28 28 62 65 67 32 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | ..(let.((beg2.(js2-current-token | 
| 64a20 |  2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72  | -beg)).............(end.(js2-cur | 
| 64a40 |  72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78  | rent-token-end)).............(ex | 
| 64a60 |  70 72 20 28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61    72 79 20 62 65 67 20 74 74 20 27 6a 73 32 2d 70  | pr.(js2-make-unary.beg.tt.'js2-p | 
| 64a80 |  61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70 72    20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a  | arse-member-expr.t))).........(j | 
| 64aa0 |  73 32 2d 63 68 65 63 6b 2d 62 61 64 2d 69 6e 63    2d 64 65 63 20 74 74 20 62 65 67 32 20 65 6e 64  | s2-check-bad-inc-dec.tt.beg2.end | 
| 64ac0 |  20 65 78 70 72 29 0a 20 20 20 20 20 20 20 20 65    78 70 72 29 29 0a 20 20 20 20 20 28 28 3d 20 74  | .expr).........expr))......((=.t | 
| 64ae0 |  74 20 6a 73 32 2d 44 45 4c 50 52 4f 50 29 0a 20    20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f  | t.js2-DELPROP).......(js2-get-to | 
| 64b00 |  6b 65 6e 29 0a 20 20 20 20 20 20 28 6a 73 32 2d    6d 61 6b 65 2d 75 6e 61 72 79 20 62 65 67 20 6a  | ken).......(js2-make-unary.beg.j | 
| 64b20 |  73 32 2d 44 45 4c 50 52 4f 50 20 27 6a 73 32 2d    70 61 72 73 65 2d 75 6e 61 72 79 2d 65 78 70 72  | s2-DELPROP.'js2-parse-unary-expr | 
| 64b40 |  29 29 0a 20 20 20 20 20 28 28 6a 73 32 2d 70 61    72 73 65 2d 61 77 61 69 74 2d 6d 61 79 62 65 20  | ))......((js2-parse-await-maybe. | 
| 64b60 |  74 74 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74    20 6a 73 32 2d 45 52 52 4f 52 29 0a 20 20 20 20  | tt))......((=.tt.js2-ERROR)..... | 
| 64b80 |  20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e    29 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73  | ..(js2-get-token).......(make-js | 
| 64ba0 |  32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 20 20    3b 20 74 72 79 20 74 6f 20 63 6f 6e 74 69 6e 75  | 2-error-node))..;.try.to.continu | 
| 64bc0 |  65 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3d 20    74 74 20 6a 73 32 2d 4c 54 29 0a 20 20 20 20 20  | e......((and.(=.tt.js2-LT)...... | 
| 64be0 |  20 20 20 20 20 20 6a 73 32 2d 63 6f 6d 70 69 6c    65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65  | ......js2-compiler-xml-available | 
| 64c00 |  29 0a 20 20 20 20 20 20 3b 3b 20 58 4d 4c 20 73    74 72 65 61 6d 20 65 6e 63 6f 75 6e 74 65 72 65  | ).......;;.XML.stream.encountere | 
| 64c20 |  64 20 69 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e    0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73  | d.in.expression........(js2-pars | 
| 64c40 |  65 2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 74 61    69 6c 20 74 20 28 6a 73 32 2d 70 61 72 73 65 2d  | e-member-expr-tail.t.(js2-parse- | 
| 64c60 |  78 6d 6c 2d 69 6e 69 74 69 61 6c 69 7a 65 72 29    29 29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20  | xml-initializer)))......(t...... | 
| 64c80 |  20 28 6c 65 74 20 28 28 70 6e 20 28 6a 73 32 2d    70 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78 70  | .(let.((pn.(js2-parse-member-exp | 
| 64ca0 |  72 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 3b 3b 20 44 6f 6e 27 74 20 6c 6f 6f 6b 20  | r.t)).............;;.Don't.look. | 
| 64cc0 |  61 63 72 6f 73 73 20 61 20 6e 65 77 6c 69 6e 65    20 62 6f 75 6e 64 61 72 79 20 66 6f 72 20 61 20  | across.a.newline.boundary.for.a. | 
| 64ce0 |  70 6f 73 74 66 69 78 20 69 6e 63 6f 70 2e 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 74 74 20 28  | postfix.incop..............(tt.( | 
| 64d00 |  6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f    72 2d 65 6f 6c 29 29 0a 20 20 20 20 20 20 20 20  | js2-peek-token-or-eol))......... | 
| 64d20 |  20 20 20 20 65 78 70 72 29 0a 20 20 20 20 20 20    20 20 28 77 68 65 6e 20 28 6f 72 20 28 3d 20 74  | ....expr).........(when.(or.(=.t | 
| 64d40 |  74 20 6a 73 32 2d 49 4e 43 29 20 28 3d 20 74 74    20 6a 73 32 2d 44 45 43 29 29 0a 20 20 20 20 20  | t.js2-INC).(=.tt.js2-DEC))...... | 
| 64d60 |  20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f    6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28  | .....(js2-get-token)...........( | 
| 64d80 |  73 65 74 66 20 65 78 70 72 20 70 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 70 6e 20  | setf.expr.pn.................pn. | 
| 64da0 |  28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20    28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 65 78  | (js2-make-unary.(js2-node-pos.ex | 
| 64dc0 |  70 72 29 20 74 74 20 65 78 70 72 29 29 0a 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | pr).tt.expr))...........(js2-nod | 
| 64de0 |  65 2d 73 65 74 2d 70 72 6f 70 20 70 6e 20 27 70    6f 73 74 66 69 78 20 74 29 0a 20 20 20 20 20 20  | e-set-prop.pn.'postfix.t)....... | 
| 64e00 |  20 20 20 20 28 6a 73 32 2d 63 68 65 63 6b 2d 62    61 64 2d 69 6e 63 2d 64 65 63 20 74 74 20 28 6a  | ....(js2-check-bad-inc-dec.tt.(j | 
| 64e20 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 20 28 6a 73 32 2d 63 75 72 72 65  | s2-current-token-beg).(js2-curre | 
| 64e40 |  6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6e    29 29 0a 20 20 20 20 20 20 20 20 70 6e 29 29 29  | nt-token-end).pn)).........pn))) | 
| 64e60 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    61 72 73 65 2d 78 6d 6c 2d 69 6e 69 74 69 61 6c  | ))..(defun.js2-parse-xml-initial | 
| 64e80 |  69 7a 65 72 20 28 29 0a 20 20 22 50 61 72 73 65    20 61 6e 20 45 34 58 20 58 4d 4c 20 69 6e 69 74  | izer.()..."Parse.an.E4X.XML.init | 
| 64ea0 |  69 61 6c 69 7a 65 72 2e 0a 49 27 6d 20 70 61 72    73 69 6e 67 20 69 74 20 74 68 65 20 77 61 79 20  | ializer..I'm.parsing.it.the.way. | 
| 64ec0 |  52 68 69 6e 6f 20 70 61 72 73 65 73 20 69 74 2c    20 62 75 74 20 77 69 74 68 6f 75 74 20 74 68 65  | Rhino.parses.it,.but.without.the | 
| 64ee0 |  20 74 72 65 65 2d 72 65 77 72 69 74 69 6e 67 2e    0a 54 68 65 6e 20 49 27 6c 6c 20 70 6f 73 74 70  | .tree-rewriting..Then.I'll.postp | 
| 64f00 |  72 6f 63 65 73 73 20 74 68 65 20 72 65 73 75 6c    74 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20  | rocess.the.result,.depending.on. | 
| 64f20 |  77 68 65 74 68 65 72 20 77 65 27 72 65 20 69 6e    20 49 44 45 0a 6d 6f 64 65 20 6f 72 20 63 6f 64  | whether.we're.in.IDE.mode.or.cod | 
| 64f40 |  65 67 65 6e 20 6d 6f 64 65 2c 20 61 6e 64 20 67    65 6e 65 72 61 74 65 20 74 68 65 20 61 70 70 72  | egen.mode,.and.generate.the.appr | 
| 64f60 |  6f 70 72 69 61 74 65 20 72 65 77 72 69 74 74 65    6e 20 41 53 54 2e 0a 49 44 45 20 6d 6f 64 65 20  | opriate.rewritten.AST..IDE.mode. | 
| 64f80 |  75 73 65 73 20 61 20 72 69 63 68 20 41 53 54 20    74 68 61 74 20 6d 6f 64 65 6c 73 20 74 68 65 20  | uses.a.rich.AST.that.models.the. | 
| 64fa0 |  58 4d 4c 20 73 74 72 75 63 74 75 72 65 2e 20 20    43 6f 64 65 67 65 6e 20 6d 6f 64 65 0a 6a 75 73  | XML.structure...Codegen.mode.jus | 
| 64fc0 |  74 20 63 6f 6e 63 61 74 65 6e 61 74 65 73 20 65    76 65 72 79 74 68 69 6e 67 20 61 6e 64 20 6d 61  | t.concatenates.everything.and.ma | 
| 64fe0 |  6b 65 73 20 61 20 6e 65 77 20 58 4d 4c 20 6f 72    20 58 4d 4c 4c 69 73 74 20 6f 75 74 20 6f 66 20  | kes.a.new.XML.or.XMLList.out.of. | 
| 65000 |  69 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 74    20 28 6a 73 32 2d 67 65 74 2d 66 69 72 73 74 2d  | it."...(let.((tt.(js2-get-first- | 
| 65020 |  78 6d 6c 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20    20 20 20 20 70 6e 2d 78 6d 6c 20 70 6e 20 65 78  | xml-token)).........pn-xml.pn.ex | 
| 65040 |  70 72 20 6b 69 64 73 20 65 78 70 72 2d 70 6f 73    0a 20 20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e  | pr.kids.expr-pos.........(contin | 
| 65060 |  75 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 66    69 72 73 74 2d 74 6f 6b 65 6e 20 74 29 29 0a 20  | ue.t).........(first-token.t)).. | 
| 65080 |  20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 6f    72 20 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 29  | ...(when.(not.(or.(=.tt.js2-XML) | 
| 650a0 |  20 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c 45 4e    44 29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d  | .(=.tt.js2-XMLEND))).......(js2- | 
| 650c0 |  72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73    67 2e 73 79 6e 74 61 78 22 29 29 0a 20 20 20 20  | report-error."msg.syntax"))..... | 
| 650e0 |  28 73 65 74 71 20 70 6e 2d 78 6d 6c 20 28 6d 61    6b 65 2d 6a 73 32 2d 78 6d 6c 2d 6e 6f 64 65 29  | (setq.pn-xml.(make-js2-xml-node) | 
| 65100 |  29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e    74 69 6e 75 65 0a 20 20 20 20 20 20 28 69 66 20  | ).....(while.continue.......(if. | 
| 65120 |  66 69 72 73 74 2d 74 6f 6b 65 6e 0a 20 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 66 69 72 73  | first-token...........(setq.firs | 
| 65140 |  74 2d 74 6f 6b 65 6e 20 6e 69 6c 29 0a 20 20 20    20 20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a  | t-token.nil).........(setq.tt.(j | 
| 65160 |  73 32 2d 67 65 74 2d 6e 65 78 74 2d 78 6d 6c 2d    74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 28  | s2-get-next-xml-token))).......( | 
| 65180 |  63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 6a    73 32 2d 58 4d 4c 20 6d 65 61 6e 73 20 77 65 20  | cond........;;.js2-XML.means.we. | 
| 651a0 |  66 6f 75 6e 64 20 61 20 7b 65 78 70 72 7d 20 69    6e 20 74 68 65 20 58 4d 4c 20 73 74 72 65 61 6d  | found.a.{expr}.in.the.XML.stream | 
| 651c0 |  2e 0a 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20    74 6f 6b 65 6e 20 73 74 72 69 6e 67 20 69 73 20  | .........;;.The.token.string.is. | 
| 651e0 |  74 68 65 20 58 4d 4c 20 75 70 20 74 6f 20 74 68    65 20 6c 65 66 74 2d 63 75 72 6c 79 2e 0a 20 20  | the.XML.up.to.the.left-curly.... | 
| 65200 |  20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d    58 4d 4c 29 0a 20 20 20 20 20 20 20 20 28 70 75  | .....((=.tt.js2-XML).........(pu | 
| 65220 |  73 68 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72    69 6e 67 2d 6e 6f 64 65 20 3a 70 6f 73 20 28 6a  | sh.(make-js2-string-node.:pos.(j | 
| 65240 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20  | s2-current-token-beg)........... | 
| 65260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28  | ..........................:len.( | 
| 65280 |  2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | -.js2-ts-cursor.(js2-current-tok | 
| 652a0 |  65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6b 69 64 73 29 0a 20 20  | en-beg)))...............kids)... | 
| 652c0 |  20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d    6d 61 74 63 68 20 6a 73 32 2d 4c 43 20 22 6d 73  | ......(js2-must-match.js2-LC."ms | 
| 652e0 |  67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20 20 20    20 20 20 28 73 65 74 71 20 65 78 70 72 2d 70 6f  | g.syntax").........(setq.expr-po | 
| 65300 |  73 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78  | s.js2-ts-cursor...............ex | 
| 65320 |  70 72 20 28 69 66 20 28 65 71 20 28 6a 73 32 2d    70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d  | pr.(if.(eq.(js2-peek-token).js2- | 
| 65340 |  52 43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65  | RC)........................(make | 
| 65360 |  2d 6a 73 32 2d 65 6d 70 74 79 2d 65 78 70 72 2d    6e 6f 64 65 20 3a 70 6f 73 20 65 78 70 72 2d 70  | -js2-empty-expr-node.:pos.expr-p | 
| 65380 |  6f 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61  | os)......................(js2-pa | 
| 653a0 |  72 73 65 2d 65 78 70 72 29 29 29 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61  | rse-expr))).........(js2-must-ma | 
| 653c0 |  74 63 68 20 6a 73 32 2d 52 43 20 22 6d 73 67 2e    73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 20  | tch.js2-RC."msg.syntax")........ | 
| 653e0 |  20 28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d    6a 73 32 2d 78 6d 6c 2d 6a 73 2d 65 78 70 72 2d  | .(setq.pn.(make-js2-xml-js-expr- | 
| 65400 |  6e 6f 64 65 20 3a 70 6f 73 20 28 6a 73 32 2d 6e    6f 64 65 2d 70 6f 73 20 65 78 70 72 29 0a 20 20  | node.:pos.(js2-node-pos.expr)... | 
| 65420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 65440 |  20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28    6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 65 78 70  | ..........:len.(js2-node-len.exp | 
| 65460 |  72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r).............................. | 
| 65480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    65 78 70 72 20 65 78 70 72 29 29 0a 20 20 20 20  | ...............:expr.expr))..... | 
| 654a0 |  20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64    64 2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 65 78  | ....(js2-node-add-children.pn.ex | 
| 654c0 |  70 72 29 0a 20 20 20 20 20 20 20 20 28 70 75 73    68 20 70 6e 20 6b 69 64 73 29 29 0a 20 20 20 20  | pr).........(push.pn.kids))..... | 
| 654e0 |  20 20 20 3b 3b 20 61 20 6a 73 32 2d 58 4d 4c 45    4e 44 20 74 6f 6b 65 6e 20 6d 65 61 6e 73 20 77  | ...;;.a.js2-XMLEND.token.means.w | 
| 65500 |  65 20 68 69 74 20 74 68 65 20 66 69 6e 61 6c 20    63 6c 6f 73 65 2d 74 61 67 2e 0a 20 20 20 20 20  | e.hit.the.final.close-tag....... | 
| 65520 |  20 20 28 28 3d 20 74 74 20 6a 73 32 2d 58 4d 4c    45 4e 44 29 0a 20 20 20 20 20 20 20 20 28 70 75  | ..((=.tt.js2-XMLEND).........(pu | 
| 65540 |  73 68 20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72    69 6e 67 2d 6e 6f 64 65 20 3a 70 6f 73 20 28 6a  | sh.(make-js2-string-node.:pos.(j | 
| 65560 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20  | s2-current-token-beg)........... | 
| 65580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28  | ..........................:len.( | 
| 655a0 |  2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | -.js2-ts-cursor.(js2-current-tok | 
| 655c0 |  65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6b 69 64 73 29 0a 20 20  | en-beg)))...............kids)... | 
| 655e0 |  20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b    69 64 20 28 6e 72 65 76 65 72 73 65 20 6b 69 64  | ......(dolist.(kid.(nreverse.kid | 
| 65600 |  73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 62 6c 6f 63 6b 2d 6e 6f 64 65 2d 70 75  | s))...........(js2-block-node-pu | 
| 65620 |  73 68 20 70 6e 2d 78 6d 6c 20 6b 69 64 29 29 0a    20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a  | sh.pn-xml.kid)).........(setf.(j | 
| 65640 |  73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 6e 2d 78    6d 6c 29 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75  | s2-node-len.pn-xml).(-.js2-ts-cu | 
| 65660 |  72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rsor............................ | 
| 65680 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 2d 78 6d 6c  | ............(js2-node-pos.pn-xml | 
| 656a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 0a  | ))...............continue.nil)). | 
| 656c0 |  20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72  | .......(t.........(js2-report-er | 
| 656e0 |  72 6f 72 20 22 6d 73 67 2e 73 79 6e 74 61 78 22    29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | ror."msg.syntax").........(setq. | 
| 65700 |  63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 29    0a 20 20 20 20 70 6e 2d 78 6d 6c 29 29 0a 0a 0a  | continue.nil)))).....pn-xml))... | 
| 65720 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65    2d 61 72 67 75 6d 65 6e 74 2d 6c 69 73 74 20 28  | (defun.js2-parse-argument-list.( | 
| 65740 |  29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 61 72    67 75 6d 65 6e 74 20 6c 69 73 74 20 61 6e 64 20  | )..."Parse.an.argument.list.and. | 
| 65760 |  72 65 74 75 72 6e 20 69 74 20 61 73 20 61 20 4c    69 73 70 20 6c 69 73 74 20 6f 66 20 6e 6f 64 65  | return.it.as.a.Lisp.list.of.node | 
| 65780 |  73 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 6c    69 73 74 20 69 6e 20 72 65 76 65 72 73 65 20 6f  | s..Returns.the.list.in.reverse.o | 
| 657a0 |  72 64 65 72 2e 20 20 43 6f 6e 73 75 6d 65 73 20    74 68 65 20 72 69 67 68 74 2d 70 61 72 65 6e 20  | rder...Consumes.the.right-paren. | 
| 657c0 |  74 6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28    72 65 73 75 6c 74 29 0a 20 20 20 20 28 75 6e 6c  | token."...(let.(result).....(unl | 
| 657e0 |  65 73 73 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74    6f 6b 65 6e 20 6a 73 32 2d 52 50 29 0a 20 20 20  | ess.(js2-match-token.js2-RP).... | 
| 65800 |  20 20 20 28 63 6c 2d 6c 6f 6f 70 20 64 6f 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | ...(cl-loop.do................(l | 
| 65820 |  65 74 20 28 28 74 74 20 28 6a 73 32 2d 67 65 74    2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20  | et.((tt.(js2-get-token))........ | 
| 65840 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62    65 67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | ..............(beg.(js2-current- | 
| 65860 |  74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69  | token-beg)))..................(i | 
| 65880 |  66 20 28 61 6e 64 20 28 3d 20 74 74 20 6a 73 32    2d 54 52 49 50 4c 45 44 4f 54 29 0a 20 20 20 20  | f.(and.(=.tt.js2-TRIPLEDOT)..... | 
| 658a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61  | ......................(>=.js2-la | 
| 658c0 |  6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32    30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | nguage-version.200))............ | 
| 658e0 |  20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20    28 6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20  | ..........(push.(js2-make-unary. | 
| 65900 |  62 65 67 20 74 74 20 27 6a 73 32 2d 70 61 72 73    65 2d 61 73 73 69 67 6e 2d 65 78 70 72 29 20 72  | beg.tt.'js2-parse-assign-expr).r | 
| 65920 |  65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75  | esult)....................(js2-u | 
| 65940 |  6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | nget-token)....................( | 
| 65960 |  70 75 73 68 20 28 6a 73 32 2d 70 61 72 73 65 2d    61 73 73 69 67 6e 2d 65 78 70 72 29 20 72 65 73  | push.(js2-parse-assign-expr).res | 
| 65980 |  75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 77 68 69 6c 65 0a 20 20 20 20  | ult)))................while..... | 
| 659a0 |  20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | ...........(and.(js2-match-token | 
| 659c0 |  20 6a 73 32 2d 43 4f 4d 4d 41 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .js2-COMMA)..................... | 
| 659e0 |  28 6f 72 20 28 3c 20 6a 73 32 2d 6c 61 6e 67 75    61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30 29  | (or.(<.js2-language-version.200) | 
| 65a00 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 3d  | .........................(not.(= | 
| 65a20 |  20 6a 73 32 2d 52 50 20 28 6a 73 32 2d 70 65 65    6b 2d 74 6f 6b 65 6e 29 29 29 29 29 29 0a 20 20  | .js2-RP.(js2-peek-token))))))... | 
| 65a40 |  20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61    74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e  | ....(js2-must-match.js2-RP."msg. | 
| 65a60 |  6e 6f 2e 70 61 72 65 6e 2e 61 72 67 22 29 0a 20    20 20 20 20 20 72 65 73 75 6c 74 29 29 29 0a 0a  | no.paren.arg").......result))).. | 
| 65a80 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65    2d 6d 65 6d 62 65 72 2d 65 78 70 72 20 28 26 6f  | (defun.js2-parse-member-expr.(&o | 
| 65aa0 |  70 74 69 6f 6e 61 6c 20 61 6c 6c 6f 77 2d 63 61    6c 6c 2d 73 79 6e 74 61 78 29 0a 20 20 28 6c 65  | ptional.allow-call-syntax)...(le | 
| 65ac0 |  74 20 28 28 74 74 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29  | t.((tt.(js2-current-token-type)) | 
| 65ae0 |  0a 20 20 20 20 20 20 20 20 70 6e 20 70 6f 73 20    74 61 72 67 65 74 20 61 72 67 73 20 62 65 67 20  | .........pn.pos.target.args.beg. | 
| 65b00 |  65 6e 64 20 69 6e 69 74 29 0a 20 20 20 20 28 69    66 20 28 2f 3d 20 74 74 20 6a 73 32 2d 4e 45 57  | end.init).....(if.(/=.tt.js2-NEW | 
| 65b20 |  29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20    70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72  | ).........(setq.pn.(js2-parse-pr | 
| 65b40 |  69 6d 61 72 79 2d 65 78 70 72 29 29 0a 20 20 20    20 20 20 28 73 65 74 71 20 70 6f 73 20 28 6a 73  | imary-expr)).......(setq.pos.(js | 
| 65b60 |  32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d    62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20  | 2-current-token-beg)............ | 
| 65b80 |  20 62 65 67 20 70 6f 73 29 0a 20 20 20 20 20 20    3b 3b 20 70 61 72 73 65 20 61 20 27 6e 65 77 27  | .beg.pos).......;;.parse.a.'new' | 
| 65ba0 |  20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 20 20    20 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65 6e  | .expression.......(js2-get-token | 
| 65bc0 |  29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 61    72 67 65 74 20 28 6a 73 32 2d 70 61 72 73 65 2d  | ).......(setq.target.(js2-parse- | 
| 65be0 |  6d 65 6d 62 65 72 2d 65 78 70 72 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73  | member-expr).............end.(js | 
| 65c00 |  32 2d 6e 6f 64 65 2d 65 6e 64 20 74 61 72 67 65    74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70  | 2-node-end.target).............p | 
| 65c20 |  6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 65 77 2d    6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20  | n.(make-js2-new-node.:pos.pos... | 
| 65c40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 65c60 |  3a 74 61 72 67 65 74 20 74 61 72 67 65 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | :target.target.................. | 
| 65c80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 6c 65 6e 20 28 2d 20 65 6e 64 20 70 6f 73  | .................:len.(-.end.pos | 
| 65ca0 |  29 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 68    69 67 68 6c 69 67 68 74 2d 66 75 6e 63 74 69 6f  | ))).......(js2-highlight-functio | 
| 65cc0 |  6e 2d 63 61 6c 6c 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20  | n-call.(js2-current-token))..... | 
| 65ce0 |  20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d    63 68 69 6c 64 72 65 6e 20 70 6e 20 74 61 72 67  | ..(js2-node-add-children.pn.targ | 
| 65d00 |  65 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | et).......(when.(js2-match-token | 
| 65d20 |  20 6a 73 32 2d 4c 50 29 0a 20 20 20 20 20 20 20    20 3b 3b 20 41 64 64 20 74 68 65 20 61 72 67 75  | .js2-LP).........;;.Add.the.argu | 
| 65d40 |  6d 65 6e 74 73 20 74 6f 20 70 6e 2c 20 69 66 20    61 6e 79 20 61 72 65 20 73 75 70 70 6c 69 65 64  | ments.to.pn,.if.any.are.supplied | 
| 65d60 |  2e 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20    62 65 67 20 70 6f 73 20 20 3b 20 73 74 61 72 74  | ..........(setf.beg.pos..;.start | 
| 65d80 |  20 6f 66 20 22 6e 65 77 22 20 6b 65 79 77 6f 72    64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .of."new".keyword............... | 
| 65da0 |  70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20  | pos.(js2-current-token-beg)..... | 
| 65dc0 |  20 20 20 20 20 20 20 20 20 20 61 72 67 73 20 28    6e 72 65 76 65 72 73 65 20 28 6a 73 32 2d 70 61  | ..........args.(nreverse.(js2-pa | 
| 65de0 |  72 73 65 2d 61 72 67 75 6d 65 6e 74 2d 6c 69 73    74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | rse-argument-list))............. | 
| 65e00 |  20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65 2d    61 72 67 73 20 70 6e 29 20 61 72 67 73 0a 20 20  | ..(js2-new-node-args.pn).args... | 
| 65e20 |  20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ............end.(js2-current-tok | 
| 65e40 |  65 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e  | en-end)...............(js2-new-n | 
| 65e60 |  6f 64 65 2d 6c 70 20 70 6e 29 20 28 2d 20 70 6f    73 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20  | ode-lp.pn).(-.pos.beg).......... | 
| 65e80 |  20 20 20 20 20 28 6a 73 32 2d 6e 65 77 2d 6e 6f    64 65 2d 72 70 20 70 6e 29 20 28 2d 20 65 6e 64  | .....(js2-new-node-rp.pn).(-.end | 
| 65ea0 |  20 31 20 62 65 67 29 29 0a 20 20 20 20 20 20 20    20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f  | .1.beg)).........(apply.#'js2-no | 
| 65ec0 |  64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20    70 6e 20 61 72 67 73 29 29 0a 20 20 20 20 20 20  | de-add-children.pn.args))....... | 
| 65ee0 |  28 77 68 65 6e 20 28 61 6e 64 20 6a 73 32 2d 61    6c 6c 6f 77 2d 72 68 69 6e 6f 2d 6e 65 77 2d 65  | (when.(and.js2-allow-rhino-new-e | 
| 65f00 |  78 70 72 2d 69 6e 69 74 69 61 6c 69 7a 65 72 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | xpr-initializer................. | 
| 65f20 |  20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65    6e 20 6a 73 32 2d 4c 43 29 29 0a 20 20 20 20 20  | .(js2-match-token.js2-LC))...... | 
| 65f40 |  20 20 20 28 73 65 74 66 20 69 6e 69 74 20 28 6a    73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d  | ...(setf.init.(js2-parse-object- | 
| 65f60 |  6c 69 74 65 72 61 6c 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d  | literal)...............end.(js2- | 
| 65f80 |  6e 6f 64 65 2d 65 6e 64 20 69 6e 69 74 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | node-end.init)...............(js | 
| 65fa0 |  32 2d 6e 65 77 2d 6e 6f 64 65 2d 69 6e 69 74 69    61 6c 69 7a 65 72 20 70 6e 29 20 69 6e 69 74 29  | 2-new-node-initializer.pn).init) | 
| 65fc0 |  0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20  | .........(js2-node-add-children. | 
| 65fe0 |  70 6e 20 69 6e 69 74 29 29 0a 20 20 20 20 20 20    20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64  | pn.init)).........(setf.(js2-nod | 
| 66000 |  65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 65 6e 64    20 62 65 67 29 29 29 20 20 3b 20 65 6e 64 20 6f  | e-len.pn).(-.end.beg)))..;.end.o | 
| 66020 |  75 74 65 72 20 69 66 0a 20 20 20 20 28 6a 73 32    2d 70 61 72 73 65 2d 6d 65 6d 62 65 72 2d 65 78  | uter.if.....(js2-parse-member-ex | 
| 66040 |  70 72 2d 74 61 69 6c 20 61 6c 6c 6f 77 2d 63 61    6c 6c 2d 73 79 6e 74 61 78 20 70 6e 29 29 29 0a  | pr-tail.allow-call-syntax.pn))). | 
| 66060 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73    65 2d 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e  | .(defun.js2-parse-optional-chain | 
| 66080 |  69 6e 67 2d 6f 70 65 72 61 74 6f 72 20 28 61 6c    6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 20  | ing-operator.(allow-call-syntax. | 
| 660a0 |  70 6e 29 0a 20 20 28 6c 65 74 20 28 28 74 74 20    28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29  | pn)...(let.((tt.(js2-peek-token) | 
| 660c0 |  29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20    20 20 28 28 65 71 20 74 74 20 6a 73 32 2d 4e 41  | )).....(cond......((eq.tt.js2-NA | 
| 660e0 |  4d 45 29 0a 20 20 20 20 20 20 28 73 65 74 71 20    70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72  | ME).......(setq.pn.(js2-parse-pr | 
| 66100 |  6f 70 65 72 74 79 2d 61 63 63 65 73 73 20 6a 73    32 2d 44 4f 54 20 70 6e 29 29 29 0a 20 20 20 20  | operty-access.js2-DOT.pn)))..... | 
| 66120 |  20 28 28 65 71 20 74 74 20 6a 73 32 2d 4c 42 29    0a 20 20 20 20 20 20 3b 3b 20 73 6b 69 70 20 6c  | .((eq.tt.js2-LB).......;;.skip.l | 
| 66140 |  65 66 74 20 62 72 61 63 6b 65 74 20 74 6f 6b 65    6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 67 65 74  | eft.bracket.token.......(js2-get | 
| 66160 |  2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73    65 74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73  | -token).......(setq.pn.(js2-pars | 
| 66180 |  65 2d 65 6c 65 6d 65 6e 74 2d 67 65 74 20 70 6e    29 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28  | e-element-get.pn)))......((and.( | 
| 661a0 |  65 71 20 74 74 20 6a 73 32 2d 4c 50 29 20 61 6c    6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74 61 78 29  | eq.tt.js2-LP).allow-call-syntax) | 
| 661c0 |  0a 20 20 20 20 20 20 3b 3b 20 75 6e 67 65 74 20    6f 70 74 69 6f 6e 61 6c 20 63 68 61 69 6e 69 6e  | .......;;.unget.optional.chainin | 
| 661e0 |  67 20 6f 70 65 72 61 74 6f 72 0a 20 20 20 20 20    20 3b 3b 20 73 6f 20 63 75 72 72 65 6e 74 20 74  | g.operator.......;;.so.current.t | 
| 66200 |  6f 6b 65 6e 20 69 73 20 66 75 6e 63 74 69 6f 6e    20 6e 61 6d 65 20 61 6e 64 20 63 6f 75 6c 64 20  | oken.is.function.name.and.could. | 
| 66220 |  62 65 20 68 69 67 68 6c 69 67 68 74 65 64 0a 20    20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d  | be.highlighted.......(js2-unget- | 
| 66240 |  74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 73 65    74 71 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65  | token).......(setq.pn.(js2-parse | 
| 66260 |  2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 70    6e 20 74 29 29 29 0a 20 20 20 20 20 28 74 0a 20  | -function-call.pn.t)))......(t.. | 
| 66280 |  20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74    2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e  | .....(js2-report-error."msg.bad. | 
| 662a0 |  6f 70 74 69 6f 6e 61 6c 2e 63 68 61 69 6e 69 6e    67 22 29 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a  | optional.chaining"))).....pn)).. | 
| 662c0 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65    2d 6d 65 6d 62 65 72 2d 65 78 70 72 2d 74 61 69  | (defun.js2-parse-member-expr-tai | 
| 662e0 |  6c 20 28 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79    6e 74 61 78 20 70 6e 29 0a 20 20 22 50 61 72 73  | l.(allow-call-syntax.pn)..."Pars | 
| 66300 |  65 20 61 20 63 68 61 69 6e 20 6f 66 20 70 72 6f    70 65 72 74 79 2f 61 72 72 61 79 20 61 63 63 65  | e.a.chain.of.property/array.acce | 
| 66320 |  73 73 65 73 20 6f 72 20 66 75 6e 63 74 69 6f 6e    20 63 61 6c 6c 73 2e 0a 49 6e 63 6c 75 64 65 73  | sses.or.function.calls..Includes | 
| 66340 |  20 70 61 72 73 69 6e 67 20 66 6f 72 20 45 34 58    20 6f 70 65 72 61 74 6f 72 73 20 6c 69 6b 65 20  | .parsing.for.E4X.operators.like. | 
| 66360 |  60 2e 2e 27 20 61 6e 64 20 60 2e 40 27 2e 0a 49    66 20 41 4c 4c 4f 57 2d 43 41 4c 4c 2d 53 59 4e  | `..'.and.`.@'..If.ALLOW-CALL-SYN | 
| 66380 |  54 41 58 20 69 73 20 6e 69 6c 2c 20 73 74 6f 70    73 20 77 68 65 6e 20 77 65 20 65 6e 63 6f 75 6e  | TAX.is.nil,.stops.when.we.encoun | 
| 663a0 |  74 65 72 20 61 20 6c 65 66 74 2d 70 61 72 65 6e    2e 0a 52 65 74 75 72 6e 73 20 61 6e 20 65 78 70  | ter.a.left-paren..Returns.an.exp | 
| 663c0 |  72 65 73 73 69 6f 6e 20 74 72 65 65 20 74 68 61    74 20 69 6e 63 6c 75 64 65 73 20 50 4e 2c 20 74  | ression.tree.that.includes.PN,.t | 
| 663e0 |  68 65 20 70 61 72 65 6e 74 20 6e 6f 64 65 2e 22    0a 20 20 28 6c 65 74 20 28 74 74 0a 20 20 20 20  | he.parent.node."...(let.(tt..... | 
| 66400 |  20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29    29 0a 20 20 20 20 28 77 68 69 6c 65 20 63 6f 6e  | ....(continue.t)).....(while.con | 
| 66420 |  74 69 6e 75 65 0a 20 20 20 20 20 20 28 73 65 74    71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74 6f  | tinue.......(setq.tt.(js2-get-to | 
| 66440 |  6b 65 6e 29 29 0a 20 20 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d  | ken)).......(cond........((or.(= | 
| 66460 |  20 74 74 20 6a 73 32 2d 44 4f 54 29 20 28 3d 20    74 74 20 6a 73 32 2d 44 4f 54 44 4f 54 29 29 0a  | .tt.js2-DOT).(=.tt.js2-DOTDOT)). | 
| 66480 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e    20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f 70  | ........(setq.pn.(js2-parse-prop | 
| 664a0 |  65 72 74 79 2d 61 63 63 65 73 73 20 74 74 20 70    6e 29 29 29 0a 20 20 20 20 20 20 20 28 28 3d 20  | erty-access.tt.pn)))........((=. | 
| 664c0 |  74 74 20 6a 73 32 2d 4f 50 54 49 4f 4e 41 4c 2d    43 48 41 49 4e 49 4e 47 29 0a 20 20 20 20 20 20  | tt.js2-OPTIONAL-CHAINING)....... | 
| 664e0 |  20 20 28 73 65 74 71 20 70 6e 20 28 6a 73 32 2d    70 61 72 73 65 2d 6f 70 74 69 6f 6e 61 6c 2d 63  | ..(setq.pn.(js2-parse-optional-c | 
| 66500 |  68 61 69 6e 69 6e 67 2d 6f 70 65 72 61 74 6f 72    20 61 6c 6c 6f 77 2d 63 61 6c 6c 2d 73 79 6e 74  | haining-operator.allow-call-synt | 
| 66520 |  61 78 20 70 6e 29 29 0a 20 20 20 20 20 20 20 20    28 75 6e 6c 65 73 73 20 70 6e 20 28 73 65 74 71  | ax.pn)).........(unless.pn.(setq | 
| 66540 |  20 63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29    0a 20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a  | .continue.nil)))........((=.tt.j | 
| 66560 |  73 32 2d 44 4f 54 51 55 45 52 59 29 0a 20 20 20    20 20 20 20 20 28 73 65 74 71 20 70 6e 20 28 6a  | s2-DOTQUERY).........(setq.pn.(j | 
| 66580 |  73 32 2d 70 61 72 73 65 2d 64 6f 74 2d 71 75 65    72 79 20 70 6e 29 29 29 0a 20 20 20 20 20 20 20  | s2-parse-dot-query.pn)))........ | 
| 665a0 |  28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20    20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20  | ((=.tt.js2-LB).........(setq.pn. | 
| 665c0 |  28 6a 73 32 2d 70 61 72 73 65 2d 65 6c 65 6d 65    6e 74 2d 67 65 74 20 70 6e 29 29 29 0a 20 20 20  | (js2-parse-element-get.pn))).... | 
| 665e0 |  20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c    50 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ....((=.tt.js2-LP).........(js2- | 
| 66600 |  75 6e 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20    20 20 20 20 20 28 69 66 20 61 6c 6c 6f 77 2d 63  | unget-token).........(if.allow-c | 
| 66620 |  61 6c 6c 2d 73 79 6e 74 61 78 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20  | all-syntax.............(setq.pn. | 
| 66640 |  28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74    69 6f 6e 2d 63 61 6c 6c 20 70 6e 29 29 0a 20 20  | (js2-parse-function-call.pn))... | 
| 66660 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f    6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20 20  | ........(setq.continue.nil)))... | 
| 66680 |  20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d    54 45 4d 50 4c 41 54 45 5f 48 45 41 44 29 0a 20  | .....((=.tt.js2-TEMPLATE_HEAD).. | 
| 666a0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 70 6e 20    28 6a 73 32 2d 70 61 72 73 65 2d 74 61 67 67 65  | .......(setq.pn.(js2-parse-tagge | 
| 666c0 |  64 2d 74 65 6d 70 6c 61 74 65 20 70 6e 20 28 6a    73 32 2d 70 61 72 73 65 2d 74 65 6d 70 6c 61 74  | d-template.pn.(js2-parse-templat | 
| 666e0 |  65 2d 6c 69 74 65 72 61 6c 29 29 29 29 0a 20 20    20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d  | e-literal))))........((=.tt.js2- | 
| 66700 |  4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41 54 45    29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | NO_SUBS_TEMPLATE).........(setq. | 
| 66720 |  70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 74 61    67 67 65 64 2d 74 65 6d 70 6c 61 74 65 20 70 6e  | pn.(js2-parse-tagged-template.pn | 
| 66740 |  20 28 6d 61 6b 65 2d 6a 73 32 2d 73 74 72 69 6e    67 2d 6e 6f 64 65 20 3a 74 79 70 65 20 74 74 29  | .(make-js2-string-node.:type.tt) | 
| 66760 |  29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20 20    20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74  | )))........(t.........(js2-unget | 
| 66780 |  2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20    28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e  | -token).........(setq.continue.n | 
| 667a0 |  69 6c 29 29 29 0a 20 20 20 20 20 20 28 69 66 20    28 3e 3d 20 6a 73 32 2d 68 69 67 68 6c 69 67 68  | il))).......(if.(>=.js2-highligh | 
| 667c0 |  74 2d 6c 65 76 65 6c 20 32 29 0a 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d  | t-level.2)...........(js2-parse- | 
| 667e0 |  68 69 67 68 6c 69 67 68 74 2d 6d 65 6d 62 65 72    2d 65 78 70 72 2d 6e 6f 64 65 20 70 6e 29 29 29  | highlight-member-expr-node.pn))) | 
| 66800 |  0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 70 61 72 73 65 2d 74 61 67 67  | .....pn))..(defun.js2-parse-tagg | 
| 66820 |  65 64 2d 74 65 6d 70 6c 61 74 65 20 28 74 61 67    2d 6e 6f 64 65 20 74 70 6c 2d 6e 6f 64 65 29 0a  | ed-template.(tag-node.tpl-node). | 
| 66840 |  20 20 22 50 61 72 73 65 20 74 61 67 67 65 64 20    74 65 6d 70 6c 61 74 65 20 65 78 70 72 65 73 73  | .."Parse.tagged.template.express | 
| 66860 |  69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28    70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f  | ion."...(let*.((pos.(js2-node-po | 
| 66880 |  73 20 74 61 67 2d 6e 6f 64 65 29 29 0a 20 20 20    20 20 20 20 20 20 28 70 6e 20 28 6d 61 6b 65 2d  | s.tag-node))..........(pn.(make- | 
| 668a0 |  6a 73 32 2d 74 61 67 67 65 64 2d 74 65 6d 70 6c    61 74 65 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f  | js2-tagged-template-node.:pos.po | 
| 668c0 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s............................... | 
| 668e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c    65 6e 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65  | ..............:len.(-.(js2-curre | 
| 66900 |  6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 20 70 6f    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt-token-end).pos).............. | 
| 66920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 66940 |  74 61 67 20 74 61 67 2d 6e 6f 64 65 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tag.tag-node.................... | 
| 66960 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 74 65 6d 70 6c 61  | .........................:templa | 
| 66980 |  74 65 20 74 70 6c 2d 6e 6f 64 65 29 29 29 0a 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64  | te.tpl-node))).....(js2-node-add | 
| 669a0 |  2d 63 68 69 6c 64 72 65 6e 20 70 6e 20 74 61 67    2d 6e 6f 64 65 20 74 70 6c 2d 6e 6f 64 65 29 0a  | -children.pn.tag-node.tpl-node). | 
| 669c0 |  20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 64 6f 74 2d 71  | ....pn))..(defun.js2-parse-dot-q | 
| 669e0 |  75 65 72 79 20 28 70 6e 29 0a 20 20 22 50 61 72    73 65 20 61 20 64 6f 74 2d 71 75 65 72 79 20 65  | uery.(pn)..."Parse.a.dot-query.e | 
| 66a00 |  78 70 72 65 73 73 69 6f 6e 2c 20 65 2e 67 2e 20    66 6f 6f 2e 62 61 72 2e 28 40 6e 61 6d 65 20 3d  | xpression,.e.g..foo.bar.(@name.= | 
| 66a20 |  3d 20 32 29 0a 4c 61 73 74 20 74 6f 6b 65 6e 20    70 61 72 73 65 64 20 6d 75 73 74 20 62 65 20 60  | =.2).Last.token.parsed.must.be.` | 
| 66a40 |  6a 73 32 2d 44 4f 54 51 55 45 52 59 27 2e 22 0a    20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73  | js2-DOTQUERY'."...(let.((pos.(js | 
| 66a60 |  32 2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a    20 20 20 20 20 20 20 20 6f 70 2d 70 6f 73 20 65  | 2-node-pos.pn)).........op-pos.e | 
| 66a80 |  78 70 72 20 65 6e 64 29 0a 20 20 20 20 28 6a 73    32 2d 6d 75 73 74 2d 68 61 76 65 2d 78 6d 6c 29  | xpr.end).....(js2-must-have-xml) | 
| 66aa0 |  0a 20 20 20 20 28 6a 73 32 2d 73 65 74 2d 72 65    71 75 69 72 65 73 2d 61 63 74 69 76 61 74 69 6f  | .....(js2-set-requires-activatio | 
| 66ac0 |  6e 29 0a 20 20 20 20 28 73 65 74 71 20 6f 70 2d    70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74  | n).....(setq.op-pos.(js2-current | 
| 66ae0 |  2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20    20 20 20 20 20 20 65 78 70 72 20 28 6a 73 32 2d  | -token-beg)...........expr.(js2- | 
| 66b00 |  70 61 72 73 65 2d 65 78 70 72 29 0a 20 20 20 20    20 20 20 20 20 20 65 6e 64 20 28 6a 73 32 2d 6e  | parse-expr)...........end.(js2-n | 
| 66b20 |  6f 64 65 2d 65 6e 64 20 65 78 70 72 29 0a 20 20    20 20 20 20 20 20 20 20 70 6e 20 28 6d 61 6b 65  | ode-end.expr)...........pn.(make | 
| 66b40 |  2d 6a 73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65    72 79 2d 6e 6f 64 65 20 3a 6c 65 66 74 20 70 6e  | -js2-xml-dot-query-node.:left.pn | 
| 66b60 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 66b80 |  20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 20    70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ...........:pos.pos............. | 
| 66ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f  | ..............................:o | 
| 66bc0 |  70 2d 70 6f 73 20 6f 70 2d 70 6f 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p-pos.op-pos.................... | 
| 66be0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3a 72 69 67 68 74 20 65 78  | .......................:right.ex | 
| 66c00 |  70 72 29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20  | pr)).....(js2-node-add-children. | 
| 66c20 |  70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | pn............................(j | 
| 66c40 |  73 32 2d 78 6d 6c 2d 64 6f 74 2d 71 75 65 72 79    2d 6e 6f 64 65 2d 6c 65 66 74 20 70 6e 29 0a 20  | s2-xml-dot-query-node-left.pn).. | 
| 66c60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 78  | ..........................(js2-x | 
| 66c80 |  6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64    65 2d 72 69 67 68 74 20 70 6e 29 29 0a 20 20 20  | ml-dot-query-node-right.pn)).... | 
| 66ca0 |  20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74 2d 6d    61 74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67  | .(if.(js2-must-match.js2-RP."msg | 
| 66cc0 |  2e 6e 6f 2e 70 61 72 65 6e 22 29 0a 20 20 20 20    20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 78  | .no.paren").........(setf.(js2-x | 
| 66ce0 |  6d 6c 2d 64 6f 74 2d 71 75 65 72 79 2d 6e 6f 64    65 2d 72 70 20 70 6e 29 20 28 6a 73 32 2d 63 75  | ml-dot-query-node-rp.pn).(js2-cu | 
| 66d00 |  72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65  | rrent-token-beg)...............e | 
| 66d20 |  6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20  | nd.(js2-current-token-end))).... | 
| 66d40 |  20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65    2d 6c 65 6e 20 70 6e 29 20 28 2d 20 65 6e 64 20  | .(setf.(js2-node-len.pn).(-.end. | 
| 66d60 |  70 6f 73 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65  | pos)).....pn))..(defun.js2-parse | 
| 66d80 |  2d 65 6c 65 6d 65 6e 74 2d 67 65 74 20 28 70 6e    29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 65 6c  | -element-get.(pn)..."Parse.an.el | 
| 66da0 |  65 6d 65 6e 74 2d 67 65 74 20 65 78 70 72 65 73    73 69 6f 6e 2c 20 65 2e 67 2e 20 66 6f 6f 5b 62  | ement-get.expression,.e.g..foo[b | 
| 66dc0 |  61 72 5d 2e 0a 4c 61 73 74 20 74 6f 6b 65 6e 20    70 61 72 73 65 64 20 6d 75 73 74 20 62 65 20 60  | ar]..Last.token.parsed.must.be.` | 
| 66de0 |  6a 73 32 2d 52 42 27 2e 22 0a 20 20 28 6c 65 74    20 28 28 6c 62 20 28 6a 73 32 2d 63 75 72 72 65  | js2-RB'."...(let.((lb.(js2-curre | 
| 66e00 |  6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20    20 20 20 20 20 20 20 28 70 6f 73 20 28 6a 73 32  | nt-token-beg)).........(pos.(js2 | 
| 66e20 |  2d 6e 6f 64 65 2d 70 6f 73 20 70 6e 29 29 0a 20    20 20 20 20 20 20 20 72 62 20 65 78 70 72 29 0a  | -node-pos.pn)).........rb.expr). | 
| 66e40 |  20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28    6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29 29  | ....(setq.expr.(js2-parse-expr)) | 
| 66e60 |  0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75    73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 42 20  | .....(if.(js2-must-match.js2-RB. | 
| 66e80 |  22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74 2e    69 6e 64 65 78 22 29 0a 20 20 20 20 20 20 20 20  | "msg.no.bracket.index")......... | 
| 66ea0 |  28 73 65 74 71 20 72 62 20 28 6a 73 32 2d 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29  | (setq.rb.(js2-current-token-beg) | 
| 66ec0 |  29 29 0a 20 20 20 20 28 73 65 74 71 20 70 6e 20    28 6d 61 6b 65 2d 6a 73 32 2d 65 6c 65 6d 2d 67  | )).....(setq.pn.(make-js2-elem-g | 
| 66ee0 |  65 74 2d 6e 6f 64 65 20 3a 74 61 72 67 65 74 20    70 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | et-node.:target.pn.............. | 
| 66f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 70 6f 73 20 70 6f 73  | ........................:pos.pos | 
| 66f20 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 66f40 |  20 20 20 20 20 20 3a 65 6c 65 6d 65 6e 74 20 65    78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ......:element.expr............. | 
| 66f60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3a 6c 62 20 28 6a 73  | .........................:lb.(js | 
| 66f80 |  32 2d 72 65 6c 70 6f 73 20 6c 62 20 70 6f 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-relpos.lb.pos)................ | 
| 66fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 72 62 20 28 6a 73 32 2d 72  | ......................:rb.(js2-r | 
| 66fc0 |  65 6c 70 6f 73 20 72 62 20 70 6f 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | elpos.rb.pos)................... | 
| 66fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d  | ...................:len.(-.(js2- | 
| 67000 |  63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e    64 29 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6a  | current-token-end).pos))).....(j | 
| 67020 |  73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c    64 72 65 6e 20 70 6e 0a 20 20 20 20 20 20 20 20  | s2-node-add-children.pn......... | 
| 67040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 65 6c 65 6d 2d 67 65 74  | ...................(js2-elem-get | 
| 67060 |  2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 70 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -node-target.pn)................ | 
| 67080 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 65 6c 65 6d 2d 67 65 74 2d 6e 6f 64 65 2d 65  | ............(js2-elem-get-node-e | 
| 670a0 |  6c 65 6d 65 6e 74 20 70 6e 29 29 0a 20 20 20 20    70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | lement.pn)).....pn))..(defun.js2 | 
| 670c0 |  2d 68 69 67 68 6c 69 67 68 74 2d 66 75 6e 63 74    69 6f 6e 2d 63 61 6c 6c 20 28 74 6f 6b 65 6e 29  | -highlight-function-call.(token) | 
| 670e0 |  0a 20 20 28 77 68 65 6e 20 28 65 71 20 28 6a 73    32 2d 74 6f 6b 65 6e 2d 74 79 70 65 20 74 6f 6b  | ...(when.(eq.(js2-token-type.tok | 
| 67100 |  65 6e 29 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20    20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61  | en).js2-NAME).....(js2-record-fa | 
| 67120 |  63 65 20 27 6a 73 32 2d 66 75 6e 63 74 69 6f 6e    2d 63 61 6c 6c 20 74 6f 6b 65 6e 29 29 29 0a 0a  | ce.'js2-function-call.token))).. | 
| 67140 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65    2d 66 75 6e 63 74 69 6f 6e 2d 63 61 6c 6c 20 28  | (defun.js2-parse-function-call.( | 
| 67160 |  70 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 75 73 65    2d 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e 69  | pn.&optional.use-optional-chaini | 
| 67180 |  6e 67 2d 70 29 0a 20 20 28 6a 73 32 2d 68 69 67    68 6c 69 67 68 74 2d 66 75 6e 63 74 69 6f 6e 2d  | ng-p)...(js2-highlight-function- | 
| 671a0 |  63 61 6c 6c 20 28 6a 73 32 2d 63 75 72 72 65 6e    74 2d 74 6f 6b 65 6e 29 29 0a 20 20 28 6a 73 32  | call.(js2-current-token))...(js2 | 
| 671c0 |  2d 67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 28 6c    65 74 20 28 61 72 67 73 0a 20 20 20 20 20 20 20  | -get-token)...(let.(args........ | 
| 671e0 |  20 28 70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d    70 6f 73 20 70 6e 29 29 29 0a 20 20 20 20 28 77  | .(pos.(js2-node-pos.pn))).....(w | 
| 67200 |  68 65 6e 20 75 73 65 2d 6f 70 74 69 6f 6e 61 6c    2d 63 68 61 69 6e 69 6e 67 2d 70 0a 20 20 20 20  | hen.use-optional-chaining-p..... | 
| 67220 |  20 20 3b 3b 20 73 6b 69 70 20 6f 70 74 69 6f 6e    61 6c 20 63 68 61 69 6e 69 6e 67 20 6f 70 65 72  | ..;;.skip.optional.chaining.oper | 
| 67240 |  61 74 6f 72 0a 20 20 20 20 20 20 28 6a 73 32 2d    67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20 20 20  | ator.......(js2-get-token))..... | 
| 67260 |  28 73 65 74 71 20 70 6e 20 28 6d 61 6b 65 2d 6a    73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 20 3a 70 6f  | (setq.pn.(make-js2-call-node.:po | 
| 67280 |  73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.pos........................... | 
| 672a0 |  20 20 20 20 20 20 20 3a 74 61 72 67 65 74 20 70    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......:target.pn............... | 
| 672c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3a 6c 70 20 28 2d 20 28 6a 73 32 2d 63  | ...................:lp.(-.(js2-c | 
| 672e0 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67    29 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6a 73  | urrent-token-beg).pos))).....(js | 
| 67300 |  32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c 64    72 65 6e 20 70 6e 20 28 6a 73 32 2d 63 61 6c 6c  | 2-node-add-children.pn.(js2-call | 
| 67320 |  2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 70 6e 29    29 0a 20 20 20 20 3b 3b 20 41 64 64 20 74 68 65  | -node-target.pn)).....;;.Add.the | 
| 67340 |  20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 6e    2c 20 69 66 20 61 6e 79 20 61 72 65 20 73 75 70  | .arguments.to.pn,.if.any.are.sup | 
| 67360 |  70 6c 69 65 64 2e 0a 20 20 20 20 28 73 65 74 66    20 61 72 67 73 20 28 6e 72 65 76 65 72 73 65 20  | plied......(setf.args.(nreverse. | 
| 67380 |  28 6a 73 32 2d 70 61 72 73 65 2d 61 72 67 75 6d    65 6e 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20  | (js2-parse-argument-list))...... | 
| 673a0 |  20 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e    6f 64 65 2d 72 70 20 70 6e 29 20 28 2d 20 28 6a  | .....(js2-call-node-rp.pn).(-.(j | 
| 673c0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 20 70 6f 73 29 0a 20 20 20 20 20  | s2-current-token-beg).pos)...... | 
| 673e0 |  20 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e    6f 64 65 2d 61 72 67 73 20 70 6e 29 20 61 72 67  | .....(js2-call-node-args.pn).arg | 
| 67400 |  73 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27    6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69  | s).....(apply.#'js2-node-add-chi | 
| 67420 |  6c 64 72 65 6e 20 70 6e 20 61 72 67 73 29 0a 20    20 20 20 28 73 65 74 66 20 28 6a 73 32 2d 6e 6f  | ldren.pn.args).....(setf.(js2-no | 
| 67440 |  64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20 6a 73    32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29  | de-len.pn).(-.js2-ts-cursor.pos) | 
| 67460 |  29 0a 20 20 20 20 70 6e 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f  | ).....pn))..(defun.js2-parse-pro | 
| 67480 |  70 65 72 74 79 2d 61 63 63 65 73 73 20 28 74 74    20 70 6e 29 0a 20 20 22 50 61 72 73 65 20 61 20  | perty-access.(tt.pn)..."Parse.a. | 
| 674a0 |  70 72 6f 70 65 72 74 79 20 61 63 63 65 73 73 2c    20 58 4d 4c 20 64 65 73 63 65 6e 64 61 6e 74 73  | property.access,.XML.descendants | 
| 674c0 |  20 61 63 63 65 73 73 2c 20 6f 72 20 58 4d 4c 20    61 74 74 72 20 61 63 63 65 73 73 2e 22 0a 20 20  | .access,.or.XML.attr.access."... | 
| 674e0 |  28 6c 65 74 20 28 28 6d 65 6d 62 65 72 2d 74 79    70 65 2d 66 6c 61 67 73 20 30 29 0a 20 20 20 20  | (let.((member-type-flags.0)..... | 
| 67500 |  20 20 20 20 28 64 6f 74 2d 70 6f 73 20 28 6a 73    32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d  | ....(dot-pos.(js2-current-token- | 
| 67520 |  62 65 67 29 29 0a 20 20 20 20 20 20 20 20 28 64    6f 74 2d 6c 65 6e 20 28 69 66 20 28 3d 20 74 74  | beg)).........(dot-len.(if.(=.tt | 
| 67540 |  20 6a 73 32 2d 44 4f 54 44 4f 54 29 20 32 20 31    29 29 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 0a  | .js2-DOTDOT).2.1)).........name. | 
| 67560 |  20 20 20 20 20 20 20 20 72 65 66 20 20 3b 20 72    69 67 68 74 20 73 69 64 65 20 6f 66 20 2e 20 6f  | ........ref..;.right.side.of...o | 
| 67580 |  72 20 2e 2e 20 6f 70 65 72 61 74 6f 72 0a 20 20    20 20 20 20 20 20 72 65 73 75 6c 74 29 0a 20 20  | r....operator.........result)... | 
| 675a0 |  20 20 28 77 68 65 6e 20 28 3d 20 74 74 20 6a 73    32 2d 44 4f 54 44 4f 54 29 0a 20 20 20 20 20 20  | ..(when.(=.tt.js2-DOTDOT)....... | 
| 675c0 |  28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d 78    6d 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20  | (js2-must-have-xml).......(setq. | 
| 675e0 |  6d 65 6d 62 65 72 2d 74 79 70 65 2d 66 6c 61 67    73 20 6a 73 32 2d 64 65 73 63 65 6e 64 61 6e 74  | member-type-flags.js2-descendant | 
| 67600 |  73 2d 66 6c 61 67 29 29 0a 20 20 20 20 28 69 66    20 28 6e 6f 74 20 6a 73 32 2d 63 6f 6d 70 69 6c  | s-flag)).....(if.(not.js2-compil | 
| 67620 |  65 72 2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65    29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e  | er-xml-available).........(progn | 
| 67640 |  0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    6d 75 73 74 2d 6d 61 74 63 68 2d 70 72 6f 70 2d  | ...........(js2-must-match-prop- | 
| 67660 |  6e 61 6d 65 20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d    65 2e 61 66 74 65 72 2e 64 6f 74 22 29 0a 20 20  | name."msg.no.name.after.dot")... | 
| 67680 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 61    6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e  | ........(setq.name.(js2-create-n | 
| 676a0 |  61 6d 65 2d 6e 6f 64 65 20 74 20 6a 73 32 2d 47    45 54 50 52 4f 50 29 0a 20 20 20 20 20 20 20 20  | ame-node.t.js2-GETPROP)......... | 
| 676c0 |  20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 28    6d 61 6b 65 2d 6a 73 32 2d 70 72 6f 70 2d 67 65  | ........result.(make-js2-prop-ge | 
| 676e0 |  74 2d 6e 6f 64 65 20 3a 6c 65 66 74 20 70 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t-node.:left.pn................. | 
| 67700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 67720 |  70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 62 65 67 29 0a 20 20 20 20  | pos.(js2-current-token-beg)..... | 
| 67740 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 67760 |  20 20 20 20 20 20 20 20 20 20 20 3a 72 69 67 68    74 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20  | ...........:right.name.......... | 
| 67780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 677a0 |  20 20 20 20 20 20 3a 6c 65 6e 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 6c 65  | ......:len.(js2-current-token-le | 
| 677c0 |  6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69  | n)))...........(js2-node-add-chi | 
| 677e0 |  6c 64 72 65 6e 20 72 65 73 75 6c 74 20 70 6e 20    6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20  | ldren.result.pn.name)........... | 
| 67800 |  72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 3b 3b    20 6f 74 68 65 72 77 69 73 65 20 6c 6f 6f 6b 20  | result).......;;.otherwise.look. | 
| 67820 |  66 6f 72 20 58 4d 4c 20 6f 70 65 72 61 74 6f 72    73 0a 20 20 20 20 20 20 28 73 65 74 66 20 72 65  | for.XML.operators.......(setf.re | 
| 67840 |  73 75 6c 74 20 28 69 66 20 28 3d 20 74 74 20 6a    73 32 2d 44 4f 54 29 0a 20 20 20 20 20 20 20 20  | sult.(if.(=.tt.js2-DOT)......... | 
| 67860 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6d 61 6b 65 2d 6a 73 32 2d 70 72 6f 70 2d 67 65  | ...............(make-js2-prop-ge | 
| 67880 |  74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61  | t-node)......................(ma | 
| 678a0 |  6b 65 2d 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64    65 20 3a 74 79 70 65 20 6a 73 32 2d 44 4f 54 44  | ke-js2-infix-node.:type.js2-DOTD | 
| 678c0 |  4f 54 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20 72  | OT)).............(js2-node-pos.r | 
| 678e0 |  65 73 75 6c 74 29 20 28 6a 73 32 2d 6e 6f 64 65    2d 70 6f 73 20 70 6e 29 0a 20 20 20 20 20 20 20  | esult).(js2-node-pos.pn)........ | 
| 67900 |  20 20 20 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d    6e 6f 64 65 2d 6f 70 2d 70 6f 73 20 72 65 73 75  | .....(js2-infix-node-op-pos.resu | 
| 67920 |  6c 74 29 20 64 6f 74 2d 70 6f 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 66  | lt).dot-pos.............(js2-inf | 
| 67940 |  69 78 2d 6e 6f 64 65 2d 6c 65 66 74 20 72 65 73    75 6c 74 29 20 70 6e 20 20 3b 20 64 6f 20 74 68  | ix-node-left.result).pn..;.do.th | 
| 67960 |  69 73 20 61 66 74 65 72 20 73 65 74 74 69 6e 67    20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20  | is.after.setting.position....... | 
| 67980 |  20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65    74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65  | ......tt.(js2-get-prop-name-toke | 
| 679a0 |  6e 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65  | n)).......(cond........;;.handle | 
| 679c0 |  73 3a 20 6e 61 6d 65 2c 20 6e 73 3a 3a 6e 61 6d    65 2c 20 6e 73 3a 3a 2a 2c 20 6e 73 3a 3a 5b 65  | s:.name,.ns::name,.ns::*,.ns::[e | 
| 679e0 |  78 70 72 5d 0a 20 20 20 20 20 20 20 28 28 6f 72    20 28 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29  | xpr]........((or.(=.tt.js2-NAME) | 
| 67a00 |  20 28 3d 20 74 74 20 6a 73 32 2d 50 52 49 56 41    54 45 5f 4e 41 4d 45 29 29 0a 20 20 20 20 20 20  | .(=.tt.js2-PRIVATE_NAME))....... | 
| 67a20 |  20 20 28 73 65 74 71 20 72 65 66 20 28 6a 73 32    2d 70 61 72 73 65 2d 70 72 6f 70 65 72 74 79 2d  | ..(setq.ref.(js2-parse-property- | 
| 67a40 |  6e 61 6d 65 20 2d 31 20 6e 69 6c 20 6d 65 6d 62    65 72 2d 74 79 70 65 2d 66 6c 61 67 73 29 29 29  | name.-1.nil.member-type-flags))) | 
| 67a60 |  0a 20 20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c    65 73 3a 20 2a 2c 20 2a 3a 3a 6e 61 6d 65 2c 20  | ........;;.handles:.*,.*::name,. | 
| 67a80 |  2a 3a 3a 2a 2c 20 2a 3a 3a 5b 65 78 70 72 5d 0a    20 20 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73  | *::*,.*::[expr]........((=.tt.js | 
| 67aa0 |  32 2d 4d 55 4c 29 0a 20 20 20 20 20 20 20 20 28    73 65 74 71 20 72 65 66 20 28 6a 73 32 2d 70 61  | 2-MUL).........(setq.ref.(js2-pa | 
| 67ac0 |  72 73 65 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d    65 20 6e 69 6c 20 22 2a 22 20 6d 65 6d 62 65 72  | rse-property-name.nil."*".member | 
| 67ae0 |  2d 74 79 70 65 2d 66 6c 61 67 73 29 29 29 0a 20    20 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 73  | -type-flags)))........;;.handles | 
| 67b00 |  3a 20 27 40 61 74 74 72 27 2c 20 27 40 6e 73 3a    3a 61 74 74 72 27 2c 20 27 40 6e 73 3a 3a 2a 27  | :.'@attr',.'@ns::attr',.'@ns::*' | 
| 67b20 |  2c 20 27 40 6e 73 3a 3a 5b 65 78 70 72 5d 27 2c    20 65 74 63 2e 0a 20 20 20 20 20 20 20 28 28 3d  | ,.'@ns::[expr]',.etc.........((= | 
| 67b40 |  20 74 74 20 6a 73 32 2d 58 4d 4c 41 54 54 52 29    0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72  | .tt.js2-XMLATTR).........(setq.r | 
| 67b60 |  65 73 75 6c 74 20 28 6a 73 32 2d 70 61 72 73 65    2d 61 74 74 72 69 62 75 74 65 2d 61 63 63 65 73  | esult.(js2-parse-attribute-acces | 
| 67b80 |  73 29 29 29 0a 20 20 20 20 20 20 20 28 74 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | s)))........(t.........(js2-repo | 
| 67ba0 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f    2e 6e 61 6d 65 2e 61 66 74 65 72 2e 64 6f 74 22  | rt-error."msg.no.name.after.dot" | 
| 67bc0 |  20 6e 69 6c 20 64 6f 74 2d 70 6f 73 20 64 6f 74    2d 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 28 69  | .nil.dot-pos.dot-len))).......(i | 
| 67be0 |  66 20 72 65 66 0a 20 20 20 20 20 20 20 20 20 20    28 73 65 74 66 20 28 6a 73 32 2d 6e 6f 64 65 2d  | f.ref...........(setf.(js2-node- | 
| 67c00 |  6c 65 6e 20 72 65 73 75 6c 74 29 20 28 2d 20 28    6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 72 65 66  | len.result).(-.(js2-node-end.ref | 
| 67c20 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 67c40 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    6e 6f 64 65 2d 70 6f 73 20 72 65 73 75 6c 74 29  | ...........(js2-node-pos.result) | 
| 67c60 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64  | ).................(js2-infix-nod | 
| 67c80 |  65 2d 72 69 67 68 74 20 72 65 73 75 6c 74 29 20    72 65 66 29 29 0a 20 20 20 20 20 20 28 69 66 20  | e-right.result).ref)).......(if. | 
| 67ca0 |  28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d    70 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20  | (js2-infix-node-p.result)....... | 
| 67cc0 |  20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64    64 2d 63 68 69 6c 64 72 65 6e 20 72 65 73 75 6c  | ....(js2-node-add-children.resul | 
| 67ce0 |  74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t............................... | 
| 67d00 |  20 20 20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f    64 65 2d 6c 65 66 74 20 72 65 73 75 6c 74 29 0a  | ...(js2-infix-node-left.result). | 
| 67d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 67d40 |  20 28 6a 73 32 2d 69 6e 66 69 78 2d 6e 6f 64 65    2d 72 69 67 68 74 20 72 65 73 75 6c 74 29 29 29  | .(js2-infix-node-right.result))) | 
| 67d60 |  0a 20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72  | .......result)))..(defun.js2-par | 
| 67d80 |  73 65 2d 61 74 74 72 69 62 75 74 65 2d 61 63 63    65 73 73 20 28 29 0a 20 20 22 50 61 72 73 65 20  | se-attribute-access.()..."Parse. | 
| 67da0 |  61 6e 20 45 34 58 20 58 4d 4c 20 61 74 74 72 69    62 75 74 65 20 65 78 70 72 65 73 73 69 6f 6e 2e  | an.E4X.XML.attribute.expression. | 
| 67dc0 |  0a 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 65    78 70 72 65 73 73 69 6f 6e 73 20 6f 66 20 74 68  | .This.includes.expressions.of.th | 
| 67de0 |  65 20 66 6f 72 6d 73 3a 0a 0a 20 20 40 61 74 74    72 20 20 20 20 20 20 40 6e 73 3a 3a 61 74 74 72  | e.forms:....@attr......@ns::attr | 
| 67e00 |  20 20 20 20 20 40 6e 73 3a 3a 2a 0a 20 20 40 2a    20 20 20 20 20 20 20 20 20 40 2a 3a 3a 61 74 74  | .....@ns::*...@*.........@*::att | 
| 67e20 |  72 20 20 20 20 20 20 40 2a 3a 3a 2a 0a 20 20 40    5b 65 78 70 72 5d 20 20 20 20 40 2a 3a 3a 5b 65  | r......@*::*...@[expr]....@*::[e | 
| 67e40 |  78 70 72 5d 20 20 20 20 40 6e 73 3a 3a 5b 65 78    70 72 5d 0a 0a 43 61 6c 6c 65 64 20 69 66 20 77  | xpr]....@ns::[expr]..Called.if.w | 
| 67e60 |  65 20 70 65 65 6b 65 64 20 61 6e 20 60 40 27 20    74 6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28  | e.peeked.an.`@'.token."...(let.( | 
| 67e80 |  28 74 74 20 28 6a 73 32 2d 67 65 74 2d 70 72 6f    70 2d 6e 61 6d 65 2d 74 6f 6b 65 6e 29 29 0a 20  | (tt.(js2-get-prop-name-token)).. | 
| 67ea0 |  20 20 20 20 20 20 20 28 61 74 2d 70 6f 73 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | .......(at-pos.(js2-current-toke | 
| 67ec0 |  6e 2d 62 65 67 29 29 29 0a 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c  | n-beg))).....(cond......;;.handl | 
| 67ee0 |  65 73 3a 20 40 6e 61 6d 65 2c 20 40 6e 73 3a 3a    6e 61 6d 65 2c 20 40 6e 73 3a 3a 2a 2c 20 40 6e  | es:.@name,.@ns::name,.@ns::*,.@n | 
| 67f00 |  73 3a 3a 5b 65 78 70 72 5d 0a 20 20 20 20 20 28    28 3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a  | s::[expr]......((=.tt.js2-NAME). | 
| 67f20 |  20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65    2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 61  | ......(js2-parse-property-name.a | 
| 67f40 |  74 2d 70 6f 73 20 6e 69 6c 20 30 29 29 0a 20 20    20 20 20 3b 3b 20 68 61 6e 64 6c 65 73 3a 20 40  | t-pos.nil.0))......;;.handles:.@ | 
| 67f60 |  2a 2c 20 40 2a 3a 3a 6e 61 6d 65 2c 20 40 2a 3a    3a 2a 2c 20 40 2a 3a 3a 5b 65 78 70 72 5d 0a 20  | *,.@*::name,.@*::*,.@*::[expr].. | 
| 67f80 |  20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4d    55 4c 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70  | ....((=.tt.js2-MUL).......(js2-p | 
| 67fa0 |  61 72 73 65 2d 70 72 6f 70 65 72 74 79 2d 6e 61    6d 65 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | arse-property-name.(js2-current- | 
| 67fc0 |  74 6f 6b 65 6e 2d 62 65 67 29 20 22 2a 22 20 30    29 29 0a 20 20 20 20 20 3b 3b 20 68 61 6e 64 6c  | token-beg)."*".0))......;;.handl | 
| 67fe0 |  65 73 20 40 5b 65 78 70 72 5d 0a 20 20 20 20 20    28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29 0a 20  | es.@[expr]......((=.tt.js2-LB).. | 
| 68000 |  20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d    78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 20 61 74 2d  | .....(js2-parse-xml-elem-ref.at- | 
| 68020 |  70 6f 73 29 29 0a 20 20 20 20 20 28 74 0a 20 20    20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | pos))......(t.......(js2-report- | 
| 68040 |  65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 6e 61    6d 65 2e 61 66 74 65 72 2e 78 6d 6c 41 74 74 72  | error."msg.no.name.after.xmlAttr | 
| 68060 |  22 29 0a 20 20 20 20 20 20 3b 3b 20 41 76 6f 69    64 20 63 61 73 63 61 64 65 64 20 65 72 72 6f 72  | ").......;;.Avoid.cascaded.error | 
| 68080 |  73 20 74 68 61 74 20 68 61 70 70 65 6e 20 69 66    20 77 65 20 6d 61 6b 65 20 61 6e 20 65 72 72 6f  | s.that.happen.if.we.make.an.erro | 
| 680a0 |  72 20 6e 6f 64 65 20 68 65 72 65 2e 0a 20 20 20    20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72  | r.node.here........(js2-parse-pr | 
| 680c0 |  6f 70 65 72 74 79 2d 6e 61 6d 65 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | operty-name.(js2-current-token-b | 
| 680e0 |  65 67 29 20 22 22 20 30 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d  | eg)."".0)))))..(defun.js2-parse- | 
| 68100 |  70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 28 61    74 2d 70 6f 73 20 73 20 6d 65 6d 62 65 72 2d 74  | property-name.(at-pos.s.member-t | 
| 68120 |  79 70 65 2d 66 6c 61 67 73 29 0a 20 20 22 43 68    65 63 6b 20 69 66 20 3a 3a 20 66 6f 6c 6c 6f 77  | ype-flags)..."Check.if.::.follow | 
| 68140 |  73 20 6e 61 6d 65 20 69 6e 20 77 68 69 63 68 20    63 61 73 65 20 69 74 20 62 65 63 6f 6d 65 73 20  | s.name.in.which.case.it.becomes. | 
| 68160 |  71 75 61 6c 69 66 69 65 64 20 6e 61 6d 65 2e 0a    0a 41 54 2d 50 4f 53 20 69 73 20 61 20 6e 61 74  | qualified.name...AT-POS.is.a.nat | 
| 68180 |  75 72 61 6c 20 6e 75 6d 62 65 72 20 69 66 20 77    65 20 6a 75 73 74 20 72 65 61 64 20 61 6e 20 60  | ural.number.if.we.just.read.an.` | 
| 681a0 |  40 27 20 74 6f 6b 65 6e 2c 20 65 6c 73 65 20 6e    69 6c 2e 0a 53 20 69 73 20 74 68 65 20 6e 61 6d  | @'.token,.else.nil..S.is.the.nam | 
| 681c0 |  65 20 6f 72 20 73 74 72 69 6e 67 20 74 68 61 74    20 77 61 73 20 6d 61 74 63 68 65 64 3a 20 20 61  | e.or.string.that.was.matched:..a | 
| 681e0 |  6e 20 69 64 65 6e 74 69 66 69 65 72 2c 20 60 74    68 72 6f 77 27 20 6f 72 20 60 2a 27 2e 0a 4d 45  | n.identifier,.`throw'.or.`*'..ME | 
| 68200 |  4d 42 45 52 2d 54 59 50 45 2d 46 4c 41 47 53 20    69 73 20 61 20 62 69 74 20 73 65 74 20 74 72 61  | MBER-TYPE-FLAGS.is.a.bit.set.tra | 
| 68220 |  63 6b 69 6e 67 20 77 68 65 74 68 65 72 20 77 65    27 72 65 20 61 20 60 2e 27 20 6f 72 20 60 2e 2e  | cking.whether.we're.a.`.'.or.`.. | 
| 68240 |  27 20 63 68 69 6c 64 2e 0a 0a 52 65 74 75 72 6e    73 20 61 20 60 6a 73 32 2d 78 6d 6c 2d 72 65 66  | '.child...Returns.a.`js2-xml-ref | 
| 68260 |  2d 6e 6f 64 65 27 20 69 66 20 69 74 27 73 20 61    6e 20 61 74 74 72 69 62 75 74 65 20 61 63 63 65  | -node'.if.it's.an.attribute.acce | 
| 68280 |  73 73 2c 20 61 20 63 68 69 6c 64 20 6f 66 20 61    20 60 2e 2e 27 0a 6f 70 65 72 61 74 6f 72 2c 20  | ss,.a.child.of.a.`..'.operator,. | 
| 682a0 |  6f 72 20 74 68 65 20 6e 61 6d 65 20 69 73 20 66    6f 6c 6c 6f 77 65 64 20 62 79 20 3a 3a 2e 20 20  | or.the.name.is.followed.by.::... | 
| 682c0 |  46 6f 72 20 61 20 70 6c 61 69 6e 20 6e 61 6d 65    2c 20 72 65 74 75 72 6e 73 20 61 0a 60 6a 73 32  | For.a.plain.name,.returns.a.`js2 | 
| 682e0 |  2d 6e 61 6d 65 2d 6e 6f 64 65 27 2e 20 20 52 65    74 75 72 6e 73 20 61 20 60 6a 73 32 2d 65 72 72  | -name-node'...Returns.a.`js2-err | 
| 68300 |  6f 72 2d 6e 6f 64 65 27 20 66 6f 72 20 6d 61 6c    66 6f 72 6d 65 64 20 58 4d 4c 20 65 78 70 72 65  | or-node'.for.malformed.XML.expre | 
| 68320 |  73 73 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 20    28 28 70 6f 73 20 28 6f 72 20 61 74 2d 70 6f 73  | ssions."...(let.((pos.(or.at-pos | 
| 68340 |  20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f    6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20 20 20  | .(js2-current-token-beg)))...... | 
| 68360 |  20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 0a 20 20 20    20 20 20 20 20 28 6e 61 6d 65 20 28 6a 73 32 2d  | ...colon-pos.........(name.(js2- | 
| 68380 |  63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65    20 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d  | create-name-node.t.(js2-current- | 
| 683a0 |  74 6f 6b 65 6e 2d 74 79 70 65 29 20 73 29 29 0a    20 20 20 20 20 20 20 20 6e 73 20 74 74 20 70 6e  | token-type).s)).........ns.tt.pn | 
| 683c0 |  29 0a 20 20 20 20 28 63 61 74 63 68 20 27 72 65    74 75 72 6e 0a 20 20 20 20 20 20 28 77 68 65 6e  | ).....(catch.'return.......(when | 
| 683e0 |  20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65    6e 20 6a 73 32 2d 43 4f 4c 4f 4e 43 4f 4c 4f 4e  | .(js2-match-token.js2-COLONCOLON | 
| 68400 |  29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20    6e 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20  | ).........(setq.ns.name......... | 
| 68420 |  20 20 20 20 20 20 63 6f 6c 6f 6e 2d 70 6f 73 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ......colon-pos.(js2-current-tok | 
| 68440 |  65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67 65  | en-beg)...............tt.(js2-ge | 
| 68460 |  74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b 65    6e 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e  | t-prop-name-token)).........(con | 
| 68480 |  64 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 68 61    6e 64 6c 65 73 20 6e 61 6d 65 3a 3a 6e 61 6d 65  | d..........;;.handles.name::name | 
| 684a0 |  0a 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 74    20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20 20  | ..........((=.tt.js2-NAME)...... | 
| 684c0 |  20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20    28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65  | .....(setq.name.(js2-create-name | 
| 684e0 |  2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20    20 20 3b 3b 20 68 61 6e 64 6c 65 73 20 6e 61 6d  | -node)))..........;;.handles.nam | 
| 68500 |  65 3a 3a 2a 0a 20 20 20 20 20 20 20 20 20 28 28    3d 20 74 74 20 6a 73 32 2d 4d 55 4c 29 0a 20 20  | e::*..........((=.tt.js2-MUL)... | 
| 68520 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 61    6d 65 20 28 6a 73 32 2d 63 72 65 61 74 65 2d 6e  | ........(setq.name.(js2-create-n | 
| 68540 |  61 6d 65 2d 6e 6f 64 65 20 6e 69 6c 20 6e 69 6c    20 22 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20  | ame-node.nil.nil."*")))......... | 
| 68560 |  20 3b 3b 20 68 61 6e 64 6c 65 73 20 6e 61 6d 65    3a 3a 5b 65 78 70 72 5d 0a 20 20 20 20 20 20 20  | .;;.handles.name::[expr]........ | 
| 68580 |  20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 42 29    0a 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f  | ..((=.tt.js2-LB)...........(thro | 
| 685a0 |  77 20 27 72 65 74 75 72 6e 20 28 6a 73 32 2d 70    61 72 73 65 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65  | w.'return.(js2-parse-xml-elem-re | 
| 685c0 |  66 20 61 74 2d 70 6f 73 20 6e 73 20 63 6f 6c 6f    6e 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20  | f.at-pos.ns.colon-pos)))........ | 
| 685e0 |  20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72  | ..(t...........(js2-report-error | 
| 68600 |  20 22 6d 73 67 2e 6e 6f 2e 6e 61 6d 65 2e 61 66    74 65 72 2e 63 6f 6c 6f 6e 63 6f 6c 6f 6e 22 29  | ."msg.no.name.after.coloncolon") | 
| 68620 |  29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 61    6e 64 20 28 6e 75 6c 6c 20 6e 73 29 20 28 7a 65  | ))).......(if.(and.(null.ns).(ze | 
| 68640 |  72 6f 70 20 6d 65 6d 62 65 72 2d 74 79 70 65 2d    66 6c 61 67 73 29 29 0a 20 20 20 20 20 20 20 20  | rop.member-type-flags))......... | 
| 68660 |  20 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28    70 72 6f 67 31 0a 20 20 20 20 20 20 20 20 20 20  | ..name.........(prog1........... | 
| 68680 |  20 20 28 73 65 74 71 20 70 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61  | ..(setq.pn...................(ma | 
| 686a0 |  6b 65 2d 6a 73 32 2d 78 6d 6c 2d 70 72 6f 70 2d    72 65 66 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f  | ke-js2-xml-prop-ref-node.:pos.po | 
| 686c0 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s............................... | 
| 686e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 6c 65 6e 20 28 2d 20 28 6a 73 32 2d 6e 6f 64  | ................:len.(-.(js2-nod | 
| 68700 |  65 2d 65 6e 64 20 6e 61 6d 65 29 20 70 6f 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-end.name).pos)................ | 
| 68720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 68740 |  61 74 2d 70 6f 73 20 61 74 2d 70 6f 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | at-pos.at-pos................... | 
| 68760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6c  | ............................:col | 
| 68780 |  6f 6e 2d 70 6f 73 20 63 6f 6c 6f 6e 2d 70 6f 73    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | on-pos.colon-pos................ | 
| 687a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a  | ...............................: | 
| 687c0 |  70 72 6f 70 6e 61 6d 65 20 6e 61 6d 65 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e  | propname.name))...........(js2-n | 
| 687e0 |  6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e    20 70 6e 20 6e 61 6d 65 29 29 29 29 29 29 0a 0a  | ode-add-children.pn.name)))))).. | 
| 68800 |  28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65    2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 20 28 61  | (defun.js2-parse-xml-elem-ref.(a | 
| 68820 |  74 2d 70 6f 73 20 26 6f 70 74 69 6f 6e 61 6c 20    6e 61 6d 65 73 70 61 63 65 20 63 6f 6c 6f 6e 2d  | t-pos.&optional.namespace.colon- | 
| 68840 |  70 6f 73 29 0a 20 20 22 50 61 72 73 65 20 74 68    65 20 5b 65 78 70 72 5d 20 70 6f 72 74 69 6f 6e  | pos)..."Parse.the.[expr].portion | 
| 68860 |  20 6f 66 20 61 6e 20 78 6d 6c 20 65 6c 65 6d 65    6e 74 20 72 65 66 65 72 65 6e 63 65 2e 0a 46 6f  | .of.an.xml.element.reference..Fo | 
| 68880 |  72 20 69 6e 73 74 61 6e 63 65 2c 20 40 5b 65 78    70 72 5d 2c 20 40 2a 3a 3a 5b 65 78 70 72 5d 2c  | r.instance,.@[expr],.@*::[expr], | 
| 688a0 |  20 6f 72 20 6e 73 3a 3a 5b 65 78 70 72 5d 2e 22    0a 20 20 28 6c 65 74 2a 20 28 28 6c 62 20 28 6a  | .or.ns::[expr]."...(let*.((lb.(j | 
| 688c0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20  | s2-current-token-beg)).......... | 
| 688e0 |  28 70 6f 73 20 28 6f 72 20 61 74 2d 70 6f 73 20    6c 62 29 29 0a 20 20 20 20 20 20 20 20 20 72 62  | (pos.(or.at-pos.lb))..........rb | 
| 68900 |  0a 20 20 20 20 20 20 20 20 20 28 65 78 70 72 20    28 6a 73 32 2d 70 61 72 73 65 2d 65 78 70 72 29  | ..........(expr.(js2-parse-expr) | 
| 68920 |  29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20    28 6a 73 32 2d 6e 6f 64 65 2d 65 6e 64 20 65 78  | )..........(end.(js2-node-end.ex | 
| 68940 |  70 72 29 29 0a 20 20 20 20 20 20 20 20 20 70 6e    29 0a 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d  | pr))..........pn).....(if.(js2-m | 
| 68960 |  75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 42    20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b 65 74  | ust-match.js2-RB."msg.no.bracket | 
| 68980 |  2e 69 6e 64 65 78 22 29 0a 20 20 20 20 20 20 20    20 28 73 65 74 71 20 72 62 20 28 6a 73 32 2d 63  | .index").........(setq.rb.(js2-c | 
| 689a0 |  75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | urrent-token-beg)............... | 
| 689c0 |  65 6e 64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20  | end.(js2-current-token-end)))... | 
| 689e0 |  20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 20    20 28 73 65 74 71 20 70 6e 0a 20 20 20 20 20 20  | ..(prog1.........(setq.pn....... | 
| 68a00 |  20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73    32 2d 78 6d 6c 2d 65 6c 65 6d 2d 72 65 66 2d 6e  | ........(make-js2-xml-elem-ref-n | 
| 68a20 |  6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ode.:pos.pos.................... | 
| 68a40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65  | .......................:len.(-.e | 
| 68a60 |  6e 64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nd.pos)......................... | 
| 68a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d  | ..................:namespace.nam | 
| 68aa0 |  65 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | espace.......................... | 
| 68ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 63 6f 6c 6f 6e 2d 70 6f 73 20 63 6f 6c 6f  | .................:colon-pos.colo | 
| 68ae0 |  6e 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-pos........................... | 
| 68b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 61 74 2d 70 6f 73 20 61 74 2d 70 6f 73 0a 20  | ................:at-pos.at-pos.. | 
| 68b20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 68b40 |  20 20 20 20 20 20 20 20 20 3a 65 78 70 72 20 65    78 70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .........:expr.expr............. | 
| 68b60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c  | ..............................:l | 
| 68b80 |  62 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20 6c 62    20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 20  | b.(js2-relpos.lb.pos)........... | 
| 68ba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 68bc0 |  3a 72 62 20 28 6a 73 32 2d 72 65 6c 70 6f 73 20    72 62 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20  | :rb.(js2-relpos.rb.pos)))....... | 
| 68be0 |  28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68    69 6c 64 72 65 6e 20 70 6e 20 6e 61 6d 65 73 70  | (js2-node-add-children.pn.namesp | 
| 68c00 |  61 63 65 20 65 78 70 72 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 64  | ace.expr))))..(defun.js2-parse-d | 
| 68c20 |  65 73 74 72 75 63 74 2d 70 72 69 6d 61 72 79 2d    65 78 70 72 20 28 29 0a 20 20 28 6c 65 74 20 28  | estruct-primary-expr.()...(let.( | 
| 68c40 |  28 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72    75 63 74 75 72 69 6e 67 20 74 29 29 0a 20 20 20  | (js2-is-in-destructuring.t)).... | 
| 68c60 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 69 6d    61 72 79 2d 65 78 70 72 29 29 29 0a 0a 28 64 65  | .(js2-parse-primary-expr)))..(de | 
| 68c80 |  66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70 72    69 6d 61 72 79 2d 65 78 70 72 20 28 29 0a 20 20  | fun.js2-parse-primary-expr.()... | 
| 68ca0 |  22 50 61 72 73 65 20 61 20 6c 69 74 65 72 61 6c    20 28 6c 65 61 66 29 20 65 78 70 72 65 73 73 69  | "Parse.a.literal.(leaf).expressi | 
| 68cc0 |  6f 6e 20 6f 66 20 73 6f 6d 65 20 73 6f 72 74 2e    0a 49 6e 63 6c 75 64 65 73 20 63 6f 6d 70 6c 65  | on.of.some.sort..Includes.comple | 
| 68ce0 |  78 20 6c 69 74 65 72 61 6c 73 20 73 75 63 68 20    61 73 20 66 75 6e 63 74 69 6f 6e 73 2c 20 6f 62  | x.literals.such.as.functions,.ob | 
| 68d00 |  6a 65 63 74 2d 6c 69 74 65 72 61 6c 73 2c 0a 61    72 72 61 79 2d 6c 69 74 65 72 61 6c 73 2c 20 61  | ject-literals,.array-literals,.a | 
| 68d20 |  72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69    6f 6e 73 20 61 6e 64 20 72 65 67 75 6c 61 72 20  | rray.comprehensions.and.regular. | 
| 68d40 |  65 78 70 72 65 73 73 69 6f 6e 73 2e 22 0a 20 20    28 6c 65 74 20 28 74 74 20 6e 6f 64 65 20 61 73  | expressions."...(let.(tt.node.as | 
| 68d60 |  79 6e 63 2d 70 6f 73 29 0a 20 20 20 20 28 73 65    74 71 20 74 74 20 28 6a 73 32 2d 63 75 72 72 65  | ync-pos).....(setq.tt.(js2-curre | 
| 68d80 |  6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29 29 0a    20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28  | nt-token-type)).....(cond......( | 
| 68da0 |  28 3d 20 74 74 20 6a 73 32 2d 43 4c 41 53 53 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73  | (=.tt.js2-CLASS).......(js2-pars | 
| 68dc0 |  65 2d 63 6c 61 73 73 2d 65 78 70 72 29 29 0a 20    20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 46  | e-class-expr))......((=.tt.js2-F | 
| 68de0 |  55 4e 43 54 49 4f 4e 29 0a 20 20 20 20 20 20 28    6a 73 32 2d 70 61 72 73 65 2d 66 75 6e 63 74 69  | UNCTION).......(js2-parse-functi | 
| 68e00 |  6f 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 28    28 73 65 74 71 20 61 73 79 6e 63 2d 70 6f 73 20  | on-expr))......((setq.async-pos. | 
| 68e20 |  28 6a 73 32 2d 6d 61 74 63 68 2d 61 73 79 6e 63    2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20  | (js2-match-async-function))..... | 
| 68e40 |  20 20 28 6a 73 32 2d 70 61 72 73 65 2d 66 75 6e    63 74 69 6f 6e 2d 65 78 70 72 20 61 73 79 6e 63  | ..(js2-parse-function-expr.async | 
| 68e60 |  2d 70 6f 73 29 29 0a 20 20 20 20 20 28 28 3d 20    74 74 20 6a 73 32 2d 4c 42 29 0a 20 20 20 20 20  | -pos))......((=.tt.js2-LB)...... | 
| 68e80 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 61 72 72 61    79 2d 63 6f 6d 70 2d 6f 72 2d 6c 69 74 65 72 61  | .(js2-parse-array-comp-or-litera | 
| 68ea0 |  6c 29 29 0a 20 20 20 20 20 28 28 3d 20 74 74 20    6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 28 6a  | l))......((=.tt.js2-LC).......(j | 
| 68ec0 |  73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d    6c 69 74 65 72 61 6c 29 29 0a 20 20 20 20 20 28  | s2-parse-object-literal))......( | 
| 68ee0 |  28 3d 20 74 74 20 6a 73 32 2d 4c 45 54 29 0a 20    20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d  | (=.tt.js2-LET).......(js2-parse- | 
| 68f00 |  6c 65 74 20 28 6a 73 32 2d 63 75 72 72 65 6e 74    2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20  | let.(js2-current-token-beg)))... | 
| 68f20 |  20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4c 50    29 0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72  | ...((=.tt.js2-LP).......(js2-par | 
| 68f40 |  73 65 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6f 72    2d 67 65 6e 65 72 61 74 6f 72 2d 63 6f 6d 70 29  | se-paren-expr-or-generator-comp) | 
| 68f60 |  29 0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73    32 2d 58 4d 4c 41 54 54 52 29 0a 20 20 20 20 20  | )......((=.tt.js2-XMLATTR)...... | 
| 68f80 |  20 28 6a 73 32 2d 6d 75 73 74 2d 68 61 76 65 2d    78 6d 6c 29 0a 20 20 20 20 20 20 28 6a 73 32 2d  | .(js2-must-have-xml).......(js2- | 
| 68fa0 |  70 61 72 73 65 2d 61 74 74 72 69 62 75 74 65 2d    61 63 63 65 73 73 29 29 0a 20 20 20 20 20 28 28  | parse-attribute-access))......(( | 
| 68fc0 |  3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20    20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d  | =.tt.js2-NAME).......(js2-parse- | 
| 68fe0 |  6e 61 6d 65 20 74 74 29 29 0a 20 20 20 20 20 28    28 3d 20 74 74 20 6a 73 32 2d 49 4d 50 4f 52 54  | name.tt))......((=.tt.js2-IMPORT | 
| 69000 |  29 0a 20 20 20 20 20 20 28 6a 73 32 2d 63 72 65    61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 6e 69  | ).......(js2-create-name-node.ni | 
| 69020 |  6c 20 6e 69 6c 20 22 69 6d 70 6f 72 74 22 29 29    0a 20 20 20 20 20 28 28 3d 20 74 74 20 6a 73 32  | l.nil."import"))......((=.tt.js2 | 
| 69040 |  2d 4e 55 4d 42 45 52 29 0a 20 20 20 20 20 20 28    73 65 74 71 20 6e 6f 64 65 20 28 6d 61 6b 65 2d  | -NUMBER).......(setq.node.(make- | 
| 69060 |  6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61  | js2-number-node)).......(when.(a | 
| 69080 |  6e 64 20 6a 73 32 2d 69 6e 2d 75 73 65 2d 73 74    72 69 63 74 2d 64 69 72 65 63 74 69 76 65 0a 20  | nd.js2-in-use-strict-directive.. | 
| 690a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3d 20 28 6a 73 32 2d 6e 75 6d 62 65 72 2d 6e  | ................(=.(js2-number-n | 
| 690c0 |  6f 64 65 2d 6e 75 6d 2d 62 61 73 65 20 6e 6f 64    65 29 20 38 29 0a 20 20 20 20 20 20 20 20 20 20  | ode-num-base.node).8)........... | 
| 690e0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 6e 75 6d 62    65 72 2d 6e 6f 64 65 2d 6c 65 67 61 63 79 2d 6f  | .......(js2-number-node-legacy-o | 
| 69100 |  63 74 61 6c 2d 70 20 6e 6f 64 65 29 29 0a 20 20    20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72  | ctal-p.node)).........(js2-repor | 
| 69120 |  74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e    6f 63 74 61 6c 2e 73 74 72 69 63 74 22 29 29 0a  | t-error."msg.no.octal.strict")). | 
| 69140 |  20 20 20 20 20 20 6e 6f 64 65 29 0a 20 20 20 20    20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d  | ......node)......((or.(=.tt.js2- | 
| 69160 |  53 54 52 49 4e 47 29 20 28 3d 20 74 74 20 6a 73    32 2d 4e 4f 5f 53 55 42 53 5f 54 45 4d 50 4c 41  | STRING).(=.tt.js2-NO_SUBS_TEMPLA | 
| 69180 |  54 45 29 29 0a 20 20 20 20 20 20 28 6d 61 6b 65    2d 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65  | TE)).......(make-js2-string-node | 
| 691a0 |  20 3a 74 79 70 65 20 74 74 29 29 0a 20 20 20 20    20 28 28 3d 20 74 74 20 6a 73 32 2d 54 45 4d 50  | .:type.tt))......((=.tt.js2-TEMP | 
| 691c0 |  4c 41 54 45 5f 48 45 41 44 29 0a 20 20 20 20 20    20 28 6a 73 32 2d 70 61 72 73 65 2d 74 65 6d 70  | LATE_HEAD).......(js2-parse-temp | 
| 691e0 |  6c 61 74 65 2d 6c 69 74 65 72 61 6c 29 29 0a 20    20 20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a  | late-literal))......((or.(=.tt.j | 
| 69200 |  73 32 2d 44 49 56 29 20 28 3d 20 74 74 20 6a 73    32 2d 41 53 53 49 47 4e 5f 44 49 56 29 29 0a 20  | s2-DIV).(=.tt.js2-ASSIGN_DIV)).. | 
| 69220 |  20 20 20 20 20 3b 3b 20 47 6f 74 20 2f 20 6f 72    20 2f 3d 20 77 68 69 63 68 20 69 6e 20 74 68 69  | .....;;.Got./.or./=.which.in.thi | 
| 69240 |  73 20 63 6f 6e 74 65 78 74 20 6d 65 61 6e 73 20    61 20 72 65 67 65 78 70 20 6c 69 74 65 72 61 6c  | s.context.means.a.regexp.literal | 
| 69260 |  0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70    78 2d 70 6f 73 20 28 6a 73 32 2d 63 75 72 72 65  | .......(let*.((px-pos.(js2-curre | 
| 69280 |  6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 61  | nt-token-beg))..............(fla | 
| 692a0 |  67 73 20 28 6a 73 32 2d 72 65 61 64 2d 72 65 67    65 78 70 20 74 74 20 70 78 2d 70 6f 73 29 29 0a  | gs.(js2-read-regexp.tt.px-pos)). | 
| 692c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e    64 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | .............(end.(js2-current-t | 
| 692e0 |  6f 6b 65 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20    20 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20  | oken-end))).........(prog1...... | 
| 69300 |  20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32    2d 72 65 67 65 78 70 2d 6e 6f 64 65 20 3a 70 6f  | .......(make-js2-regexp-node.:po | 
| 69320 |  73 20 70 78 2d 70 6f 73 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.px-pos........................ | 
| 69340 |  20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20    28 2d 20 65 6e 64 20 70 78 2d 70 6f 73 29 0a 20  | ...........:len.(-.end.px-pos).. | 
| 69360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 69380 |  20 3a 76 61 6c 75 65 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e  | .:value.(js2-current-token-strin | 
| 693a0 |  67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | g).............................. | 
| 693c0 |  20 20 20 20 20 3a 66 6c 61 67 73 20 66 6c 61 67    73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73  | .....:flags.flags)...........(js | 
| 693e0 |  32 2d 73 65 74 2d 66 61 63 65 20 70 78 2d 70 6f    73 20 65 6e 64 20 27 66 6f 6e 74 2d 6c 6f 63 6b  | 2-set-face.px-pos.end.'font-lock | 
| 69400 |  2d 73 74 72 69 6e 67 2d 66 61 63 65 20 27 72 65    63 6f 72 64 29 29 29 29 0a 20 20 20 20 20 28 28  | -string-face.'record))))......(( | 
| 69420 |  6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4c    4c 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20  | or.(=.tt.js2-NULL)...........(=. | 
| 69440 |  74 74 20 6a 73 32 2d 54 48 49 53 29 0a 20 20 20    20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32  | tt.js2-THIS)...........(=.tt.js2 | 
| 69460 |  2d 53 55 50 45 52 29 0a 20 20 20 20 20 20 20 20    20 20 28 3d 20 74 74 20 6a 73 32 2d 46 41 4c 53  | -SUPER)...........(=.tt.js2-FALS | 
| 69480 |  45 29 0a 20 20 20 20 20 20 20 20 20 20 28 3d 20    74 74 20 6a 73 32 2d 54 52 55 45 29 29 0a 20 20  | E)...........(=.tt.js2-TRUE))... | 
| 694a0 |  20 20 20 20 28 6d 61 6b 65 2d 6a 73 32 2d 6b 65    79 77 6f 72 64 2d 6e 6f 64 65 20 3a 74 79 70 65  | ....(make-js2-keyword-node.:type | 
| 694c0 |  20 74 74 29 29 0a 20 20 20 20 20 28 28 3d 20 74    74 20 6a 73 32 2d 54 52 49 50 4c 45 44 4f 54 29  | .tt))......((=.tt.js2-TRIPLEDOT) | 
| 694e0 |  0a 20 20 20 20 20 20 3b 3b 20 4c 69 6b 65 77 69    73 65 2c 20 6f 6e 6c 79 20 76 61 6c 69 64 20 69  | .......;;.Likewise,.only.valid.i | 
| 69500 |  6e 20 61 6e 20 61 72 72 6f 77 20 66 75 6e 63 74    69 6f 6e 20 77 69 74 68 20 61 20 72 65 73 74 20  | n.an.arrow.function.with.a.rest. | 
| 69520 |  70 61 72 61 6d 2e 0a 20 20 20 20 20 20 28 69 66    20 28 61 6e 64 20 28 6a 73 32 2d 6d 61 74 63 68  | param........(if.(and.(js2-match | 
| 69540 |  2d 74 6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -token.js2-NAME)................ | 
| 69560 |  28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e    20 6a 73 32 2d 52 50 29 0a 20 20 20 20 20 20 20  | (js2-match-token.js2-RP)........ | 
| 69580 |  20 20 20 20 20 20 20 20 28 65 71 20 28 6a 73 32    2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20 6a 73 32  | ........(eq.(js2-peek-token).js2 | 
| 695a0 |  2d 41 52 52 4f 57 29 29 0a 20 20 20 20 20 20 20    20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20  | -ARROW))...........(progn....... | 
| 695c0 |  20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65 74    2d 74 6f 6b 65 6e 29 20 20 3b 20 50 75 74 20 62  | ......(js2-unget-token)..;.Put.b | 
| 695e0 |  61 63 6b 20 74 68 65 20 72 69 67 68 74 20 70 61    72 65 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20  | ack.the.right.paren............. | 
| 69600 |  20 3b 3b 20 53 65 65 20 74 68 65 20 70 72 65 76    69 6f 75 73 20 63 61 73 65 2e 0a 20 20 20 20 20  | .;;.See.the.previous.case....... | 
| 69620 |  20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73 32    2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 20 3a 74  | .......(make-js2-keyword-node.:t | 
| 69640 |  79 70 65 20 6a 73 32 2d 4e 55 4c 4c 29 29 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | ype.js2-NULL)).........(js2-repo | 
| 69660 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 73 79    6e 74 61 78 22 29 0a 20 20 20 20 20 20 20 20 28  | rt-error."msg.syntax").........( | 
| 69680 |  6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e    6f 64 65 29 29 29 0a 20 20 20 20 20 28 28 3d 20  | make-js2-error-node)))......((=. | 
| 696a0 |  74 74 20 6a 73 32 2d 52 45 53 45 52 56 45 44 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | tt.js2-RESERVED).......(js2-repo | 
| 696c0 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 72 65    73 65 72 76 65 64 2e 69 64 22 29 0a 20 20 20 20  | rt-error."msg.reserved.id")..... | 
| 696e0 |  20 20 28 6d 61 6b 65 2d 6a 73 32 2d 6e 61 6d 65    2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 28 28 3d  | ..(make-js2-name-node))......((= | 
| 69700 |  20 74 74 20 6a 73 32 2d 45 52 52 4f 52 29 0a 20    20 20 20 20 20 3b 3b 20 74 68 65 20 73 63 61 6e  | .tt.js2-ERROR).......;;.the.scan | 
| 69720 |  6e 65 72 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74    73 20 73 75 62 72 6f 75 74 69 6e 65 73 20 72 65  | ner.or.one.of.its.subroutines.re | 
| 69740 |  70 6f 72 74 65 64 20 74 68 65 20 65 72 72 6f 72    2e 0a 20 20 20 20 20 20 28 6d 61 6b 65 2d 6a 73  | ported.the.error........(make-js | 
| 69760 |  32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 0a 20    20 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 45  | 2-error-node))......((=.tt.js2-E | 
| 69780 |  4f 46 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20    28 28 70 78 2d 70 6f 73 20 28 70 6f 69 6e 74 2d  | OF).......(let*.((px-pos.(point- | 
| 697a0 |  61 74 2d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 65 6e 20 28 2d 20 6a 73  | at-bol))..............(len.(-.js | 
| 697c0 |  32 2d 74 73 2d 63 75 72 73 6f 72 20 70 78 2d 70    6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a  | 2-ts-cursor.px-pos))).........(j | 
| 697e0 |  73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20    22 6d 73 67 2e 75 6e 65 78 70 65 63 74 65 64 2e  | s2-report-error."msg.unexpected. | 
| 69800 |  65 6f 66 22 20 6e 69 6c 20 70 78 2d 70 6f 73 20    6c 65 6e 29 29 0a 20 20 20 20 20 20 28 6d 61 6b  | eof".nil.px-pos.len)).......(mak | 
| 69820 |  65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e 6f 64 65    20 3a 70 6f 73 20 28 31 2d 20 6a 73 32 2d 74 73  | e-js2-error-node.:pos.(1-.js2-ts | 
| 69840 |  2d 63 75 72 73 6f 72 29 29 29 0a 20 20 20 20 20    28 74 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65  | -cursor)))......(t.......(js2-re | 
| 69860 |  70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e    73 79 6e 74 61 78 22 29 0a 20 20 20 20 20 20 28  | port-error."msg.syntax").......( | 
| 69880 |  6d 61 6b 65 2d 6a 73 32 2d 65 72 72 6f 72 2d 6e    6f 64 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e  | make-js2-error-node)))))..(defun | 
| 698a0 |  20 6a 73 32 2d 70 61 72 73 65 2d 74 65 6d 70 6c    61 74 65 2d 6c 69 74 65 72 61 6c 20 28 29 0a 20  | .js2-parse-template-literal.().. | 
| 698c0 |  20 28 6c 65 74 20 28 28 62 65 67 20 28 6a 73 32    2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62  | .(let.((beg.(js2-current-token-b | 
| 698e0 |  65 67 29 29 0a 20 20 20 20 20 20 20 20 28 6b 69    64 73 20 28 6c 69 73 74 20 28 6d 61 6b 65 2d 6a  | eg)).........(kids.(list.(make-j | 
| 69900 |  73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a    74 79 70 65 20 6a 73 32 2d 54 45 4d 50 4c 41 54  | s2-string-node.:type.js2-TEMPLAT | 
| 69920 |  45 5f 48 45 41 44 29 29 29 0a 20 20 20 20 20 20    20 20 28 74 74 20 6a 73 32 2d 54 45 4d 50 4c 41  | E_HEAD))).........(tt.js2-TEMPLA | 
| 69940 |  54 45 5f 48 45 41 44 29 29 0a 20 20 20 20 28 77    68 69 6c 65 20 28 65 71 20 74 74 20 6a 73 32 2d  | TE_HEAD)).....(while.(eq.tt.js2- | 
| 69960 |  54 45 4d 50 4c 41 54 45 5f 48 45 41 44 29 0a 20    20 20 20 20 20 28 70 75 73 68 20 28 6a 73 32 2d  | TEMPLATE_HEAD).......(push.(js2- | 
| 69980 |  70 61 72 73 65 2d 65 78 70 72 29 20 6b 69 64 73    29 0a 20 20 20 20 20 20 28 6a 73 32 2d 6d 75 73  | parse-expr).kids).......(js2-mus | 
| 699a0 |  74 2d 6d 61 74 63 68 20 6a 73 32 2d 52 43 20 22    6d 73 67 2e 73 79 6e 74 61 78 22 29 0a 20 20 20  | t-match.js2-RC."msg.syntax").... | 
| 699c0 |  20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73 32    2d 67 65 74 2d 74 6f 6b 65 6e 20 27 54 45 4d 50  | ...(setq.tt.(js2-get-token.'TEMP | 
| 699e0 |  4c 41 54 45 5f 54 41 49 4c 29 29 0a 20 20 20 20    20 20 28 70 75 73 68 20 28 6d 61 6b 65 2d 6a 73  | LATE_TAIL)).......(push.(make-js | 
| 69a00 |  32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 20 3a 74    79 70 65 20 74 74 29 20 6b 69 64 73 29 29 0a 20  | 2-string-node.:type.tt).kids)).. | 
| 69a20 |  20 20 20 28 73 65 74 71 20 6b 69 64 73 20 28 6e    72 65 76 65 72 73 65 20 6b 69 64 73 29 29 0a 20  | ...(setq.kids.(nreverse.kids)).. | 
| 69a40 |  20 20 20 28 6c 65 74 20 28 28 74 70 6c 20 28 6d    61 6b 65 2d 6a 73 32 2d 74 65 6d 70 6c 61 74 65  | ...(let.((tpl.(make-js2-template | 
| 69a60 |  2d 6e 6f 64 65 20 3a 70 6f 73 20 62 65 67 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -node.:pos.beg.................. | 
| 69a80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 28 6a  | ......................:len.(-.(j | 
| 69aa0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 65 6e 64 29 20 62 65 67 29 0a 20 20 20 20 20  | s2-current-token-end).beg)...... | 
| 69ac0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 69ae0 |  20 20 3a 6b 69 64 73 20 6b 69 64 73 29 29 29 0a    20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 6a  | ..:kids.kids))).......(apply.#'j | 
| 69b00 |  73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68 69 6c    64 72 65 6e 20 74 70 6c 20 6b 69 64 73 29 0a 20  | s2-node-add-children.tpl.kids).. | 
| 69b20 |  20 20 20 20 20 74 70 6c 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 6e 61  | .....tpl)))..(defun.js2-parse-na | 
| 69b40 |  6d 65 20 28 5f 74 74 29 0a 20 20 28 6c 65 74 20    28 28 6e 61 6d 65 20 28 6a 73 32 2d 63 75 72 72  | me.(_tt)...(let.((name.(js2-curr | 
| 69b60 |  65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e 67    29 29 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 29  | ent-token-string)).........node) | 
| 69b80 |  0a 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20    28 69 66 20 6a 73 32 2d 63 6f 6d 70 69 6c 65 72  | .....(setq.node.(if.js2-compiler | 
| 69ba0 |  2d 78 6d 6c 2d 61 76 61 69 6c 61 62 6c 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -xml-available.................. | 
| 69bc0 |  20 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 72 6f    70 65 72 74 79 2d 6e 61 6d 65 20 6e 69 6c 20 6e  | ..(js2-parse-property-name.nil.n | 
| 69be0 |  61 6d 65 20 30 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 63 72 65  | ame.0)..................(js2-cre | 
| 69c00 |  61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 20 27 63    68 65 63 6b 2d 61 63 74 69 76 61 74 69 6f 6e 20  | ate-name-node.'check-activation. | 
| 69c20 |  6e 69 6c 20 6e 61 6d 65 29 29 29 0a 20 20 20 20    28 69 66 20 28 61 6e 64 20 6a 73 32 2d 68 69 67  | nil.name))).....(if.(and.js2-hig | 
| 69c40 |  68 6c 69 67 68 74 2d 65 78 74 65 72 6e 61 6c 2d    76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 20 20  | hlight-external-variables....... | 
| 69c60 |  20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a    20 57 68 61 74 27 73 20 54 52 54 20 66 6f 72 20  | .......;;.FIXME:.What's.TRT.for. | 
| 69c80 |  60 6a 73 32 2d 78 6d 6c 2d 72 65 66 2d 6e 6f 64    65 27 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20  | `js2-xml-ref-node'?............. | 
| 69ca0 |  20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d    70 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20  | .(js2-name-node-p.node))........ | 
| 69cc0 |  20 28 6a 73 32 2d 72 65 63 6f 72 64 2d 6e 61 6d    65 2d 6e 6f 64 65 20 6e 6f 64 65 29 29 0a 20 20  | .(js2-record-name-node.node))... | 
| 69ce0 |  20 20 6e 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d  | ..node))..(defun.js2-parse-warn- | 
| 69d00 |  74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61 20 28    6d 73 67 20 70 6f 73 20 65 6c 65 6d 73 20 63 6f  | trailing-comma.(msg.pos.elems.co | 
| 69d20 |  6d 6d 61 2d 70 6f 73 29 0a 20 20 28 6a 73 32 2d    61 64 64 2d 73 74 72 69 63 74 2d 77 61 72 6e 69  | mma-pos)...(js2-add-strict-warni | 
| 69d40 |  6e 67 0a 20 20 20 6d 73 67 20 6e 69 6c 0a 20 20    20 3b 3b 20 62 61 63 6b 20 75 70 20 66 72 6f 6d  | ng....msg.nil....;;.back.up.from | 
| 69d60 |  20 63 6f 6d 6d 61 20 74 6f 20 62 65 67 69 6e 6e    69 6e 67 20 6f 66 20 6c 69 6e 65 20 6f 72 20 61  | .comma.to.beginning.of.line.or.a | 
| 69d80 |  72 72 61 79 2f 6f 62 6a 6c 69 74 0a 20 20 20 28    6d 61 78 20 28 69 66 20 65 6c 65 6d 73 0a 20 20  | rray/objlit....(max.(if.elems... | 
| 69da0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e    6f 64 65 2d 70 6f 73 20 28 63 61 72 20 65 6c 65  | ..........(js2-node-pos.(car.ele | 
| 69dc0 |  6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 70    6f 73 29 0a 20 20 20 20 20 20 20 20 28 73 61 76  | ms))...........pos).........(sav | 
| 69de0 |  65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20    20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72  | e-excursion...........(goto-char | 
| 69e00 |  20 63 6f 6d 6d 61 2d 70 6f 73 29 0a 20 20 20 20    20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69  | .comma-pos)...........(back-to-i | 
| 69e20 |  6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20    20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a  | ndentation)...........(point))). | 
| 69e40 |  20 20 20 63 6f 6d 6d 61 2d 70 6f 73 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65  | ...comma-pos))..(defun.js2-parse | 
| 69e60 |  2d 61 72 72 61 79 2d 63 6f 6d 70 2d 6f 72 2d 6c    69 74 65 72 61 6c 20 28 29 0a 20 20 28 6c 65 74  | -array-comp-or-literal.()...(let | 
| 69e80 |  20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75 72 72    65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 29 29  | .((pos.(js2-current-token-beg))) | 
| 69ea0 |  0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e    3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76  | .....(if.(and.(>=.js2-language-v | 
| 69ec0 |  65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 61  | ersion.200)..............(js2-ma | 
| 69ee0 |  74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 46 4f    52 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | tch-token.js2-FOR)).........(js2 | 
| 69f00 |  2d 70 61 72 73 65 2d 61 72 72 61 79 2d 63 6f 6d    70 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6a 73  | -parse-array-comp.pos).......(js | 
| 69f20 |  32 2d 70 61 72 73 65 2d 61 72 72 61 79 2d 6c 69    74 65 72 61 6c 20 70 6f 73 29 29 29 29 0a 0a 28  | 2-parse-array-literal.pos))))..( | 
| 69f40 |  64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d    61 72 72 61 79 2d 6c 69 74 65 72 61 6c 20 28 70  | defun.js2-parse-array-literal.(p | 
| 69f60 |  6f 73 29 0a 20 20 28 6c 65 74 20 28 28 61 66 74    65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d 6d 61 20 74  | os)...(let.((after-lb-or-comma.t | 
| 69f80 |  29 0a 20 20 20 20 20 20 20 20 61 66 74 65 72 2d    63 6f 6d 6d 61 20 74 74 20 65 6c 65 6d 73 20 70  | ).........after-comma.tt.elems.p | 
| 69fa0 |  6e 20 77 61 73 2d 72 65 73 74 0a 20 20 20 20 20    20 20 20 28 63 6f 6e 74 69 6e 75 65 20 74 29 29  | n.was-rest.........(continue.t)) | 
| 69fc0 |  0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32    2d 69 73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75  | .....(unless.js2-is-in-destructu | 
| 69fe0 |  72 69 6e 67 0a 20 20 20 20 20 20 28 6a 73 32 2d    70 75 73 68 2d 73 63 6f 70 65 20 28 6d 61 6b 65  | ring.......(js2-push-scope.(make | 
| 6a000 |  2d 6a 73 32 2d 73 63 6f 70 65 29 29 29 20 3b 20    66 6f 72 20 74 68 65 20 6c 65 67 61 63 79 20 61  | -js2-scope))).;.for.the.legacy.a | 
| 6a020 |  72 72 61 79 20 63 6f 6d 70 0a 20 20 20 20 28 77    68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a 20 20  | rray.comp.....(while.continue... | 
| 6a040 |  20 20 20 20 28 73 65 74 71 20 74 74 20 28 6a 73    32 2d 67 65 74 2d 74 6f 6b 65 6e 29 29 0a 20 20  | ....(setq.tt.(js2-get-token))... | 
| 6a060 |  20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20    20 3b 3b 20 65 6e 64 20 6f 66 20 61 72 72 61 79  | ....(cond........;;.end.of.array | 
| 6a080 |  0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 3d 20    74 74 20 6a 73 32 2d 52 42 29 0a 20 20 20 20 20  | ........((or.(=.tt.js2-RB)...... | 
| 6a0a0 |  20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32    2d 45 4f 46 29 29 20 20 3b 20 70 72 65 76 65 6e  | .......(=.tt.js2-EOF))..;.preven | 
| 6a0c0 |  74 20 69 6e 66 69 6e 69 74 65 20 6c 6f 6f 70 0a    20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 74  | t.infinite.loop.........(if.(=.t | 
| 6a0e0 |  74 20 6a 73 32 2d 45 4f 46 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | t.js2-EOF).............(js2-repo | 
| 6a100 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f    2e 62 72 61 63 6b 65 74 2e 61 72 67 22 20 6e 69  | rt-error."msg.no.bracket.arg".ni | 
| 6a120 |  6c 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 28 61 6e 64 20 61 66 74 65 72  | l.pos)).........(when.(and.after | 
| 6a140 |  2d 63 6f 6d 6d 61 20 28 3c 20 6a 73 32 2d 6c 61    6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 31  | -comma.(<.js2-language-version.1 | 
| 6a160 |  37 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 70 61 72 73 65 2d 77 61 72 6e 2d 74  | 70))...........(js2-parse-warn-t | 
| 6a180 |  72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61 20 22 6d    73 67 2e 61 72 72 61 79 2e 74 72 61 69 6c 69 6e  | railing-comma."msg.array.trailin | 
| 6a1a0 |  67 2e 63 6f 6d 6d 61 22 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | g.comma"........................ | 
| 6a1c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 70 6f 73 20 28 72 65 6d 6f 76 65 20 6e 69  | ..................pos.(remove.ni | 
| 6a1e0 |  6c 20 65 6c 65 6d 73 29 20 61 66 74 65 72 2d 63    6f 6d 6d 61 29 29 0a 20 20 20 20 20 20 20 20 28  | l.elems).after-comma)).........( | 
| 6a200 |  73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69    6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | setq.continue.nil............... | 
| 6a220 |  70 6e 20 28 6d 61 6b 65 2d 6a 73 32 2d 61 72 72    61 79 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73  | pn.(make-js2-array-node.:pos.pos | 
| 6a240 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6a260 |  20 20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 6a    73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73  | .......:len.(-.js2-ts-cursor.pos | 
| 6a280 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 6a2a0 |  20 20 20 20 20 20 20 20 3a 65 6c 65 6d 73 20 28    6e 72 65 76 65 72 73 65 20 65 6c 65 6d 73 29 29  | ........:elems.(nreverse.elems)) | 
| 6a2c0 |  29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79    20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d  | ).........(apply.#'js2-node-add- | 
| 6a2e0 |  63 68 69 6c 64 72 65 6e 20 70 6e 20 28 6a 73 32    2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65 6c 65 6d  | children.pn.(js2-array-node-elem | 
| 6a300 |  73 20 70 6e 29 29 29 0a 20 20 20 20 20 20 20 3b    3b 20 61 6e 79 74 68 69 6e 67 20 61 66 74 65 72  | s.pn)))........;;.anything.after | 
| 6a320 |  20 72 65 73 74 20 65 6c 65 6d 65 6e 74 20 28 2e    2e 2e 66 6f 6f 29 0a 20 20 20 20 20 20 20 28 77  | .rest.element.(...foo)........(w | 
| 6a340 |  61 73 2d 72 65 73 74 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f  | as-rest.........(js2-report-erro | 
| 6a360 |  72 20 22 6d 73 67 2e 70 61 72 61 6d 2e 61 66 74    65 72 2e 72 65 73 74 22 29 29 0a 20 20 20 20 20  | r."msg.param.after.rest"))...... | 
| 6a380 |  20 20 3b 3b 20 63 6f 6d 6d 61 0a 20 20 20 20 20    20 20 28 28 3d 20 74 74 20 6a 73 32 2d 43 4f 4d  | ..;;.comma........((=.tt.js2-COM | 
| 6a3a0 |  4d 41 29 0a 20 20 20 20 20 20 20 20 28 73 65 74    71 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 28 6a  | MA).........(setq.after-comma.(j | 
| 6a3c0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 28  | s2-current-token-end)).........( | 
| 6a3e0 |  69 66 20 28 6e 6f 74 20 61 66 74 65 72 2d 6c 62    2d 6f 72 2d 63 6f 6d 6d 61 29 0a 20 20 20 20 20  | if.(not.after-lb-or-comma)...... | 
| 6a400 |  20 20 20 20 20 20 20 28 73 65 74 71 20 61 66 74    65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d 6d 61 20 74  | .......(setq.after-lb-or-comma.t | 
| 6a420 |  29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73    68 20 6e 69 6c 20 65 6c 65 6d 73 29 29 29 0a 20  | )...........(push.nil.elems))).. | 
| 6a440 |  20 20 20 20 20 20 3b 3b 20 61 72 72 61 79 20 63    6f 6d 70 0a 20 20 20 20 20 20 20 28 28 61 6e 64  | ......;;.array.comp........((and | 
| 6a460 |  20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67    65 2d 76 65 72 73 69 6f 6e 20 31 37 30 29 0a 20  | .(>=.js2-language-version.170).. | 
| 6a480 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74    20 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72  | ............(not.js2-is-in-destr | 
| 6a4a0 |  75 63 74 75 72 69 6e 67 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 3d 20 74 74 20 6a 73 32  | ucturing)..............(=.tt.js2 | 
| 6a4c0 |  2d 46 4f 52 29 20 20 20 20 20 20 20 20 20 20 3b    20 63 68 65 63 6b 20 66 6f 72 20 61 72 72 61 79  | -FOR)..........;.check.for.array | 
| 6a4e0 |  20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74  | .comprehension..............(not | 
| 6a500 |  20 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63 6f 6d    6d 61 29 20 3b 20 22 66 6f 72 22 20 63 61 6e 27  | .after-lb-or-comma).;."for".can' | 
| 6a520 |  74 20 66 6f 6c 6c 6f 77 20 61 20 63 6f 6d 6d 61    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c  | t.follow.a.comma..............el | 
| 6a540 |  65 6d 73 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 20 6d 75 73 74 20 68 61 76  | ems...................;.must.hav | 
| 6a560 |  65 20 61 74 20 6c 65 61 73 74 20 31 20 65 6c 65    6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20  | e.at.least.1.element............ | 
| 6a580 |  20 20 28 6e 6f 74 20 28 63 64 72 20 65 6c 65 6d    73 29 29 29 20 20 20 20 20 20 3b 20 62 75 74 20  | ..(not.(cdr.elems)))......;.but. | 
| 6a5a0 |  6e 6f 20 32 6e 64 20 65 6c 65 6d 65 6e 74 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65  | no.2nd.element.........(js2-unge | 
| 6a5c0 |  74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20    20 28 73 65 74 66 20 63 6f 6e 74 69 6e 75 65 20  | t-token).........(setf.continue. | 
| 6a5e0 |  6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 70 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d  | nil...............pn.(js2-parse- | 
| 6a600 |  6c 65 67 61 63 79 2d 61 72 72 61 79 2d 63 6f 6d    70 20 28 63 61 72 20 65 6c 65 6d 73 29 20 70 6f  | legacy-array-comp.(car.elems).po | 
| 6a620 |  73 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 61    6e 6f 74 68 65 72 20 65 6c 65 6d 65 6e 74 0a 20  | s)))........;;.another.element.. | 
| 6a640 |  20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20    20 28 75 6e 6c 65 73 73 20 61 66 74 65 72 2d 6c  | ......(t.........(unless.after-l | 
| 6a660 |  62 2d 6f 72 2d 63 6f 6d 6d 61 0a 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74  | b-or-comma...........(js2-report | 
| 6a680 |  2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f 2e 62    72 61 63 6b 65 74 2e 61 72 67 22 29 29 0a 20 20  | -error."msg.no.bracket.arg"))... | 
| 6a6a0 |  20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28    3d 20 74 74 20 6a 73 32 2d 54 52 49 50 4c 45 44  | ......(if.(and.(=.tt.js2-TRIPLED | 
| 6a6c0 |  4f 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e  | OT)..................(>=.js2-lan | 
| 6a6e0 |  67 75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30    30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | guage-version.200))............. | 
| 6a700 |  3b 3b 20 72 65 73 74 2f 73 70 72 65 61 64 20 6f    70 65 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20  | ;;.rest/spread.operator......... | 
| 6a720 |  20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28  | ....(progn...............(push.( | 
| 6a740 |  6a 73 32 2d 6d 61 6b 65 2d 75 6e 61 72 79 20 6e    69 6c 20 74 74 20 27 6a 73 32 2d 70 61 72 73 65  | js2-make-unary.nil.tt.'js2-parse | 
| 6a760 |  2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -assign-expr)................... | 
| 6a780 |  20 20 65 6c 65 6d 73 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 69  | ..elems)...............(if.js2-i | 
| 6a7a0 |  73 2d 69 6e 2d 64 65 73 74 72 75 63 74 75 72 69    6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | s-in-destructuring.............. | 
| 6a7c0 |  20 20 20 20 20 28 73 65 74 71 20 77 61 73 2d 72    65 73 74 20 74 29 29 29 0a 20 20 20 20 20 20 20  | .....(setq.was-rest.t)))........ | 
| 6a7e0 |  20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f    6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28  | ...(js2-unget-token)...........( | 
| 6a800 |  70 75 73 68 20 28 6a 73 32 2d 70 61 72 73 65 2d    61 73 73 69 67 6e 2d 65 78 70 72 29 20 65 6c 65  | push.(js2-parse-assign-expr).ele | 
| 6a820 |  6d 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 71 20 61 66 74 65 72 2d 6c 62 2d 6f 72 2d 63  | ms)).........(setq.after-lb-or-c | 
| 6a840 |  6f 6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 61 66 74 65 72 2d 63 6f 6d  | omma.nil...............after-com | 
| 6a860 |  6d 61 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28    75 6e 6c 65 73 73 20 6a 73 32 2d 69 73 2d 69 6e  | ma.nil)))).....(unless.js2-is-in | 
| 6a880 |  2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 0a 20    20 20 20 20 20 28 6a 73 32 2d 70 6f 70 2d 73 63  | -destructuring.......(js2-pop-sc | 
| 6a8a0 |  6f 70 65 29 29 0a 20 20 20 20 70 6e 29 29 0a 0a    28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65  | ope)).....pn))..(defun.js2-parse | 
| 6a8c0 |  2d 6c 65 67 61 63 79 2d 61 72 72 61 79 2d 63 6f    6d 70 20 28 65 78 70 72 20 70 6f 73 29 0a 20 20  | -legacy-array-comp.(expr.pos)... | 
| 6a8e0 |  22 50 61 72 73 65 20 61 20 6c 65 67 61 63 79 20    61 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73  | "Parse.a.legacy.array.comprehens | 
| 6a900 |  69 6f 6e 20 28 4a 61 76 61 53 63 72 69 70 74 20    31 2e 37 29 2e 0a 45 58 50 52 20 69 73 20 74 68  | ion.(JavaScript.1.7)..EXPR.is.th | 
| 6a920 |  65 20 66 69 72 73 74 20 65 78 70 72 65 73 73 69    6f 6e 20 61 66 74 65 72 20 74 68 65 20 6f 70 65  | e.first.expression.after.the.ope | 
| 6a940 |  6e 69 6e 67 20 6c 65 66 74 2d 62 72 61 63 6b 65    74 2e 0a 50 4f 53 20 69 73 20 74 68 65 20 62 65  | ning.left-bracket..POS.is.the.be | 
| 6a960 |  67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c    42 20 74 6f 6b 65 6e 20 70 72 65 63 65 64 69 6e  | ginning.of.the.LB.token.precedin | 
| 6a980 |  67 20 45 58 50 52 2e 0a 57 65 20 73 68 6f 75 6c    64 20 68 61 76 65 20 6a 75 73 74 20 70 61 72 73  | g.EXPR..We.should.have.just.pars | 
| 6a9a0 |  65 64 20 74 68 65 20 60 66 6f 72 27 20 6b 65 79    77 6f 72 64 20 62 65 66 6f 72 65 20 63 61 6c 6c  | ed.the.`for'.keyword.before.call | 
| 6a9c0 |  69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 69 6f    6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 75 72  | ing.this.function."...(let.((cur | 
| 6a9e0 |  72 65 6e 74 2d 73 63 6f 70 65 20 6a 73 32 2d 63    75 72 72 65 6e 74 2d 73 63 6f 70 65 29 0a 20 20  | rent-scope.js2-current-scope)... | 
| 6aa00 |  20 20 20 20 20 20 6c 6f 6f 70 73 20 66 69 72 73    74 20 66 69 6c 74 65 72 20 72 65 73 75 6c 74 29  | ......loops.first.filter.result) | 
| 6aa20 |  0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f    74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 72  | .....(unwind-protect.........(pr | 
| 6aa40 |  6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77    68 69 6c 65 20 28 6a 73 32 2d 6d 61 74 63 68 2d  | ogn...........(while.(js2-match- | 
| 6aa60 |  74 6f 6b 65 6e 20 6a 73 32 2d 46 4f 52 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20  | token.js2-FOR).............(let. | 
| 6aa80 |  28 28 6c 6f 6f 70 20 28 6d 61 6b 65 2d 6a 73 32    2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 29  | ((loop.(make-js2-comp-loop-node) | 
| 6aaa0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 70 75 73 68 2d 73 63 6f 70 65  | ))...............(js2-push-scope | 
| 6aac0 |  20 6c 6f 6f 70 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 70 75 73 68 20 6c 6f 6f 70 20  | .loop)...............(push.loop. | 
| 6aae0 |  6c 6f 6f 70 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 70 61 72 73 65 2d  | loops)...............(js2-parse- | 
| 6ab00 |  63 6f 6d 70 2d 6c 6f 6f 70 20 6c 6f 6f 70 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46  | comp-loop.loop)))...........;;.F | 
| 6ab20 |  69 72 73 74 20 6c 6f 6f 70 20 74 61 6b 65 73 20    65 78 70 72 20 73 63 6f 70 65 27 73 20 70 61 72  | irst.loop.takes.expr.scope's.par | 
| 6ab40 |  65 6e 74 2e 0a 20 20 20 20 20 20 20 20 20 20 28    73 65 74 66 20 28 6a 73 32 2d 73 63 6f 70 65 2d  | ent............(setf.(js2-scope- | 
| 6ab60 |  70 61 72 65 6e 74 2d 73 63 6f 70 65 20 28 73 65    74 71 20 66 69 72 73 74 20 28 63 61 72 20 28 6c  | parent-scope.(setq.first.(car.(l | 
| 6ab80 |  61 73 74 20 6c 6f 6f 70 73 29 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ast.loops)))).................(j | 
| 6aba0 |  73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d    73 63 6f 70 65 20 63 75 72 72 65 6e 74 2d 73 63  | s2-scope-parent-scope.current-sc | 
| 6abc0 |  6f 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20    3b 3b 20 53 65 74 20 65 78 70 72 20 73 63 6f 70  | ope))...........;;.Set.expr.scop | 
| 6abe0 |  65 27 73 20 70 61 72 65 6e 74 20 74 6f 20 74 68    65 20 6c 61 73 74 20 6c 6f 6f 70 2e 0a 20 20 20  | e's.parent.to.the.last.loop..... | 
| 6ac00 |  20 20 20 20 20 20 20 28 73 65 74 66 20 28 6a 73    32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d 73  | .......(setf.(js2-scope-parent-s | 
| 6ac20 |  63 6f 70 65 20 63 75 72 72 65 6e 74 2d 73 63 6f    70 65 29 20 28 63 61 72 20 6c 6f 6f 70 73 29 29  | cope.current-scope).(car.loops)) | 
| 6ac40 |  0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28    2f 3d 20 28 6a 73 32 2d 67 65 74 2d 74 6f 6b 65  | ...........(if.(/=.(js2-get-toke | 
| 6ac60 |  6e 29 20 6a 73 32 2d 49 46 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e  | n).js2-IF)...............(js2-un | 
| 6ac80 |  67 65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c  | get-token).............(setq.fil | 
| 6aca0 |  74 65 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 63    6f 6e 64 69 74 69 6f 6e 29 29 29 29 0a 20 20 20  | ter.(js2-parse-condition)))).... | 
| 6acc0 |  20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28    31 2d 20 28 6c 65 6e 67 74 68 20 6c 6f 6f 70 73  | ...(dotimes.(_.(1-.(length.loops | 
| 6ace0 |  29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32    2d 70 6f 70 2d 73 63 6f 70 65 29 29 29 0a 20 20  | ))).........(js2-pop-scope)))... | 
| 6ad00 |  20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63    68 20 6a 73 32 2d 52 42 20 22 6d 73 67 2e 6e 6f  | ..(js2-must-match.js2-RB."msg.no | 
| 6ad20 |  2e 62 72 61 63 6b 65 74 2e 61 72 67 22 20 70 6f    73 29 0a 20 20 20 20 28 73 65 74 71 20 72 65 73  | .bracket.arg".pos).....(setq.res | 
| 6ad40 |  75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f    6d 70 2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73  | ult.(make-js2-comp-node.:pos.pos | 
| 6ad60 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6ad80 |  20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 6a 73    32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f 73 29  | ......:len.(-.js2-ts-cursor.pos) | 
| 6ada0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6adc0 |  20 20 20 20 20 20 3a 72 65 73 75 6c 74 20 65 78    70 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ......:result.expr.............. | 
| 6ade0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 6c 6f 6f 70 73 20 28  | ........................:loops.( | 
| 6ae00 |  6e 72 65 76 65 72 73 65 20 6c 6f 6f 70 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nreverse.loops)................. | 
| 6ae20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3a 66 69 6c 74 65 72 73 20 28 61  | .....................:filters.(a | 
| 6ae40 |  6e 64 20 66 69 6c 74 65 72 20 28 6c 69 73 74 20    28 63 61 72 20 66 69 6c 74 65 72 29 29 29 0a 20  | nd.filter.(list.(car.filter))).. | 
| 6ae60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6ae80 |  20 20 20 20 3a 66 6f 72 6d 20 27 4c 45 47 41 43    59 5f 41 52 52 41 59 29 29 0a 20 20 20 20 3b 3b  | ....:form.'LEGACY_ARRAY)).....;; | 
| 6aea0 |  20 53 65 74 20 63 6f 6d 70 20 6c 6f 6f 70 27 73    20 70 61 72 65 6e 74 20 74 6f 20 74 68 65 20 6c  | .Set.comp.loop's.parent.to.the.l | 
| 6aec0 |  61 73 74 20 6c 6f 6f 70 2e 0a 20 20 20 20 3b 3b    20 54 4f 44 4f 3a 20 47 65 74 20 72 69 64 20 6f  | ast.loop......;;.TODO:.Get.rid.o | 
| 6aee0 |  66 20 74 68 65 20 62 6f 67 75 73 20 65 78 70 72    20 73 63 6f 70 65 2e 0a 20 20 20 20 28 73 65 74  | f.the.bogus.expr.scope......(set | 
| 6af00 |  66 20 28 6a 73 32 2d 73 63 6f 70 65 2d 70 61 72    65 6e 74 2d 73 63 6f 70 65 20 72 65 73 75 6c 74  | f.(js2-scope-parent-scope.result | 
| 6af20 |  29 20 66 69 72 73 74 29 0a 20 20 20 20 28 61 70    70 6c 79 20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61  | ).first).....(apply.#'js2-node-a | 
| 6af40 |  64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65 73 75    6c 74 20 65 78 70 72 20 28 63 61 72 20 66 69 6c  | dd-children.result.expr.(car.fil | 
| 6af60 |  74 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 6c  | ter)............(js2-comp-node-l | 
| 6af80 |  6f 6f 70 73 20 72 65 73 75 6c 74 29 29 0a 20 20    20 20 72 65 73 75 6c 74 29 29 0a 0a 28 64 65 66  | oops.result)).....result))..(def | 
| 6afa0 |  75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 61 72 72    61 79 2d 63 6f 6d 70 20 28 70 6f 73 29 0a 20 20  | un.js2-parse-array-comp.(pos)... | 
| 6afc0 |  22 50 61 72 73 65 20 61 6e 20 45 53 36 20 61 72    72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f  | "Parse.an.ES6.array.comprehensio | 
| 6afe0 |  6e 2e 0a 50 4f 53 20 69 73 20 74 68 65 20 62 65    67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c  | n..POS.is.the.beginning.of.the.L | 
| 6b000 |  42 20 74 6f 6b 65 6e 2e 0a 57 65 20 73 68 6f 75    6c 64 20 68 61 76 65 20 6a 75 73 74 20 70 61 72  | B.token..We.should.have.just.par | 
| 6b020 |  73 65 64 20 74 68 65 20 60 66 6f 72 27 20 6b 65    79 77 6f 72 64 20 62 65 66 6f 72 65 20 63 61 6c  | sed.the.`for'.keyword.before.cal | 
| 6b040 |  6c 69 6e 67 20 74 68 69 73 20 66 75 6e 63 74 69    6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6e  | ling.this.function."...(let.((pn | 
| 6b060 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70    72 65 68 65 6e 73 69 6f 6e 20 70 6f 73 20 27 41  | .(js2-parse-comprehension.pos.'A | 
| 6b080 |  52 52 41 59 29 29 29 0a 20 20 20 20 28 6a 73 32    2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d  | RRAY))).....(js2-must-match.js2- | 
| 6b0a0 |  52 42 20 22 6d 73 67 2e 6e 6f 2e 62 72 61 63 6b    65 74 2e 61 72 67 22 20 70 6f 73 29 0a 20 20 20  | RB."msg.no.bracket.arg".pos).... | 
| 6b0c0 |  20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 70 61 72 73 65 2d 67 65 6e 65 72 61 74 6f  | .pn))..(defun.js2-parse-generato | 
| 6b0e0 |  72 2d 63 6f 6d 70 20 28 70 6f 73 29 0a 20 20 28    6c 65 74 2a 20 28 28 6a 73 32 2d 6e 65 73 74 69  | r-comp.(pos)...(let*.((js2-nesti | 
| 6b100 |  6e 67 2d 6f 66 2d 66 75 6e 63 74 69 6f 6e 20 28    31 2b 20 6a 73 32 2d 6e 65 73 74 69 6e 67 2d 6f  | ng-of-function.(1+.js2-nesting-o | 
| 6b120 |  66 2d 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 63 75 72 72 65  | f-function))..........(js2-curre | 
| 6b140 |  6e 74 2d 73 63 72 69 70 74 2d 6f 72 2d 66 6e 0a    20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d  | nt-script-or-fn...........(make- | 
| 6b160 |  6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64    65 20 3a 67 65 6e 65 72 61 74 6f 72 2d 74 79 70  | js2-function-node.:generator-typ | 
| 6b180 |  65 20 27 43 4f 4d 50 52 45 48 45 4e 53 49 4f 4e    29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6e 20  | e.'COMPREHENSION))..........(pn. | 
| 6b1a0 |  28 6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70 72    65 68 65 6e 73 69 6f 6e 20 70 6f 73 20 27 53 54  | (js2-parse-comprehension.pos.'ST | 
| 6b1c0 |  41 52 5f 47 45 4e 45 52 41 54 4f 52 29 29 29 0a    20 20 20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61  | AR_GENERATOR))).....(js2-must-ma | 
| 6b1e0 |  74 63 68 20 6a 73 32 2d 52 50 20 22 6d 73 67 2e    6e 6f 2e 70 61 72 65 6e 22 20 70 6f 73 29 0a 20  | tch.js2-RP."msg.no.paren".pos).. | 
| 6b200 |  20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 70 61 72 73 65 2d 63 6f 6d 70 72 65  | ...pn))..(defun.js2-parse-compre | 
| 6b220 |  68 65 6e 73 69 6f 6e 20 28 70 6f 73 20 66 6f 72    6d 29 0a 20 20 28 6c 65 74 20 28 6c 6f 6f 70 73  | hension.(pos.form)...(let.(loops | 
| 6b240 |  20 66 69 6c 74 65 72 73 20 65 78 70 72 20 72 65    73 75 6c 74 20 6c 61 73 74 29 0a 20 20 20 20 28  | .filters.expr.result.last).....( | 
| 6b260 |  75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20    20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20  | unwind-protect.........(progn... | 
| 6b280 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67    65 74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20  | ........(js2-unget-token)....... | 
| 6b2a0 |  20 20 20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d    6d 61 74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d  | ....(while.(js2-match-token.js2- | 
| 6b2c0 |  46 4f 52 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 6c 65 74 20 28 28 6c 6f 6f 70 20 28 6d 61  | FOR).............(let.((loop.(ma | 
| 6b2e0 |  6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70    2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20  | ke-js2-comp-loop-node)))........ | 
| 6b300 |  20 20 20 20 20 20 20 28 6a 73 32 2d 70 75 73 68    2d 73 63 6f 70 65 20 6c 6f 6f 70 29 0a 20 20 20  | .......(js2-push-scope.loop).... | 
| 6b320 |  20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68    20 6c 6f 6f 70 20 6c 6f 6f 70 73 29 0a 20 20 20  | ...........(push.loop.loops).... | 
| 6b340 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    70 61 72 73 65 2d 63 6f 6d 70 2d 6c 6f 6f 70 20  | ...........(js2-parse-comp-loop. | 
| 6b360 |  6c 6f 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 77 68 69 6c 65 20 28 6a 73 32 2d 6d 61  | loop)))...........(while.(js2-ma | 
| 6b380 |  74 63 68 2d 74 6f 6b 65 6e 20 6a 73 32 2d 49 46    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70  | tch-token.js2-IF).............(p | 
| 6b3a0 |  75 73 68 20 28 63 61 72 20 28 6a 73 32 2d 70 61    72 73 65 2d 63 6f 6e 64 69 74 69 6f 6e 29 29 20  | ush.(car.(js2-parse-condition)). | 
| 6b3c0 |  66 69 6c 74 65 72 73 29 29 0a 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 65 78 70 72 20 28  | filters))...........(setq.expr.( | 
| 6b3e0 |  6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e    2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 20 20  | js2-parse-assign-expr))......... | 
| 6b400 |  20 20 28 73 65 74 71 20 6c 61 73 74 20 28 63 61    72 20 6c 6f 6f 70 73 29 29 29 0a 20 20 20 20 20  | ..(setq.last.(car.loops)))...... | 
| 6b420 |  20 28 64 6f 6c 69 73 74 20 28 5f 20 6c 6f 6f 70    73 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | .(dolist.(_.loops).........(js2- | 
| 6b440 |  70 6f 70 2d 73 63 6f 70 65 29 29 29 0a 20 20 20    20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28 6d  | pop-scope))).....(setq.result.(m | 
| 6b460 |  61 6b 65 2d 6a 73 32 2d 63 6f 6d 70 2d 6e 6f 64    65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20  | ake-js2-comp-node.:pos.pos...... | 
| 6b480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6b4a0 |  3a 6c 65 6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63    75 72 73 6f 72 20 70 6f 73 29 0a 20 20 20 20 20  | :len.(-.js2-ts-cursor.pos)...... | 
| 6b4c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6b4e0 |  3a 72 65 73 75 6c 74 20 65 78 70 72 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | :result.expr.................... | 
| 6b500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 6c 6f 6f 70 73 20 28 6e 72 65 76 65 72  | ..................:loops.(nrever | 
| 6b520 |  73 65 20 6c 6f 6f 70 73 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | se.loops)....................... | 
| 6b540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    66 69 6c 74 65 72 73 20 28 6e 72 65 76 65 72 73  | ...............:filters.(nrevers | 
| 6b560 |  65 20 66 69 6c 74 65 72 73 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.filters)...................... | 
| 6b580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3a 66 6f 72 6d 20 66 6f 72 6d 29 29 0a 20 20 20  | ................:form.form)).... | 
| 6b5a0 |  20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e 6f    64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20  | .(apply.#'js2-node-add-children. | 
| 6b5c0 |  72 65 73 75 6c 74 20 28 6a 73 32 2d 63 6f 6d 70    2d 6e 6f 64 65 2d 6c 6f 6f 70 73 20 72 65 73 75  | result.(js2-comp-node-loops.resu | 
| 6b5e0 |  6c 74 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20    23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63  | lt)).....(apply.#'js2-node-add-c | 
| 6b600 |  68 69 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 65    78 70 72 20 28 6a 73 32 2d 63 6f 6d 70 2d 6e 6f  | hildren.result.expr.(js2-comp-no | 
| 6b620 |  64 65 2d 66 69 6c 74 65 72 73 20 72 65 73 75 6c    74 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 6a  | de-filters.result)).....(setf.(j | 
| 6b640 |  73 32 2d 73 63 6f 70 65 2d 70 61 72 65 6e 74 2d    73 63 6f 70 65 20 72 65 73 75 6c 74 29 20 6c 61  | s2-scope-parent-scope.result).la | 
| 6b660 |  73 74 29 0a 20 20 20 20 72 65 73 75 6c 74 29 29    0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72  | st).....result))..(defun.js2-par | 
| 6b680 |  73 65 2d 63 6f 6d 70 2d 6c 6f 6f 70 20 28 70 6e    20 26 6f 70 74 69 6f 6e 61 6c 20 6f 6e 6c 79 2d  | se-comp-loop.(pn.&optional.only- | 
| 6b6a0 |  6f 66 2d 70 29 0a 20 20 22 50 61 72 73 65 20 61    20 60 66 6f 72 20 5b 65 61 63 68 5d 20 28 66 6f  | of-p)..."Parse.a.`for.[each].(fo | 
| 6b6c0 |  6f 20 5b 69 6e 7c 6f 66 5d 20 62 61 72 29 27 20    65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 61 6e  | o.[in|of].bar)'.expression.in.an | 
| 6b6e0 |  20 41 72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e    73 69 6f 6e 2e 0a 54 68 65 20 63 75 72 72 65 6e  | .Array.comprehension..The.curren | 
| 6b700 |  74 20 74 6f 6b 65 6e 20 73 68 6f 75 6c 64 20 62    65 20 74 68 65 20 69 6e 69 74 69 61 6c 20 46 4f  | t.token.should.be.the.initial.FO | 
| 6b720 |  52 2e 0a 49 66 20 4f 4e 4c 59 2d 4f 46 2d 50 20    69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 6f 6e 6c 79  | R..If.ONLY-OF-P.is.non-nil,.only | 
| 6b740 |  20 74 68 65 20 60 66 6f 72 20 28 66 6f 6f 20 6f    66 20 62 61 72 29 27 20 66 6f 72 6d 20 69 73 20  | .the.`for.(foo.of.bar)'.form.is. | 
| 6b760 |  61 6c 6c 6f 77 65 64 2e 22 0a 20 20 28 6c 65 74    20 28 28 70 6f 73 20 28 6a 73 32 2d 63 6f 6d 70  | allowed."...(let.((pos.(js2-comp | 
| 6b780 |  2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 70 6f 73 20 70    6e 29 29 0a 20 20 20 20 20 20 20 20 74 74 20 69  | -loop-node-pos.pn)).........tt.i | 
| 6b7a0 |  74 65 72 20 6f 62 6a 20 66 6f 72 65 61 63 68 2d    70 20 66 6f 72 6f 66 2d 70 20 69 6e 2d 70 6f 73  | ter.obj.foreach-p.forof-p.in-pos | 
| 6b7c0 |  20 65 61 63 68 2d 70 6f 73 20 6c 70 20 72 70 29    0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20  | .each-pos.lp.rp).....(when.(and. | 
| 6b7e0 |  28 6e 6f 74 20 6f 6e 6c 79 2d 6f 66 2d 70 29 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | (not.only-of-p).(js2-match-token | 
| 6b800 |  20 6a 73 32 2d 4e 41 4d 45 29 29 0a 20 20 20 20    20 20 28 69 66 20 28 73 74 72 69 6e 67 3d 20 28  | .js2-NAME)).......(if.(string=.( | 
| 6b820 |  6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65    6e 2d 73 74 72 69 6e 67 29 20 22 65 61 63 68 22  | js2-current-token-string)."each" | 
| 6b840 |  29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f    67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | )...........(progn.............( | 
| 6b860 |  73 65 74 71 20 66 6f 72 65 61 63 68 2d 70 20 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | setq.foreach-p.t................ | 
| 6b880 |  20 20 20 65 61 63 68 2d 70 6f 73 20 28 2d 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | ...each-pos.(-.(js2-current-toke | 
| 6b8a0 |  6e 2d 62 65 67 29 20 70 6f 73 29 29 20 3b 20 72    65 6c 61 74 69 76 65 0a 20 20 20 20 20 20 20 20  | n-beg).pos)).;.relative......... | 
| 6b8c0 |  20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64 2d    66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d  | ....(js2-record-face.'font-lock- | 
| 6b8e0 |  6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | keyword-face)).........(js2-repo | 
| 6b900 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 6e 6f    2e 70 61 72 65 6e 2e 66 6f 72 22 29 29 29 0a 20  | rt-error."msg.no.paren.for"))).. | 
| 6b920 |  20 20 20 28 69 66 20 28 6a 73 32 2d 6d 75 73 74    2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20 22 6d  | ...(if.(js2-must-match.js2-LP."m | 
| 6b940 |  73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 66 6f 72 22    29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | sg.no.paren.for").........(setq. | 
| 6b960 |  6c 70 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65    6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f  | lp.(-.(js2-current-token-beg).po | 
| 6b980 |  73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 74    74 20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65  | s))).....(setq.tt.(js2-peek-toke | 
| 6b9a0 |  6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20    20 20 20 28 28 6f 72 20 28 3d 20 74 74 20 6a 73  | n)).....(cond......((or.(=.tt.js | 
| 6b9c0 |  32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 20 20    28 3d 20 74 74 20 6a 73 32 2d 4c 43 29 29 0a 20  | 2-LB)...........(=.tt.js2-LC)).. | 
| 6b9e0 |  20 20 20 20 20 28 6a 73 32 2d 67 65 74 2d 74 6f    6b 65 6e 29 0a 20 20 20 20 20 20 28 73 65 74 71  | .....(js2-get-token).......(setq | 
| 6ba00 |  20 69 74 65 72 20 28 6a 73 32 2d 70 61 72 73 65    2d 64 65 73 74 72 75 63 74 2d 70 72 69 6d 61 72  | .iter.(js2-parse-destruct-primar | 
| 6ba20 |  79 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20 28    6a 73 32 2d 64 65 66 69 6e 65 2d 64 65 73 74 72  | y-expr)).......(js2-define-destr | 
| 6ba40 |  75 63 74 2d 73 79 6d 62 6f 6c 73 20 69 74 65 72    20 6a 73 32 2d 4c 45 54 0a 20 20 20 20 20 20 20  | uct-symbols.iter.js2-LET........ | 
| 6ba60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e  | ............................'fon | 
| 6ba80 |  74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d    6e 61 6d 65 2d 66 61 63 65 20 74 29 29 0a 20 20  | t-lock-variable-name-face.t))... | 
| 6baa0 |  20 20 20 28 28 6a 73 32 2d 6d 61 74 63 68 2d 74    6f 6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20  | ...((js2-match-token.js2-NAME).. | 
| 6bac0 |  20 20 20 20 20 28 73 65 74 71 20 69 74 65 72 20    28 6a 73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65  | .....(setq.iter.(js2-create-name | 
| 6bae0 |  2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 28 74    0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65 70 6f  | -node)))......(t.......(js2-repo | 
| 6bb00 |  72 74 2d 65 72 72 6f 72 20 22 6d 73 67 2e 62 61    64 2e 76 61 72 22 29 29 29 0a 20 20 20 20 3b 3b  | rt-error."msg.bad.var"))).....;; | 
| 6bb20 |  20 44 65 66 69 6e 65 20 61 73 20 61 20 6c 65 74    20 73 69 6e 63 65 20 77 65 20 77 61 6e 74 20 74  | .Define.as.a.let.since.we.want.t | 
| 6bb40 |  68 65 20 73 63 6f 70 65 20 6f 66 20 74 68 65 20    76 61 72 69 61 62 6c 65 20 74 6f 0a 20 20 20 20  | he.scope.of.the.variable.to..... | 
| 6bb60 |  3b 3b 20 62 65 20 72 65 73 74 72 69 63 74 65 64    20 74 6f 20 74 68 65 20 61 72 72 61 79 20 63 6f  | ;;.be.restricted.to.the.array.co | 
| 6bb80 |  6d 70 72 65 68 65 6e 73 69 6f 6e 0a 20 20 20 20    28 69 66 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f  | mprehension.....(if.(js2-name-no | 
| 6bba0 |  64 65 2d 70 20 69 74 65 72 29 0a 20 20 20 20 20    20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73  | de-p.iter).........(js2-define-s | 
| 6bbc0 |  79 6d 62 6f 6c 20 6a 73 32 2d 4c 45 54 20 28 6a    73 32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d  | ymbol.js2-LET.(js2-name-node-nam | 
| 6bbe0 |  65 20 69 74 65 72 29 20 70 6e 20 74 29 29 0a 20    20 20 20 28 69 66 20 28 6f 72 20 28 61 6e 64 20  | e.iter).pn.t)).....(if.(or.(and. | 
| 6bc00 |  28 6e 6f 74 20 6f 6e 6c 79 2d 6f 66 2d 70 29 20    28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e  | (not.only-of-p).(js2-match-token | 
| 6bc20 |  20 6a 73 32 2d 49 4e 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 6a  | .js2-IN)).............(and.(>=.j | 
| 6bc40 |  73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73    69 6f 6e 20 32 30 30 29 0a 20 20 20 20 20 20 20  | s2-language-version.200)........ | 
| 6bc60 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d    61 74 63 68 2d 63 6f 6e 74 65 78 74 75 61 6c 2d  | ..........(js2-match-contextual- | 
| 6bc80 |  6b 77 64 20 22 6f 66 22 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | kwd."of")..................(setq | 
| 6bca0 |  20 66 6f 72 6f 66 2d 70 20 74 29 29 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 69 6e 2d 70  | .forof-p.t))).........(setq.in-p | 
| 6bcc0 |  6f 73 20 28 2d 20 28 6a 73 32 2d 63 75 72 72 65    6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29 20 70 6f  | os.(-.(js2-current-token-beg).po | 
| 6bce0 |  73 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72    65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67  | s)).......(js2-report-error."msg | 
| 6bd00 |  2e 69 6e 2e 61 66 74 65 72 2e 66 6f 72 2e 6e 61    6d 65 22 29 29 0a 20 20 20 20 28 73 65 74 71 20  | .in.after.for.name")).....(setq. | 
| 6bd20 |  6f 62 6a 20 28 6a 73 32 2d 70 61 72 73 65 2d 65    78 70 72 29 29 0a 20 20 20 20 28 69 66 20 28 6a  | obj.(js2-parse-expr)).....(if.(j | 
| 6bd40 |  73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20 6a 73    32 2d 52 50 20 22 6d 73 67 2e 6e 6f 2e 70 61 72  | s2-must-match.js2-RP."msg.no.par | 
| 6bd60 |  65 6e 2e 66 6f 72 2e 63 74 72 6c 22 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 72 70 20 28  | en.for.ctrl").........(setq.rp.( | 
| 6bd80 |  2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29  | -.(js2-current-token-beg).pos))) | 
| 6bda0 |  0a 20 20 20 20 28 73 65 74 66 20 28 6a 73 32 2d    6e 6f 64 65 2d 70 6f 73 20 70 6e 29 20 70 6f 73  | .....(setf.(js2-node-pos.pn).pos | 
| 6bdc0 |  0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    6e 6f 64 65 2d 6c 65 6e 20 70 6e 29 20 28 2d 20  | ...........(js2-node-len.pn).(-. | 
| 6bde0 |  6a 73 32 2d 74 73 2d 63 75 72 73 6f 72 20 70 6f    73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73  | js2-ts-cursor.pos)...........(js | 
| 6be00 |  32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65    2d 69 74 65 72 61 74 6f 72 20 70 6e 29 20 69 74  | 2-comp-loop-node-iterator.pn).it | 
| 6be20 |  65 72 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65  | er...........(js2-comp-loop-node | 
| 6be40 |  2d 6f 62 6a 65 63 74 20 70 6e 29 20 6f 62 6a 0a    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63  | -object.pn).obj...........(js2-c | 
| 6be60 |  6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 69 6e    2d 70 6f 73 20 70 6e 29 20 69 6e 2d 70 6f 73 0a  | omp-loop-node-in-pos.pn).in-pos. | 
| 6be80 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 63    6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64 65 2d 65 61  | ..........(js2-comp-loop-node-ea | 
| 6bea0 |  63 68 2d 70 6f 73 20 70 6e 29 20 65 61 63 68 2d    70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 28 6a  | ch-pos.pn).each-pos...........(j | 
| 6bec0 |  73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64    65 2d 66 6f 72 65 61 63 68 2d 70 20 70 6e 29 20  | s2-comp-loop-node-foreach-p.pn). | 
| 6bee0 |  66 6f 72 65 61 63 68 2d 70 0a 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d 6c 6f  | foreach-p...........(js2-comp-lo | 
| 6bf00 |  6f 70 2d 6e 6f 64 65 2d 66 6f 72 6f 66 2d 70 20    70 6e 29 20 66 6f 72 6f 66 2d 70 0a 20 20 20 20  | op-node-forof-p.pn).forof-p..... | 
| 6bf20 |  20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 2d    6c 6f 6f 70 2d 6e 6f 64 65 2d 6c 70 20 70 6e 29  | ......(js2-comp-loop-node-lp.pn) | 
| 6bf40 |  20 6c 70 0a 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 63 6f 6d 70 2d 6c 6f 6f 70 2d 6e 6f 64  | .lp...........(js2-comp-loop-nod | 
| 6bf60 |  65 2d 72 70 20 70 6e 29 20 72 70 29 0a 20 20 20    20 28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63  | e-rp.pn).rp).....(js2-node-add-c | 
| 6bf80 |  68 69 6c 64 72 65 6e 20 70 6e 20 69 74 65 72 20    6f 62 6a 29 0a 20 20 20 20 70 6e 29 29 0a 0a 28  | hildren.pn.iter.obj).....pn))..( | 
| 6bfa0 |  64 65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d    63 6c 61 73 73 2d 73 74 6d 74 20 28 29 0a 20 20  | defun.js2-parse-class-stmt.()... | 
| 6bfc0 |  28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65  | (let.((pos.(js2-current-token-be | 
| 6bfe0 |  67 29 29 0a 20 20 20 20 20 20 20 20 28 5f 20 28    6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 2d 6e  | g)).........(_.(js2-must-match-n | 
| 6c000 |  61 6d 65 20 22 6d 73 67 2e 75 6e 6e 61 6d 65 64    2e 63 6c 61 73 73 2e 73 74 6d 74 22 29 29 0a 20  | ame."msg.unnamed.class.stmt")).. | 
| 6c020 |  20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 6a 73    32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f  | .......(name.(js2-create-name-no | 
| 6c040 |  64 65 20 74 29 29 29 0a 20 20 20 20 28 6a 73 32    2d 73 65 74 2d 66 61 63 65 20 28 6a 73 32 2d 6e  | de.t))).....(js2-set-face.(js2-n | 
| 6c060 |  6f 64 65 2d 70 6f 73 20 6e 61 6d 65 29 20 28 6a    73 32 2d 6e 6f 64 65 2d 65 6e 64 20 6e 61 6d 65  | ode-pos.name).(js2-node-end.name | 
| 6c080 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 74  | )...................'font-lock-t | 
| 6c0a0 |  79 70 65 2d 66 61 63 65 20 27 72 65 63 6f 72 64    29 0a 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 64  | ype-face.'record).....(let.((nod | 
| 6c0c0 |  65 20 28 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61    73 73 20 70 6f 73 20 27 43 4c 41 53 53 5f 53 54  | e.(js2-parse-class.pos.'CLASS_ST | 
| 6c0e0 |  41 54 45 4d 45 4e 54 20 6e 61 6d 65 29 29 29 0a    20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72  | ATEMENT.name))).......(js2-recor | 
| 6c100 |  64 2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e    73 20 6e 6f 64 65 20 6e 61 6d 65 29 0a 20 20 20  | d-imenu-functions.node.name).... | 
| 6c120 |  20 20 20 28 6a 73 32 2d 64 65 66 69 6e 65 2d 73    79 6d 62 6f 6c 20 6a 73 32 2d 46 55 4e 43 54 49  | ...(js2-define-symbol.js2-FUNCTI | 
| 6c140 |  4f 4e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | ON..........................(js2 | 
| 6c160 |  2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20    6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20  | -name-node-name.name)........... | 
| 6c180 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e    6f 64 65 29 0a 20 20 20 20 20 20 6e 6f 64 65 29  | ...............node).......node) | 
| 6c1a0 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70    61 72 73 65 2d 63 6c 61 73 73 2d 65 78 70 72 20  | ))..(defun.js2-parse-class-expr. | 
| 6c1c0 |  28 29 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | ()...(let.((pos.(js2-current-tok | 
| 6c1e0 |  65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20    20 6e 61 6d 65 29 0a 20 20 20 20 28 77 68 65 6e  | en-beg)).........name).....(when | 
| 6c200 |  20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65    6e 20 6a 73 32 2d 4e 41 4d 45 29 0a 20 20 20 20  | .(js2-match-token.js2-NAME)..... | 
| 6c220 |  20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6a 73    32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f  | ..(setq.name.(js2-create-name-no | 
| 6c240 |  64 65 20 74 29 29 29 0a 20 20 20 20 28 6a 73 32    2d 70 61 72 73 65 2d 63 6c 61 73 73 20 70 6f 73  | de.t))).....(js2-parse-class.pos | 
| 6c260 |  20 27 43 4c 41 53 53 5f 45 58 50 52 45 53 53 49    4f 4e 20 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66  | .'CLASS_EXPRESSION.name)))..(def | 
| 6c280 |  75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 63 6c 61    73 73 20 28 70 6f 73 20 66 6f 72 6d 20 6e 61 6d  | un.js2-parse-class.(pos.form.nam | 
| 6c2a0 |  65 29 0a 20 20 3b 3b 20 63 6c 61 73 73 20 58 20    5b 65 78 74 65 6e 64 73 20 2e 2e 2e 5d 20 7b 0a  | e)...;;.class.X.[extends....].{. | 
| 6c2c0 |  20 20 28 6c 65 74 20 28 70 6e 20 65 6c 65 6d 73    20 65 78 74 65 6e 64 73 29 0a 20 20 20 20 28 69  | ..(let.(pn.elems.extends).....(i | 
| 6c2e0 |  66 20 28 6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b    65 6e 20 6a 73 32 2d 45 58 54 45 4e 44 53 29 0a  | f.(js2-match-token.js2-EXTENDS). | 
| 6c300 |  20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28    6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 20  | ........(if.(=.(js2-peek-token). | 
| 6c320 |  6a 73 32 2d 4c 43 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d  | js2-LC).............(js2-report- | 
| 6c340 |  65 72 72 6f 72 20 22 6d 73 67 2e 6d 69 73 73 69    6e 67 2e 65 78 74 65 6e 64 73 22 29 0a 20 20 20  | error."msg.missing.extends").... | 
| 6c360 |  20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 73    64 68 29 3a 20 74 68 69 73 20 73 68 6f 75 6c 64  | .......;;.TODO(sdh):.this.should | 
| 6c380 |  20 62 65 20 6c 65 66 74 2d 68 61 6e 64 2d 73 69    64 65 2d 65 78 70 72 2c 20 6e 6f 74 20 61 73 73  | .be.left-hand-side-expr,.not.ass | 
| 6c3a0 |  69 67 6e 2d 65 78 70 72 0a 20 20 20 20 20 20 20    20 20 20 28 73 65 74 71 20 65 78 74 65 6e 64 73  | ign-expr...........(setq.extends | 
| 6c3c0 |  20 28 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69    67 6e 2d 65 78 70 72 29 29 0a 20 20 20 20 20 20  | .(js2-parse-assign-expr))....... | 
| 6c3e0 |  20 20 20 20 28 69 66 20 28 6e 6f 74 20 65 78 74    65 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20  | ....(if.(not.extends)........... | 
| 6c400 |  20 20 20 20 28 6a 73 32 2d 72 65 70 6f 72 74 2d    65 72 72 6f 72 20 22 6d 73 67 2e 62 61 64 2e 65  | ....(js2-report-error."msg.bad.e | 
| 6c420 |  78 74 65 6e 64 73 22 29 29 29 29 0a 20 20 20 20    28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63 68 20  | xtends")))).....(js2-must-match. | 
| 6c440 |  6a 73 32 2d 4c 43 20 22 6d 73 67 2e 6e 6f 2e 62    72 61 63 65 2e 63 6c 61 73 73 22 29 0a 20 20 20  | js2-LC."msg.no.brace.class").... | 
| 6c460 |  20 28 73 65 74 71 20 65 6c 65 6d 73 20 28 6a 73    32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74 2d 6c  | .(setq.elems.(js2-parse-object-l | 
| 6c480 |  69 74 65 72 61 6c 2d 65 6c 65 6d 73 20 74 29 0a    20 20 20 20 20 20 20 20 20 20 70 6e 20 28 6d 61  | iteral-elems.t)...........pn.(ma | 
| 6c4a0 |  6b 65 2d 6a 73 32 2d 63 6c 61 73 73 2d 6e 6f 64    65 20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20  | ke-js2-class-node.:pos.pos...... | 
| 6c4c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65  | .............................:le | 
| 6c4e0 |  6e 20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73    6f 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20  | n.(-.js2-ts-cursor.pos)......... | 
| 6c500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 20  | ..........................:form. | 
| 6c520 |  66 6f 72 6d 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | form............................ | 
| 6c540 |  20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d    65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......:name.name............... | 
| 6c560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 65 78 74 65 6e 64 73 20 65 78 74  | ....................:extends.ext | 
| 6c580 |  65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ends............................ | 
| 6c5a0 |  20 20 20 20 20 20 20 3a 65 6c 65 6d 73 20 65 6c    65 6d 73 29 29 0a 20 20 20 20 28 61 70 70 6c 79  | .......:elems.elems)).....(apply | 
| 6c5c0 |  20 23 27 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d    63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20  | .#'js2-node-add-children........ | 
| 6c5e0 |  20 20 20 20 70 6e 20 6e 61 6d 65 20 65 78 74 65    6e 64 73 20 28 6a 73 32 2d 63 6c 61 73 73 2d 6e  | ....pn.name.extends.(js2-class-n | 
| 6c600 |  6f 64 65 2d 65 6c 65 6d 73 20 70 6e 29 29 0a 20    20 20 20 70 6e 29 29 0a 0a 28 64 65 66 75 6e 20  | ode-elems.pn)).....pn))..(defun. | 
| 6c620 |  6a 73 32 2d 70 61 72 73 65 2d 6f 62 6a 65 63 74    2d 6c 69 74 65 72 61 6c 20 28 29 0a 20 20 28 6c  | js2-parse-object-literal.()...(l | 
| 6c640 |  65 74 2a 20 28 28 70 6f 73 20 28 6a 73 32 2d 63    75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67  | et*.((pos.(js2-current-token-beg | 
| 6c660 |  29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6c 65    6d 73 20 28 6a 73 32 2d 70 61 72 73 65 2d 6f 62  | ))..........(elems.(js2-parse-ob | 
| 6c680 |  6a 65 63 74 2d 6c 69 74 65 72 61 6c 2d 65 6c 65    6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 72  | ject-literal-elems))..........(r | 
| 6c6a0 |  65 73 75 6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d    6f 62 6a 65 63 74 2d 6e 6f 64 65 20 3a 70 6f 73  | esult.(make-js2-object-node.:pos | 
| 6c6c0 |  20 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .pos............................ | 
| 6c6e0 |  20 20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e    20 28 2d 20 6a 73 32 2d 74 73 2d 63 75 72 73 6f  | ............:len.(-.js2-ts-curso | 
| 6c700 |  72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | r.pos).......................... | 
| 6c720 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65    6c 65 6d 73 20 65 6c 65 6d 73 29 29 29 0a 20 20  | ..............:elems.elems)))... | 
| 6c740 |  20 20 28 61 70 70 6c 79 20 23 27 6a 73 32 2d 6e    6f 64 65 2d 61 64 64 2d 63 68 69 6c 64 72 65 6e  | ..(apply.#'js2-node-add-children | 
| 6c760 |  20 72 65 73 75 6c 74 20 28 6a 73 32 2d 6f 62 6a    65 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 72  | .result.(js2-object-node-elems.r | 
| 6c780 |  65 73 75 6c 74 29 29 0a 20 20 20 20 72 65 73 75    6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | esult)).....result))..(defun.js2 | 
| 6c7a0 |  2d 70 72 6f 70 65 72 74 79 2d 6b 65 79 2d 73 74    72 69 6e 67 20 28 70 72 6f 70 65 72 74 79 2d 6e  | -property-key-string.(property-n | 
| 6c7c0 |  6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74    68 65 20 6b 65 79 20 6f 66 20 50 52 4f 50 45 52  | ode)..."Return.the.key.of.PROPER | 
| 6c7e0 |  54 59 2d 4e 4f 44 45 20 28 61 20 60 6a 73 32 2d    6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65  | TY-NODE.(a.`js2-object-prop-node | 
| 6c800 |  27 20 6f 72 0a 60 6a 73 32 2d 6d 65 74 68 6f 64    2d 6e 6f 64 65 27 29 20 61 73 20 61 20 73 74 72  | '.or.`js2-method-node').as.a.str | 
| 6c820 |  69 6e 67 2c 20 6f 72 20 6e 69 6c 20 69 66 20 69    74 20 63 61 6e 27 74 20 62 65 0a 72 65 70 72 65  | ing,.or.nil.if.it.can't.be.repre | 
| 6c840 |  73 65 6e 74 65 64 20 61 73 20 61 20 73 74 72 69    6e 67 20 28 65 2e 67 2e 2c 20 74 68 65 20 6b 65  | sented.as.a.string.(e.g.,.the.ke | 
| 6c860 |  79 20 69 73 20 63 6f 6d 70 75 74 65 64 20 62 79    20 61 6e 0a 65 78 70 72 65 73 73 69 6f 6e 29 2e  | y.is.computed.by.an.expression). | 
| 6c880 |  22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a    73 32 2d 75 6e 61 72 79 2d 6e 6f 64 65 2d 70 20  | "...(cond....((js2-unary-node-p. | 
| 6c8a0 |  70 72 6f 70 65 72 74 79 2d 6e 6f 64 65 29 20 6e    69 6c 29 20 3b 3b 20 7b 2e 2e 2e 66 6f 6f 7d 0a  | property-node).nil).;;.{...foo}. | 
| 6c8c0 |  20 20 20 28 74 0a 20 20 20 20 28 6c 65 74 20 28    28 6b 65 79 20 28 6a 73 32 2d 69 6e 66 69 78 2d  | ...(t.....(let.((key.(js2-infix- | 
| 6c8e0 |  6e 6f 64 65 2d 6c 65 66 74 20 70 72 6f 70 65 72    74 79 2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20  | node-left.property-node)))...... | 
| 6c900 |  20 28 77 68 65 6e 20 28 6a 73 32 2d 63 6f 6d 70    75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e  | .(when.(js2-computed-prop-name-n | 
| 6c920 |  6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20    20 20 20 28 73 65 74 71 20 6b 65 79 20 28 6a 73  | ode-p.key).........(setq.key.(js | 
| 6c940 |  32 2d 63 6f 6d 70 75 74 65 64 2d 70 72 6f 70 2d    6e 61 6d 65 2d 6e 6f 64 65 2d 65 78 70 72 20 6b  | 2-computed-prop-name-node-expr.k | 
| 6c960 |  65 79 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 6e  | ey))).......(cond........((js2-n | 
| 6c980 |  61 6d 65 2d 6e 6f 64 65 2d 70 20 6b 65 79 29 0a    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d  | ame-node-p.key).........(js2-nam | 
| 6c9a0 |  65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6b 65 79 29    29 0a 20 20 20 20 20 20 20 28 28 6a 73 32 2d 73  | e-node-name.key))........((js2-s | 
| 6c9c0 |  74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b 65 79    29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73  | tring-node-p.key).........(js2-s | 
| 6c9e0 |  74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c 75 65    20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 28 28  | tring-node-value.key))........(( | 
| 6ca00 |  6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d    70 20 6b 65 79 29 0a 20 20 20 20 20 20 20 20 28  | js2-number-node-p.key).........( | 
| 6ca20 |  6a 73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 2d    76 61 6c 75 65 20 6b 65 79 29 29 29 29 29 29 29  | js2-number-node-value.key))))))) | 
| 6ca40 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72    73 65 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61  | ..(defun.js2-parse-object-litera | 
| 6ca60 |  6c 2d 65 6c 65 6d 73 20 28 26 6f 70 74 69 6f 6e    61 6c 20 63 6c 61 73 73 2d 70 29 0a 20 20 28 6c  | l-elems.(&optional.class-p)...(l | 
| 6ca80 |  65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d 63 75    72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65 67 29  | et.((pos.(js2-current-token-beg) | 
| 6caa0 |  29 0a 20 20 20 20 20 20 20 20 28 73 74 61 74 69    63 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28  | ).........(static.nil).........( | 
| 6cac0 |  63 6f 6e 74 69 6e 75 65 20 74 29 0a 20 20 20 20    20 20 20 20 74 74 20 65 6c 65 6d 73 20 65 6c 65  | continue.t).........tt.elems.ele | 
| 6cae0 |  6d 0a 20 20 20 20 20 20 20 20 65 6c 65 6d 2d 6b    65 79 2d 73 74 72 69 6e 67 20 70 72 65 76 69 6f  | m.........elem-key-string.previo | 
| 6cb00 |  75 73 2d 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69    6e 67 0a 20 20 20 20 20 20 20 20 61 66 74 65 72  | us-elem-key-string.........after | 
| 6cb20 |  2d 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 70    72 65 76 2d 70 6f 73 20 73 74 61 72 2d 70 20 74  | -comma.........prev-pos.star-p.t | 
| 6cb40 |  79 70 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20    28 77 68 69 6c 65 20 63 6f 6e 74 69 6e 75 65 0a  | ype-string).....(while.continue. | 
| 6cb60 |  20 20 20 20 20 20 3b 3b 20 43 6c 65 61 72 20 6f    75 74 20 61 6e 79 20 6c 6f 6f 6b 61 68 65 61 64  | ......;;.Clear.out.any.lookahead | 
| 6cb80 |  20 74 6f 6b 65 6e 73 20 28 70 6f 73 73 69 62 6c    79 20 77 72 6f 6e 67 20 6d 6f 64 69 66 69 65 72  | .tokens.(possibly.wrong.modifier | 
| 6cba0 |  29 2e 0a 20 20 20 20 20 20 3b 3b 20 46 49 58 4d    45 3a 20 44 65 61 6c 20 77 69 74 68 20 74 68 69  | )........;;.FIXME:.Deal.with.thi | 
| 6cbc0 |  73 20 70 72 6f 62 6c 65 6d 20 69 6e 20 61 20 6d    6f 72 65 20 73 79 73 74 65 6d 61 74 69 63 20 66  | s.problem.in.a.more.systematic.f | 
| 6cbe0 |  61 73 68 69 6f 6e 2e 0a 20 20 20 20 20 20 3b 3b    20 50 65 72 68 61 70 73 20 62 79 20 6d 61 6b 69  | ashion........;;.Perhaps.by.maki | 
| 6cc00 |  6e 67 20 74 68 69 73 20 6d 6f 64 69 66 69 65 72    20 61 66 66 65 63 74 20 6e 6f 74 20 68 6f 77 20  | ng.this.modifier.affect.not.how. | 
| 6cc20 |  74 68 65 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20    3b 3b 20 73 74 72 75 63 74 20 76 61 6c 75 65 20  | the.token.......;;.struct.value. | 
| 6cc40 |  69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 2c 20    62 75 74 20 77 68 61 74 20 6a 73 32 2d 67 65 74  | is.constructed,.but.what.js2-get | 
| 6cc60 |  2d 74 6f 6b 65 6e 20 72 65 74 75 72 6e 73 0a 20    20 20 20 20 20 3b 3b 20 62 61 73 65 64 20 6f 6e  | -token.returns.......;;.based.on | 
| 6cc80 |  20 69 74 2e 0a 20 20 20 20 20 20 28 77 68 65 6e    20 28 3e 20 6a 73 32 2d 74 69 2d 6c 6f 6f 6b 61  | .it........(when.(>.js2-ti-looka | 
| 6cca0 |  68 65 61 64 20 30 29 0a 20 20 20 20 20 20 20 20    28 73 65 74 71 20 6a 73 32 2d 74 69 2d 6c 6f 6f  | head.0).........(setq.js2-ti-loo | 
| 6ccc0 |  6b 61 68 65 61 64 20 30 29 0a 20 20 20 20 20 20    20 20 28 73 65 74 71 20 6a 73 32 2d 74 73 2d 63  | kahead.0).........(setq.js2-ts-c | 
| 6cce0 |  75 72 73 6f 72 20 28 6a 73 32 2d 63 75 72 72 65    6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29 29 0a  | ursor.(js2-current-token-end))). | 
| 6cd00 |  20 20 20 20 20 20 28 73 65 74 71 20 74 74 20 28    6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d  | ......(setq.tt.(js2-get-prop-nam | 
| 6cd20 |  65 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 73 74 61 74 69 63 20 6e 69 6c 0a  | e-token).............static.nil. | 
| 6cd40 |  20 20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d    20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20  | ............elem.nil............ | 
| 6cd60 |  20 70 72 65 76 2d 70 6f 73 20 6e 69 6c 0a 20 20    20 20 20 20 20 20 20 20 20 20 73 74 61 72 2d 70  | .prev-pos.nil.............star-p | 
| 6cd80 |  20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20    20 74 79 70 65 2d 73 74 72 69 6e 67 20 6e 69 6c  | .nil.............type-string.nil | 
| 6cda0 |  29 0a 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c    65 20 27 73 74 61 74 69 63 27 20 6b 65 79 77 6f  | ).......;;.Handle.'static'.keywo | 
| 6cdc0 |  72 64 20 6f 6e 6c 79 20 69 66 20 77 65 27 72 65    20 69 6e 20 61 20 63 6c 61 73 73 0a 20 20 20 20  | rd.only.if.we're.in.a.class..... | 
| 6cde0 |  20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 6c 61    73 73 2d 70 20 28 3d 20 6a 73 32 2d 4e 41 4d 45  | ..(when.(and.class-p.(=.js2-NAME | 
| 6ce00 |  20 74 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 73 74 72 69 6e 67 3d 20 22  | .tt)..................(string=." | 
| 6ce20 |  73 74 61 74 69 63 22 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 73 74 72 69 6e  | static".(js2-current-token-strin | 
| 6ce40 |  67 29 29 29 0a 20 20 20 20 20 20 20 20 28 6a 73    32 2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66  | g))).........(js2-record-face.'f | 
| 6ce60 |  6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64    2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 28  | ont-lock-keyword-face).........( | 
| 6ce80 |  73 65 74 71 20 73 74 61 74 69 63 20 74 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 74 74 20 28  | setq.static.t...............tt.( | 
| 6cea0 |  6a 73 32 2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d    65 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20  | js2-get-prop-name-token)))...... | 
| 6cec0 |  20 3b 3b 20 48 61 6e 64 6c 65 20 67 65 74 74 65    72 2c 20 73 65 74 74 65 72 20 61 6e 64 20 61 73  | .;;.Handle.getter,.setter.and.as | 
| 6cee0 |  79 6e 63 20 6d 65 74 68 6f 64 73 0a 20 20 20 20    20 20 28 6c 65 74 20 28 28 70 72 6f 70 20 28 6a  | ync.methods.......(let.((prop.(j | 
| 6cf00 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20  | s2-current-token-string)))...... | 
| 6cf20 |  20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 3e    3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76  | ...(when.(and.(>=.js2-language-v | 
| 6cf40 |  65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ersion.200)....................( | 
| 6cf60 |  3d 20 6a 73 32 2d 4e 41 4d 45 20 74 74 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | =.js2-NAME.tt).................. | 
| 6cf80 |  20 20 28 6d 65 6d 62 65 72 20 70 72 6f 70 20 27    28 22 67 65 74 22 20 22 73 65 74 22 20 22 61 73  | ..(member.prop.'("get"."set"."as | 
| 6cfa0 |  79 6e 63 22 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20  | ync"))....................(memq. | 
| 6cfc0 |  28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e 20    27 4b 45 59 57 4f 52 44 5f 49 53 5f 4e 41 4d 45  | (js2-peek-token.'KEYWORD_IS_NAME | 
| 6cfe0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 60 28 20 2c 6a  | )..........................`(.,j | 
| 6d000 |  73 32 2d 4e 41 4d 45 20 2c 6a 73 32 2d 50 52 49    56 41 54 45 5f 4e 41 4d 45 20 2c 6a 73 32 2d 53  | s2-NAME.,js2-PRIVATE_NAME.,js2-S | 
| 6d020 |  54 52 49 4e 47 20 2c 6a 73 32 2d 4e 55 4d 42 45    52 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | TRING.,js2-NUMBER............... | 
| 6d040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 6a    73 32 2d 4c 42 20 2c 6a 73 32 2d 4d 55 4c 29 29  | ..............,js2-LB.,js2-MUL)) | 
| 6d060 |  29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f  | )...........(js2-record-face.'fo | 
| 6d080 |  6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d    66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20  | nt-lock-keyword-face)........... | 
| 6d0a0 |  28 73 65 74 71 20 74 79 70 65 2d 73 74 72 69 6e    67 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20  | (setq.type-string.prop.......... | 
| 6d0c0 |  20 20 20 20 20 20 20 70 72 65 76 2d 70 6f 73 20    28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b  | .......prev-pos.(js2-current-tok | 
| 6d0e0 |  65 6e 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d  | en-beg).................tt.(js2- | 
| 6d100 |  67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f    6b 65 6e 29 29 29 29 0a 20 20 20 20 20 20 3b 3b  | get-prop-name-token)))).......;; | 
| 6d120 |  20 48 61 6e 64 6c 65 20 67 65 6e 65 72 61 74 6f    72 20 2a 20 62 65 66 6f 72 65 20 74 68 65 20 70  | .Handle.generator.*.before.the.p | 
| 6d140 |  72 6f 70 65 72 74 79 20 6e 61 6d 65 20 66 6f 72    20 69 6e 2d 6c 69 6e 65 20 66 75 6e 63 74 69 6f  | roperty.name.for.in-line.functio | 
| 6d160 |  6e 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28    61 6e 64 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67  | ns.......(when.(and.(>=.js2-lang | 
| 6d180 |  75 61 67 65 2d 76 65 72 73 69 6f 6e 20 32 30 30    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | uage-version.200)............... | 
| 6d1a0 |  20 20 20 28 3d 20 6a 73 32 2d 4d 55 4c 20 74 74    29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...(=.js2-MUL.tt)).........(js2- | 
| 6d1c0 |  72 65 63 6f 72 64 2d 66 61 63 65 20 27 66 6f 6e    74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66  | record-face.'font-lock-keyword-f | 
| 6d1e0 |  61 63 65 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 71 20 73 74 61 72 2d 70 20 74 0a 20 20 20 20  | ace).........(setq.star-p.t..... | 
| 6d200 |  20 20 20 20 20 20 20 20 20 20 70 72 65 76 2d 70    6f 73 20 28 6f 72 20 70 72 65 76 2d 70 6f 73 20  | ..........prev-pos.(or.prev-pos. | 
| 6d220 |  28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b    65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20 20 20  | (js2-current-token-beg))........ | 
| 6d240 |  20 20 20 20 20 20 20 74 74 20 28 6a 73 32 2d 67    65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74 6f 6b  | .......tt.(js2-get-prop-name-tok | 
| 6d260 |  65 6e 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 20 20 3b 3b 20 52 65 73 74  | en))).......(cond........;;.Rest | 
| 6d280 |  2f 73 70 72 65 61 64 20 28 2e 2e 2e 65 78 70 72    29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28  | /spread.(...expr)........((and.( | 
| 6d2a0 |  3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d    76 65 72 73 69 6f 6e 20 32 30 30 29 0a 20 20 20  | >=.js2-language-version.200).... | 
| 6d2c0 |  20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 63    6c 61 73 73 2d 70 29 20 28 6e 6f 74 20 73 74 61  | ..........(not.class-p).(not.sta | 
| 6d2e0 |  74 69 63 29 20 28 6e 6f 74 20 74 79 70 65 2d 73    74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20  | tic).(not.type-string).......... | 
| 6d300 |  20 20 20 20 28 3d 20 6a 73 32 2d 54 52 49 50 4c    45 44 4f 54 20 74 74 29 29 0a 20 20 20 20 20 20  | ....(=.js2-TRIPLEDOT.tt))....... | 
| 6d320 |  20 20 28 73 65 74 71 20 61 66 74 65 72 2d 63 6f    6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20 20  | ..(setq.after-comma.nil......... | 
| 6d340 |  20 20 20 20 20 20 65 6c 65 6d 20 28 6a 73 32 2d    6d 61 6b 65 2d 75 6e 61 72 79 20 6e 69 6c 20 6a  | ......elem.(js2-make-unary.nil.j | 
| 6d360 |  73 32 2d 54 52 49 50 4c 45 44 4f 54 20 27 6a 73    32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65  | s2-TRIPLEDOT.'js2-parse-assign-e | 
| 6d380 |  78 70 72 29 29 29 0a 20 20 20 20 20 20 20 3b 3b    20 46 6f 75 6e 64 20 61 20 6b 65 79 2f 76 61 6c  | xpr)))........;;.Found.a.key/val | 
| 6d3a0 |  75 65 20 70 72 6f 70 65 72 74 79 20 28 6f 66 20    61 6e 79 20 73 6f 72 74 29 0a 20 20 20 20 20 20  | ue.property.(of.any.sort)....... | 
| 6d3c0 |  20 28 28 6d 65 6d 71 20 74 74 20 60 28 2c 6a 73    32 2d 4e 41 4d 45 20 2c 6a 73 32 2d 50 52 49 56  | .((memq.tt.`(,js2-NAME.,js2-PRIV | 
| 6d3e0 |  41 54 45 5f 4e 41 4d 45 20 2c 6a 73 32 2d 53 54    52 49 4e 47 20 2c 6a 73 32 2d 4e 55 4d 42 45 52  | ATE_NAME.,js2-STRING.,js2-NUMBER | 
| 6d400 |  20 2c 6a 73 32 2d 4c 42 29 29 0a 20 20 20 20 20    20 20 20 28 73 65 74 71 20 61 66 74 65 72 2d 63  | .,js2-LB)).........(setq.after-c | 
| 6d420 |  6f 6d 6d 61 20 6e 69 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 65 6c 65 6d 20 28 6a 73 32  | omma.nil...............elem.(js2 | 
| 6d440 |  2d 70 61 72 73 65 2d 6e 61 6d 65 64 2d 70 72 6f    70 20 74 74 20 70 72 65 76 2d 70 6f 73 20 74 79  | -parse-named-prop.tt.prev-pos.ty | 
| 6d460 |  70 65 2d 73 74 72 69 6e 67 20 73 74 61 72 2d 70    20 63 6c 61 73 73 2d 70 29 29 0a 20 20 20 20 20  | pe-string.star-p.class-p))...... | 
| 6d480 |  20 20 20 28 69 66 20 28 61 6e 64 20 28 6e 75 6c    6c 20 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20  | ...(if.(and.(null.elem)......... | 
| 6d4a0 |  20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 6a 73    32 2d 72 65 63 6f 76 65 72 2d 66 72 6f 6d 2d 70  | .........(not.js2-recover-from-p | 
| 6d4c0 |  61 72 73 65 2d 65 72 72 6f 72 73 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | arse-errors)).............(setq. | 
| 6d4e0 |  63 6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a    20 20 20 20 20 20 20 3b 3b 20 42 72 65 61 6b 20  | continue.nil)))........;;.Break. | 
| 6d500 |  6f 75 74 20 6f 66 20 6c 6f 6f 70 2c 20 61 6e 64    20 68 61 6e 64 6c 65 20 74 72 61 69 6c 69 6e 67  | out.of.loop,.and.handle.trailing | 
| 6d520 |  20 63 6f 6d 6d 61 73 2e 0a 20 20 20 20 20 20 20    28 28 6f 72 20 28 3d 20 74 74 20 6a 73 32 2d 52  | .commas.........((or.(=.tt.js2-R | 
| 6d540 |  43 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28    3d 20 74 74 20 6a 73 32 2d 45 4f 46 29 29 0a 20  | C).............(=.tt.js2-EOF)).. | 
| 6d560 |  20 20 20 20 20 20 20 28 6a 73 32 2d 75 6e 67 65    74 2d 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20  | .......(js2-unget-token)........ | 
| 6d580 |  20 28 73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20    6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 69 66  | .(setq.continue.nil).........(if | 
| 6d5a0 |  20 61 66 74 65 72 2d 63 6f 6d 6d 61 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70 61  | .after-comma.............(js2-pa | 
| 6d5c0 |  72 73 65 2d 77 61 72 6e 2d 74 72 61 69 6c 69 6e    67 2d 63 6f 6d 6d 61 20 22 6d 73 67 2e 65 78 74  | rse-warn-trailing-comma."msg.ext | 
| 6d5e0 |  72 61 2e 74 72 61 69 6c 69 6e 67 2e 63 6f 6d 6d    61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ra.trailing.comma".............. | 
| 6d600 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f  | ..............................po | 
| 6d620 |  73 20 65 6c 65 6d 73 20 61 66 74 65 72 2d 63 6f    6d 6d 61 29 29 29 0a 20 20 20 20 20 20 20 3b 3b  | s.elems.after-comma)))........;; | 
| 6d640 |  20 53 6b 69 70 20 73 65 6d 69 63 6f 6c 6f 6e 73    20 69 6e 20 61 20 63 6c 61 73 73 20 62 6f 64 79  | .Skip.semicolons.in.a.class.body | 
| 6d660 |  0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 63 6c    61 73 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20  | ........((and.class-p........... | 
| 6d680 |  20 20 20 28 3d 20 74 74 20 6a 73 32 2d 53 45 4d    49 29 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 29  | ...(=.tt.js2-SEMI)).........nil) | 
| 6d6a0 |  0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 63 6c    61 73 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20  | ........((and.class-p........... | 
| 6d6c0 |  20 20 20 28 65 71 20 74 74 20 6a 73 32 2d 4c 43    29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71  | ...(eq.tt.js2-LC)).........(setq | 
| 6d6e0 |  20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 6e 69 6c    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65  | .after-comma.nil...............e | 
| 6d700 |  6c 65 6d 20 28 6a 73 32 2d 70 61 72 73 65 2d 62    6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 28  | lem.(js2-parse-block)))........( | 
| 6d720 |  74 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72    65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67  | t.........(js2-report-error."msg | 
| 6d740 |  2e 62 61 64 2e 70 72 6f 70 22 29 0a 20 20 20 20    20 20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d  | .bad.prop").........(unless.js2- | 
| 6d760 |  72 65 63 6f 76 65 72 2d 66 72 6f 6d 2d 70 61 72    73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20  | recover-from-parse-errors....... | 
| 6d780 |  20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 69 6e    75 65 20 6e 69 6c 29 29 29 29 20 20 20 20 20 20  | ....(setq.continue.nil))))...... | 
| 6d7a0 |  20 20 20 3b 20 65 6e 64 20 73 77 69 74 63 68 0a    20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20  | ...;.end.switch.......;;.Handle. | 
| 6d7c0 |  73 74 61 74 69 63 20 66 6f 72 20 63 6c 61 73 73    65 73 27 20 63 6f 64 65 67 65 6e 2e 0a 20 20 20  | static.for.classes'.codegen..... | 
| 6d7e0 |  20 20 20 28 69 66 20 73 74 61 74 69 63 0a 20 20    20 20 20 20 20 20 20 20 28 69 66 20 65 6c 65 6d  | ...(if.static...........(if.elem | 
| 6d800 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 70    72 6f 70 20 65 6c 65 6d 20 27 53 54 41 54 49 43  | .(js2-node-set-prop.elem.'STATIC | 
| 6d820 |  20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f  | .t).............(js2-report-erro | 
| 6d840 |  72 20 22 6d 73 67 2e 75 6e 65 78 70 65 63 74 65    64 2e 73 74 61 74 69 63 22 29 29 29 0a 20 20 20  | r."msg.unexpected.static"))).... | 
| 6d860 |  20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 63 6f 6d    6d 61 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f  | ...;;.Handle.commas,.depending.o | 
| 6d880 |  6e 20 63 6c 61 73 73 2d 70 2e 0a 20 20 20 20 20    20 28 6c 65 74 20 28 28 74 6f 6b 20 28 6a 73 32  | n.class-p........(let.((tok.(js2 | 
| 6d8a0 |  2d 67 65 74 2d 70 72 6f 70 2d 6e 61 6d 65 2d 74    6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20  | -get-prop-name-token)))......... | 
| 6d8c0 |  28 69 66 20 28 65 71 20 74 6f 6b 20 6a 73 32 2d    43 4f 4d 4d 41 29 0a 20 20 20 20 20 20 20 20 20  | (if.(eq.tok.js2-COMMA).......... | 
| 6d8e0 |  20 20 20 28 69 66 20 63 6c 61 73 73 2d 70 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ...(if.class-p.................( | 
| 6d900 |  6a 73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72    20 22 6d 73 67 2e 63 6c 61 73 73 2e 75 6e 65 78  | js2-report-error."msg.class.unex | 
| 6d920 |  70 65 63 74 65 64 2e 63 6f 6d 6d 61 22 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65  | pected.comma")...............(se | 
| 6d940 |  74 71 20 61 66 74 65 72 2d 63 6f 6d 6d 61 20 28    6a 73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65  | tq.after-comma.(js2-current-toke | 
| 6d960 |  6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 75 6e 67 65 74 2d 74 6f  | n-end)))...........(js2-unget-to | 
| 6d980 |  6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28    75 6e 6c 65 73 73 20 63 6c 61 73 73 2d 70 20 28  | ken)...........(unless.class-p.( | 
| 6d9a0 |  73 65 74 71 20 63 6f 6e 74 69 6e 75 65 20 6e 69    6c 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65  | setq.continue.nil)))).......(whe | 
| 6d9c0 |  6e 20 65 6c 65 6d 0a 20 20 20 20 20 20 20 20 28    77 68 65 6e 20 28 61 6e 64 20 6a 73 32 2d 69 6e  | n.elem.........(when.(and.js2-in | 
| 6d9e0 |  2d 75 73 65 2d 73 74 72 69 63 74 2d 64 69 72 65    63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20  | -use-strict-directive........... | 
| 6da00 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65    6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67 20 28  | .........(setq.elem-key-string.( | 
| 6da20 |  6a 73 32 2d 70 72 6f 70 65 72 74 79 2d 6b 65 79    2d 73 74 72 69 6e 67 20 65 6c 65 6d 29 29 0a 20  | js2-property-key-string.elem)).. | 
| 6da40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 63 6c 2d 73 6f 6d 65 0a 20 20 20 20 20  | ..................(cl-some...... | 
| 6da60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6c 61 6d 62 64 61 20 28 70 72 65 76 69 6f 75 73  | ...............(lambda.(previous | 
| 6da80 |  2d 65 6c 65 6d 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e  | -elem).......................(an | 
| 6daa0 |  64 20 28 73 65 74 71 20 70 72 65 76 69 6f 75 73    2d 65 6c 65 6d 2d 6b 65 79 2d 73 74 72 69 6e 67  | d.(setq.previous-elem-key-string | 
| 6dac0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6dae0 |  20 20 28 6a 73 32 2d 70 72 6f 70 65 72 74 79 2d    6b 65 79 2d 73 74 72 69 6e 67 20 70 72 65 76 69  | ..(js2-property-key-string.previ | 
| 6db00 |  6f 75 73 2d 65 6c 65 6d 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ous-elem))...................... | 
| 6db20 |  20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69    66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 69  | ......;;.Check.if.the.property.i | 
| 6db40 |  73 20 61 20 64 75 70 6c 69 63 61 74 65 2e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s.a.duplicate................... | 
| 6db60 |  20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e    67 3d 20 70 72 65 76 69 6f 75 73 2d 65 6c 65 6d  | ..........(string=.previous-elem | 
| 6db80 |  2d 6b 65 79 2d 73 74 72 69 6e 67 20 65 6c 65 6d    2d 6b 65 79 2d 73 74 72 69 6e 67 29 0a 20 20 20  | -key-string.elem-key-string).... | 
| 6dba0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 42 75 74 20 6d  | ........................;;.But.m | 
| 6dbc0 |  61 6b 65 20 61 6e 20 65 78 63 65 70 74 69 6f 6e    20 66 6f 72 20 67 65 74 74 65 72 20 2f 20 73 65  | ake.an.exception.for.getter./.se | 
| 6dbe0 |  74 74 65 72 20 70 61 69 72 73 2e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tter.pairs...................... | 
| 6dc00 |  20 20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64    20 28 6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64  | .......(not.(and.(js2-method-nod | 
| 6dc20 |  65 2d 70 20 65 6c 65 6d 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-p.elem)....................... | 
| 6dc40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d  | ...............(js2-method-node- | 
| 6dc60 |  70 20 70 72 65 76 69 6f 75 73 2d 65 6c 65 6d 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p.previous-elem)................ | 
| 6dc80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 65 74 20 28 28 74 79 70  | ......................(let.((typ | 
| 6dca0 |  65 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65 74 2d    70 72 6f 70 20 28 6a 73 32 2d 6d 65 74 68 6f 64  | e.(js2-node-get-prop.(js2-method | 
| 6dcc0 |  2d 6e 6f 64 65 2d 72 69 67 68 74 20 65 6c 65 6d    29 20 27 4d 45 54 48 4f 44 5f 54 59 50 45 29 29  | -node-right.elem).'METHOD_TYPE)) | 
| 6dce0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6dd00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65    76 69 6f 75 73 2d 74 79 70 65 20 28 6a 73 32 2d  | ............(previous-type.(js2- | 
| 6dd20 |  6e 6f 64 65 2d 67 65 74 2d 70 72 6f 70 20 28 6a    73 32 2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d 72  | node-get-prop.(js2-method-node-r | 
| 6dd40 |  69 67 68 74 20 70 72 65 76 69 6f 75 73 2d 65 6c    65 6d 29 20 27 4d 45 54 48 4f 44 5f 54 59 50 45  | ight.previous-elem).'METHOD_TYPE | 
| 6dd60 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )))............................. | 
| 6dd80 |  20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20    28 6d 65 6d 62 65 72 20 74 79 70 65 20 27 28 47  | ...........(and.(member.type.'(G | 
| 6dda0 |  45 54 20 53 45 54 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ET.SET))........................ | 
| 6ddc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6d 65 6d 62 65 72 20 70 72 65  | .....................(member.pre | 
| 6dde0 |  76 69 6f 75 73 2d 74 79 70 65 20 27 28 47 45 54    20 53 45 54 29 29 0a 20 20 20 20 20 20 20 20 20  | vious-type.'(GET.SET)).......... | 
| 6de00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6de20 |  20 20 20 28 6e 6f 74 20 28 65 71 20 74 79 70 65    20 70 72 65 76 69 6f 75 73 2d 74 79 70 65 29 29  | ...(not.(eq.type.previous-type)) | 
| 6de40 |  29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 73  | )))))).....................elems | 
| 6de60 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22  | ))...........(js2-report-error." | 
| 6de80 |  6d 73 67 2e 64 75 70 2e 6f 62 6a 2e 6c 69 74 2e    70 72 6f 70 2e 73 74 72 69 63 74 22 0a 20 20 20  | msg.dup.obj.lit.prop.strict".... | 
| 6dea0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 65 6c 65 6d 2d 6b 65  | .........................elem-ke | 
| 6dec0 |  79 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | y-string........................ | 
| 6dee0 |  20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61    62 73 2d 70 6f 73 20 28 6a 73 32 2d 69 6e 66 69  | .....(js2-node-abs-pos.(js2-infi | 
| 6df00 |  78 2d 6e 6f 64 65 2d 6c 65 66 74 20 65 6c 65 6d    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | x-node-left.elem)).............. | 
| 6df20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 28 6a 73  | ...............(js2-node-len.(js | 
| 6df40 |  32 2d 69 6e 66 69 78 2d 6e 6f 64 65 2d 6c 65 66    74 20 65 6c 65 6d 29 29 29 29 0a 20 20 20 20 20  | 2-infix-node-left.elem))))...... | 
| 6df60 |  20 20 20 3b 3b 20 41 70 70 65 6e 64 20 61 6e 79    20 70 61 72 73 65 64 20 65 6c 65 6d 65 6e 74 2e  | ...;;.Append.any.parsed.element. | 
| 6df80 |  0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 65    6c 65 6d 20 65 6c 65 6d 73 29 29 29 20 20 20 20  | .........(push.elem.elems))).... | 
| 6dfa0 |  20 20 20 3b 20 65 6e 64 20 6c 6f 6f 70 0a 20 20    20 20 28 6a 73 32 2d 6d 75 73 74 2d 6d 61 74 63  | ...;.end.loop.....(js2-must-matc | 
| 6dfc0 |  68 20 6a 73 32 2d 52 43 20 22 6d 73 67 2e 6e 6f    2e 62 72 61 63 65 2e 70 72 6f 70 22 29 0a 20 20  | h.js2-RC."msg.no.brace.prop")... | 
| 6dfe0 |  20 20 28 6e 72 65 76 65 72 73 65 20 65 6c 65 6d    73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | ..(nreverse.elems)))..(defun.js2 | 
| 6e000 |  2d 70 61 72 73 65 2d 6e 61 6d 65 64 2d 70 72 6f    70 20 28 74 74 20 70 6f 73 20 74 79 70 65 2d 73  | -parse-named-prop.(tt.pos.type-s | 
| 6e020 |  74 72 69 6e 67 20 73 74 61 72 2d 70 20 26 6f 70    74 69 6f 6e 61 6c 20 63 6c 61 73 73 2d 70 29 0a  | tring.star-p.&optional.class-p). | 
| 6e040 |  20 20 22 50 61 72 73 65 20 61 20 6e 61 6d 65 2c    20 73 74 72 69 6e 67 2c 20 6f 72 20 67 65 74 74  | .."Parse.a.name,.string,.or.gett | 
| 6e060 |  65 72 2f 73 65 74 74 65 72 20 6f 62 6a 65 63 74    20 70 72 6f 70 65 72 74 79 2e 0a 57 68 65 6e 20  | er/setter.object.property..When. | 
| 6e080 |  60 6a 73 32 2d 69 73 2d 69 6e 2d 64 65 73 74 72    75 63 74 75 72 69 6e 67 27 20 69 73 20 74 2c 20  | `js2-is-in-destructuring'.is.t,. | 
| 6e0a0 |  66 6f 72 6d 73 20 6c 69 6b 65 20 7b 61 2c 20 62    2c 20 63 7d 20 77 69 6c 6c 20 62 65 20 70 65 72  | forms.like.{a,.b,.c}.will.be.per | 
| 6e0c0 |  6d 69 74 74 65 64 2e 22 0a 20 20 28 6c 65 74 20    28 28 6b 65 79 20 28 6a 73 32 2d 70 61 72 73 65  | mitted."...(let.((key.(js2-parse | 
| 6e0e0 |  2d 70 72 6f 70 2d 6e 61 6d 65 20 74 74 20 63 6c    61 73 73 2d 70 29 29 29 0a 20 20 20 20 28 63 6f  | -prop-name.tt.class-p))).....(co | 
| 6e100 |  6e 64 0a 20 20 20 20 20 3b 3b 20 6d 65 74 68 6f    64 20 64 65 66 69 6e 69 74 69 6f 6e 3a 20 7b 66  | nd......;;.method.definition:.{f | 
| 6e120 |  28 29 20 7b 2e 2e 2e 7d 7d 0a 20 20 20 20 20 28    28 61 6e 64 20 28 3d 20 28 6a 73 32 2d 70 65 65  | ().{...}}......((and.(=.(js2-pee | 
| 6e140 |  6b 2d 74 6f 6b 65 6e 29 20 6a 73 32 2d 4c 50 29    0a 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d 20  | k-token).js2-LP)............(>=. | 
| 6e160 |  6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d 76 65 72    73 69 6f 6e 20 32 30 30 29 29 0a 20 20 20 20 20  | js2-language-version.200))...... | 
| 6e180 |  20 28 77 68 65 6e 20 28 6f 72 20 28 6a 73 32 2d    6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 6b 65 79 29  | .(when.(or.(js2-name-node-p.key) | 
| 6e1a0 |  20 28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64    65 2d 70 20 6b 65 79 29 29 0a 20 20 20 20 20 20  | .(js2-string-node-p.key))....... | 
| 6e1c0 |  20 20 3b 3b 20 68 69 67 68 6c 69 67 68 74 20 66    75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 70 72 6f  | ..;;.highlight.function.name.pro | 
| 6e1e0 |  70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 72 65 63 6f 72 64 2d 66 61 63 65  | perties.........(js2-record-face | 
| 6e200 |  20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63    74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29  | .'font-lock-function-name-face)) | 
| 6e220 |  0a 20 20 20 20 20 20 28 6a 73 32 2d 70 61 72 73    65 2d 6d 65 74 68 6f 64 2d 70 72 6f 70 20 70 6f  | .......(js2-parse-method-prop.po | 
| 6e240 |  73 20 6b 65 79 20 74 79 70 65 2d 73 74 72 69 6e    67 20 73 74 61 72 2d 70 29 29 0a 20 20 20 20 20  | s.key.type-string.star-p))...... | 
| 6e260 |  3b 3b 20 63 6c 61 73 73 20 66 69 65 6c 64 20 6f    72 20 62 69 6e 64 69 6e 67 20 65 6c 65 6d 65 6e  | ;;.class.field.or.binding.elemen | 
| 6e280 |  74 20 77 69 74 68 20 69 6e 69 74 69 61 6c 69 7a    65 72 0a 20 20 20 20 20 28 28 61 6e 64 20 28 3d  | t.with.initializer......((and.(= | 
| 6e2a0 |  20 28 6a 73 32 2d 70 65 65 6b 2d 74 6f 6b 65 6e    29 20 6a 73 32 2d 41 53 53 49 47 4e 29 0a 20 20  | .(js2-peek-token).js2-ASSIGN)... | 
| 6e2c0 |  20 20 20 20 20 20 20 20 20 28 3e 3d 20 6a 73 32    2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f  | .........(>=.js2-language-versio | 
| 6e2e0 |  6e 20 32 30 30 29 29 0a 20 20 20 20 20 20 28 69    66 20 28 6e 6f 74 20 28 6f 72 20 63 6c 61 73 73  | n.200)).......(if.(not.(or.class | 
| 6e300 |  2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 6a 73 32 2d 69 73 2d 69 6e 2d  | -p....................js2-is-in- | 
| 6e320 |  64 65 73 74 72 75 63 74 75 72 69 6e 67 29 29 0a    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72  | destructuring))...........(js2-r | 
| 6e340 |  65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d 73 67    2e 69 6e 69 74 2e 6e 6f 2e 64 65 73 74 72 75 63  | eport-error."msg.init.no.destruc | 
| 6e360 |  74 22 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d    70 61 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 65  | t")).......(js2-parse-initialize | 
| 6e380 |  64 2d 62 69 6e 64 69 6e 67 20 6b 65 79 29 29 0a    20 20 20 20 20 3b 3b 20 72 65 67 75 6c 61 72 20  | d-binding.key))......;;.regular. | 
| 6e3a0 |  70 72 6f 70 0a 20 20 20 20 20 28 74 0a 20 20 20    20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 6a  | prop......(t.......(let.((beg.(j | 
| 6e3c0 |  73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e    2d 62 65 67 29 29 0a 20 20 20 20 20 20 20 20 20  | s2-current-token-beg)).......... | 
| 6e3e0 |  20 20 20 28 65 6e 64 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 65 6e 64 29 29  | ...(end.(js2-current-token-end)) | 
| 6e400 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78    70 72 20 28 6a 73 32 2d 70 61 72 73 65 2d 70 6c  | .............(expr.(js2-parse-pl | 
| 6e420 |  61 69 6e 2d 70 72 6f 70 65 72 74 79 20 6b 65 79    20 63 6c 61 73 73 2d 70 29 29 29 0a 20 20 20 20  | ain-property.key.class-p)))..... | 
| 6e440 |  20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28    3d 20 74 74 20 6a 73 32 2d 4e 41 4d 45 29 0a 20  | ....(when.(and.(=.tt.js2-NAME).. | 
| 6e460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6e 6f 74 20 6a 73 32 2d 69 73 2d 69 6e  | ..................(not.js2-is-in | 
| 6e480 |  2d 64 65 73 74 72 75 63 74 75 72 69 6e 67 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -destructuring)................. | 
| 6e4a0 |  20 20 20 6a 73 32 2d 68 69 67 68 6c 69 67 68 74    2d 65 78 74 65 72 6e 61 6c 2d 76 61 72 69 61 62  | ...js2-highlight-external-variab | 
| 6e4c0 |  6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65  | les....................(js2-node | 
| 6e4e0 |  2d 67 65 74 2d 70 72 6f 70 20 65 78 70 72 20 27    53 48 4f 52 54 48 41 4e 44 29 29 0a 20 20 20 20  | -get-prop.expr.'SHORTHAND))..... | 
| 6e500 |  20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72    64 2d 6e 61 6d 65 2d 6e 6f 64 65 20 6b 65 79 29  | ......(js2-record-name-node.key) | 
| 6e520 |  29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 73    65 74 2d 66 61 63 65 20 62 65 67 20 65 6e 64 0a  | ).........(js2-set-face.beg.end. | 
| 6e540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 66  | ......................(if.(js2-f | 
| 6e560 |  75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | unction-node-p.................. | 
| 6e580 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f    62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d  | ..........(js2-object-prop-node- | 
| 6e5a0 |  72 69 67 68 74 20 65 78 70 72 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | right.expr)).................... | 
| 6e5c0 |  20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63    6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d  | .......'font-lock-function-name- | 
| 6e5e0 |  66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 6a 73  | face.........................'js | 
| 6e600 |  32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65 72 74    79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-object-property).............. | 
| 6e620 |  20 20 20 20 20 20 20 20 20 27 72 65 63 6f 72 64    29 0a 20 20 20 20 20 20 20 20 65 78 70 72 29 29  | .........'record).........expr)) | 
| 6e640 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    70 61 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 65  | )))..(defun.js2-parse-initialize | 
| 6e660 |  64 2d 62 69 6e 64 69 6e 67 20 28 6e 61 6d 65 29    0a 20 20 22 50 61 72 73 65 20 61 20 60 53 69 6e  | d-binding.(name)..."Parse.a.`Sin | 
| 6e680 |  67 6c 65 4e 61 6d 65 42 69 6e 64 69 6e 67 27 20    77 69 74 68 20 69 6e 69 74 69 61 6c 69 7a 65 72  | gleNameBinding'.with.initializer | 
| 6e6a0 |  2e 0a 0a 60 6e 61 6d 65 27 20 69 73 20 74 68 65    20 60 42 69 6e 64 69 6e 67 49 64 65 6e 74 69 66  | ...`name'.is.the.`BindingIdentif | 
| 6e6c0 |  69 65 72 27 2e 22 0a 20 20 28 77 68 65 6e 20 28    6a 73 32 2d 6d 61 74 63 68 2d 74 6f 6b 65 6e 20  | ier'."...(when.(js2-match-token. | 
| 6e6e0 |  6a 73 32 2d 41 53 53 49 47 4e 29 0a 20 20 20 20    28 6a 73 32 2d 6d 61 6b 65 2d 62 69 6e 61 72 79  | js2-ASSIGN).....(js2-make-binary | 
| 6e700 |  20 6a 73 32 2d 41 53 53 49 47 4e 20 6e 61 6d 65    20 27 6a 73 32 2d 70 61 72 73 65 2d 61 73 73 69  | .js2-ASSIGN.name.'js2-parse-assi | 
| 6e720 |  67 6e 2d 65 78 70 72 20 74 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 70 61 72 73 65 2d 70  | gn-expr.t)))..(defun.js2-parse-p | 
| 6e740 |  72 6f 70 2d 6e 61 6d 65 20 28 74 74 20 61 6c 6c    6f 77 2d 70 72 69 76 61 74 65 29 0a 20 20 28 63  | rop-name.(tt.allow-private)...(c | 
| 6e760 |  6f 6e 64 0a 20 20 20 3b 3b 20 4c 69 74 65 72 61    6c 20 73 74 72 69 6e 67 20 6b 65 79 73 3a 20 7b  | ond....;;.Literal.string.keys:.{ | 
| 6e780 |  27 66 6f 6f 27 3a 20 27 62 61 72 27 7d 0a 20 20    20 28 28 3d 20 74 74 20 6a 73 32 2d 53 54 52 49  | 'foo':.'bar'}....((=.tt.js2-STRI | 
| 6e7a0 |  4e 47 29 0a 20 20 20 20 28 6d 61 6b 65 2d 6a 73    32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 29 29 0a  | NG).....(make-js2-string-node)). | 
| 6e7c0 |  20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 63 6f 6d    70 75 74 65 64 20 6b 65 79 73 3a 20 7b 5b 53 79  | ...;;.Handle.computed.keys:.{[Sy | 
| 6e7e0 |  6d 62 6f 6c 2e 69 74 65 72 61 74 6f 72 5d 3a 20    2e 2e 2e 7d 2c 20 2a 5b 31 2b 32 5d 28 29 20 7b  | mbol.iterator]:....},.*[1+2]().{ | 
| 6e800 |  2e 2e 2e 7d 7d 2c 0a 20 20 20 3b 3b 20 7b 5b 66    6f 6f 20 2b 20 62 61 72 5d 28 29 20 7b 20 2e 2e  | ...}},....;;.{[foo.+.bar]().{... | 
| 6e820 |  2e 20 7d 7d 2c 20 7b 5b 67 65 74 20 5b 27 78 27    20 2b 20 31 5d 28 29 20 7b 2e 2e 2e 7d 7d 0a 20  | ..}},.{[get.['x'.+.1]().{...}}.. | 
| 6e840 |  20 20 28 28 61 6e 64 20 28 3d 20 74 74 20 6a 73    32 2d 4c 42 29 0a 20 20 20 20 20 20 20 20 20 28  | ..((and.(=.tt.js2-LB)..........( | 
| 6e860 |  3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61 67 65 2d    76 65 72 73 69 6f 6e 20 32 30 30 29 29 0a 20 20  | >=.js2-language-version.200))... | 
| 6e880 |  20 20 28 6d 61 6b 65 2d 6a 73 32 2d 63 6f 6d 70    75 74 65 64 2d 70 72 6f 70 2d 6e 61 6d 65 2d 6e  | ..(make-js2-computed-prop-name-n | 
| 6e8a0 |  6f 64 65 0a 20 20 20 20 20 3a 65 78 70 72 20 28    70 72 6f 67 31 20 28 6a 73 32 2d 70 61 72 73 65  | ode......:expr.(prog1.(js2-parse | 
| 6e8c0 |  2d 61 73 73 69 67 6e 2d 65 78 70 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | -assign-expr)..............(js2- | 
| 6e8e0 |  6d 75 73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 52    42 20 22 6d 73 67 2e 6d 69 73 73 69 6e 67 2e 63  | must-match.js2-RB."msg.missing.c | 
| 6e900 |  6f 6d 70 75 74 65 64 2e 72 62 22 29 29 29 29 0a    20 20 20 3b 3b 20 4e 75 6d 65 72 69 63 20 6b 65  | omputed.rb"))))....;;.Numeric.ke | 
| 6e920 |  79 73 3a 20 7b 31 32 3a 20 27 66 6f 6f 27 7d 2c    20 7b 31 30 2e 37 3a 20 27 62 61 72 27 7d 0a 20  | ys:.{12:.'foo'},.{10.7:.'bar'}.. | 
| 6e940 |  20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e 55 4d    42 45 52 29 0a 20 20 20 20 28 6d 61 6b 65 2d 6a  | ..((=.tt.js2-NUMBER).....(make-j | 
| 6e960 |  73 32 2d 6e 75 6d 62 65 72 2d 6e 6f 64 65 29 29    0a 20 20 20 3b 3b 20 55 6e 71 75 6f 74 65 64 20  | s2-number-node))....;;.Unquoted. | 
| 6e980 |  6e 61 6d 65 73 3a 20 7b 66 6f 6f 3a 20 31 32 7d    0a 20 20 20 28 28 3d 20 74 74 20 6a 73 32 2d 4e  | names:.{foo:.12}....((=.tt.js2-N | 
| 6e9a0 |  41 4d 45 29 0a 20 20 20 20 28 6a 73 32 2d 63 72    65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65 29 29  | AME).....(js2-create-name-node)) | 
| 6e9c0 |  0a 20 20 20 28 28 61 6e 64 20 61 6c 6c 6f 77 2d    70 72 69 76 61 74 65 0a 20 20 20 20 20 20 20 20  | ....((and.allow-private......... | 
| 6e9e0 |  20 28 3d 20 74 74 20 6a 73 32 2d 50 52 49 56 41    54 45 5f 4e 41 4d 45 29 29 0a 20 20 20 20 28 6a  | .(=.tt.js2-PRIVATE_NAME)).....(j | 
| 6ea00 |  73 32 2d 63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e    6f 64 65 29 29 0a 20 20 20 3b 3b 20 41 6e 79 74  | s2-create-name-node))....;;.Anyt | 
| 6ea20 |  68 69 6e 67 20 65 6c 73 65 20 69 73 20 61 6e 20    65 72 72 6f 72 0a 20 20 20 28 74 20 28 6a 73 32  | hing.else.is.an.error....(t.(js2 | 
| 6ea40 |  2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20 22 6d    73 67 2e 62 61 64 2e 70 72 6f 70 22 29 29 29 29  | -report-error."msg.bad.prop")))) | 
| 6ea60 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72    73 65 2d 70 6c 61 69 6e 2d 70 72 6f 70 65 72 74  | ..(defun.js2-parse-plain-propert | 
| 6ea80 |  79 20 28 70 72 6f 70 20 26 6f 70 74 69 6f 6e 61    6c 20 63 6c 61 73 73 2d 70 29 0a 20 20 22 50 61  | y.(prop.&optional.class-p)..."Pa | 
| 6eaa0 |  72 73 65 20 61 20 6e 6f 6e 2d 67 65 74 74 65 72    2f 73 65 74 74 65 72 20 70 72 6f 70 65 72 74 79  | rse.a.non-getter/setter.property | 
| 6eac0 |  20 69 6e 20 61 6e 20 6f 62 6a 65 63 74 20 6c 69    74 65 72 61 6c 2e 0a 50 52 4f 50 20 69 73 20 74  | .in.an.object.literal..PROP.is.t | 
| 6eae0 |  68 65 20 6e 6f 64 65 20 72 65 70 72 65 73 65 6e    74 69 6e 67 20 74 68 65 20 70 72 6f 70 65 72 74  | he.node.representing.the.propert | 
| 6eb00 |  79 3a 20 61 20 6e 75 6d 62 65 72 2c 20 6e 61 6d    65 2c 0a 73 74 72 69 6e 67 20 6f 72 20 65 78 70  | y:.a.number,.name,.string.or.exp | 
| 6eb20 |  72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 6c 65 74    2a 20 28 74 74 0a 20 20 20 20 20 20 20 20 20 28  | ression."...(let*.(tt..........( | 
| 6eb40 |  70 6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f    73 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20  | pos.(js2-node-pos.prop))........ | 
| 6eb60 |  20 20 63 6f 6c 6f 6e 20 65 78 70 72 20 72 65 73    75 6c 74 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20  | ..colon.expr.result).....(cond.. | 
| 6eb80 |  20 20 20 20 3b 3b 20 41 62 62 72 65 76 69 61 74    65 64 20 70 72 6f 70 65 72 74 79 2c 20 61 73 20  | ....;;.Abbreviated.property,.as. | 
| 6eba0 |  69 6e 20 7b 66 6f 6f 2c 20 62 61 72 7d 20 6f 72    20 63 6c 61 73 73 20 7b 61 3b 20 62 7d 0a 20 20  | in.{foo,.bar}.or.class.{a;.b}... | 
| 6ebc0 |  20 20 20 28 28 61 6e 64 20 28 3e 3d 20 6a 73 32    2d 6c 61 6e 67 75 61 67 65 2d 76 65 72 73 69 6f  | ...((and.(>=.js2-language-versio | 
| 6ebe0 |  6e 20 32 30 30 29 0a 20 20 20 20 20 20 20 20 20    20 20 28 69 66 20 63 6c 61 73 73 2d 70 0a 20 20  | n.200)............(if.class-p... | 
| 6ec00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e    64 20 28 73 65 74 71 20 74 74 20 28 6a 73 32 2d  | .............(and.(setq.tt.(js2- | 
| 6ec20 |  70 65 65 6b 2d 74 6f 6b 65 6e 2d 6f 72 2d 65 6f    6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | peek-token-or-eol))............. | 
| 6ec40 |  20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 74 74    20 60 28 2c 6a 73 32 2d 45 4f 4c 20 2c 6a 73 32  | ........(memq.tt.`(,js2-EOL.,js2 | 
| 6ec60 |  2d 52 43 20 2c 6a 73 32 2d 53 45 4d 49 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61  | -RC.,js2-SEMI)))..............(a | 
| 6ec80 |  6e 64 20 28 73 65 74 71 20 74 74 20 28 6a 73 32    2d 70 65 65 6b 2d 74 6f 6b 65 6e 29 29 0a 20 20  | nd.(setq.tt.(js2-peek-token))... | 
| 6eca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6d 65 6d 71 20 74 74 20 60 28 2c 6a 73 32 2d  | ................(memq.tt.`(,js2- | 
| 6ecc0 |  43 4f 4d 4d 41 20 2c 6a 73 32 2d 52 43 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | COMMA.,js2-RC))................. | 
| 6ece0 |  20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65    2d 70 20 70 72 6f 70 29 29 29 29 0a 20 20 20 20  | ..(js2-name-node-p.prop))))..... | 
| 6ed00 |  20 20 28 73 65 74 71 20 72 65 73 75 6c 74 20 28    6d 61 6b 65 2d 6a 73 32 2d 6f 62 6a 65 63 74 2d  | ..(setq.result.(make-js2-object- | 
| 6ed20 |  70 72 6f 70 2d 6e 6f 64 65 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70  | prop-node.....................:p | 
| 6ed40 |  6f 73 20 70 6f 73 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 3a 6c 65 6e 20  | os.pos.....................:len. | 
| 6ed60 |  28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 70 72    6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | (js2-node-len.prop)............. | 
| 6ed80 |  20 20 20 20 20 20 20 20 3a 6c 65 66 74 20 70 72    6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........:left.prop.............. | 
| 6eda0 |  20 20 20 20 20 20 20 3a 72 69 67 68 74 20 70 72    6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .......:right.prop.............. | 
| 6edc0 |  20 20 20 20 20 20 20 3a 6f 70 2d 70 6f 73 20 28    2d 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74  | .......:op-pos.(-.(js2-current-t | 
| 6ede0 |  6f 6b 65 6e 2d 62 65 67 29 20 70 6f 73 29 29 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65  | oken-beg).pos))).......(js2-node | 
| 6ee00 |  2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65    73 75 6c 74 20 70 72 6f 70 29 0a 20 20 20 20 20  | -add-children.result.prop)...... | 
| 6ee20 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 73 65 74 2d 70    72 6f 70 20 72 65 73 75 6c 74 20 27 53 48 4f 52  | .(js2-node-set-prop.result.'SHOR | 
| 6ee40 |  54 48 41 4e 44 20 74 29 0a 20 20 20 20 20 20 72    65 73 75 6c 74 29 0a 20 20 20 20 20 3b 3b 20 4e  | THAND.t).......result)......;;.N | 
| 6ee60 |  6f 72 6d 61 6c 20 70 72 6f 70 65 72 74 79 0a 20    20 20 20 20 28 74 0a 20 20 20 20 20 20 28 73 65  | ormal.property......(t.......(se | 
| 6ee80 |  74 71 20 74 74 20 28 6a 73 32 2d 67 65 74 2d 74    6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 69 66  | tq.tt.(js2-get-token)).......(if | 
| 6eea0 |  20 28 3d 20 74 74 20 6a 73 32 2d 43 4f 4c 4f 4e    29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | .(=.tt.js2-COLON)...........(set | 
| 6eec0 |  71 20 63 6f 6c 6f 6e 20 28 2d 20 28 6a 73 32 2d    63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e 2d 62 65  | q.colon.(-.(js2-current-token-be | 
| 6eee0 |  67 29 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 65 78 70 72 20 28 6a 73  | g).pos).................expr.(js | 
| 6ef00 |  32 2d 70 61 72 73 65 2d 61 73 73 69 67 6e 2d 65    78 70 72 29 29 0a 20 20 20 20 20 20 20 20 28 6a  | 2-parse-assign-expr)).........(j | 
| 6ef20 |  73 32 2d 72 65 70 6f 72 74 2d 65 72 72 6f 72 20    22 6d 73 67 2e 6e 6f 2e 63 6f 6c 6f 6e 2e 70 72  | s2-report-error."msg.no.colon.pr | 
| 6ef40 |  6f 70 22 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 71 20 65 78 70 72 20 28 6d 61 6b 65 2d 6a 73  | op").........(setq.expr.(make-js | 
| 6ef60 |  32 2d 65 72 72 6f 72 2d 6e 6f 64 65 29 29 29 0a    20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 75  | 2-error-node))).......(setq.resu | 
| 6ef80 |  6c 74 20 28 6d 61 6b 65 2d 6a 73 32 2d 6f 62 6a    65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 0a 20 20  | lt.(make-js2-object-prop-node... | 
| 6efa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 70 6f 73 20 70 6f 73 0a 20 20 20 20 20 20  | .................:pos.pos....... | 
| 6efc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    64 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 6c 61  | .............;;.don't.include.la | 
| 6efe0 |  73 74 20 63 6f 6e 73 75 6d 65 64 20 74 6f 6b 65    6e 20 69 6e 20 6c 65 6e 67 74 68 0a 20 20 20 20  | st.consumed.token.in.length..... | 
| 6f000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a    6c 65 6e 20 28 2d 20 28 2b 20 28 6a 73 32 2d 6e  | ...............:len.(-.(+.(js2-n | 
| 6f020 |  6f 64 65 2d 70 6f 73 20 65 78 70 72 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ode-pos.expr)................... | 
| 6f040 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 6c 65 6e 20 65 78 70 72 29 29  | ............(js2-node-len.expr)) | 
| 6f060 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 29  | ............................pos) | 
| 6f080 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3a 6c 65 66 74 20 70 72 6f 70 0a 20  | ....................:left.prop.. | 
| 6f0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3a 72 69 67 68 74 20 65 78 70 72 0a 20 20  | ..................:right.expr... | 
| 6f0c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3a 6f 70 2d 70 6f 73 20 63 6f 6c 6f 6e 29 29  | .................:op-pos.colon)) | 
| 6f0e0 |  0a 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65    2d 61 64 64 2d 63 68 69 6c 64 72 65 6e 20 72 65  | .......(js2-node-add-children.re | 
| 6f100 |  73 75 6c 74 20 70 72 6f 70 20 65 78 70 72 29 0a    20 20 20 20 20 20 72 65 73 75 6c 74 29 29 29 29  | sult.prop.expr).......result)))) | 
| 6f120 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 70 61 72    73 65 2d 6d 65 74 68 6f 64 2d 70 72 6f 70 20 28  | ..(defun.js2-parse-method-prop.( | 
| 6f140 |  70 6f 73 20 70 72 6f 70 20 74 79 70 65 2d 73 74    72 69 6e 67 20 73 74 61 72 2d 70 29 0a 20 20 22  | pos.prop.type-string.star-p)..." | 
| 6f160 |  50 61 72 73 65 20 6d 65 74 68 6f 64 20 70 72 6f    70 65 72 74 79 20 69 6e 20 61 6e 20 6f 62 6a 65  | Parse.method.property.in.an.obje | 
| 6f180 |  63 74 20 6c 69 74 65 72 61 6c 20 6f 72 20 61 20    63 6c 61 73 73 20 62 6f 64 79 2e 0a 4a 61 76 61  | ct.literal.or.a.class.body..Java | 
| 6f1a0 |  53 63 72 69 70 74 20 73 79 6e 74 61 78 20 69 73    3a 0a 0a 20 20 7b 20 66 6f 6f 28 2e 2e 2e 29 20  | Script.syntax.is:....{.foo(...). | 
| 6f1c0 |  7b 2e 2e 2e 7d 2c 20 67 65 74 20 66 6f 6f 28 29    20 7b 2e 2e 2e 7d 2c 20 73 65 74 20 66 6f 6f 28  | {...},.get.foo().{...},.set.foo( | 
| 6f1e0 |  78 29 20 7b 2e 2e 2e 7d 2c 20 2a 66 6f 6f 28 2e    2e 2e 29 20 7b 2e 2e 2e 7d 2c 0a 20 20 20 20 61  | x).{...},.*foo(...).{...},.....a | 
| 6f200 |  73 79 6e 63 20 66 6f 6f 28 2e 2e 2e 29 20 7b 2e    2e 2e 7d 20 7d 0a 0a 61 6e 64 20 65 78 70 72 65  | sync.foo(...).{...}.}..and.expre | 
| 6f220 |  73 73 69 6f 6e 20 63 6c 6f 73 75 72 65 20 73 74    79 6c 65 20 69 73 20 61 6c 73 6f 20 73 75 70 70  | ssion.closure.style.is.also.supp | 
| 6f240 |  6f 72 74 65 64 0a 0a 20 20 7b 20 67 65 74 20 66    6f 6f 28 29 20 78 2c 20 73 65 74 20 66 6f 6f 28  | orted....{.get.foo().x,.set.foo( | 
| 6f260 |  78 29 20 5f 78 20 3d 20 78 20 7d 0a 0a 50 4f 53    20 69 73 20 74 68 65 20 73 74 61 72 74 20 70 6f  | x)._x.=.x.}..POS.is.the.start.po | 
| 6f280 |  73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 60 67    65 74 27 20 6f 72 20 60 73 65 74 27 20 6b 65 79  | sition.of.the.`get'.or.`set'.key | 
| 6f2a0 |  77 6f 72 64 2c 20 69 66 20 61 6e 79 2e 0a 50 52    4f 50 20 69 73 20 74 68 65 20 60 6a 73 32 2d 6e  | word,.if.any..PROP.is.the.`js2-n | 
| 6f2c0 |  61 6d 65 2d 6e 6f 64 65 27 20 72 65 70 72 65 73    65 6e 74 69 6e 67 20 74 68 65 20 70 72 6f 70 65  | ame-node'.representing.the.prope | 
| 6f2e0 |  72 74 79 20 6e 61 6d 65 2e 0a 54 59 50 45 2d 53    54 52 49 4e 47 20 69 73 20 61 20 73 74 72 69 6e  | rty.name..TYPE-STRING.is.a.strin | 
| 6f300 |  67 20 60 67 65 74 27 2c 20 60 73 65 74 27 2c 20    60 61 73 79 6e 63 27 2c 20 6f 72 20 6e 69 6c 2e  | g.`get',.`set',.`async',.or.nil. | 
| 6f320 |  0a 53 54 41 52 54 2d 50 20 69 73 20 6e 6f 6e 2d    6e 69 6c 20 77 68 65 6e 20 6e 61 6d 65 20 69 73  | .START-P.is.non-nil.when.name.is | 
| 6f340 |  20 70 72 65 63 65 64 65 64 20 62 79 20 74 68 65    20 73 74 61 72 20 63 68 61 72 61 63 74 65 72 2e  | .preceded.by.the.star.character. | 
| 6f360 |  22 0a 20 20 28 6c 65 74 2a 20 28 28 74 79 70 65    20 28 6f 72 20 28 63 64 72 20 28 61 73 73 6f 63  | "...(let*.((type.(or.(cdr.(assoc | 
| 6f380 |  20 74 79 70 65 2d 73 74 72 69 6e 67 20 27 28 28    22 67 65 74 22 20 2e 20 47 45 54 29 0a 20 20 20  | .type-string.'(("get"...GET).... | 
| 6f3a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6f3c0 |  20 20 20 20 20 20 20 20 20 20 28 22 73 65 74 22    20 2e 20 53 45 54 29 0a 20 20 20 20 20 20 20 20  | ..........("set"...SET)......... | 
| 6f3e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6f400 |  20 20 20 20 20 28 22 61 73 79 6e 63 22 20 2e 20    41 53 59 4e 43 29 29 29 29 0a 20 20 20 20 20 20  | .....("async"...ASYNC))))....... | 
| 6f420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 27 46 55    4e 43 54 49 4f 4e 29 29 0a 20 20 20 20 20 20 20  | .............'FUNCTION))........ | 
| 6f440 |  20 20 72 65 73 75 6c 74 20 65 6e 64 0a 20 20 20    20 20 20 20 20 20 28 70 6f 73 20 28 6f 72 20 70  | ..result.end..........(pos.(or.p | 
| 6f460 |  6f 73 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d    74 6f 6b 65 6e 2d 62 65 67 29 29 29 0a 20 20 20  | os.(js2-current-token-beg))).... | 
| 6f480 |  20 20 20 20 20 20 28 5f 20 28 6a 73 32 2d 6d 75    73 74 2d 6d 61 74 63 68 20 6a 73 32 2d 4c 50 20  | ......(_.(js2-must-match.js2-LP. | 
| 6f4a0 |  22 6d 73 67 2e 6e 6f 2e 70 61 72 65 6e 2e 70 61    72 6d 73 22 29 29 0a 20 20 20 20 20 20 20 20 20  | "msg.no.paren.parms")).......... | 
| 6f4c0 |  28 66 6e 20 28 6a 73 32 2d 70 61 72 73 65 2d 66    75 6e 63 74 69 6f 6e 20 27 46 55 4e 43 54 49 4f  | (fn.(js2-parse-function.'FUNCTIO | 
| 6f4e0 |  4e 5f 45 58 50 52 45 53 53 49 4f 4e 20 70 6f 73    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | N_EXPRESSION.pos................ | 
| 6f500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 73 74 61 72 2d 70 0a 20 20 20 20 20 20 20  | ..................star-p........ | 
| 6f520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 65 71 20 74 79  | ..........................(eq.ty | 
| 6f540 |  70 65 20 27 41 53 59 4e 43 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | pe.'ASYNC)...................... | 
| 6f560 |  20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29    29 29 0a 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65  | ............nil))).....(js2-node | 
| 6f580 |  2d 73 65 74 2d 70 72 6f 70 20 66 6e 20 27 4d 45    54 48 4f 44 5f 54 59 50 45 20 74 79 70 65 29 20  | -set-prop.fn.'METHOD_TYPE.type). | 
| 6f5a0 |  20 3b 20 66 6f 72 20 63 6f 64 65 67 65 6e 0a 20    20 20 20 28 75 6e 6c 65 73 73 20 70 6f 73 20 28  | .;.for.codegen.....(unless.pos.( | 
| 6f5c0 |  73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 6f 73 20 70 72 6f 70 29 29 29 0a 20  | setq.pos.(js2-node-pos.prop))).. | 
| 6f5e0 |  20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6a 73    32 2d 6e 6f 64 65 2d 65 6e 64 20 66 6e 29 0a 20  | ...(setq.end.(js2-node-end.fn).. | 
| 6f600 |  20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20    28 6d 61 6b 65 2d 6a 73 32 2d 6d 65 74 68 6f 64  | .........result.(make-js2-method | 
| 6f620 |  2d 6e 6f 64 65 20 3a 70 6f 73 20 70 6f 73 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -node.:pos.pos.................. | 
| 6f640 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3a 6c 65 6e 20 28 2d 20 65 6e  | ......................:len.(-.en | 
| 6f660 |  64 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d.pos).......................... | 
| 6f680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6c    65 66 74 20 70 72 6f 70 0a 20 20 20 20 20 20 20  | ..............:left.prop........ | 
| 6f6a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 6f6c0 |  3a 72 69 67 68 74 20 66 6e 29 29 0a 20 20 20 20    28 6a 73 32 2d 6e 6f 64 65 2d 61 64 64 2d 63 68  | :right.fn)).....(js2-node-add-ch | 
| 6f6e0 |  69 6c 64 72 65 6e 20 72 65 73 75 6c 74 20 70 72    6f 70 20 66 6e 29 0a 20 20 20 20 72 65 73 75 6c  | ildren.result.prop.fn).....resul | 
| 6f700 |  74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    63 72 65 61 74 65 2d 6e 61 6d 65 2d 6e 6f 64 65  | t))..(defun.js2-create-name-node | 
| 6f720 |  20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 68 65 63    6b 2d 61 63 74 69 76 61 74 69 6f 6e 2d 70 20 74  | .(&optional.check-activation-p.t | 
| 6f740 |  6f 6b 65 6e 20 73 74 72 69 6e 67 29 0a 20 20 22    43 72 65 61 74 65 20 61 20 6e 61 6d 65 20 6e 6f  | oken.string)..."Create.a.name.no | 
| 6f760 |  64 65 20 75 73 69 6e 67 20 74 68 65 20 63 75 72    72 65 6e 74 20 74 6f 6b 65 6e 20 61 6e 64 2c 20  | de.using.the.current.token.and,. | 
| 6f780 |  6f 70 74 69 6f 6e 61 6c 6c 79 2c 20 53 54 52 49    4e 47 2e 0a 41 6e 64 2c 20 69 66 20 43 48 45 43  | optionally,.STRING..And,.if.CHEC | 
| 6f7a0 |  4b 2d 41 43 54 49 56 41 54 49 4f 4e 2d 50 20 69    73 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 74  | K-ACTIVATION-P.is.non-nil,.use.t | 
| 6f7c0 |  68 65 20 76 61 6c 75 65 20 6f 66 20 54 4f 4b 45    4e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 65  | he.value.of.TOKEN."...(let*.((be | 
| 6f7e0 |  67 20 28 6a 73 32 2d 63 75 72 72 65 6e 74 2d 74    6f 6b 65 6e 2d 62 65 67 29 29 0a 20 20 20 20 20  | g.(js2-current-token-beg))...... | 
| 6f800 |  20 20 20 20 28 74 74 20 28 6a 73 32 2d 63 75 72    72 65 6e 74 2d 74 6f 6b 65 6e 2d 74 79 70 65 29  | ....(tt.(js2-current-token-type) | 
| 6f820 |  29 0a 20 20 20 20 20 20 20 20 20 28 73 20 28 6f    72 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20  | )..........(s.(or.string........ | 
| 6f840 |  20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72    20 28 3d 20 6a 73 32 2d 4e 41 4d 45 20 74 74 29  | .........(if.(or.(=.js2-NAME.tt) | 
| 6f860 |  20 28 3d 20 6a 73 32 2d 50 52 49 56 41 54 45 5f    4e 41 4d 45 20 74 74 29 29 0a 20 20 20 20 20 20  | .(=.js2-PRIVATE_NAME.tt))....... | 
| 6f880 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 63 75 72 72 65 6e 74 2d 74 6f 6b 65 6e  | ..............(js2-current-token | 
| 6f8a0 |  2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | -string)...................(js2- | 
| 6f8c0 |  74 74 2d 6e 61 6d 65 20 74 74 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 6e 61 6d 65 29 0a 20 20  | tt-name.tt))))..........name)... | 
| 6f8e0 |  20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 6d 61    6b 65 2d 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65  | ..(setq.name.(make-js2-name-node | 
| 6f900 |  20 3a 70 6f 73 20 62 65 67 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .:pos.beg....................... | 
| 6f920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61    6d 65 20 73 0a 20 20 20 20 20 20 20 20 20 20 20  | .............:name.s............ | 
| 6f940 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3a 6c 65 6e 20 28 6c 65  | ........................:len.(le | 
| 6f960 |  6e 67 74 68 20 73 29 29 29 0a 20 20 20 20 28 69    66 20 63 68 65 63 6b 2d 61 63 74 69 76 61 74 69  | ngth.s))).....(if.check-activati | 
| 6f980 |  6f 6e 2d 70 0a 20 20 20 20 20 20 20 20 28 6a 73    32 2d 63 68 65 63 6b 2d 61 63 74 69 76 61 74 69  | on-p.........(js2-check-activati | 
| 6f9a0 |  6f 6e 2d 6e 61 6d 65 20 73 20 28 6f 72 20 74 6f    6b 65 6e 20 6a 73 32 2d 4e 41 4d 45 29 29 29 0a  | on-name.s.(or.token.js2-NAME))). | 
| 6f9c0 |  20 20 20 20 6e 61 6d 65 29 29 0a 0a 3b 3b 3b 20    55 73 65 20 41 53 54 20 74 6f 20 65 78 74 72 61  | ....name))..;;;.Use.AST.to.extra | 
| 6f9e0 |  63 74 20 73 65 6d 61 6e 74 69 63 20 69 6e 66 6f    72 6d 61 74 69 6f 6e 0a 0a 28 64 65 66 75 6e 20  | ct.semantic.information..(defun. | 
| 6fa00 |  6a 73 32 2d 67 65 74 2d 65 6c 65 6d 65 6e 74 2d    69 6e 64 65 78 2d 66 72 6f 6d 2d 61 72 72 61 79  | js2-get-element-index-from-array | 
| 6fa20 |  2d 6e 6f 64 65 20 28 65 6c 65 6d 20 61 72 72 61    79 2d 6e 6f 64 65 20 26 6f 70 74 69 6f 6e 61 6c  | -node.(elem.array-node.&optional | 
| 6fa40 |  20 68 61 72 64 63 6f 64 65 64 2d 61 72 72 61 79    2d 69 6e 64 65 78 29 0a 20 20 22 47 65 74 20 69  | .hardcoded-array-index)..."Get.i | 
| 6fa60 |  6e 64 65 78 20 6f 66 20 45 4c 45 4d 20 66 72 6f    6d 20 41 52 52 41 59 2d 4e 4f 44 45 20 6f 72 20  | ndex.of.ELEM.from.ARRAY-NODE.or. | 
| 6fa80 |  30 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 20    61 73 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c  | 0.and.return.it.as.string."...(l | 
| 6faa0 |  65 74 20 28 28 69 64 78 20 30 29 20 65 6c 65 6d    73 20 28 72 6c 74 20 68 61 72 64 63 6f 64 65 64  | et.((idx.0).elems.(rlt.hardcoded | 
| 6fac0 |  2d 61 72 72 61 79 2d 69 6e 64 65 78 29 29 0a 20    20 20 20 28 73 65 74 71 20 65 6c 65 6d 73 20 28  | -array-index)).....(setq.elems.( | 
| 6fae0 |  6a 73 32 2d 61 72 72 61 79 2d 6e 6f 64 65 2d 65    6c 65 6d 73 20 61 72 72 61 79 2d 6e 6f 64 65 29  | js2-array-node-elems.array-node) | 
| 6fb00 |  29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 65    6c 65 6d 20 28 6e 6f 74 20 68 61 72 64 63 6f 64  | ).....(if.(and.elem.(not.hardcod | 
| 6fb20 |  65 64 2d 61 72 72 61 79 2d 69 6e 64 65 78 29 29    0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72  | ed-array-index)).........(setq.r | 
| 6fb40 |  6c 74 20 28 63 61 74 63 68 20 27 6e 74 68 2d 65    6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | lt.(catch.'nth-elt.............. | 
| 6fb60 |  20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28    78 20 65 6c 65 6d 73 29 0a 20 20 20 20 20 20 20  | .......(dolist.(x.elems)........ | 
| 6fb80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b    3b 20 57 65 20 6b 6e 6f 77 20 74 68 65 20 45 4c  | ...............;;.We.know.the.EL | 
| 6fba0 |  45 4d 20 64 6f 65 73 20 62 65 6c 6f 6e 67 20 74    6f 20 41 52 52 41 59 2d 4e 4f 44 45 2c 0a 20 20  | EM.does.belong.to.ARRAY-NODE,... | 
| 6fbc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 65 71 20 65 6c 65 6d  | ....................(if.(eq.elem | 
| 6fbe0 |  20 78 29 20 28 74 68 72 6f 77 20 27 6e 74 68 2d    65 6c 74 20 69 64 78 29 29 0a 20 20 20 20 20 20  | .x).(throw.'nth-elt.idx))....... | 
| 6fc00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 69 64 78 20 28 31 2b 20 69 64  | ................(setq.idx.(1+.id | 
| 6fc20 |  78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 30 29 29 29 0a 20 20  | x))).....................0)))... | 
| 6fc40 |  20 20 28 66 6f 72 6d 61 74 20 22 5b 25 73 5d 22    20 72 6c 74 29 29 29 0a 0a 28 64 65 66 75 6e 20  | ..(format."[%s]".rlt)))..(defun. | 
| 6fc60 |  6a 73 32 2d 70 72 69 6e 74 2d 6a 73 6f 6e 2d 70    61 74 68 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68  | js2-print-json-path.(&optional.h | 
| 6fc80 |  61 72 64 63 6f 64 65 64 2d 61 72 72 61 79 2d 69    6e 64 65 78 29 0a 20 20 22 50 72 69 6e 74 20 74  | ardcoded-array-index)..."Print.t | 
| 6fca0 |  68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 4a    53 4f 4e 20 76 61 6c 75 65 20 75 6e 64 65 72 20  | he.path.to.the.JSON.value.under. | 
| 6fcc0 |  70 6f 69 6e 74 2c 20 61 6e 64 20 73 61 76 65 20    69 74 20 69 6e 20 74 68 65 20 6b 69 6c 6c 20 72  | point,.and.save.it.in.the.kill.r | 
| 6fce0 |  69 6e 67 2e 0a 49 66 20 48 41 52 44 43 4f 44 45    44 2d 41 52 52 41 59 2d 49 4e 44 45 58 20 70 72  | ing..If.HARDCODED-ARRAY-INDEX.pr | 
| 6fd00 |  6f 76 69 64 65 64 2c 20 61 72 72 61 79 20 69 6e    64 65 78 20 69 6e 20 4a 53 4f 4e 20 70 61 74 68  | ovided,.array.index.in.JSON.path | 
| 6fd20 |  20 69 73 20 72 65 70 6c 61 63 65 64 20 77 69 74    68 20 69 74 2e 22 0a 20 20 28 69 6e 74 65 72 61  | .is.replaced.with.it."...(intera | 
| 6fd40 |  63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6a 73    32 2d 72 65 70 61 72 73 65 29 0a 20 20 28 6c 65  | ctive."P")...(js2-reparse)...(le | 
| 6fd60 |  74 20 28 70 72 65 76 69 6f 75 73 2d 6e 6f 64 65    20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 0a 20 20  | t.(previous-node.current-node... | 
| 6fd80 |  20 20 20 20 20 20 6b 65 79 2d 6e 61 6d 65 0a 20    20 20 20 20 20 20 20 72 6c 74 29 0a 0a 20 20 20  | ......key-name.........rlt)..... | 
| 6fda0 |  20 3b 3b 20 54 68 65 20 60 6a 73 32 2d 6e 6f 64    65 2d 61 74 2d 70 6f 69 6e 74 27 20 73 74 61 72  | .;;.The.`js2-node-at-point'.star | 
| 6fdc0 |  74 73 20 73 63 61 6e 6e 69 6e 67 20 66 72 6f 6d    20 41 53 54 20 72 6f 6f 74 20 6e 6f 64 65 2e 0a  | ts.scanning.from.AST.root.node.. | 
| 6fde0 |  20 20 20 20 3b 3b 20 53 6f 20 74 68 65 72 65 20    69 73 20 6e 6f 20 77 61 79 20 74 6f 20 6f 70 74  | ....;;.So.there.is.no.way.to.opt | 
| 6fe00 |  69 6d 69 7a 65 20 69 74 2e 0a 20 20 20 20 28 73    65 74 71 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65  | imize.it......(setq.current-node | 
| 6fe20 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f    69 6e 74 29 29 0a 0a 20 20 20 20 28 77 68 69 6c  | .(js2-node-at-point))......(whil | 
| 6fe40 |  65 20 28 6e 6f 74 20 28 6a 73 32 2d 61 73 74 2d    72 6f 6f 74 2d 70 20 63 75 72 72 65 6e 74 2d 6e  | e.(not.(js2-ast-root-p.current-n | 
| 6fe60 |  6f 64 65 29 29 0a 20 20 20 20 20 20 28 63 6f 6e    64 0a 20 20 20 20 20 20 20 3b 3b 20 4a 53 4f 4e  | ode)).......(cond........;;.JSON | 
| 6fe80 |  20 70 72 6f 70 65 72 74 79 20 6e 6f 64 65 0a 20    20 20 20 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65  | .property.node........((js2-obje | 
| 6fea0 |  63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 70 20 63    75 72 72 65 6e 74 2d 6e 6f 64 65 29 0a 20 20 20  | ct-prop-node-p.current-node).... | 
| 6fec0 |  20 20 20 20 20 28 73 65 74 71 20 6b 65 79 2d 6e    61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f  | .....(setq.key-name.(js2-prop-no | 
| 6fee0 |  64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 6f 62 6a    65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65  | de-name.(js2-object-prop-node-le | 
| 6ff00 |  66 74 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29    29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 72  | ft.current-node))).........(if.r | 
| 6ff20 |  6c 74 20 28 73 65 74 71 20 72 6c 74 20 28 63 6f    6e 63 61 74 20 22 2e 22 20 6b 65 79 2d 6e 61 6d  | lt.(setq.rlt.(concat.".".key-nam | 
| 6ff40 |  65 20 72 6c 74 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 72 6c 74 20 28 63 6f 6e  | e.rlt))...........(setq.rlt.(con | 
| 6ff60 |  63 61 74 20 22 2e 22 20 6b 65 79 2d 6e 61 6d 65    29 29 29 29 0a 0a 20 20 20 20 20 20 20 3b 3b 20  | cat.".".key-name)))).........;;. | 
| 6ff80 |  41 72 72 61 79 20 6e 6f 64 65 0a 20 20 20 20 20    20 20 28 28 6f 72 20 28 6a 73 32 2d 61 72 72 61  | Array.node........((or.(js2-arra | 
| 6ffa0 |  79 2d 6e 6f 64 65 2d 70 20 63 75 72 72 65 6e 74    2d 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20  | y-node-p.current-node))......... | 
| 6ffc0 |  28 73 65 74 71 20 72 6c 74 20 28 63 6f 6e 63 61    74 20 28 6a 73 32 2d 67 65 74 2d 65 6c 65 6d 65  | (setq.rlt.(concat.(js2-get-eleme | 
| 6ffe0 |  6e 74 2d 69 6e 64 65 78 2d 66 72 6f 6d 2d 61 72    72 61 79 2d 6e 6f 64 65 20 70 72 65 76 69 6f 75  | nt-index-from-array-node.previou | 
| 70000 |  73 2d 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s-node.......................... | 
| 70020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 70040 |  20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 2d    6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20  | ........current-node............ | 
| 70060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 70080 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 68 61 72 64 63 6f 64 65 64 2d  | ......................hardcoded- | 
| 700a0 |  61 72 72 61 79 2d 69 6e 64 65 78 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | array-index).................... | 
| 700c0 |  20 20 20 20 20 20 20 72 6c 74 29 29 29 0a 0a 20    20 20 20 20 20 20 3b 3b 20 4f 74 68 65 72 20 6e  | .......rlt))).........;;.Other.n | 
| 700e0 |  6f 64 65 73 20 61 72 65 20 69 67 6e 6f 72 65 64    0a 20 20 20 20 20 20 20 28 74 29 29 0a 0a 20 20  | odes.are.ignored........(t)).... | 
| 70100 |  20 20 20 20 3b 3b 20 63 75 72 72 65 6e 74 20 6e    6f 64 65 20 69 73 20 61 72 63 68 69 76 65 64 0a  | ....;;.current.node.is.archived. | 
| 70120 |  20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76    69 6f 75 73 2d 6e 6f 64 65 20 63 75 72 72 65 6e  | ......(setq.previous-node.curren | 
| 70140 |  74 2d 6e 6f 64 65 29 0a 20 20 20 20 20 20 3b 3b    20 47 65 74 20 70 61 72 65 6e 74 20 6e 6f 64 65  | t-node).......;;.Get.parent.node | 
| 70160 |  20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 20 74 68    65 20 6c 6f 6f 70 0a 20 20 20 20 20 20 28 73 65  | .and.continue.the.loop.......(se | 
| 70180 |  74 71 20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 20    28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74  | tq.current-node.(js2-node-parent | 
| 701a0 |  20 63 75 72 72 65 6e 74 2d 6e 6f 64 65 29 29 29    0a 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20  | .current-node)))......(cond..... | 
| 701c0 |  20 28 72 6c 74 0a 20 20 20 20 20 20 3b 3b 20 43    6c 65 61 6e 20 74 68 65 20 66 69 6e 61 6c 20 72  | .(rlt.......;;.Clean.the.final.r | 
| 701e0 |  65 73 75 6c 74 0a 20 20 20 20 20 20 28 73 65 74    71 20 72 6c 74 20 28 72 65 70 6c 61 63 65 2d 72  | esult.......(setq.rlt.(replace-r | 
| 70200 |  65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20    22 5e 5c 5c 2e 22 20 22 22 20 72 6c 74 29 29 0a  | egexp-in-string."^\\."."".rlt)). | 
| 70220 |  20 20 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20    72 6c 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73  | ......(kill-new.rlt).......(mess | 
| 70240 |  61 67 65 20 22 25 73 20 3d 3e 20 6b 69 6c 6c 2d    72 69 6e 67 22 20 72 6c 74 29 29 0a 20 20 20 20  | age."%s.=>.kill-ring".rlt))..... | 
| 70260 |  20 28 74 0a 20 20 20 20 20 20 28 6d 65 73 73 61    67 65 20 22 4e 6f 20 4a 53 4f 4e 20 70 61 74 68  | .(t.......(message."No.JSON.path | 
| 70280 |  20 66 6f 75 6e 64 21 22 29 29 29 0a 0a 20 20 20    20 72 6c 74 29 29 0a 0a 3b 3b 3b 20 49 6e 64 65  | .found!")))......rlt))..;;;.Inde | 
| 702a0 |  6e 74 61 74 69 6f 6e 20 73 75 70 70 6f 72 74 20    28 62 6f 75 6e 63 69 6e 67 29 0a 0a 3b 3b 20 49  | ntation.support.(bouncing)..;;.I | 
| 702c0 |  6e 20 72 65 63 65 6e 74 2d 65 6e 6f 75 67 68 20    45 6d 61 63 73 2c 20 77 65 20 72 65 75 73 65 20  | n.recent-enough.Emacs,.we.reuse. | 
| 702e0 |  74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20    63 6f 64 65 20 66 72 6f 6d 0a 3b 3b 20 60 6a 73  | the.indentation.code.from.;;.`js | 
| 70300 |  2d 6d 6f 64 65 27 2e 20 20 54 6f 20 63 6f 6e 74    69 6e 75 65 20 73 75 70 70 6f 72 74 20 66 6f 72  | -mode'...To.continue.support.for | 
| 70320 |  20 74 68 65 20 6f 6c 64 65 72 20 76 65 72 73 69    6f 6e 73 2c 20 73 6f 6d 65 20 63 6f 64 65 0a 3b  | .the.older.versions,.some.code.; | 
| 70340 |  3b 20 74 68 61 74 20 77 61 73 20 68 65 72 65 20    70 72 65 76 69 6f 75 73 6c 79 20 77 61 73 20 6d  | ;.that.was.here.previously.was.m | 
| 70360 |  6f 76 65 64 20 74 6f 20 60 6a 73 32 2d 6f 6c 64    2d 69 6e 64 65 6e 74 2e 65 6c 27 2e 0a 0a 3b 3b  | oved.to.`js2-old-indent.el'...;; | 
| 70380 |  20 57 68 69 63 68 65 76 65 72 20 69 6e 64 65 6e    74 65 72 20 69 73 20 75 73 65 64 2c 20 69 74 27  | .Whichever.indenter.is.used,.it' | 
| 703a0 |  73 20 6f 66 74 65 6e 20 22 77 72 6f 6e 67 22 2c    20 68 6f 77 65 76 65 72 2c 20 61 6e 64 20 6e 65  | s.often."wrong",.however,.and.ne | 
| 703c0 |  65 64 73 0a 3b 3b 20 74 6f 20 62 65 20 6f 76 65    72 72 69 64 64 65 6e 2e 20 20 54 68 65 20 72 69  | eds.;;.to.be.overridden...The.ri | 
| 703e0 |  67 68 74 20 6c 6f 6e 67 2d 74 65 72 6d 20 73 6f    6c 75 74 69 6f 6e 20 69 73 20 70 72 6f 62 61 62  | ght.long-term.solution.is.probab | 
| 70400 |  6c 79 20 74 6f 0a 3b 3b 20 65 6d 75 6c 61 74 65    20 28 6f 72 20 69 6e 74 65 67 72 61 74 65 20 77  | ly.to.;;.emulate.(or.integrate.w | 
| 70420 |  69 74 68 29 20 63 63 2d 65 6e 67 69 6e 65 2c 20    62 75 74 20 69 74 27 73 20 61 20 6e 6f 6e 74 72  | ith).cc-engine,.but.it's.a.nontr | 
| 70440 |  69 76 69 61 6c 20 61 6d 6f 75 6e 74 0a 3b 3b 20    6f 66 20 63 6f 64 69 6e 67 2e 20 20 45 76 65 6e  | ivial.amount.;;.of.coding...Even | 
| 70460 |  20 77 68 65 6e 20 61 20 70 61 72 73 65 20 74 72    65 65 20 66 72 6f 6d 20 60 6a 73 32 2d 70 61 72  | .when.a.parse.tree.from.`js2-par | 
| 70480 |  73 65 27 20 69 73 20 70 72 65 73 65 6e 74 2c 0a    3b 3b 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20  | se'.is.present,.;;.which.is.not. | 
| 704a0 |  74 72 75 65 20 61 74 20 74 68 65 20 6d 6f 6d 65    6e 74 20 74 68 65 20 75 73 65 72 20 69 73 20 74  | true.at.the.moment.the.user.is.t | 
| 704c0 |  79 70 69 6e 67 2c 20 63 6f 6d 70 75 74 69 6e 67    0a 3b 3b 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20  | yping,.computing.;;.indentation. | 
| 704e0 |  69 73 20 73 74 69 6c 6c 20 74 68 6f 75 73 61 6e    64 73 20 6f 66 20 6c 69 6e 65 73 20 6f 66 20 63  | is.still.thousands.of.lines.of.c | 
| 70500 |  6f 64 65 20 74 6f 20 68 61 6e 64 6c 65 20 65 76    65 72 79 0a 3b 3b 20 70 6f 73 73 69 62 6c 65 20  | ode.to.handle.every.;;.possible. | 
| 70520 |  73 79 6e 74 61 63 74 69 63 20 65 64 67 65 20 63    61 73 65 2e 0a 0a 3b 3b 20 49 6e 20 74 68 65 20  | syntactic.edge.case...;;.In.the. | 
| 70540 |  6d 65 61 6e 74 69 6d 65 2c 20 74 68 65 20 63 6f    6d 70 72 6f 6d 69 73 65 20 73 6f 6c 75 74 69 6f  | meantime,.the.compromise.solutio | 
| 70560 |  6e 20 69 73 20 74 68 61 74 20 77 65 20 6f 66 66    65 72 20 61 20 22 62 6f 75 6e 63 65 0a 3b 3b 20  | n.is.that.we.offer.a."bounce.;;. | 
| 70580 |  69 6e 64 65 6e 74 65 72 22 2c 20 63 6f 6e 66 69    67 75 72 65 64 20 77 69 74 68 20 60 6a 73 32 2d  | indenter",.configured.with.`js2- | 
| 705a0 |  62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 2d 70 27    2c 20 77 68 69 63 68 20 63 79 63 6c 65 73 20 74  | bounce-indent-p',.which.cycles.t | 
| 705c0 |  68 65 0a 3b 3b 20 63 75 72 72 65 6e 74 20 6c 69    6e 65 20 69 6e 64 65 6e 74 20 61 6d 6f 6e 67 20  | he.;;.current.line.indent.among. | 
| 705e0 |  76 61 72 69 6f 75 73 20 6c 69 6b 65 6c 79 20 67    75 65 73 73 20 70 6f 69 6e 74 73 2e 20 20 54 68  | various.likely.guess.points...Th | 
| 70600 |  69 73 20 61 70 70 72 6f 61 63 68 0a 3b 3b 20 69    73 20 66 61 72 20 66 72 6f 6d 20 70 65 72 66 65  | is.approach.;;.is.far.from.perfe | 
| 70620 |  63 74 2c 20 62 75 74 20 73 68 6f 75 6c 64 20 61    74 20 6c 65 61 73 74 20 6d 61 6b 65 20 69 74 20  | ct,.but.should.at.least.make.it. | 
| 70640 |  73 6c 69 67 68 74 6c 79 20 65 61 73 69 65 72 20    74 6f 0a 3b 3b 20 6d 6f 76 65 20 74 68 65 20 6c  | slightly.easier.to.;;.move.the.l | 
| 70660 |  69 6e 65 20 74 6f 77 61 72 64 73 20 69 74 73 20    64 65 73 69 72 65 64 20 69 6e 64 65 6e 74 61 74  | ine.towards.its.desired.indentat | 
| 70680 |  69 6f 6e 20 77 68 65 6e 20 6d 61 6e 75 61 6c 6c    79 0a 3b 3b 20 6f 76 65 72 72 69 64 69 6e 67 20  | ion.when.manually.;;.overriding. | 
| 706a0 |  4b 61 72 6c 27 73 20 68 65 75 72 69 73 74 69 63    20 6e 65 73 74 69 6e 67 20 67 75 65 73 73 65 72  | Karl's.heuristic.nesting.guesser | 
| 706c0 |  2e 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62 61    63 6b 77 61 72 64 2d 73 77 73 20 28 29 0a 20 20  | ...(defun.js2-backward-sws.()... | 
| 706e0 |  22 4d 6f 76 65 20 62 61 63 6b 77 61 72 64 20 74    68 72 6f 75 67 68 20 77 68 69 74 65 73 70 61 63  | "Move.backward.through.whitespac | 
| 70700 |  65 20 61 6e 64 20 63 6f 6d 6d 65 6e 74 73 2e 22    0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29  | e.and.comments."...(interactive) | 
| 70720 |  0a 20 20 28 77 68 69 6c 65 20 28 66 6f 72 77 61    72 64 2d 63 6f 6d 6d 65 6e 74 20 2d 31 29 29 29  | ...(while.(forward-comment.-1))) | 
| 70740 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 66 6f 72    77 61 72 64 2d 73 77 73 20 28 29 0a 20 20 22 4d  | ..(defun.js2-forward-sws.()..."M | 
| 70760 |  6f 76 65 20 66 6f 72 77 61 72 64 20 74 68 72 6f    75 67 68 20 77 68 69 74 65 73 70 61 63 65 20 61  | ove.forward.through.whitespace.a | 
| 70780 |  6e 64 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20    28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20  | nd.comments."...(interactive)... | 
| 707a0 |  28 77 68 69 6c 65 20 28 66 6f 72 77 61 72 64 2d    63 6f 6d 6d 65 6e 74 20 31 29 29 29 0a 0a 28 64  | (while.(forward-comment.1)))..(d | 
| 707c0 |  65 66 75 6e 20 6a 73 32 2d 61 72 67 6c 69 73 74    2d 63 6c 6f 73 65 20 28 29 0a 20 20 22 52 65 74  | efun.js2-arglist-close.()..."Ret | 
| 707e0 |  75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 77    65 27 72 65 20 6f 6e 20 61 20 6c 69 6e 65 20 62  | urn.non-nil.if.we're.on.a.line.b | 
| 70800 |  65 67 69 6e 6e 69 6e 67 20 77 69 74 68 20 61 20    63 6c 6f 73 65 2d 70 61 72 65 6e 2f 62 72 61 63  | eginning.with.a.close-paren/brac | 
| 70820 |  65 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75    72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d  | e."...(save-excursion.....(goto- | 
| 70840 |  63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62    6f 6c 29 29 0a 20 20 20 20 28 6a 73 32 2d 66 6f  | char.(point-at-bol)).....(js2-fo | 
| 70860 |  72 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 28    6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5d 29 7d  | rward-sws).....(looking-at."[])} | 
| 70880 |  5d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 69 6e 64 65 6e 74 2d 6c 6f 6f 6b 73 2d 6c  | ]")))..(defun.js2-indent-looks-l | 
| 708a0 |  69 6b 65 2d 6c 61 62 65 6c 2d 70 20 28 29 0a 20    20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69  | ike-label-p.()...(goto-char.(poi | 
| 708c0 |  6e 74 2d 61 74 2d 62 6f 6c 29 29 0a 20 20 28 6a    73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a  | nt-at-bol))...(js2-forward-sws). | 
| 708e0 |  20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 63    6f 6e 63 61 74 20 6a 73 32 2d 6d 6f 64 65 2d 69  | ..(looking-at.(concat.js2-mode-i | 
| 70900 |  64 65 6e 74 69 66 69 65 72 2d 72 65 20 22 3a 22    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | dentifier-re.":")))..(defun.js2- | 
| 70920 |  69 6e 64 65 6e 74 2d 69 6e 2d 6f 62 6a 6c 69 74    2d 70 20 28 70 61 72 73 65 2d 73 74 61 74 75 73  | indent-in-objlit-p.(parse-status | 
| 70940 |  29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d    6e 69 6c 20 69 66 20 74 68 69 73 20 6c 6f 6f 6b  | )..."Return.non-nil.if.this.look | 
| 70960 |  73 20 6c 69 6b 65 20 61 6e 20 6f 62 6a 65 63 74    2d 6c 69 74 65 72 61 6c 20 65 6e 74 72 79 2e 22  | s.like.an.object-literal.entry." | 
| 70980 |  0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20    28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 61  | ...(let.((start.(nth.1.parse-sta | 
| 709a0 |  74 75 73 29 29 29 0a 20 20 20 20 28 61 6e 64 0a    20 20 20 20 20 73 74 61 72 74 0a 20 20 20 20 20  | tus))).....(and......start...... | 
| 709c0 |  28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a    20 20 20 20 20 20 20 28 61 6e 64 20 28 7a 65 72  | (save-excursion........(and.(zer | 
| 709e0 |  6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65    20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20  | op.(forward-line.-1))........... | 
| 70a00 |  20 20 28 6e 6f 74 20 28 3c 20 28 70 6f 69 6e 74    29 20 73 74 61 72 74 29 29 20 20 20 20 20 3b 20  | ..(not.(<.(point).start)).....;. | 
| 70a20 |  63 72 6f 73 73 65 64 20 61 20 7b 7d 20 62 6f 75    6e 64 61 72 79 0a 20 20 20 20 20 20 20 20 20 20  | crossed.a.{}.boundary........... | 
| 70a40 |  20 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 6f    6f 6b 73 2d 6c 69 6b 65 2d 6c 61 62 65 6c 2d 70  | ..(js2-indent-looks-like-label-p | 
| 70a60 |  29 29 29 0a 20 20 20 20 20 28 73 61 76 65 2d 65    78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20  | )))......(save-excursion........ | 
| 70a80 |  28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 6f 6f 6b    73 2d 6c 69 6b 65 2d 6c 61 62 65 6c 2d 70 29 29  | (js2-indent-looks-like-label-p)) | 
| 70aa0 |  29 29 29 0a 0a 3b 3b 20 49 66 20 70 72 65 76 20    6c 69 6e 65 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20  | )))..;;.If.prev.line.looks.like. | 
| 70ac0 |  66 6f 6f 62 61 72 28 7b 20 74 68 65 6e 20 77 65    27 72 65 20 70 61 73 73 69 6e 67 20 61 6e 20 6f  | foobar({.then.we're.passing.an.o | 
| 70ae0 |  62 6a 65 63 74 0a 3b 3b 20 6c 69 74 65 72 61 6c    20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 63  | bject.;;.literal.to.a.function.c | 
| 70b00 |  61 6c 6c 2c 20 61 6e 64 20 70 65 6f 70 6c 65 20    70 72 65 74 74 79 20 6d 75 63 68 20 61 6c 77 61  | all,.and.people.pretty.much.alwa | 
| 70b20 |  79 73 20 77 61 6e 74 20 74 6f 0a 3b 3b 20 64 65    2d 64 65 6e 74 20 62 61 63 6b 20 74 6f 20 74 68  | ys.want.to.;;.de-dent.back.to.th | 
| 70b40 |  65 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 2c    20 73 6f 20 6d 6f 76 65 20 74 68 65 20 27 62 61  | e.previous.line,.so.move.the.'ba | 
| 70b60 |  73 69 63 2d 6f 66 66 73 65 74 27 0a 3b 3b 20 70    6f 73 69 74 69 6f 6e 20 74 6f 20 74 68 65 20 66  | sic-offset'.;;.position.to.the.f | 
| 70b80 |  72 6f 6e 74 2e 0a 28 64 65 66 75 6e 20 6a 73 32    2d 69 6e 64 65 6e 74 2d 6f 62 6a 6c 69 74 2d 61  | ront..(defun.js2-indent-objlit-a | 
| 70ba0 |  72 67 2d 70 20 28 70 61 72 73 65 2d 73 74 61 74    75 73 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75  | rg-p.(parse-status)...(save-excu | 
| 70bc0 |  72 73 69 6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d    74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a  | rsion.....(back-to-indentation). | 
| 70be0 |  20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72    64 2d 73 77 73 29 0a 20 20 20 20 28 61 6e 64 20  | ....(js2-backward-sws).....(and. | 
| 70c00 |  28 65 71 20 28 31 2d 20 28 70 6f 69 6e 74 29 29    20 28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74  | (eq.(1-.(point)).(nth.1.parse-st | 
| 70c20 |  61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20    28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65  | atus))..........(eq.(char-before | 
| 70c40 |  29 20 3f 7b 29 0a 20 20 20 20 20 20 20 20 20 28    70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20  | ).?{)..........(progn........... | 
| 70c60 |  20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 2d    31 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | .(forward-char.-1)............(s | 
| 70c80 |  6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61    72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20  | kip-chars-backward.".\t")....... | 
| 70ca0 |  20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 62    65 66 6f 72 65 29 20 3f 5c 28 29 29 29 29 29 0a  | .....(eq.(char-before).?\())))). | 
| 70cc0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65    6e 74 2d 63 61 73 65 2d 62 6c 6f 63 6b 2d 70 20  | .(defun.js2-indent-case-block-p. | 
| 70ce0 |  28 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72    73 69 6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74  | ()...(save-excursion.....(back-t | 
| 70d00 |  6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20    20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64  | o-indentation).....(js2-backward | 
| 70d20 |  2d 73 77 73 29 0a 20 20 20 20 28 67 6f 74 6f 2d    63 68 61 72 20 28 70 6f 69 6e 74 2d 61 74 2d 62  | -sws).....(goto-char.(point-at-b | 
| 70d40 |  6f 6c 29 29 0a 20 20 20 20 28 73 6b 69 70 2d 63    68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c  | ol)).....(skip-chars-forward.".\ | 
| 70d60 |  74 22 29 0a 20 20 20 20 28 6c 6f 6f 6b 69 6e 67    2d 61 74 20 22 63 61 73 65 5c 5c 73 2d 2e 2b 3a  | t").....(looking-at."case\\s-.+: | 
| 70d80 |  22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 20 28  | ")))..(defun.js2-bounce-indent.( | 
| 70da0 |  6e 6f 72 6d 61 6c 2d 63 6f 6c 20 70 61 72 73 65    2d 73 74 61 74 75 73 20 26 6f 70 74 69 6f 6e 61  | normal-col.parse-status.&optiona | 
| 70dc0 |  6c 20 62 61 63 6b 77 61 72 64 29 0a 20 20 22 43    79 63 6c 65 20 61 6d 6f 6e 67 20 61 6c 74 65 72  | l.backward)..."Cycle.among.alter | 
| 70de0 |  6e 61 74 65 20 63 6f 6d 70 75 74 65 64 20 69 6e    64 65 6e 74 61 74 69 6f 6e 20 70 6f 73 69 74 69  | nate.computed.indentation.positi | 
| 70e00 |  6f 6e 73 2e 0a 50 41 52 53 45 2d 53 54 41 54 55    53 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20  | ons..PARSE-STATUS.is.the.result. | 
| 70e20 |  6f 66 20 60 70 61 72 73 65 2d 70 61 72 74 69 61    6c 2d 73 65 78 70 27 20 66 72 6f 6d 20 74 68 65  | of.`parse-partial-sexp'.from.the | 
| 70e40 |  20 62 65 67 69 6e 6e 69 6e 67 0a 6f 66 20 74 68    65 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20  | .beginning.of.the.buffer.to.the. | 
| 70e60 |  63 75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 20 20    4e 4f 52 4d 41 4c 2d 43 4f 4c 20 69 73 20 74 68  | current.point...NORMAL-COL.is.th | 
| 70e80 |  65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 63 6f    6c 75 6d 6e 20 63 6f 6d 70 75 74 65 64 20 62 79  | e.indentation.column.computed.by | 
| 70ea0 |  20 74 68 65 20 68 65 75 72 69 73 74 69 63 20 67    75 65 73 73 65 72 20 62 61 73 65 64 20 6f 6e 20  | .the.heuristic.guesser.based.on. | 
| 70ec0 |  63 75 72 72 65 6e 74 20 70 61 72 65 6e 2c 0a 62    72 61 63 6b 65 74 2c 20 62 72 61 63 65 20 61 6e  | current.paren,.bracket,.brace.an | 
| 70ee0 |  64 20 73 74 61 74 65 6d 65 6e 74 20 6e 65 73 74    69 6e 67 2e 20 20 49 66 20 42 41 43 4b 57 41 52  | d.statement.nesting...If.BACKWAR | 
| 70f00 |  44 53 2c 20 63 79 63 6c 65 20 70 6f 73 69 74 69    6f 6e 73 0a 69 6e 20 72 65 76 65 72 73 65 2e 22  | DS,.cycle.positions.in.reverse." | 
| 70f20 |  0a 20 20 28 6c 65 74 20 28 28 63 75 72 2d 69 6e    64 65 6e 74 20 28 63 75 72 72 65 6e 74 2d 69 6e  | ...(let.((cur-indent.(current-in | 
| 70f40 |  64 65 6e 74 61 74 69 6f 6e 29 29 0a 20 20 20 20    20 20 20 20 28 6f 6c 64 2d 62 75 66 66 65 72 2d  | dentation)).........(old-buffer- | 
| 70f60 |  75 6e 64 6f 2d 6c 69 73 74 20 62 75 66 66 65 72    2d 75 6e 64 6f 2d 6c 69 73 74 29 0a 20 20 20 20  | undo-list.buffer-undo-list)..... | 
| 70f80 |  20 20 20 20 3b 3b 20 45 6d 61 63 73 20 32 31 20    6f 6e 6c 79 20 68 61 73 20 60 63 6f 75 6e 74 2d  | ....;;.Emacs.21.only.has.`count- | 
| 70fa0 |  6c 69 6e 65 73 27 2c 20 6e 6f 74 20 60 6c 69 6e    65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 27  | lines',.not.`line-number-at-pos' | 
| 70fc0 |  0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e    74 2d 6c 69 6e 65 20 28 73 61 76 65 2d 65 78 63  | .........(current-line.(save-exc | 
| 70fe0 |  75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ursion.........................( | 
| 71000 |  66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 20    20 3b 20 6d 6f 76 65 20 74 6f 20 62 6f 6c 0a 20  | forward-line.0)..;.move.to.bol.. | 
| 71020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 31 2b 20 28 63 6f 75 6e  | .......................(1+.(coun | 
| 71040 |  74 2d 6c 69 6e 65 73 20 28 70 6f 69 6e 74 2d 6d    69 6e 29 20 28 70 6f 69 6e 74 29 29 29 29 29 0a  | t-lines.(point-min).(point))))). | 
| 71060 |  20 20 20 20 20 20 20 20 70 6f 73 69 74 69 6f 6e    73 20 70 6f 73 20 6d 61 69 6e 2d 70 6f 73 20 61  | ........positions.pos.main-pos.a | 
| 71080 |  6e 63 68 6f 72 20 61 72 67 6c 69 73 74 2d 63 6f    6e 74 20 73 61 6d 65 2d 69 6e 64 65 6e 74 0a 20  | nchor.arglist-cont.same-indent.. | 
| 710a0 |  20 20 20 20 20 20 20 62 61 73 69 63 2d 6f 66 66    73 65 74 20 63 6f 6d 70 75 74 65 64 2d 70 6f 73  | .......basic-offset.computed-pos | 
| 710c0 |  29 0a 20 20 20 20 3b 3b 20 74 65 6d 70 6f 72 61    72 69 6c 79 20 64 6f 6e 27 74 20 72 65 63 6f 72  | ).....;;.temporarily.don't.recor | 
| 710e0 |  64 20 75 6e 64 6f 20 69 6e 66 6f 2c 20 69 66 20    75 73 65 72 20 72 65 71 75 65 73 74 65 64 20 74  | d.undo.info,.if.user.requested.t | 
| 71100 |  68 69 73 0a 20 20 20 20 28 77 68 65 6e 20 6a 73    32 2d 6d 6f 64 65 2d 69 6e 64 65 6e 74 2d 69 6e  | his.....(when.js2-mode-indent-in | 
| 71120 |  68 69 62 69 74 2d 75 6e 64 6f 0a 20 20 20 20 20    20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e  | hibit-undo.......(setq.buffer-un | 
| 71140 |  64 6f 2d 6c 69 73 74 20 74 29 29 0a 20 20 20 20    28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a  | do-list.t)).....(unwind-protect. | 
| 71160 |  20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20    20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 72 73  | ........(progn...........;;.Firs | 
| 71180 |  74 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20    20 69 6e 64 65 6e 74 20 66 72 6f 6d 20 62 65 67  | t.likely.point:..indent.from.beg | 
| 711a0 |  69 6e 6e 69 6e 67 20 6f 66 20 70 72 65 76 69 6f    75 73 20 63 6f 64 65 20 6c 69 6e 65 0a 20 20 20  | inning.of.previous.code.line.... | 
| 711c0 |  20 20 20 20 20 20 20 28 70 75 73 68 20 28 73 65    74 71 20 62 61 73 69 63 2d 6f 66 66 73 65 74 0a  | .......(push.(setq.basic-offset. | 
| 711e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 2b 20 28 73 61 76 65 2d 65  | ......................(+.(save-e | 
| 71200 |  78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | xcursion........................ | 
| 71220 |  20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64    65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20  | ....(back-to-indentation)....... | 
| 71240 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61  | .....................(js2-backwa | 
| 71260 |  72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rd-sws)......................... | 
| 71280 |  20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65    6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20  | ...(back-to-indentation)........ | 
| 712a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c  | ....................(current-col | 
| 712c0 |  75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6a  | umn))..........................j | 
| 712e0 |  73 32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-basic-offset))............... | 
| 71300 |  20 20 70 6f 73 69 74 69 6f 6e 73 29 0a 0a 20 20    20 20 20 20 20 20 20 20 3b 3b 20 28 46 69 72 73  | ..positions)............;;.(Firs | 
| 71320 |  74 20 2b 20 65 70 73 69 6c 6f 6e 29 20 6c 69 6b    65 6c 79 20 70 6f 69 6e 74 3a 20 20 69 6e 64 65  | t.+.epsilon).likely.point:..inde | 
| 71340 |  6e 74 20 32 78 20 66 72 6f 6d 20 62 65 67 69 6e    6e 69 6e 67 20 6f 66 0a 20 20 20 20 20 20 20 20  | nt.2x.from.beginning.of......... | 
| 71360 |  20 20 3b 3b 20 70 72 65 76 69 6f 75 73 20 63 6f    64 65 20 6c 69 6e 65 2e 20 20 47 6f 6f 67 6c 65  | ..;;.previous.code.line...Google | 
| 71380 |  20 64 6f 65 73 20 69 74 20 74 68 69 73 20 77 61    79 2e 0a 20 20 20 20 20 20 20 20 20 20 28 70 75  | .does.it.this.way............(pu | 
| 713a0 |  73 68 20 28 73 65 74 71 20 62 61 73 69 63 2d 6f    66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20 20  | sh.(setq.basic-offset........... | 
| 713c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28    73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20  | ............(+.(save-excursion.. | 
| 713e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d  | ..........................(back- | 
| 71400 |  74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | to-indentation)................. | 
| 71420 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20  | ...........(js2-backward-sws)... | 
| 71440 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74  | .........................(back-t | 
| 71460 |  6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | o-indentation).................. | 
| 71480 |  20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65    6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20  | ..........(current-column))..... | 
| 714a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 2a 20 32 20 6a 73 32 2d 62 61  | .....................(*.2.js2-ba | 
| 714c0 |  73 69 63 2d 6f 66 66 73 65 74 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f  | sic-offset))).................po | 
| 714e0 |  73 69 74 69 6f 6e 73 29 0a 0a 20 20 20 20 20 20    20 20 20 20 3b 3b 20 53 65 63 6f 6e 64 20 6c 69  | sitions)............;;.Second.li | 
| 71500 |  6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 69 6e 64    65 6e 74 20 66 72 6f 6d 20 61 73 73 69 67 6e 2d  | kely.point:..indent.from.assign- | 
| 71520 |  65 78 70 72 20 52 48 53 2e 20 20 54 68 69 73 0a    20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 73 20  | expr.RHS...This...........;;.is. | 
| 71540 |  6a 75 73 74 20 61 20 63 72 75 64 65 20 67 75 65    73 73 20 62 61 73 65 64 20 6f 6e 20 66 69 6e 64  | just.a.crude.guess.based.on.find | 
| 71560 |  69 6e 67 20 22 20 3d 20 22 20 6f 6e 20 74 68 65    20 70 72 65 76 69 6f 75 73 0a 20 20 20 20 20 20  | ing.".=.".on.the.previous....... | 
| 71580 |  20 20 20 20 3b 3b 20 6c 69 6e 65 20 63 6f 6e 74    61 69 6e 69 6e 67 20 61 63 74 75 61 6c 20 63 6f  | ....;;.line.containing.actual.co | 
| 715a0 |  64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 70 6f 73 20 28 73 61 76 65 2d 65 78  | de............(setq.pos.(save-ex | 
| 715c0 |  63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66  | cursion.......................(f | 
| 715e0 |  6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | orward-line.-1)................. | 
| 71600 |  20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72    20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29  | ......(goto-char.(point-at-bol)) | 
| 71620 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65  | .......................(when.(re | 
| 71640 |  2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20    22 5c 5c 73 2d 2b 5c 5c 28 3d 5c 5c 29 5c 5c 73  | -search-forward."\\s-+\\(=\\)\\s | 
| 71660 |  2d 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -+"............................. | 
| 71680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c  | ...................(point-at-eol | 
| 716a0 |  29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f  | ).t).........................(go | 
| 716c0 |  74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65    6e 64 20 31 29 29 0a 20 20 20 20 20 20 20 20 20  | to-char.(match-end.1)).......... | 
| 716e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61  | ...............(skip-chars-forwa | 
| 71700 |  72 64 20 22 20 5c 74 5c 72 5c 6e 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rd.".\t\r\n")................... | 
| 71720 |  20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63    6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20 20  | ......(current-column))))....... | 
| 71740 |  20 20 20 20 28 77 68 65 6e 20 70 6f 73 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e  | ....(when.pos.............(cl-in | 
| 71760 |  63 66 20 70 6f 73 20 6a 73 32 2d 62 61 73 69 63    2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20  | cf.pos.js2-basic-offset)........ | 
| 71780 |  20 20 20 20 20 28 70 75 73 68 20 70 6f 73 20 70    6f 73 69 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20  | .....(push.pos.positions))...... | 
| 717a0 |  20 20 20 20 20 20 3b 3b 20 54 68 69 72 64 20 6c    69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 73 61  | ......;;.Third.likely.point:..sa | 
| 717c0 |  6d 65 20 69 6e 64 65 6e 74 20 61 73 20 70 72 65    76 69 6f 75 73 20 6c 69 6e 65 20 6f 66 20 63 6f  | me.indent.as.previous.line.of.co | 
| 717e0 |  64 65 2e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b    20 4d 61 6b 65 20 69 74 20 74 68 65 20 66 69 72  | de............;;.Make.it.the.fir | 
| 71800 |  73 74 20 6c 69 6b 65 6c 79 20 70 6f 69 6e 74 20    69 66 20 77 65 27 72 65 20 6e 6f 74 20 6f 6e 20  | st.likely.point.if.we're.not.on. | 
| 71820 |  61 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20    61 72 67 6c 69 73 74 2d 63 6c 6f 73 65 20 6c 69  | an...........;;.arglist-close.li | 
| 71840 |  6e 65 20 61 6e 64 20 70 72 65 76 69 6f 75 73 20    6c 69 6e 65 20 65 6e 64 73 20 69 6e 20 61 20 63  | ne.and.previous.line.ends.in.a.c | 
| 71860 |  6f 6d 6d 61 2c 20 6f 72 0a 20 20 20 20 20 20 20    20 20 20 3b 3b 20 62 6f 74 68 20 74 68 69 73 20  | omma,.or...........;;.both.this. | 
| 71880 |  6c 69 6e 65 20 61 6e 64 20 70 72 65 76 20 6c 69    6e 65 20 6c 6f 6f 6b 20 6c 69 6b 65 20 6f 62 6a  | line.and.prev.line.look.like.obj | 
| 718a0 |  65 63 74 2d 6c 69 74 65 72 61 6c 0a 20 20 20 20    20 20 20 20 20 20 3b 3b 20 65 6c 65 6d 65 6e 74  | ect-literal...........;;.element | 
| 718c0 |  73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65    74 71 20 70 6f 73 20 28 73 61 76 65 2d 65 78 63  | s............(setq.pos.(save-exc | 
| 718e0 |  75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f  | ursion.......................(go | 
| 71900 |  74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 61    74 2d 62 6f 6c 29 29 0a 20 20 20 20 20 20 20 20  | to-char.(point-at-bol))......... | 
| 71920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29  | ..............(js2-backward-sws) | 
| 71940 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d  | .......................(back-to- | 
| 71960 |  69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | indentation).................... | 
| 71980 |  20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...(prog1....................... | 
| 719a0 |  20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c    75 6d 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ....(current-column)............ | 
| 719c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    77 68 69 6c 65 20 77 65 27 72 65 20 68 65 72 65  | .............;;.while.we're.here | 
| 719e0 |  2c 20 6c 6f 6f 6b 20 66 6f 72 20 74 72 61 69 6c    69 6e 67 20 63 6f 6d 6d 61 0a 20 20 20 20 20 20  | ,.look.for.trailing.comma....... | 
| 71a00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 69 66 20 28 73 61 76 65 2d 65 78 63 75  | ..................(if.(save-excu | 
| 71a20 |  72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rsion........................... | 
| 71a40 |  20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28    70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29 29 0a 20  | ....(goto-char.(point-at-eol)).. | 
| 71a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | .............................(js | 
| 71a80 |  32 2d 62 61 63 6b 77 61 72 64 2d 73 77 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-backward-sws)................. | 
| 71aa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65    71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20  | ..............(eq.(char-before). | 
| 71ac0 |  3f 2c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ?,))............................ | 
| 71ae0 |  20 28 73 65 74 71 20 61 72 67 6c 69 73 74 2d 63    6f 6e 74 20 28 31 2d 20 28 70 6f 69 6e 74 29 29  | .(setq.arglist-cont.(1-.(point)) | 
| 71b00 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 70 6f 73 0a 20 20 20 20 20 20  | )))))...........(when.pos....... | 
| 71b20 |  20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28    6f 72 20 61 72 67 6c 69 73 74 2d 63 6f 6e 74 0a  | ......(if.(and.(or.arglist-cont. | 
| 71b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e  | .........................(js2-in | 
| 71b60 |  64 65 6e 74 2d 69 6e 2d 6f 62 6a 6c 69 74 2d 70    20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a  | dent-in-objlit-p.parse-status)). | 
| 71b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 61  | .....................(not.(js2-a | 
| 71ba0 |  72 67 6c 69 73 74 2d 63 6c 6f 73 65 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rglist-close)))................. | 
| 71bc0 |  28 73 65 74 71 20 73 61 6d 65 2d 69 6e 64 65 6e    74 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20  | (setq.same-indent.pos))......... | 
| 71be0 |  20 20 20 20 28 70 75 73 68 20 70 6f 73 20 70 6f    73 69 74 69 6f 6e 73 29 29 0a 0a 20 20 20 20 20  | ....(push.pos.positions))....... | 
| 71c00 |  20 20 20 20 20 3b 3b 20 46 6f 75 72 74 68 20 6c    69 6b 65 6c 79 20 70 6f 69 6e 74 3a 20 20 66 69  | .....;;.Fourth.likely.point:..fi | 
| 71c20 |  72 73 74 20 70 72 65 63 65 64 69 6e 67 20 63 6f    64 65 20 77 69 74 68 20 6c 65 73 73 20 69 6e 64  | rst.preceding.code.with.less.ind | 
| 71c40 |  65 6e 74 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20    20 20 20 20 3b 3b 20 74 68 61 6e 20 74 68 65 20  | entation............;;.than.the. | 
| 71c60 |  69 6d 6d 65 64 69 61 74 65 6c 79 20 70 72 65 63    65 64 69 6e 67 20 63 6f 64 65 20 6c 69 6e 65 2e  | immediately.preceding.code.line. | 
| 71c80 |  0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 70 6f 73 20 28 73 61 76 65 2d 65 78 63 75 72  | ...........(setq.pos.(save-excur | 
| 71ca0 |  73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b  | sion.......................(back | 
| 71cc0 |  2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -to-indentation)................ | 
| 71ce0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b    77 61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20  | .......(js2-backward-sws)....... | 
| 71d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61  | ................(back-to-indenta | 
| 71d20 |  74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | tion).......................(set | 
| 71d40 |  71 20 61 6e 63 68 6f 72 20 28 63 75 72 72 65 6e    74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20  | q.anchor.(current-column))...... | 
| 71d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 7a 65  | .................(while.(and.(ze | 
| 71d80 |  72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e    65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20  | rop.(forward-line.-1)).......... | 
| 71da0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 3e 3d 20 28 70 72  | .........................(>=.(pr | 
| 71dc0 |  6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ogn............................. | 
| 71de0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63    6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e  | ............(back-to-indentation | 
| 71e00 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 71e20 |  20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65    6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20  | ..........(current-column))..... | 
| 71e40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 71e60 |  20 20 61 6e 63 68 6f 72 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..anchor)))..................... | 
| 71e80 |  20 20 28 73 65 74 71 20 70 6f 73 20 28 63 75 72    72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a  | ..(setq.pos.(current-column)))). | 
| 71ea0 |  20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20    70 6f 73 20 70 6f 73 69 74 69 6f 6e 73 29 0a 0a  | ..........(push.pos.positions).. | 
| 71ec0 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 73    74 69 6e 67 2d 68 65 75 72 69 73 74 69 63 20 70  | ..........;;.nesting-heuristic.p | 
| 71ee0 |  6f 73 69 74 69 6f 6e 2c 20 6d 61 69 6e 20 62 79    20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20  | osition,.main.by.default........ | 
| 71f00 |  20 20 20 28 70 75 73 68 20 28 73 65 74 71 20 6d    61 69 6e 2d 70 6f 73 20 6e 6f 72 6d 61 6c 2d 63  | ...(push.(setq.main-pos.normal-c | 
| 71f20 |  6f 6c 29 20 70 6f 73 69 74 69 6f 6e 73 29 0a 0a    20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 65 6c  | ol).positions)............;;.del | 
| 71f40 |  65 74 65 20 64 75 70 6c 69 63 61 74 65 73 20 61    6e 64 20 73 6f 72 74 20 70 6f 73 69 74 69 6f 6e  | ete.duplicates.and.sort.position | 
| 71f60 |  73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 70 6f 73 69 74 69 6f 6e 73  | s.list...........(setq.positions | 
| 71f80 |  20 28 73 6f 72 74 20 28 64 65 6c 65 74 65 2d 64    75 70 73 20 70 6f 73 69 74 69 6f 6e 73 29 20 27  | .(sort.(delete-dups.positions).' | 
| 71fa0 |  3c 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b    3b 20 63 6f 6d 6d 61 2d 6c 69 73 74 20 63 6f 6e  | <))............;;.comma-list.con | 
| 71fc0 |  74 69 6e 75 61 74 69 6f 6e 20 6c 69 6e 65 73 3a    20 20 70 72 65 76 20 6c 69 6e 65 20 69 6e 64 65  | tinuation.lines:..prev.line.inde | 
| 71fe0 |  6e 74 20 74 61 6b 65 73 20 70 72 65 63 65 64 65    6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 69  | nt.takes.precedence...........(i | 
| 72000 |  66 20 73 61 6d 65 2d 69 6e 64 65 6e 74 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | f.same-indent...............(set | 
| 72020 |  71 20 6d 61 69 6e 2d 70 6f 73 20 73 61 6d 65 2d    69 6e 64 65 6e 74 29 29 0a 0a 20 20 20 20 20 20  | q.main-pos.same-indent))........ | 
| 72040 |  20 20 20 20 3b 3b 20 63 6f 6d 6d 6f 6e 20 73 70    65 63 69 61 6c 20 63 61 73 65 73 20 77 68 65 72  | ....;;.common.special.cases.wher | 
| 72060 |  65 20 77 65 20 77 61 6e 74 20 74 6f 20 69 6e 64    65 6e 74 20 69 6e 20 66 72 6f 6d 20 70 72 65 76  | e.we.want.to.indent.in.from.prev | 
| 72080 |  69 6f 75 73 20 6c 69 6e 65 0a 20 20 20 20 20 20    20 20 20 20 28 69 66 20 28 6f 72 20 28 6a 73 32  | ious.line...........(if.(or.(js2 | 
| 720a0 |  2d 69 6e 64 65 6e 74 2d 63 61 73 65 2d 62 6c 6f    63 6b 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20  | -indent-case-block-p)........... | 
| 720c0 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6e 64    65 6e 74 2d 6f 62 6a 6c 69 74 2d 61 72 67 2d 70  | ........(js2-indent-objlit-arg-p | 
| 720e0 |  20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | .parse-status))...............(s | 
| 72100 |  65 74 71 20 6d 61 69 6e 2d 70 6f 73 20 62 61 73    69 63 2d 6f 66 66 73 65 74 29 29 0a 0a 20 20 20  | etq.main-pos.basic-offset))..... | 
| 72120 |  20 20 20 20 20 20 20 3b 3b 20 69 66 20 62 6f 75    6e 63 69 6e 67 20 62 61 63 6b 77 61 72 64 2c 20  | .......;;.if.bouncing.backward,. | 
| 72140 |  72 65 76 65 72 73 65 20 70 6f 73 69 74 69 6f 6e    73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20  | reverse.positions.list.......... | 
| 72160 |  20 28 69 66 20 62 61 63 6b 77 61 72 64 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | .(if.backward...............(set | 
| 72180 |  71 20 70 6f 73 69 74 69 6f 6e 73 20 28 72 65 76    65 72 73 65 20 70 6f 73 69 74 69 6f 6e 73 29 29  | q.positions.(reverse.positions)) | 
| 721a0 |  29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20    72 65 63 6f 72 64 20 77 68 65 74 68 65 72 20 77  | )............;;.record.whether.w | 
| 721c0 |  65 27 72 65 20 61 6c 72 65 61 64 79 20 73 69 74    74 69 6e 67 20 6f 6e 20 6f 6e 65 20 6f 66 20 74  | e're.already.sitting.on.one.of.t | 
| 721e0 |  68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 0a    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | he.alternatives...........(setq. | 
| 72200 |  70 6f 73 20 28 6d 65 6d 62 65 72 20 63 75 72 2d    69 6e 64 65 6e 74 20 70 6f 73 69 74 69 6f 6e 73  | pos.(member.cur-indent.positions | 
| 72220 |  29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 3b  | ))............(cond............; | 
| 72240 |  3b 20 63 61 73 65 20 30 3a 20 20 77 65 27 72 65    20 6f 6e 65 20 6f 6e 65 20 6f 66 20 74 68 65 20  | ;.case.0:..we're.one.one.of.the. | 
| 72260 |  61 6c 74 65 72 6e 61 74 69 76 65 73 20 61 6e 64    20 74 68 69 73 20 69 73 20 74 68 65 0a 20 20 20  | alternatives.and.this.is.the.... | 
| 72280 |  20 20 20 20 20 20 20 20 3b 3b 20 66 69 72 73 74    20 74 69 6d 65 20 74 68 65 79 27 76 65 20 70 72  | ........;;.first.time.they've.pr | 
| 722a0 |  65 73 73 65 64 20 54 41 42 20 6f 6e 20 74 68 69    73 20 6c 69 6e 65 20 28 62 65 73 74 2d 67 75 65  | essed.TAB.on.this.line.(best-gue | 
| 722c0 |  73 73 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20    28 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 69  | ss).............((and.js2-mode-i | 
| 722e0 |  6e 64 65 6e 74 2d 69 67 6e 6f 72 65 2d 66 69 72    73 74 2d 74 61 62 0a 20 20 20 20 20 20 20 20 20  | ndent-ignore-first-tab.......... | 
| 72300 |  20 20 20 20 20 20 20 20 70 6f 73 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | ........pos..................;;. | 
| 72320 |  66 69 72 73 74 20 74 69 6d 65 20 70 72 65 73 73    69 6e 67 20 54 41 42 20 6f 6e 20 74 68 69 73 20  | first.time.pressing.TAB.on.this. | 
| 72340 |  6c 69 6e 65 3f 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20  | line?..................(not.(eq. | 
| 72360 |  6a 73 32 2d 6d 6f 64 65 2d 6c 61 73 74 2d 69 6e    64 65 6e 74 65 64 2d 6c 69 6e 65 20 63 75 72 72  | js2-mode-last-indented-line.curr | 
| 72380 |  65 6e 74 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 64 6f 20 6e 6f  | ent-line))).............;;.do.no | 
| 723a0 |  74 68 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 63 6f 6d 70 75 74 65 64  | thing.............(setq.computed | 
| 723c0 |  2d 70 6f 73 20 6e 69 6c 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 63 61 73 65 20 31 3a  | -pos.nil))............;;.case.1: | 
| 723e0 |  20 20 6f 6e 6c 79 20 6f 6e 65 20 63 6f 6d 70 75    74 65 64 20 70 6f 73 69 74 69 6f 6e 20 3d 3e 20  | ..only.one.computed.position.=>. | 
| 72400 |  75 73 65 20 69 74 0a 20 20 20 20 20 20 20 20 20    20 20 28 28 6e 75 6c 6c 20 28 63 64 72 20 70 6f  | use.it............((null.(cdr.po | 
| 72420 |  73 69 74 69 6f 6e 73 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 70  | sitions)).............(setq.comp | 
| 72440 |  75 74 65 64 2d 70 6f 73 20 30 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 63 61 73 65 20  | uted-pos.0))............;;.case. | 
| 72460 |  32 3a 20 20 6e 6f 74 20 6f 6e 20 61 6e 79 20 6f    66 20 74 68 65 20 63 6f 6d 70 75 74 65 64 20 73  | 2:..not.on.any.of.the.computed.s | 
| 72480 |  70 6f 74 73 20 3d 3e 20 75 73 65 20 6d 61 69 6e    20 73 70 6f 74 0a 20 20 20 20 20 20 20 20 20 20  | pots.=>.use.main.spot........... | 
| 724a0 |  20 28 28 6e 6f 74 20 70 6f 73 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f  | .((not.pos).............(setq.co | 
| 724c0 |  6d 70 75 74 65 64 2d 70 6f 73 20 28 6a 73 32 2d    70 6f 73 69 74 69 6f 6e 20 6d 61 69 6e 2d 70 6f  | mputed-pos.(js2-position.main-po | 
| 724e0 |  73 20 70 6f 73 69 74 69 6f 6e 73 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 73  | s.positions)))............;;.cas | 
| 72500 |  65 20 33 3a 20 20 6f 6e 20 6c 61 73 74 20 70 6f    73 69 74 69 6f 6e 3a 20 20 63 79 63 6c 65 20 74  | e.3:..on.last.position:..cycle.t | 
| 72520 |  6f 20 66 69 72 73 74 20 70 6f 73 69 74 69 6f 6e    0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75  | o.first.position............((nu | 
| 72540 |  6c 6c 20 28 63 64 72 20 70 6f 73 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | ll.(cdr.pos)).............(setq. | 
| 72560 |  63 6f 6d 70 75 74 65 64 2d 70 6f 73 20 30 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63  | computed-pos.0))............;;.c | 
| 72580 |  61 73 65 20 34 3a 20 20 6f 6e 20 69 6e 74 65 72    6d 65 64 69 61 74 65 20 70 6f 73 69 74 69 6f 6e  | ase.4:..on.intermediate.position | 
| 725a0 |  3a 20 20 63 79 63 6c 65 20 74 6f 20 6e 65 78 74    20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20  | :..cycle.to.next.position....... | 
| 725c0 |  20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 63 6f 6d 70 75 74  | .....(t.............(setq.comput | 
| 725e0 |  65 64 2d 70 6f 73 20 28 6a 73 32 2d 70 6f 73 69    74 69 6f 6e 20 28 63 6c 2d 73 65 63 6f 6e 64 20  | ed-pos.(js2-position.(cl-second. | 
| 72600 |  70 6f 73 29 20 70 6f 73 69 74 69 6f 6e 73 29 29    29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 3b 3b  | pos).positions))))............;; | 
| 72620 |  20 73 65 65 20 69 66 20 61 6e 79 20 68 6f 6f 6b    73 20 77 61 6e 74 20 74 6f 20 69 6e 64 65 6e 74  | .see.if.any.hooks.want.to.indent | 
| 72640 |  3b 20 6f 74 68 65 72 77 69 73 65 20 77 65 20 64    6f 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 28  | ;.otherwise.we.do.it...........( | 
| 72660 |  63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 72 65 73    75 6c 74 20 3d 20 6e 69 6c 0a 20 20 20 20 20 20  | cl-loop.with.result.=.nil....... | 
| 72680 |  20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72    20 68 6f 6f 6b 20 69 6e 20 6a 73 32 2d 69 6e 64  | .............for.hook.in.js2-ind | 
| 726a0 |  65 6e 74 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c  | ent-hook....................whil | 
| 726c0 |  65 20 28 6e 75 6c 6c 20 72 65 73 75 6c 74 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e.(null.result)................. | 
| 726e0 |  20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72  | ...do....................(setq.r | 
| 72700 |  65 73 75 6c 74 20 28 66 75 6e 63 61 6c 6c 20 68    6f 6f 6b 20 70 6f 73 69 74 69 6f 6e 73 20 63 6f  | esult.(funcall.hook.positions.co | 
| 72720 |  6d 70 75 74 65 64 2d 70 6f 73 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | mputed-pos)).................... | 
| 72740 |  66 69 6e 61 6c 6c 79 20 64 6f 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75  | finally.do....................(u | 
| 72760 |  6e 6c 65 73 73 20 28 6f 72 20 72 65 73 75 6c 74    20 28 6e 75 6c 6c 20 63 6f 6d 70 75 74 65 64 2d  | nless.(or.result.(null.computed- | 
| 72780 |  70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 69 6e 64 65  | pos))......................(inde | 
| 727a0 |  6e 74 2d 6c 69 6e 65 2d 74 6f 20 28 6e 74 68 20    63 6f 6d 70 75 74 65 64 2d 70 6f 73 20 70 6f 73  | nt-line-to.(nth.computed-pos.pos | 
| 727c0 |  69 74 69 6f 6e 73 29 29 29 29 29 0a 0a 20 20 20    20 20 20 3b 3b 20 66 69 6e 61 6c 6c 79 0a 20 20  | itions)))))........;;.finally... | 
| 727e0 |  20 20 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65    2d 69 6e 64 65 6e 74 2d 69 6e 68 69 62 69 74 2d  | ....(if.js2-mode-indent-inhibit- | 
| 72800 |  75 6e 64 6f 0a 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f  | undo...........(setq.buffer-undo | 
| 72820 |  2d 6c 69 73 74 20 6f 6c 64 2d 62 75 66 66 65 72    2d 75 6e 64 6f 2d 6c 69 73 74 29 29 0a 20 20 20  | -list.old-buffer-undo-list)).... | 
| 72840 |  20 20 20 3b 3b 20 73 65 65 20 63 6f 6d 6d 65 6e    74 61 72 79 20 66 6f 72 20 60 6a 73 32 2d 6d 6f  | ...;;.see.commentary.for.`js2-mo | 
| 72860 |  64 65 2d 6c 61 73 74 2d 69 6e 64 65 6e 74 65 64    2d 6c 69 6e 65 27 0a 20 20 20 20 20 20 28 73 65  | de-last-indented-line'.......(se | 
| 72880 |  74 71 20 6a 73 32 2d 6d 6f 64 65 2d 6c 61 73 74    2d 69 6e 64 65 6e 74 65 64 2d 6c 69 6e 65 20 63  | tq.js2-mode-last-indented-line.c | 
| 728a0 |  75 72 72 65 6e 74 2d 6c 69 6e 65 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 31 2d 6c 69  | urrent-line))))..(defun.js2-1-li | 
| 728c0 |  6e 65 2d 63 6f 6d 6d 65 6e 74 2d 63 6f 6e 74 69    6e 75 61 74 69 6f 6e 2d 70 20 28 29 0a 20 20 22  | ne-comment-continuation-p.()..." | 
| 728e0 |  52 65 74 75 72 6e 20 74 20 69 66 20 77 65 27 72    65 20 69 6e 20 61 20 31 2d 6c 69 6e 65 20 63 6f  | Return.t.if.we're.in.a.1-line.co | 
| 72900 |  6d 6d 65 6e 74 20 63 6f 6e 74 69 6e 75 61 74 69    6f 6e 2e 0a 49 66 20 73 6f 2c 20 77 65 20 64 6f  | mment.continuation..If.so,.we.do | 
| 72920 |  6e 27 74 20 65 76 65 72 20 77 61 6e 74 20 74 6f    20 75 73 65 20 62 6f 75 6e 63 65 2d 69 6e 64 65  | n't.ever.want.to.use.bounce-inde | 
| 72940 |  6e 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63    75 72 73 69 6f 6e 0a 20 20 20 20 28 61 6e 64 20  | nt."...(save-excursion.....(and. | 
| 72960 |  28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20    20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20  | (progn............(forward-line. | 
| 72980 |  30 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c    6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73 2d 2a  | 0)............(looking-at."\\s-* | 
| 729a0 |  2f 2f 22 29 29 0a 20 20 20 20 20 20 20 20 20 28    70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20  | //"))..........(progn........... | 
| 729c0 |  20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d    31 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66  | .(forward-line.-1)............(f | 
| 729e0 |  6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 0a 20    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | orward-line.0)............(when. | 
| 72a00 |  28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73    2d 2a 24 22 29 0a 20 20 20 20 20 20 20 20 20 20  | (looking-at."\\s-*$")........... | 
| 72a20 |  20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72 64    2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20 20  | ...(js2-backward-sws)........... | 
| 72a40 |  20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65    20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ...(forward-line.0))............ | 
| 72a60 |  28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73    2d 2a 2f 2f 22 29 29 29 29 29 0a 0a 28 64 65 66  | (looking-at."\\s-*//")))))..(def | 
| 72a80 |  75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 62 6f    75 6e 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20  | un.js2-indent-bounce.(&optional. | 
| 72aa0 |  62 61 63 6b 77 61 72 64 29 0a 20 20 22 49 6e 64    65 6e 74 20 74 68 65 20 63 75 72 72 65 6e 74 20  | backward)..."Indent.the.current. | 
| 72ac0 |  6c 69 6e 65 2c 20 62 6f 75 6e 63 69 6e 67 20 62    65 74 77 65 65 6e 20 73 65 76 65 72 61 6c 20 70  | line,.bouncing.between.several.p | 
| 72ae0 |  6f 73 69 74 69 6f 6e 73 2e 22 0a 20 20 28 69 6e    74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65  | ositions."...(interactive)...(le | 
| 72b00 |  74 20 28 70 61 72 73 65 2d 73 74 61 74 75 73 20    6f 66 66 73 65 74 20 69 6e 64 65 6e 74 2d 63 6f  | t.(parse-status.offset.indent-co | 
| 72b20 |  6c 0a 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e    27 74 20 77 68 69 6e 65 20 61 62 6f 75 74 20 65  | l.........;;.Don't.whine.about.e | 
| 72b40 |  72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77    68 65 6e 20 77 65 27 72 65 20 69 6e 64 65 6e 74  | rrors/warnings.when.we're.indent | 
| 72b60 |  69 6e 67 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20    54 68 69 73 20 68 61 73 20 74 6f 20 62 65 20 73  | ing..........;;.This.has.to.be.s | 
| 72b80 |  65 74 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e    67 20 70 61 72 73 65 2d 70 61 72 74 69 61 6c 2d  | et.before.calling.parse-partial- | 
| 72ba0 |  73 65 78 70 20 62 65 6c 6f 77 2e 0a 20 20 20 20    20 20 20 20 28 69 6e 68 69 62 69 74 2d 70 6f 69  | sexp.below..........(inhibit-poi | 
| 72bc0 |  6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73 20    74 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 61  | nt-motion-hooks.t)).....(setq.pa | 
| 72be0 |  72 73 65 2d 73 74 61 74 75 73 20 28 73 61 76 65    2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20  | rse-status.(save-excursion...... | 
| 72c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73 73  | ....................(syntax-ppss | 
| 72c20 |  20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 6f 66 66 73  | .(point-at-bol)))...........offs | 
| 72c40 |  65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 73    61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20  | et.(-.(point).(save-excursion... | 
| 72c60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63  | ............................(bac | 
| 72c80 |  6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | k-to-indentation)............... | 
| 72ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 3b  | ................(point)))).....; | 
| 72cc0 |  3b 20 44 6f 6e 27 74 20 74 6f 75 63 68 20 6d 75    6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 73 2e  | ;.Don't.touch.multiline.strings. | 
| 72ce0 |  0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6e 74    68 20 33 20 70 61 72 73 65 2d 73 74 61 74 75 73  | .....(unless.(nth.3.parse-status | 
| 72d00 |  29 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 6e    64 65 6e 74 2d 63 6f 6c 20 28 6a 73 32 2d 70 72  | ).......(setq.indent-col.(js2-pr | 
| 72d20 |  6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e    20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a  | oper-indentation.parse-status)). | 
| 72d40 |  20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 20 20 3b 3b 20 49 74 20 64 6f 65 73 6e 27 74  | ......(cond........;;.It.doesn't | 
| 72d60 |  20 77 6f 72 6b 20 77 65 6c 6c 20 6f 6e 20 66 69    72 73 74 20 6c 69 6e 65 20 6f 66 20 62 75 66 66  | .work.well.on.first.line.of.buff | 
| 72d80 |  65 72 2e 0a 20 20 20 20 20 20 20 28 28 61 6e 64    20 28 6e 6f 74 20 28 6e 74 68 20 34 20 70 61 72  | er.........((and.(not.(nth.4.par | 
| 72da0 |  73 65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a  | se-status))..............(not.(j | 
| 72dc0 |  73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 28 70 6f    69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20  | s2-same-line.(point-min)))...... | 
| 72de0 |  20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73    32 2d 31 2d 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74  | ........(not.(js2-1-line-comment | 
| 72e00 |  2d 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 2d 70 29    29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | -continuation-p))).........(js2- | 
| 72e20 |  62 6f 75 6e 63 65 2d 69 6e 64 65 6e 74 20 69 6e    64 65 6e 74 2d 63 6f 6c 20 70 61 72 73 65 2d 73  | bounce-indent.indent-col.parse-s | 
| 72e40 |  74 61 74 75 73 20 62 61 63 6b 77 61 72 64 29 29    0a 20 20 20 20 20 20 20 3b 3b 20 6a 75 73 74 20  | tatus.backward))........;;.just. | 
| 72e60 |  69 6e 64 65 6e 74 20 74 6f 20 74 68 65 20 67 75    65 73 73 65 72 27 73 20 6c 69 6b 65 6c 79 20 73  | indent.to.the.guesser's.likely.s | 
| 72e80 |  70 6f 74 0a 20 20 20 20 20 20 20 28 74 20 28 69    6e 64 65 6e 74 2d 6c 69 6e 65 2d 74 6f 20 69 6e  | pot........(t.(indent-line-to.in | 
| 72ea0 |  64 65 6e 74 2d 63 6f 6c 29 29 29 0a 20 20 20 20    20 20 28 77 68 65 6e 20 28 63 6c 2d 70 6c 75 73  | dent-col))).......(when.(cl-plus | 
| 72ec0 |  70 20 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20    20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20  | p.offset).........(forward-char. | 
| 72ee0 |  6f 66 66 73 65 74 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 62  | offset)))))..(defun.js2-indent-b | 
| 72f00 |  6f 75 6e 63 65 2d 62 61 63 6b 77 61 72 64 20 28    29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20  | ounce-backward.()..."Indent.the. | 
| 72f20 |  63 75 72 72 65 6e 74 20 6c 69 6e 65 2c 20 62 6f    75 6e 63 69 6e 67 20 62 65 74 77 65 65 6e 20 70  | current.line,.bouncing.between.p | 
| 72f40 |  6f 73 69 74 69 6f 6e 73 20 69 6e 20 72 65 76 65    72 73 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63  | ositions.in.reverse."...(interac | 
| 72f60 |  74 69 76 65 29 0a 20 20 28 6a 73 32 2d 69 6e 64    65 6e 74 2d 62 6f 75 6e 63 65 20 74 29 29 0a 0a  | tive)...(js2-indent-bounce.t)).. | 
| 72f80 |  28 64 65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e    74 2d 72 65 67 69 6f 6e 20 28 73 74 61 72 74 20  | (defun.js2-indent-region.(start. | 
| 72fa0 |  65 6e 64 29 0a 20 20 22 49 6e 64 65 6e 74 20 74    68 65 20 72 65 67 69 6f 6e 2c 20 62 75 74 20 64  | end)..."Indent.the.region,.but.d | 
| 72fc0 |  6f 6e 27 74 20 75 73 65 20 62 6f 75 6e 63 65 20    69 6e 64 65 6e 74 69 6e 67 2e 22 0a 20 20 28 6c  | on't.use.bounce.indenting."...(l | 
| 72fe0 |  65 74 20 28 28 6a 73 32 2d 62 6f 75 6e 63 65 2d    69 6e 64 65 6e 74 2d 70 20 6e 69 6c 29 0a 20 20  | et.((js2-bounce-indent-p.nil)... | 
| 73000 |  20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 72 65    67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 6e 69  | ......(indent-region-function.ni | 
| 73020 |  6c 29 0a 20 20 20 20 20 20 20 20 28 61 66 74 65    72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f  | l).........(after-change-functio | 
| 73040 |  6e 73 20 28 72 65 6d 71 20 27 6a 73 32 2d 6d 6f    64 65 2d 65 64 69 74 0a 20 20 20 20 20 20 20 20  | ns.(remq.'js2-mode-edit......... | 
| 73060 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 66  | ..............................af | 
| 73080 |  74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74    69 6f 6e 73 29 29 29 0a 20 20 20 20 28 69 6e 64  | ter-change-functions))).....(ind | 
| 730a0 |  65 6e 74 2d 72 65 67 69 6f 6e 20 73 74 61 72 74    20 65 6e 64 20 6e 69 6c 29 20 3b 20 6e 69 6c 20  | ent-region.start.end.nil).;.nil. | 
| 730c0 |  66 6f 72 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65    72 0a 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d  | for.byte-compiler.....(js2-mode- | 
| 730e0 |  65 64 69 74 20 73 74 61 72 74 20 65 6e 64 20 28    2d 20 65 6e 64 20 73 74 61 72 74 29 29 29 29 0a  | edit.start.end.(-.end.start)))). | 
| 73100 |  0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6d 69 6e    6f 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c  | .(defvar.js2-minor-mode-map...(l | 
| 73120 |  65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73    70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a  | et.((map.(make-sparse-keymap))). | 
| 73140 |  20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20    6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d  | ....(define-key.map.(kbd."C-c.C- | 
| 73160 |  60 22 29 20 23 27 6a 73 32 2d 6e 65 78 74 2d 65    72 72 6f 72 29 0a 20 20 20 20 6d 61 70 29 0a 20  | `").#'js2-next-error).....map).. | 
| 73180 |  20 22 4b 65 79 6d 61 70 20 75 73 65 64 20 77 68    65 6e 20 60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f  | ."Keymap.used.when.`js2-minor-mo | 
| 731a0 |  64 65 27 20 69 73 20 61 63 74 69 76 65 2e 22 29    0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64  | de'.is.active.")..;;;###autoload | 
| 731c0 |  0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d    6f 64 65 20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f  | .(define-minor-mode.js2-minor-mo | 
| 731e0 |  64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65    20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 6a 73 32  | de..."Minor.mode.for.running.js2 | 
| 73200 |  20 61 73 20 61 20 62 61 63 6b 67 72 6f 75 6e 64    20 6c 69 6e 74 65 72 2e 0a 54 68 69 73 20 61 6c  | .as.a.background.linter..This.al | 
| 73220 |  6c 6f 77 73 20 79 6f 75 20 74 6f 20 75 73 65 20    61 20 64 69 66 66 65 72 65 6e 74 20 6d 61 6a 6f  | lows.you.to.use.a.different.majo | 
| 73240 |  72 20 6d 6f 64 65 20 66 6f 72 20 4a 61 76 61 53    63 72 69 70 74 20 65 64 69 74 69 6e 67 2c 0a 73  | r.mode.for.JavaScript.editing,.s | 
| 73260 |  75 63 68 20 61 73 20 60 6a 73 2d 6d 6f 64 65 27    2c 20 77 68 69 6c 65 20 72 65 74 61 69 6e 69 6e  | uch.as.`js-mode',.while.retainin | 
| 73280 |  67 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f    75 73 20 65 72 72 6f 72 2f 77 61 72 6e 69 6e 67  | g.the.asynchronous.error/warning | 
| 732a0 |  0a 68 69 67 68 6c 69 67 68 74 69 6e 67 20 66 65    61 74 75 72 65 73 20 6f 66 20 60 6a 73 32 2d 6d  | .highlighting.features.of.`js2-m | 
| 732c0 |  6f 64 65 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20    27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 6c 69 67  | ode'."...:group.'js2-mode...:lig | 
| 732e0 |  68 74 65 72 20 22 20 6a 73 2d 6c 69 6e 74 22 0a    20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d  | hter.".js-lint"...(if.(derived-m | 
| 73300 |  6f 64 65 2d 70 20 27 6a 73 32 2d 6d 6f 64 65 29    0a 20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32  | ode-p.'js2-mode).......(setq.js2 | 
| 73320 |  2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6e 69 6c 29    0a 20 20 20 20 28 69 66 20 6a 73 32 2d 6d 69 6e  | -minor-mode.nil).....(if.js2-min | 
| 73340 |  6f 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d  | or-mode.........(js2-minor-mode- | 
| 73360 |  65 6e 74 65 72 29 0a 20 20 20 20 20 20 28 6a 73    32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 78 69  | enter).......(js2-minor-mode-exi | 
| 73380 |  74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 6e 74  | t))))..(defun.js2-minor-mode-ent | 
| 733a0 |  65 72 20 28 29 0a 20 20 22 49 6e 69 74 69 61 6c    69 7a 61 74 69 6f 6e 20 66 6f 72 20 60 6a 73 32  | er.()..."Initialization.for.`js2 | 
| 733c0 |  2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e 22 0a 20    20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61  | -minor-mode'."...(set.(make-loca | 
| 733e0 |  6c 2d 76 61 72 69 61 62 6c 65 20 27 6d 61 78 2d    6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68 29  | l-variable.'max-lisp-eval-depth) | 
| 73400 |  0a 20 20 20 20 20 20 20 28 6d 61 78 20 6d 61 78    2d 6c 69 73 70 2d 65 76 61 6c 2d 64 65 70 74 68  | ........(max.max-lisp-eval-depth | 
| 73420 |  20 33 30 30 30 29 29 0a 20 20 28 73 65 74 71 20    6e 65 78 74 2d 65 72 72 6f 72 2d 66 75 6e 63 74  | .3000))...(setq.next-error-funct | 
| 73440 |  69 6f 6e 20 23 27 6a 73 32 2d 6e 65 78 74 2d 65    72 72 6f 72 29 0a 20 20 3b 3b 20 45 78 70 65 72  | ion.#'js2-next-error)...;;.Exper | 
| 73460 |  69 6d 65 6e 74 3a 20 20 6d 61 6b 65 20 72 65 70    61 72 73 65 2d 64 65 6c 61 79 20 6c 6f 6e 67 65  | iment:..make.reparse-delay.longe | 
| 73480 |  72 20 66 6f 72 20 6c 6f 6e 67 65 72 20 66 69 6c    65 73 2e 0a 20 20 28 69 66 20 28 63 6c 2d 70 6c  | r.for.longer.files....(if.(cl-pl | 
| 734a0 |  75 73 70 20 6a 73 32 2d 64 79 6e 61 6d 69 63 2d    69 64 6c 65 2d 74 69 6d 65 72 2d 61 64 6a 75 73  | usp.js2-dynamic-idle-timer-adjus | 
| 734c0 |  74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6a    73 32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65  | t).......(setq.js2-idle-timer-de | 
| 734e0 |  6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 2a 20 6a 73 32 2d 69 64 6c 65 2d 74 69 6d 65  | lay.............(*.js2-idle-time | 
| 73500 |  72 2d 64 65 6c 61 79 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 2f 20 28 70 6f 69 6e 74  | r-delay................(/.(point | 
| 73520 |  2d 6d 61 78 29 20 6a 73 32 2d 64 79 6e 61 6d 69    63 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 61 64 6a  | -max).js2-dynamic-idle-timer-adj | 
| 73540 |  75 73 74 29 29 29 29 0a 20 20 28 73 65 74 71 20    6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d  | ust))))...(setq.js2-mode-buffer- | 
| 73560 |  64 69 72 74 79 2d 70 20 74 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73 69  | dirty-p.t.........js2-mode-parsi | 
| 73580 |  6e 67 20 6e 69 6c 29 0a 20 20 28 73 65 74 20 28    6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61  | ng.nil)...(set.(make-local-varia | 
| 735a0 |  62 6c 65 20 27 6a 73 32 2d 68 69 67 68 6c 69 67    68 74 2d 6c 65 76 65 6c 29 20 30 29 20 3b 20 6e  | ble.'js2-highlight-level).0).;.n | 
| 735c0 |  6f 20 73 79 6e 74 61 78 20 68 69 67 68 6c 69 67    68 74 69 6e 67 0a 20 20 28 73 65 74 20 28 6d 61  | o.syntax.highlighting...(set.(ma | 
| 735e0 |  6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c    65 20 27 6a 73 32 2d 6d 6f 64 65 2d 63 68 61 6e  | ke-local-variable.'js2-mode-chan | 
| 73600 |  67 65 2d 73 79 6e 74 61 78 2d 70 29 20 6e 69 6c    29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61  | ge-syntax-p).nil)...(add-hook.'a | 
| 73620 |  66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63    74 69 6f 6e 73 20 23 27 6a 73 32 2d 6d 69 6e 6f  | fter-change-functions.#'js2-mino | 
| 73640 |  72 2d 6d 6f 64 65 2d 65 64 69 74 20 6e 69 6c 20    74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27  | r-mode-edit.nil.t)...(add-hook.' | 
| 73660 |  63 68 61 6e 67 65 2d 6d 61 6a 6f 72 2d 6d 6f 64    65 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d 6d 69 6e  | change-major-mode-hook.#'js2-min | 
| 73680 |  6f 72 2d 6d 6f 64 65 2d 65 78 69 74 20 6e 69 6c    20 74 29 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d  | or-mode-exit.nil.t)...(when.js2- | 
| 736a0 |  69 6e 63 6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 67    6c 6f 62 61 6c 73 0a 20 20 20 20 28 61 64 64 2d  | include-jslint-globals.....(add- | 
| 736c0 |  68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70    61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 27  | hook.'js2-post-parse-callbacks.' | 
| 736e0 |  6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74    2d 67 6c 6f 62 61 6c 73 20 6e 69 6c 20 74 29 29  | js2-apply-jslint-globals.nil.t)) | 
| 73700 |  0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6e 63    6c 75 64 65 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c  | ...(when.js2-include-jslint-decl | 
| 73720 |  61 72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 0a    20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a  | aration-externs.....(add-hook.'j | 
| 73740 |  73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61    6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 61 70 70  | s2-post-parse-callbacks.'js2-app | 
| 73760 |  6c 79 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61 72    61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 6e 69  | ly-jslint-declaration-externs.ni | 
| 73780 |  6c 20 74 29 29 0a 20 20 28 72 75 6e 2d 68 6f 6f    6b 73 20 27 6a 73 32 2d 69 6e 69 74 2d 68 6f 6f  | l.t))...(run-hooks.'js2-init-hoo | 
| 737a0 |  6b 29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73    65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | k)...(js2-reparse))..(defun.js2- | 
| 737c0 |  6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 78 69 74 20    28 29 0a 20 20 22 54 75 72 6e 20 6f 66 66 20 60  | minor-mode-exit.()..."Turn.off.` | 
| 737e0 |  6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 2e    22 0a 20 20 28 73 65 74 71 20 6e 65 78 74 2d 65  | js2-minor-mode'."...(setq.next-e | 
| 73800 |  72 72 6f 72 2d 66 75 6e 63 74 69 6f 6e 20 6e 69    6c 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f  | rror-function.nil)...(remove-hoo | 
| 73820 |  6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d    66 75 6e 63 74 69 6f 6e 73 20 23 27 6a 73 32 2d  | k.'after-change-functions.#'js2- | 
| 73840 |  6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 64 69 74 20    74 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f  | minor-mode-edit.t)...(remove-hoo | 
| 73860 |  6b 20 27 63 68 61 6e 67 65 2d 6d 61 6a 6f 72 2d    6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d  | k.'change-major-mode-hook.#'js2- | 
| 73880 |  6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 78 69 74 20    74 29 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d  | minor-mode-exit.t)...(when.js2-m | 
| 738a0 |  6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79    0a 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65  | ode-node-overlay.....(delete-ove | 
| 738c0 |  72 6c 61 79 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f    64 65 2d 6f 76 65 72 6c 61 79 29 0a 20 20 20 20  | rlay.js2-mode-node-overlay)..... | 
| 738e0 |  28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 6e    6f 64 65 2d 6f 76 65 72 6c 61 79 20 6e 69 6c 29  | (setq.js2-mode-node-overlay.nil) | 
| 73900 |  29 0a 20 20 28 6a 73 32 2d 72 65 6d 6f 76 65 2d    6f 76 65 72 6c 61 79 73 29 0a 20 20 28 72 65 6d  | )...(js2-remove-overlays)...(rem | 
| 73920 |  6f 76 65 2d 68 6f 6f 6b 20 27 6a 73 32 2d 70 6f    73 74 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63  | ove-hook.'js2-post-parse-callbac | 
| 73940 |  6b 73 20 27 6a 73 32 2d 61 70 70 6c 79 2d 6a 73    6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20 74 29 0a  | ks.'js2-apply-jslint-globals.t). | 
| 73960 |  20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27    6a 73 32 2d 70 6f 73 74 2d 70 61 72 73 65 2d 63  | ..(remove-hook.'js2-post-parse-c | 
| 73980 |  61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d 61 70    70 6c 79 2d 6a 73 6c 69 6e 74 2d 64 65 63 6c 61  | allbacks.'js2-apply-jslint-decla | 
| 739a0 |  72 61 74 69 6f 6e 2d 65 78 74 65 72 6e 73 20 74    29 0a 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f  | ration-externs.t)...(setq.js2-mo | 
| 739c0 |  64 65 2d 61 73 74 20 6e 69 6c 29 29 0a 0a 28 64    65 66 76 61 72 20 6a 73 32 2d 73 6f 75 72 63 65  | de-ast.nil))..(defvar.js2-source | 
| 739e0 |  2d 62 75 66 66 65 72 20 6e 69 6c 20 22 4c 69 6e    6b 65 64 20 73 6f 75 72 63 65 20 62 75 66 66 65  | -buffer.nil."Linked.source.buffe | 
| 73a00 |  72 20 66 6f 72 20 64 69 61 67 6e 6f 73 74 69 63    73 20 76 69 65 77 22 29 0a 28 6d 61 6b 65 2d 76  | r.for.diagnostics.view").(make-v | 
| 73a20 |  61 72 69 61 62 6c 65 2d 62 75 66 66 65 72 2d 6c    6f 63 61 6c 20 27 6a 73 32 2d 73 6f 75 72 63 65  | ariable-buffer-local.'js2-source | 
| 73a40 |  2d 62 75 66 66 65 72 29 0a 0a 28 63 6c 2d 64 65    66 75 6e 20 6a 73 32 2d 64 69 73 70 6c 61 79 2d  | -buffer)..(cl-defun.js2-display- | 
| 73a60 |  65 72 72 6f 72 2d 6c 69 73 74 20 28 29 0a 20 20    22 44 69 73 70 6c 61 79 20 61 20 6e 61 76 69 67  | error-list.()..."Display.a.navig | 
| 73a80 |  61 62 6c 65 20 62 75 66 66 65 72 20 6c 69 73 74    69 6e 67 20 70 61 72 73 65 20 65 72 72 6f 72 73  | able.buffer.listing.parse.errors | 
| 73aa0 |  2f 77 61 72 6e 69 6e 67 73 2e 22 0a 20 20 28 69    6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75  | /warnings."...(interactive)...(u | 
| 73ac0 |  6e 6c 65 73 73 20 28 6a 73 32 2d 68 61 76 65 2d    65 72 72 6f 72 73 2d 70 29 0a 20 20 20 20 28 6d  | nless.(js2-have-errors-p).....(m | 
| 73ae0 |  65 73 73 61 67 65 20 22 4e 6f 20 65 72 72 6f 72    73 22 29 0a 20 20 20 20 28 63 6c 2d 72 65 74 75  | essage."No.errors").....(cl-retu | 
| 73b00 |  72 6e 2d 66 72 6f 6d 20 6a 73 32 2d 64 69 73 70    6c 61 79 2d 65 72 72 6f 72 2d 6c 69 73 74 29 29  | rn-from.js2-display-error-list)) | 
| 73b20 |  0a 20 20 28 63 6c 2d 6c 61 62 65 6c 73 20 28 28    61 6e 6e 6f 74 61 74 65 2d 6c 69 73 74 0a 20 20  | ...(cl-labels.((annotate-list... | 
| 73b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 73    74 20 74 79 70 65 29 0a 20 20 20 20 20 20 20 20  | .............(lst.type)......... | 
| 73b60 |  20 20 20 20 20 20 20 22 41 64 64 20 64 69 61 67    6e 6f 73 74 69 63 20 54 59 50 45 20 61 6e 64 20  | ......."Add.diagnostic.TYPE.and. | 
| 73b80 |  6c 69 6e 65 20 6e 75 6d 62 65 72 20 74 6f 20 65    72 72 73 20 6c 69 73 74 22 0a 20 20 20 20 20 20  | line.number.to.errs.list"....... | 
| 73ba0 |  20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72    20 28 6c 61 6d 62 64 61 20 28 65 72 72 29 0a 20  | .........(mapcar.(lambda.(err).. | 
| 73bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6c 69 73 74 20 65 72  | ........................(list.er | 
| 73be0 |  72 20 74 79 70 65 20 28 6c 69 6e 65 2d 6e 75 6d    62 65 72 2d 61 74 2d 70 6f 73 20 28 6e 74 68 20  | r.type.(line-number-at-pos.(nth. | 
| 73c00 |  31 20 65 72 72 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 1.err))))....................... | 
| 73c20 |  20 6c 73 74 29 29 29 0a 20 20 20 20 28 6c 65 74    2a 20 28 28 73 72 63 62 75 66 20 28 63 75 72 72  | .lst))).....(let*.((srcbuf.(curr | 
| 73c40 |  65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 28 65 72 72 62 75 66 20  | ent-buffer))............(errbuf. | 
| 73c60 |  28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61    74 65 20 22 2a 6a 73 2d 6c 69 6e 74 2a 22 29 29  | (get-buffer-create."*js-lint*")) | 
| 73c80 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72    6f 72 73 20 28 61 6e 6e 6f 74 61 74 65 2d 6c 69  | ............(errors.(annotate-li | 
| 73ca0 |  73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32  | st.....................(when.js2 | 
| 73cc0 |  2d 6d 6f 64 65 2d 61 73 74 20 28 6a 73 32 2d 61    73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a  | -mode-ast.(js2-ast-root-errors.j | 
| 73ce0 |  73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-mode-ast))................... | 
| 73d00 |  20 20 27 6a 73 32 2d 65 72 72 6f 72 29 29 20 20    3b 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69  | ..'js2-error))..;.must.be.a.vali | 
| 73d20 |  64 20 66 61 63 65 20 6e 61 6d 65 0a 20 20 20 20    20 20 20 20 20 20 20 28 77 61 72 6e 69 6e 67 73  | d.face.name............(warnings | 
| 73d40 |  20 28 61 6e 6e 6f 74 61 74 65 2d 6c 69 73 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(annotate-list................. | 
| 73d60 |  20 20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d    6d 6f 64 65 2d 61 73 74 20 28 6a 73 32 2d 61 73  | ......(when.js2-mode-ast.(js2-as | 
| 73d80 |  74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20    6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20  | t-root-warnings.js2-mode-ast)).. | 
| 73da0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 27 6a 73 32 2d 77 61 72 6e 69 6e  | .....................'js2-warnin | 
| 73dc0 |  67 29 29 20 20 3b 20 6d 75 73 74 20 62 65 20 61    20 76 61 6c 69 64 20 66 61 63 65 20 6e 61 6d 65  | g))..;.must.be.a.valid.face.name | 
| 73de0 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 6c    2d 65 72 72 73 20 28 73 6f 72 74 20 28 61 70 70  | ............(all-errs.(sort.(app | 
| 73e00 |  65 6e 64 20 65 72 72 6f 72 73 20 77 61 72 6e 69    6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20  | end.errors.warnings)............ | 
| 73e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6c 61 6d 62 64 61 20 28 65 31 20 65 32 29 20  | ................(lambda.(e1.e2). | 
| 73e40 |  28 3c 20 28 63 6c 2d 63 61 64 61 72 20 65 31 29    20 28 63 6c 2d 63 61 64 61 72 20 65 32 29 29 29  | (<.(cl-cadar.e1).(cl-cadar.e2))) | 
| 73e60 |  29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d    63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 65  | ))).......(with-current-buffer.e | 
| 73e80 |  72 72 62 75 66 0a 20 20 20 20 20 20 20 20 28 6c    65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61  | rrbuf.........(let.((inhibit-rea | 
| 73ea0 |  64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66  | d-only.t))...........(erase-buff | 
| 73ec0 |  65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 64    6f 6c 69 73 74 20 28 65 72 72 20 61 6c 6c 2d 65  | er)...........(dolist.(err.all-e | 
| 73ee0 |  72 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69  | rrs).............(cl-destructuri | 
| 73f00 |  6e 67 2d 62 69 6e 64 20 28 28 6d 73 67 2d 6b 65    79 20 62 65 67 20 5f 65 6e 64 20 26 72 65 73 74  | ng-bind.((msg-key.beg._end.&rest | 
| 73f20 |  20 72 65 73 74 29 20 74 79 70 65 20 6c 69 6e 65    29 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20  | .rest).type.line).err........... | 
| 73f40 |  20 20 20 20 28 69 6e 73 65 72 74 2d 74 65 78 74    2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20  | ....(insert-text-button......... | 
| 73f60 |  20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22    6c 69 6e 65 20 25 64 3a 20 25 73 22 20 6c 69 6e  | .......(format."line.%d:.%s".lin | 
| 73f80 |  65 20 28 6a 73 32 2d 67 65 74 2d 6d 73 67 20 6d    73 67 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 20  | e.(js2-get-msg.msg-key))........ | 
| 73fa0 |  20 20 20 20 20 20 20 20 27 66 61 63 65 20 74 79    70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........'face.type.............. | 
| 73fc0 |  20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 22    5c 43 2d 6d 22 0a 20 20 20 20 20 20 20 20 20 20  | ..'follow-link."\C-m"........... | 
| 73fe0 |  20 20 20 20 20 27 61 63 74 69 6f 6e 20 27 6a 73    32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6a  | .....'action.'js2-error-buffer-j | 
| 74000 |  75 6d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 27 6a 73 32 2d 6d 73 67 20 28 6a 73 32  | ump................'js2-msg.(js2 | 
| 74020 |  2d 67 65 74 2d 6d 73 67 20 6d 73 67 2d 6b 65 79    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -get-msg.msg-key)............... | 
| 74040 |  20 27 6a 73 32 2d 70 6f 73 20 62 65 67 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e  | .'js2-pos.beg)...............(in | 
| 74060 |  73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 20 20    20 20 20 20 20 20 28 6a 73 32 2d 65 72 72 6f 72  | sert."\n")))).........(js2-error | 
| 74080 |  2d 62 75 66 66 65 72 2d 6d 6f 64 65 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d  | -buffer-mode).........(setq.js2- | 
| 740a0 |  73 6f 75 72 63 65 2d 62 75 66 66 65 72 20 73 72    63 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 70  | source-buffer.srcbuf).........(p | 
| 740c0 |  6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 65 72 72    62 75 66 29 0a 20 20 20 20 20 20 20 20 28 67 6f  | op-to-buffer.errbuf).........(go | 
| 740e0 |  74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d    69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e  | to-char.(point-min)).........(un | 
| 74100 |  6c 65 73 73 20 28 65 6f 62 70 29 0a 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 65 72 72 6f 72  | less.(eobp)...........(js2-error | 
| 74120 |  2d 62 75 66 66 65 72 2d 76 69 65 77 29 29 29 29    29 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d  | -buffer-view))))))..(defvar.js2- | 
| 74140 |  65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6d 6f 64    65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d  | error-buffer-mode-map...(let.((m | 
| 74160 |  61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d    6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64  | ap.(make-sparse-keymap))).....(d | 
| 74180 |  65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22 6e    22 20 23 27 6a 73 32 2d 65 72 72 6f 72 2d 62 75  | efine-key.map."n".#'js2-error-bu | 
| 741a0 |  66 66 65 72 2d 6e 65 78 74 29 0a 20 20 20 20 28    64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 22  | ffer-next).....(define-key.map." | 
| 741c0 |  70 22 20 23 27 6a 73 32 2d 65 72 72 6f 72 2d 62    75 66 66 65 72 2d 70 72 65 76 29 0a 20 20 20 20  | p".#'js2-error-buffer-prev)..... | 
| 741e0 |  28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20    28 6b 62 64 20 22 52 45 54 22 29 20 23 27 6a 73  | (define-key.map.(kbd."RET").#'js | 
| 74200 |  32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6a    75 6d 70 29 0a 20 20 20 20 28 64 65 66 69 6e 65  | 2-error-buffer-jump).....(define | 
| 74220 |  2d 6b 65 79 20 6d 61 70 20 22 6f 22 20 23 27 6a    73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d  | -key.map."o".#'js2-error-buffer- | 
| 74240 |  76 69 65 77 29 0a 20 20 20 20 28 64 65 66 69 6e    65 2d 6b 65 79 20 6d 61 70 20 22 71 22 20 23 27  | view).....(define-key.map."q".#' | 
| 74260 |  6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72    2d 71 75 69 74 29 0a 20 20 20 20 6d 61 70 29 0a  | js2-error-buffer-quit).....map). | 
| 74280 |  20 20 22 4b 65 79 6d 61 70 20 75 73 65 64 20 66    6f 72 20 6a 73 32 20 64 69 61 67 6e 6f 73 74 69  | .."Keymap.used.for.js2.diagnosti | 
| 742a0 |  63 73 20 62 75 66 66 65 72 73 2e 22 29 0a 0a 28    64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d  | cs.buffers.")..(define-derived-m | 
| 742c0 |  6f 64 65 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75    66 66 65 72 2d 6d 6f 64 65 20 73 70 65 63 69 61  | ode.js2-error-buffer-mode.specia | 
| 742e0 |  6c 2d 6d 6f 64 65 20 22 4a 53 20 4c 69 6e 74 20    44 69 61 67 6e 6f 73 74 69 63 73 22 0a 20 20 22  | l-mode."JS.Lint.Diagnostics"..." | 
| 74300 |  4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 6a    73 32 20 64 69 61 67 6e 6f 73 74 69 63 73 20 62  | Major.mode.for.js2.diagnostics.b | 
| 74320 |  75 66 66 65 72 73 2e 0a 53 65 6c 65 63 74 69 6e    67 20 61 6e 20 65 72 72 6f 72 20 77 69 6c 6c 20  | uffers..Selecting.an.error.will. | 
| 74340 |  6a 75 6d 70 20 69 74 20 74 6f 20 74 68 65 20 63    6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 73 6f 75  | jump.it.to.the.corresponding.sou | 
| 74360 |  72 63 65 2d 62 75 66 66 65 72 20 65 72 72 6f 72    2e 0a 5c 5c 7b 6a 73 32 2d 65 72 72 6f 72 2d 62  | rce-buffer.error..\\{js2-error-b | 
| 74380 |  75 66 66 65 72 2d 6d 6f 64 65 2d 6d 61 70 7d 22    0a 20 20 28 73 65 74 71 20 74 72 75 6e 63 61 74  | uffer-mode-map}"...(setq.truncat | 
| 743a0 |  65 2d 6c 69 6e 65 73 20 74 29 0a 20 20 28 73 65    74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65  | e-lines.t)...(set-buffer-modifie | 
| 743c0 |  64 2d 70 20 6e 69 6c 29 0a 20 20 28 73 65 74 71    20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c  | d-p.nil)...(setq.buffer-read-onl | 
| 743e0 |  79 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 65 72 72 6f 72 2d 62 75 66 66 65 72 2d 6e  | y.t))..(defun.js2-error-buffer-n | 
| 74400 |  65 78 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 74    6f 20 6e 65 78 74 20 65 72 72 6f 72 20 61 6e 64  | ext.()..."Move.to.next.error.and | 
| 74420 |  20 76 69 65 77 20 69 74 2e 22 0a 20 20 28 69 6e    74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68  | .view.it."...(interactive)...(wh | 
| 74440 |  65 6e 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61    72 64 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20  | en.(zerop.(forward-line.1))..... | 
| 74460 |  28 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66 65    72 2d 76 69 65 77 29 29 29 0a 0a 28 64 65 66 75  | (js2-error-buffer-view)))..(defu | 
| 74480 |  6e 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66 66    65 72 2d 70 72 65 76 20 28 29 0a 20 20 22 4d 6f  | n.js2-error-buffer-prev.()..."Mo | 
| 744a0 |  76 65 20 74 6f 20 70 72 65 76 69 6f 75 73 20 65    72 72 6f 72 20 61 6e 64 20 76 69 65 77 20 69 74  | ve.to.previous.error.and.view.it | 
| 744c0 |  2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76    65 29 0a 20 20 28 77 68 65 6e 20 28 7a 65 72 6f  | ."...(interactive)...(when.(zero | 
| 744e0 |  70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20    2d 31 29 29 0a 20 20 20 20 28 6a 73 32 2d 65 72  | p.(forward-line.-1)).....(js2-er | 
| 74500 |  72 6f 72 2d 62 75 66 66 65 72 2d 76 69 65 77 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65  | ror-buffer-view)))..(defun.js2-e | 
| 74520 |  72 72 6f 72 2d 62 75 66 66 65 72 2d 71 75 69 74    20 28 29 0a 20 20 22 4b 69 6c 6c 20 74 68 65 20  | rror-buffer-quit.()..."Kill.the. | 
| 74540 |  63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22    0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29  | current.buffer."...(interactive) | 
| 74560 |  0a 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72  | ...(kill-buffer))..(defun.js2-er | 
| 74580 |  72 6f 72 2d 62 75 66 66 65 72 2d 6a 75 6d 70 20    28 26 72 65 73 74 20 69 67 6e 6f 72 65 64 29 0a  | ror-buffer-jump.(&rest.ignored). | 
| 745a0 |  20 20 22 4a 75 6d 70 20 63 75 72 73 6f 72 20 74    6f 20 63 75 72 72 65 6e 74 20 65 72 72 6f 72 20  | .."Jump.cursor.to.current.error. | 
| 745c0 |  69 6e 20 73 6f 75 72 63 65 20 62 75 66 66 65 72    2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76  | in.source.buffer."...(interactiv | 
| 745e0 |  65 29 0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d    65 72 72 6f 72 2d 62 75 66 66 65 72 2d 76 69 65  | e)...(when.(js2-error-buffer-vie | 
| 74600 |  77 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62    75 66 66 65 72 20 6a 73 32 2d 73 6f 75 72 63 65  | w).....(pop-to-buffer.js2-source | 
| 74620 |  2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 65 72 72 6f 72 2d 62 75 66  | -buffer)))..(defun.js2-error-buf | 
| 74640 |  66 65 72 2d 76 69 65 77 20 28 29 0a 20 20 22 53    63 72 6f 6c 6c 20 73 6f 75 72 63 65 20 62 75 66  | fer-view.()..."Scroll.source.buf | 
| 74660 |  66 65 72 20 74 6f 20 73 68 6f 77 20 65 72 72 6f    72 20 61 74 20 63 75 72 72 65 6e 74 20 6c 69 6e  | fer.to.show.error.at.current.lin | 
| 74680 |  65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69    76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28  | e."...(interactive)...(cond....( | 
| 746a0 |  28 6e 6f 74 20 28 64 65 72 69 76 65 64 2d 6d 6f    64 65 2d 70 20 27 6a 73 32 2d 65 72 72 6f 72 2d  | (not.(derived-mode-p.'js2-error- | 
| 746c0 |  62 75 66 66 65 72 2d 6d 6f 64 65 29 29 0a 20 20    20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 20  | buffer-mode)).....(message."Not. | 
| 746e0 |  69 6e 20 61 20 6a 73 32 20 65 72 72 6f 72 73 20    62 75 66 66 65 72 22 29 29 0a 20 20 20 28 28 6e  | in.a.js2.errors.buffer"))....((n | 
| 74700 |  6f 74 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d    70 20 6a 73 32 2d 73 6f 75 72 63 65 2d 62 75 66  | ot.(buffer-live-p.js2-source-buf | 
| 74720 |  66 65 72 29 29 0a 20 20 20 20 28 6d 65 73 73 61    67 65 20 22 53 6f 75 72 63 65 20 62 75 66 66 65  | fer)).....(message."Source.buffe | 
| 74740 |  72 20 68 61 73 20 62 65 65 6e 20 6b 69 6c 6c 65    64 22 29 29 0a 20 20 20 28 28 6e 6f 74 20 28 77  | r.has.been.killed"))....((not.(w | 
| 74760 |  68 6f 6c 65 6e 75 6d 70 20 28 67 65 74 2d 74 65    78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69  | holenump.(get-text-property.(poi | 
| 74780 |  6e 74 29 20 27 6a 73 32 2d 70 6f 73 29 29 29 0a    20 20 20 20 28 6d 65 73 73 61 67 65 20 22 54 68  | nt).'js2-pos))).....(message."Th | 
| 747a0 |  65 72 65 20 64 6f 65 73 20 6e 6f 74 20 73 65 65    6d 20 74 6f 20 62 65 20 61 6e 20 65 72 72 6f 72  | ere.does.not.seem.to.be.an.error | 
| 747c0 |  20 68 65 72 65 22 29 29 0a 20 20 20 28 74 0a 20    20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 67  | .here"))....(t.....(let.((pos.(g | 
| 747e0 |  65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79    20 28 70 6f 69 6e 74 29 20 27 6a 73 32 2d 70 6f  | et-text-property.(point).'js2-po | 
| 74800 |  73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d    73 67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f  | s))...........(msg.(get-text-pro | 
| 74820 |  70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 6a    73 32 2d 6d 73 67 29 29 29 0a 20 20 20 20 20 20  | perty.(point).'js2-msg)))....... | 
| 74840 |  28 73 61 76 65 2d 73 65 6c 65 63 74 65 64 2d 77    69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 28 70  | (save-selected-window.........(p | 
| 74860 |  6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 6a 73 32    2d 73 6f 75 72 63 65 2d 62 75 66 66 65 72 29 0a  | op-to-buffer.js2-source-buffer). | 
| 74880 |  20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68    61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20  | ........(goto-char.pos)......... | 
| 748a0 |  28 6d 65 73 73 61 67 65 20 6d 73 67 29 29 29 29    29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f  | (message.msg))))))..;;;###autolo | 
| 748c0 |  61 64 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76    65 64 2d 6d 6f 64 65 20 6a 73 32 2d 6d 6f 64 65  | ad.(define-derived-mode.js2-mode | 
| 748e0 |  20 6a 73 2d 6d 6f 64 65 20 22 4a 61 76 61 73 63    72 69 70 74 2d 49 44 45 22 0a 20 20 22 4d 61 6a  | .js-mode."Javascript-IDE"..."Maj | 
| 74900 |  6f 72 20 6d 6f 64 65 20 66 6f 72 20 65 64 69 74    69 6e 67 20 4a 61 76 61 53 63 72 69 70 74 20 63  | or.mode.for.editing.JavaScript.c | 
| 74920 |  6f 64 65 2e 22 0a 20 20 28 73 65 74 20 28 6d 61    6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c  | ode."...(set.(make-local-variabl | 
| 74940 |  65 20 27 6d 61 78 2d 6c 69 73 70 2d 65 76 61 6c    2d 64 65 70 74 68 29 0a 20 20 20 20 20 20 20 28  | e.'max-lisp-eval-depth)........( | 
| 74960 |  6d 61 78 20 6d 61 78 2d 6c 69 73 70 2d 65 76 61    6c 2d 64 65 70 74 68 20 33 30 30 30 29 29 0a 20  | max.max-lisp-eval-depth.3000)).. | 
| 74980 |  20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61    6c 2d 76 61 72 69 61 62 6c 65 20 27 69 6e 64 65  | .(set.(make-local-variable.'inde | 
| 749a0 |  6e 74 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e    29 20 23 27 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c  | nt-line-function).#'js2-indent-l | 
| 749c0 |  69 6e 65 29 0a 20 20 28 73 65 74 20 28 6d 61 6b    65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65  | ine)...(set.(make-local-variable | 
| 749e0 |  20 27 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 2d    66 75 6e 63 74 69 6f 6e 29 20 23 27 6a 73 32 2d  | .'indent-region-function).#'js2- | 
| 74a00 |  69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 29 0a 20    20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61  | indent-region)...(set.(make-loca | 
| 74a20 |  6c 2d 76 61 72 69 61 62 6c 65 20 27 73 79 6e 74    61 78 2d 70 72 6f 70 65 72 74 69 7a 65 2d 66 75  | l-variable.'syntax-propertize-fu | 
| 74a40 |  6e 63 74 69 6f 6e 29 20 6e 69 6c 29 0a 20 20 28    73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d  | nction).nil)...(set.(make-local- | 
| 74a60 |  76 61 72 69 61 62 6c 65 20 27 63 6f 6d 6d 65 6e    74 2d 6c 69 6e 65 2d 62 72 65 61 6b 2d 66 75 6e  | variable.'comment-line-break-fun | 
| 74a80 |  63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 6c 69 6e    65 2d 62 72 65 61 6b 29 0a 20 20 28 73 65 74 20  | ction).#'js2-line-break)...(set. | 
| 74aa0 |  28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69    61 62 6c 65 20 27 62 65 67 69 6e 6e 69 6e 67 2d  | (make-local-variable.'beginning- | 
| 74ac0 |  6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f    6e 29 20 23 27 6a 73 32 2d 62 65 67 69 6e 6e 69  | of-defun-function).#'js2-beginni | 
| 74ae0 |  6e 67 2d 6f 66 2d 64 65 66 75 6e 29 0a 20 20 28    73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d  | ng-of-defun)...(set.(make-local- | 
| 74b00 |  76 61 72 69 61 62 6c 65 20 27 65 6e 64 2d 6f 66    2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 29  | variable.'end-of-defun-function) | 
| 74b20 |  20 23 27 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64 65    66 75 6e 29 0a 20 20 3b 3b 20 57 65 20 75 6e 2d  | .#'js2-end-of-defun)...;;.We.un- | 
| 74b40 |  63 6f 6e 66 75 73 65 20 60 70 61 72 73 65 2d 70    61 72 74 69 61 6c 2d 73 65 78 70 27 20 62 79 20  | confuse.`parse-partial-sexp'.by. | 
| 74b60 |  73 65 74 74 69 6e 67 20 73 79 6e 74 61 78 2d 74    61 62 6c 65 20 70 72 6f 70 65 72 74 69 65 73 0a  | setting.syntax-table.properties. | 
| 74b80 |  20 20 3b 3b 20 66 6f 72 20 63 68 61 72 61 63 74    65 72 73 20 69 6e 73 69 64 65 20 72 65 67 65 78  | ..;;.for.characters.inside.regex | 
| 74ba0 |  70 20 6c 69 74 65 72 61 6c 73 2e 0a 20 20 28 73    65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76  | p.literals....(set.(make-local-v | 
| 74bc0 |  61 72 69 61 62 6c 65 20 27 70 61 72 73 65 2d 73    65 78 70 2d 6c 6f 6f 6b 75 70 2d 70 72 6f 70 65  | ariable.'parse-sexp-lookup-prope | 
| 74be0 |  72 74 69 65 73 29 20 74 29 0a 20 20 3b 3b 20 74    68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79  | rties).t)...;;.this.is.necessary | 
| 74c00 |  20 74 6f 20 6d 61 6b 65 20 60 73 68 6f 77 2d 70    61 72 65 6e 2d 66 75 6e 63 74 69 6f 6e 27 20 77  | .to.make.`show-paren-function'.w | 
| 74c20 |  6f 72 6b 20 70 72 6f 70 65 72 6c 79 0a 20 20 28    73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d  | ork.properly...(set.(make-local- | 
| 74c40 |  76 61 72 69 61 62 6c 65 20 27 70 61 72 73 65 2d    73 65 78 70 2d 69 67 6e 6f 72 65 2d 63 6f 6d 6d  | variable.'parse-sexp-ignore-comm | 
| 74c60 |  65 6e 74 73 29 20 74 29 0a 20 20 3b 3b 20 6e 65    65 64 65 64 20 66 6f 72 20 4d 2d 78 20 72 67 72  | ents).t)...;;.needed.for.M-x.rgr | 
| 74c80 |  65 70 2c 20 61 6d 6f 6e 67 20 6f 74 68 65 72 20    74 68 69 6e 67 73 0a 20 20 28 70 75 74 20 27 6a  | ep,.among.other.things...(put.'j | 
| 74ca0 |  73 32 2d 6d 6f 64 65 20 27 66 69 6e 64 2d 74 61    67 2d 64 65 66 61 75 6c 74 2d 66 75 6e 63 74 69  | s2-mode.'find-tag-default-functi | 
| 74cc0 |  6f 6e 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 66 69    6e 64 2d 74 61 67 29 0a 0a 20 20 28 73 65 74 71  | on.#'js2-mode-find-tag)....(setq | 
| 74ce0 |  20 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75    6c 74 73 20 27 28 6e 69 6c 20 74 29 29 0a 0a 20  | .font-lock-defaults.'(nil.t))... | 
| 74d00 |  20 3b 3b 20 45 78 70 65 72 69 6d 65 6e 74 3a 20    20 6d 61 6b 65 20 72 65 70 61 72 73 65 2d 64 65  | .;;.Experiment:..make.reparse-de | 
| 74d20 |  6c 61 79 20 6c 6f 6e 67 65 72 20 66 6f 72 20 6c    6f 6e 67 65 72 20 66 69 6c 65 73 2e 0a 20 20 28  | lay.longer.for.longer.files....( | 
| 74d40 |  77 68 65 6e 20 28 63 6c 2d 70 6c 75 73 70 20 6a    73 32 2d 64 79 6e 61 6d 69 63 2d 69 64 6c 65 2d  | when.(cl-plusp.js2-dynamic-idle- | 
| 74d60 |  74 69 6d 65 72 2d 61 64 6a 75 73 74 29 0a 20 20    20 20 28 73 65 74 71 20 6a 73 32 2d 69 64 6c 65  | timer-adjust).....(setq.js2-idle | 
| 74d80 |  2d 74 69 6d 65 72 2d 64 65 6c 61 79 0a 20 20 20    20 20 20 20 20 20 20 28 2a 20 6a 73 32 2d 69 64  | -timer-delay...........(*.js2-id | 
| 74da0 |  6c 65 2d 74 69 6d 65 72 2d 64 65 6c 61 79 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 28 2f 20 28  | le-timer-delay..............(/.( | 
| 74dc0 |  70 6f 69 6e 74 2d 6d 61 78 29 20 6a 73 32 2d 64    79 6e 61 6d 69 63 2d 69 64 6c 65 2d 74 69 6d 65  | point-max).js2-dynamic-idle-time | 
| 74de0 |  72 2d 61 64 6a 75 73 74 29 29 29 29 0a 0a 20 20    28 61 64 64 2d 68 6f 6f 6b 20 27 63 68 61 6e 67  | r-adjust))))....(add-hook.'chang | 
| 74e00 |  65 2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f    6b 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 65 78 69  | e-major-mode-hook.#'js2-mode-exi | 
| 74e20 |  74 20 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d    68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e  | t.nil.t)...(add-hook.'after-chan | 
| 74e40 |  67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 6a    73 32 2d 6d 6f 64 65 2d 65 64 69 74 20 6e 69 6c  | ge-functions.#'js2-mode-edit.nil | 
| 74e60 |  20 74 29 0a 20 20 28 73 65 74 71 20 69 6d 65 6e    75 2d 63 72 65 61 74 65 2d 69 6e 64 65 78 2d 66  | .t)...(setq.imenu-create-index-f | 
| 74e80 |  75 6e 63 74 69 6f 6e 20 23 27 6a 73 32 2d 6d 6f    64 65 2d 63 72 65 61 74 65 2d 69 6d 65 6e 75 2d  | unction.#'js2-mode-create-imenu- | 
| 74ea0 |  69 6e 64 65 78 29 0a 20 20 28 73 65 74 71 20 6e    65 78 74 2d 65 72 72 6f 72 2d 66 75 6e 63 74 69  | index)...(setq.next-error-functi | 
| 74ec0 |  6f 6e 20 23 27 6a 73 32 2d 6e 65 78 74 2d 65 72    72 6f 72 29 0a 20 20 28 69 6d 65 6e 75 2d 61 64  | on.#'js2-next-error)...(imenu-ad | 
| 74ee0 |  64 2d 74 6f 2d 6d 65 6e 75 62 61 72 20 28 63 6f    6e 63 61 74 20 22 49 4d 2d 22 20 6d 6f 64 65 2d  | d-to-menubar.(concat."IM-".mode- | 
| 74f00 |  6e 61 6d 65 29 29 0a 20 20 28 61 64 64 2d 74 6f    2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d 73 70  | name))...(add-to-invisibility-sp | 
| 74f20 |  65 63 20 27 28 6a 73 32 2d 6f 75 74 6c 69 6e 65    20 2e 20 74 29 29 0a 20 20 28 73 65 74 20 28 6d  | ec.'(js2-outline...t))...(set.(m | 
| 74f40 |  61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62    6c 65 20 27 6c 69 6e 65 2d 6d 6f 76 65 2d 69 67  | ake-local-variable.'line-move-ig | 
| 74f60 |  6e 6f 72 65 2d 69 6e 76 69 73 69 62 6c 65 29 20    74 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d  | nore-invisible).t)...(set.(make- | 
| 74f80 |  6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27    66 6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e  | local-variable.'forward-sexp-fun | 
| 74fa0 |  63 74 69 6f 6e 29 20 23 27 6a 73 32 2d 6d 6f 64    65 2d 66 6f 72 77 61 72 64 2d 73 65 78 70 29 0a  | ction).#'js2-mode-forward-sexp). | 
| 74fc0 |  20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70    20 27 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d  | ..(when.(fboundp.'cursor-sensor- | 
| 74fe0 |  6d 6f 64 65 29 20 28 63 75 72 73 6f 72 2d 73 65    6e 73 6f 72 2d 6d 6f 64 65 20 31 29 29 0a 0a 20  | mode).(cursor-sensor-mode.1))... | 
| 75000 |  20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d    66 75 6e 63 74 69 6f 6e 73 2d 68 69 64 64 65 6e  | .(setq.js2-mode-functions-hidden | 
| 75020 |  20 6e 69 6c 0a 20 20 20 20 20 20 20 20 6a 73 32    2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d 68  | .nil.........js2-mode-comments-h | 
| 75040 |  69 64 64 65 6e 20 6e 69 6c 0a 20 20 20 20 20 20    20 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65  | idden.nil.........js2-mode-buffe | 
| 75060 |  72 2d 64 69 72 74 79 2d 70 20 74 0a 20 20 20 20    20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72  | r-dirty-p.t.........js2-mode-par | 
| 75080 |  73 69 6e 67 20 6e 69 6c 29 0a 0a 20 20 28 77 68    65 6e 20 6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a  | sing.nil)....(when.js2-include-j | 
| 750a0 |  73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 0a 20 20    20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32  | slint-globals.....(add-hook.'js2 | 
| 750c0 |  2d 70 6f 73 74 2d 70 61 72 73 65 2d 63 61 6c 6c    62 61 63 6b 73 20 27 6a 73 32 2d 61 70 70 6c 79  | -post-parse-callbacks.'js2-apply | 
| 750e0 |  2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61 6c 73 20    6e 69 6c 20 74 29 29 0a 20 20 28 77 68 65 6e 20  | -jslint-globals.nil.t))...(when. | 
| 75100 |  6a 73 32 2d 69 6e 63 6c 75 64 65 2d 6a 73 6c 69    6e 74 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65  | js2-include-jslint-declaration-e | 
| 75120 |  78 74 65 72 6e 73 0a 20 20 20 20 28 61 64 64 2d    68 6f 6f 6b 20 27 6a 73 32 2d 70 6f 73 74 2d 70  | xterns.....(add-hook.'js2-post-p | 
| 75140 |  61 72 73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 27    6a 73 32 2d 61 70 70 6c 79 2d 6a 73 6c 69 6e 74  | arse-callbacks.'js2-apply-jslint | 
| 75160 |  2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 65 78 74    65 72 6e 73 20 6e 69 6c 20 74 29 29 0a 0a 20 20  | -declaration-externs.nil.t)).... | 
| 75180 |  28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6a 73 32 2d    69 6e 69 74 2d 68 6f 6f 6b 29 0a 0a 20 20 28 6c  | (run-hooks.'js2-init-hook)....(l | 
| 751a0 |  65 74 20 28 28 6a 73 32 2d 69 64 6c 65 2d 74 69    6d 65 72 2d 64 65 6c 61 79 20 30 29 29 0a 20 20  | et.((js2-idle-timer-delay.0))... | 
| 751c0 |  20 20 3b 3b 20 53 63 68 65 64 75 6c 65 20 70 61    72 73 69 6e 67 20 66 6f 72 20 61 66 74 65 72 20  | ..;;.Schedule.parsing.for.after. | 
| 751e0 |  77 68 65 6e 20 74 68 65 20 6d 6f 64 65 20 68 6f    6f 6b 73 20 72 75 6e 2e 0a 20 20 20 20 28 6a 73  | when.the.mode.hooks.run......(js | 
| 75200 |  32 2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d    65 72 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74  | 2-mode-reset-timer)))..;;;###aut | 
| 75220 |  6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 64 65    72 69 76 65 64 2d 6d 6f 64 65 20 6a 73 32 2d 6a  | oload.(define-derived-mode.js2-j | 
| 75240 |  73 78 2d 6d 6f 64 65 20 6a 73 32 2d 6d 6f 64 65    20 22 4a 53 58 2d 49 44 45 22 0a 20 20 22 4d 61  | sx-mode.js2-mode."JSX-IDE"..."Ma | 
| 75260 |  6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 65 64 69    74 69 6e 67 20 4a 53 58 20 63 6f 64 65 20 69 6e  | jor.mode.for.editing.JSX.code.in | 
| 75280 |  20 45 6d 61 63 73 20 32 36 20 61 6e 64 20 65 61    72 6c 69 65 72 2e 0a 0a 54 6f 20 65 64 69 74 20  | .Emacs.26.and.earlier...To.edit. | 
| 752a0 |  4a 53 58 20 63 6f 64 65 20 69 6e 20 45 6d 61 63    73 20 32 37 2c 20 75 73 65 20 60 6a 73 2d 6d 6f  | JSX.code.in.Emacs.27,.use.`js-mo | 
| 752c0 |  64 65 27 20 61 73 20 79 6f 75 72 20 6d 61 6a 6f    72 20 6d 6f 64 65 0a 77 69 74 68 20 60 6a 73 32  | de'.as.your.major.mode.with.`js2 | 
| 752e0 |  2d 6d 69 6e 6f 72 2d 6d 6f 64 65 27 20 65 6e 61    62 6c 65 64 2e 0a 0a 54 6f 20 63 75 73 74 6f 6d  | -minor-mode'.enabled...To.custom | 
| 75300 |  69 7a 65 20 74 68 65 20 69 6e 64 65 6e 74 61 74    69 6f 6e 20 66 6f 72 20 74 68 69 73 20 6d 6f 64  | ize.the.indentation.for.this.mod | 
| 75320 |  65 2c 20 73 65 74 20 74 68 65 20 53 47 4d 4c 20    6f 66 66 73 65 74 0a 76 61 72 69 61 62 6c 65 73  | e,.set.the.SGML.offset.variables | 
| 75340 |  20 28 60 73 67 6d 6c 2d 62 61 73 69 63 2d 6f 66    66 73 65 74 27 20 65 74 20 61 6c 29 20 6c 6f 63  | .(`sgml-basic-offset'.et.al).loc | 
| 75360 |  61 6c 6c 79 2c 20 6c 69 6b 65 20 73 6f 3a 0a 0a    20 20 28 64 65 66 75 6e 20 73 65 74 2d 6a 73 78  | ally,.like.so:....(defun.set-jsx | 
| 75380 |  2d 69 6e 64 65 6e 74 61 74 69 6f 6e 20 28 29 0a    20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20  | -indentation.().....(setq-local. | 
| 753a0 |  73 67 6d 6c 2d 62 61 73 69 63 2d 6f 66 66 73 65    74 20 6a 73 32 2d 62 61 73 69 63 2d 6f 66 66 73  | sgml-basic-offset.js2-basic-offs | 
| 753c0 |  65 74 29 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b    20 5c 5c 3d 27 6a 73 32 2d 6a 73 78 2d 6d 6f 64  | et))...(add-hook.\\='js2-jsx-mod | 
| 753e0 |  65 2d 68 6f 6f 6b 20 23 5c 5c 3d 27 73 65 74 2d    6a 73 78 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29  | e-hook.#\\='set-jsx-indentation) | 
| 75400 |  22 0a 20 20 28 75 6e 6c 65 73 73 20 28 76 65 72    73 69 6f 6e 3c 20 65 6d 61 63 73 2d 76 65 72 73  | "...(unless.(version<.emacs-vers | 
| 75420 |  69 6f 6e 20 22 32 37 2e 30 22 29 0a 20 20 20 20    3b 3b 20 45 6d 61 63 73 20 32 37 20 63 61 75 73  | ion."27.0").....;;.Emacs.27.caus | 
| 75440 |  65 73 20 61 20 72 65 67 72 65 73 73 69 6f 6e 20    69 6e 20 74 68 69 73 20 6d 6f 64 65 20 73 69 6e  | es.a.regression.in.this.mode.sin | 
| 75460 |  63 65 20 4a 53 58 20 69 6e 64 65 6e 74 61 74 69    6f 6e 0a 20 20 20 20 3b 3b 20 62 65 67 69 6e 73  | ce.JSX.indentation.....;;.begins | 
| 75480 |  20 74 6f 20 72 65 6c 79 20 6f 6e 20 6a 73 2d 6d    6f 64 65 e2 80 99 73 20 60 73 79 6e 74 61 78 2d  | .to.rely.on.js-mode...s.`syntax- | 
| 754a0 |  70 72 6f 70 65 72 74 69 7a 65 2d 66 75 6e 63 74    69 6f 6e 27 2c 20 77 68 69 63 68 0a 20 20 20 20  | propertize-function',.which..... | 
| 754c0 |  3b 3b 20 4a 53 32 20 69 73 20 6e 6f 74 20 63 75    72 72 65 6e 74 6c 79 20 75 73 69 6e 67 2e 0a 20  | ;;.JS2.is.not.currently.using... | 
| 754e0 |  20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69    74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73  | ...;;.https://github.com/mooz/js | 
| 75500 |  32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 32    39 20 73 68 6f 75 6c 64 20 61 64 64 72 65 73 73  | 2-mode/issues/529.should.address | 
| 75520 |  0a 20 20 20 20 3b 3b 20 74 68 69 73 2e 20 20 68    74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f  | .....;;.this...https://github.co | 
| 75540 |  6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f    69 73 73 75 65 73 2f 35 33 30 20 61 6c 73 6f 20  | m/mooz/js2-mode/issues/530.also. | 
| 75560 |  68 61 73 20 61 0a 20 20 20 20 3b 3b 20 70 69 65    63 65 20 72 65 6c 61 74 65 64 20 74 6f 20 74 68  | has.a.....;;.piece.related.to.th | 
| 75580 |  65 20 64 65 73 69 67 6e 20 6f 66 20 60 6a 73 32    2d 6a 73 78 2d 6d 6f 64 65 27 2e 20 20 55 6e 74  | e.design.of.`js2-jsx-mode'...Unt | 
| 755a0 |  69 6c 20 74 68 65 73 65 0a 20 20 20 20 3b 3b 20    69 73 73 75 65 73 20 61 72 65 20 61 64 64 72 65  | il.these.....;;.issues.are.addre | 
| 755c0 |  73 73 65 64 2c 20 77 61 72 64 20 45 6d 61 63 73    20 32 37 20 75 73 65 72 73 20 61 77 61 79 20 66  | ssed,.ward.Emacs.27.users.away.f | 
| 755e0 |  72 6f 6d 20 74 68 69 73 20 6d 6f 64 65 2e 0a 20    20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e  | rom.this.mode......(display-warn | 
| 75600 |  69 6e 67 20 27 6a 73 32 2d 6d 6f 64 65 20 22 46    6f 72 20 4a 53 58 20 73 75 70 70 6f 72 74 2c 20  | ing.'js2-mode."For.JSX.support,. | 
| 75620 |  75 73 65 20 6a 73 2d 6d 6f 64 65 20 77 69 74 68    20 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 22  | use.js-mode.with.js2-minor-mode" | 
| 75640 |  29 29 0a 20 20 28 73 65 74 20 28 6d 61 6b 65 2d    6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27  | ))...(set.(make-local-variable.' | 
| 75660 |  69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 66 75 6e 63    74 69 6f 6e 29 20 23 27 6a 73 32 2d 6a 73 78 2d  | indent-line-function).#'js2-jsx- | 
| 75680 |  69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 65  | indent-line))..(defun.js2-mode-e | 
| 756a0 |  78 69 74 20 28 29 0a 20 20 22 45 78 69 74 20 60    6a 73 32 2d 6d 6f 64 65 27 20 61 6e 64 20 63 6c  | xit.()..."Exit.`js2-mode'.and.cl | 
| 756c0 |  65 61 6e 20 75 70 2e 22 0a 20 20 28 69 6e 74 65    72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e  | ean.up."...(interactive)...(when | 
| 756e0 |  20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f    76 65 72 6c 61 79 0a 20 20 20 20 28 64 65 6c 65  | .js2-mode-node-overlay.....(dele | 
| 75700 |  74 65 2d 6f 76 65 72 6c 61 79 20 6a 73 32 2d 6d    6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79  | te-overlay.js2-mode-node-overlay | 
| 75720 |  29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d    6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61  | ).....(setq.js2-mode-node-overla | 
| 75740 |  79 20 6e 69 6c 29 29 0a 20 20 28 6a 73 32 2d 72    65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 29 0a  | y.nil))...(js2-remove-overlays). | 
| 75760 |  20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65    2d 61 73 74 20 6e 69 6c 29 0a 20 20 28 72 65 6d  | ..(setq.js2-mode-ast.nil)...(rem | 
| 75780 |  6f 76 65 2d 68 6f 6f 6b 20 27 63 68 61 6e 67 65    2d 6d 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b  | ove-hook.'change-major-mode-hook | 
| 757a0 |  20 23 27 6a 73 32 2d 6d 6f 64 65 2d 65 78 69 74    20 74 29 0a 20 20 28 72 65 6d 6f 76 65 2d 66 72  | .#'js2-mode-exit.t)...(remove-fr | 
| 757c0 |  6f 6d 2d 69 6e 76 69 73 69 62 69 6c 69 74 79 2d    73 70 65 63 20 27 28 6a 73 32 2d 6f 75 74 6c 69  | om-invisibility-spec.'(js2-outli | 
| 757e0 |  6e 65 20 2e 20 74 29 29 0a 20 20 28 6a 73 32 2d    6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 29 0a 20  | ne...t))...(js2-mode-show-all).. | 
| 75800 |  20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f    64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20  | .(with-silent-modifications..... | 
| 75820 |  28 6a 73 32 2d 63 6c 65 61 72 2d 66 61 63 65 20    28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69  | (js2-clear-face.(point-min).(poi | 
| 75840 |  6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 72 65 73 65  | nt-max))))..(defun.js2-mode-rese | 
| 75860 |  74 2d 74 69 6d 65 72 20 28 29 0a 20 20 22 43 61    6e 63 65 6c 20 61 6e 79 20 65 78 69 73 74 69 6e  | t-timer.()..."Cancel.any.existin | 
| 75880 |  67 20 70 61 72 73 65 20 74 69 6d 65 72 20 61 6e    64 20 73 63 68 65 64 75 6c 65 20 61 20 6e 65 77  | g.parse.timer.and.schedule.a.new | 
| 758a0 |  20 6f 6e 65 2e 22 0a 20 20 28 69 66 20 6a 73 32    2d 6d 6f 64 65 2d 70 61 72 73 65 2d 74 69 6d 65  | .one."...(if.js2-mode-parse-time | 
| 758c0 |  72 0a 20 20 20 20 20 20 28 63 61 6e 63 65 6c 2d    74 69 6d 65 72 20 6a 73 32 2d 6d 6f 64 65 2d 70  | r.......(cancel-timer.js2-mode-p | 
| 758e0 |  61 72 73 65 2d 74 69 6d 65 72 29 29 0a 20 20 28    73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 61  | arse-timer))...(setq.js2-mode-pa | 
| 75900 |  72 73 69 6e 67 20 6e 69 6c 29 0a 20 20 28 6c 65    74 20 28 28 74 69 6d 65 72 20 28 74 69 6d 65 72  | rsing.nil)...(let.((timer.(timer | 
| 75920 |  2d 63 72 65 61 74 65 29 29 29 0a 20 20 20 20 28    73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 61  | -create))).....(setq.js2-mode-pa | 
| 75940 |  72 73 65 2d 74 69 6d 65 72 20 74 69 6d 65 72 29    0a 20 20 20 20 28 74 69 6d 65 72 2d 73 65 74 2d  | rse-timer.timer).....(timer-set- | 
| 75960 |  66 75 6e 63 74 69 6f 6e 20 74 69 6d 65 72 20 27    6a 73 32 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65  | function.timer.'js2-mode-idle-re | 
| 75980 |  70 61 72 73 65 20 28 6c 69 73 74 20 28 63 75 72    72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20  | parse.(list.(current-buffer))).. | 
| 759a0 |  20 20 20 28 74 69 6d 65 72 2d 73 65 74 2d 69 64    6c 65 2d 74 69 6d 65 20 74 69 6d 65 72 20 6a 73  | ...(timer-set-idle-time.timer.js | 
| 759c0 |  32 2d 69 64 6c 65 2d 74 69 6d 65 72 2d 64 65 6c    61 79 29 0a 20 20 20 20 3b 3b 20 68 74 74 70 3a  | 2-idle-timer-delay).....;;.http: | 
| 759e0 |  2f 2f 64 65 62 62 75 67 73 2e 67 6e 75 2e 6f 72    67 2f 63 67 69 2f 62 75 67 72 65 70 6f 72 74 2e  | //debbugs.gnu.org/cgi/bugreport. | 
| 75a00 |  63 67 69 3f 62 75 67 3d 31 32 33 32 36 0a 20 20    20 20 28 74 69 6d 65 72 2d 61 63 74 69 76 61 74  | cgi?bug=12326.....(timer-activat | 
| 75a20 |  65 2d 77 68 65 6e 2d 69 64 6c 65 20 74 69 6d 65    72 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e  | e-when-idle.timer.nil)))..(defun | 
| 75a40 |  20 6a 73 32 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72    65 70 61 72 73 65 20 28 62 75 66 66 65 72 29 0a  | .js2-mode-idle-reparse.(buffer). | 
| 75a60 |  20 20 22 52 75 6e 20 60 6a 73 32 2d 72 65 70 61    72 73 65 27 20 69 66 20 42 55 46 46 45 52 20 69  | .."Run.`js2-reparse'.if.BUFFER.i | 
| 75a80 |  73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75    66 66 65 72 2c 20 6f 72 20 73 63 68 65 64 75 6c  | s.the.current.buffer,.or.schedul | 
| 75aa0 |  65 0a 69 74 20 74 6f 20 62 65 20 72 65 70 61 72    73 65 64 20 77 68 65 6e 20 74 68 65 20 62 75 66  | e.it.to.be.reparsed.when.the.buf | 
| 75ac0 |  66 65 72 20 69 73 20 73 65 6c 65 63 74 65 64 2e    22 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 20 62  | fer.is.selected."...(cond.((eq.b | 
| 75ae0 |  75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62    75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20  | uffer.(current-buffer))......... | 
| 75b00 |  20 28 6a 73 32 2d 72 65 70 61 72 73 65 29 29 0a    20 20 20 20 20 20 20 20 28 28 62 75 66 66 65 72  | .(js2-reparse)).........((buffer | 
| 75b20 |  2d 6c 69 76 65 2d 70 20 62 75 66 66 65 72 29 0a    20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 70 61  | -live-p.buffer)..........;;.repa | 
| 75b40 |  72 73 65 20 77 68 65 6e 20 74 68 65 20 62 75 66    66 65 72 20 69 73 20 73 65 6c 65 63 74 65 64 20  | rse.when.the.buffer.is.selected. | 
| 75b60 |  61 67 61 69 6e 0a 20 20 20 20 20 20 20 20 20 28    77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66  | again..........(with-current-buf | 
| 75b80 |  66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20    20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20  | fer.buffer............(add-hook. | 
| 75ba0 |  27 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72    61 74 69 6f 6e 2d 63 68 61 6e 67 65 2d 68 6f 6f  | 'window-configuration-change-hoo | 
| 75bc0 |  6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 23 27 6a 73 32 2d 6d 6f 64  | k......................#'js2-mod | 
| 75be0 |  65 2d 69 64 6c 65 2d 72 65 70 61 72 73 65 2d 69    6e 6e 65 72 0a 20 20 20 20 20 20 20 20 20 20 20  | e-idle-reparse-inner............ | 
| 75c00 |  20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29    29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | ..........nil.t)))))..(defun.js2 | 
| 75c20 |  2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65 70 61 72    73 65 2d 69 6e 6e 65 72 20 28 29 0a 20 20 28 72  | -mode-idle-reparse-inner.()...(r | 
| 75c40 |  65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 77 69 6e 64    6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e  | emove-hook.'window-configuration | 
| 75c60 |  2d 63 68 61 6e 67 65 2d 68 6f 6f 6b 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 23 27 6a 73  | -change-hook................#'js | 
| 75c80 |  32 2d 6d 6f 64 65 2d 69 64 6c 65 2d 72 65 70 61    72 73 65 2d 69 6e 6e 65 72 0a 20 20 20 20 20 20  | 2-mode-idle-reparse-inner....... | 
| 75ca0 |  20 20 20 20 20 20 20 20 20 74 29 0a 20 20 28 6a    73 32 2d 72 65 70 61 72 73 65 29 29 0a 0a 28 64  | .........t)...(js2-reparse))..(d | 
| 75cc0 |  65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 65 64    69 74 20 28 5f 62 65 67 20 5f 65 6e 64 20 5f 6c  | efun.js2-mode-edit.(_beg._end._l | 
| 75ce0 |  65 6e 29 0a 20 20 22 53 63 68 65 64 75 6c 65 20    61 20 6e 65 77 20 70 61 72 73 65 20 61 66 74 65  | en)..."Schedule.a.new.parse.afte | 
| 75d00 |  72 20 62 75 66 66 65 72 20 69 73 20 65 64 69 74    65 64 2e 0a 42 75 66 66 65 72 20 65 64 69 74 20  | r.buffer.is.edited..Buffer.edit. | 
| 75d20 |  73 70 61 6e 73 20 66 72 6f 6d 20 42 45 47 20 74    6f 20 45 4e 44 20 61 6e 64 20 69 73 20 6f 66 20  | spans.from.BEG.to.END.and.is.of. | 
| 75d40 |  6c 65 6e 67 74 68 20 4c 45 4e 2e 22 0a 20 20 28    73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 62 75  | length.LEN."...(setq.js2-mode-bu | 
| 75d60 |  66 66 65 72 2d 64 69 72 74 79 2d 70 20 74 29 0a    20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65  | ffer-dirty-p.t)...(js2-mode-hide | 
| 75d80 |  2d 6f 76 65 72 6c 61 79 29 0a 20 20 28 6a 73 32    2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d 65  | -overlay)...(js2-mode-reset-time | 
| 75da0 |  72 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    6d 69 6e 6f 72 2d 6d 6f 64 65 2d 65 64 69 74 20  | r))..(defun.js2-minor-mode-edit. | 
| 75dc0 |  28 5f 62 65 67 20 5f 65 6e 64 20 5f 6c 65 6e 29    0a 20 20 22 43 61 6c 6c 62 61 63 6b 20 66 6f 72  | (_beg._end._len)..."Callback.for | 
| 75de0 |  20 62 75 66 66 65 72 20 65 64 69 74 73 20 69 6e    20 60 6a 73 32 2d 6d 6f 64 65 27 2e 0a 53 63 68  | .buffer.edits.in.`js2-mode'..Sch | 
| 75e00 |  65 64 75 6c 65 73 20 61 20 6e 65 77 20 70 61 72    73 65 20 61 66 74 65 72 20 62 75 66 66 65 72 20  | edules.a.new.parse.after.buffer. | 
| 75e20 |  69 73 20 65 64 69 74 65 64 2e 0a 42 75 66 66 65    72 20 65 64 69 74 20 73 70 61 6e 73 20 66 72 6f  | is.edited..Buffer.edit.spans.fro | 
| 75e40 |  6d 20 42 45 47 20 74 6f 20 45 4e 44 20 61 6e 64    20 69 73 20 6f 66 20 6c 65 6e 67 74 68 20 4c 45  | m.BEG.to.END.and.is.of.length.LE | 
| 75e60 |  4e 2e 22 0a 20 20 28 73 65 74 71 20 6a 73 32 2d    6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 74  | N."...(setq.js2-mode-buffer-dirt | 
| 75e80 |  79 2d 70 20 74 29 0a 20 20 28 6a 73 32 2d 6d 6f    64 65 2d 68 69 64 65 2d 6f 76 65 72 6c 61 79 29  | y-p.t)...(js2-mode-hide-overlay) | 
| 75ea0 |  0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 72 65 73    65 74 2d 74 69 6d 65 72 29 29 0a 0a 28 64 65 66  | ...(js2-mode-reset-timer))..(def | 
| 75ec0 |  75 6e 20 6a 73 32 2d 72 65 70 61 72 73 65 20 28    26 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 63 65 29  | un.js2-reparse.(&optional.force) | 
| 75ee0 |  0a 20 20 22 52 65 2d 70 61 72 73 65 20 63 75 72    72 65 6e 74 20 62 75 66 66 65 72 20 61 66 74 65  | ..."Re-parse.current.buffer.afte | 
| 75f00 |  72 20 75 73 65 72 20 66 69 6e 69 73 68 65 73 20    73 6f 6d 65 20 64 61 74 61 20 65 6e 74 72 79 2e  | r.user.finishes.some.data.entry. | 
| 75f20 |  0a 49 66 20 77 65 20 67 65 74 20 61 6e 79 20 75    73 65 72 20 69 6e 70 75 74 20 77 68 69 6c 65 20  | .If.we.get.any.user.input.while. | 
| 75f40 |  70 61 72 73 69 6e 67 2c 20 69 6e 63 6c 75 64 69    6e 67 20 63 75 72 73 6f 72 20 6d 6f 74 69 6f 6e  | parsing,.including.cursor.motion | 
| 75f60 |  2c 0a 77 65 20 64 69 73 63 61 72 64 20 74 68 65    20 70 61 72 73 65 20 61 6e 64 20 72 65 73 63 68  | ,.we.discard.the.parse.and.resch | 
| 75f80 |  65 64 75 6c 65 20 69 74 2e 20 20 49 66 20 46 4f    52 43 45 20 69 73 20 6e 69 6c 2c 20 74 68 65 6e  | edule.it...If.FORCE.is.nil,.then | 
| 75fa0 |  20 74 68 65 0a 62 75 66 66 65 72 20 77 69 6c 6c    20 6f 6e 6c 79 20 72 65 62 75 69 6c 64 20 69 74  | .the.buffer.will.only.rebuild.it | 
| 75fc0 |  73 20 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 27    20 69 66 20 74 68 65 20 62 75 66 66 65 72 20 69  | s.`js2-mode-ast'.if.the.buffer.i | 
| 75fe0 |  73 20 64 69 72 74 79 2e 22 0a 20 20 28 6c 65 74    20 28 74 69 6d 65 0a 20 20 20 20 20 20 20 20 69  | s.dirty."...(let.(time.........i | 
| 76000 |  6e 74 65 72 72 75 70 74 65 64 2d 70 0a 20 20 20    20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70 69 6c  | nterrupted-p.........(js2-compil | 
| 76020 |  65 72 2d 73 74 72 69 63 74 2d 6d 6f 64 65 20 6a    73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72  | er-strict-mode.js2-mode-show-str | 
| 76040 |  69 63 74 2d 77 61 72 6e 69 6e 67 73 29 29 0a 20    20 20 20 28 75 6e 6c 65 73 73 20 6a 73 32 2d 6d  | ict-warnings)).....(unless.js2-m | 
| 76060 |  6f 64 65 2d 70 61 72 73 69 6e 67 0a 20 20 20 20    20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65  | ode-parsing.......(setq.js2-mode | 
| 76080 |  2d 70 61 72 73 69 6e 67 20 74 29 0a 20 20 20 20    20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63  | -parsing.t).......(unwind-protec | 
| 760a0 |  74 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65    6e 20 28 6f 72 20 6a 73 32 2d 6d 6f 64 65 2d 62  | t...........(when.(or.js2-mode-b | 
| 760c0 |  75 66 66 65 72 2d 64 69 72 74 79 2d 70 20 66 6f    72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | uffer-dirty-p.force)............ | 
| 760e0 |  20 28 6a 73 32 2d 72 65 6d 6f 76 65 2d 6f 76 65    72 6c 61 79 73 29 0a 20 20 20 20 20 20 20 20 20  | .(js2-remove-overlays).......... | 
| 76100 |  20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64    65 2d 62 75 66 66 65 72 2d 64 69 72 74 79 2d 70  | ...(setq.js2-mode-buffer-dirty-p | 
| 76120 |  20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d  | .nil...................js2-mode- | 
| 76140 |  66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73 20 6e    69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | fontifications.nil.............. | 
| 76160 |  20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 64 65    66 65 72 72 65 64 2d 70 72 6f 70 65 72 74 69 65  | .....js2-mode-deferred-propertie | 
| 76180 |  73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d  | s.nil).............(if.js2-mode- | 
| 761a0 |  76 65 72 62 6f 73 65 2d 70 61 72 73 65 2d 70 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | verbose-parse-p................. | 
| 761c0 |  28 6d 65 73 73 61 67 65 20 22 70 61 72 73 69 6e    67 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20  | (message."parsing..."))......... | 
| 761e0 |  20 20 20 20 28 73 65 74 71 20 74 69 6d 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(setq.time.................. | 
| 76200 |  20 28 6a 73 32 2d 74 69 6d 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | .(js2-time....................(s | 
| 76220 |  65 74 71 20 69 6e 74 65 72 72 75 70 74 65 64 2d    70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | etq.interrupted-p............... | 
| 76240 |  20 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63    68 20 27 69 6e 74 65 72 72 75 70 74 65 64 0a 20  | ...........(catch.'interrupted.. | 
| 76260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70  | ..........................(js2-p | 
| 76280 |  61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | arse)........................... | 
| 762a0 |  20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f    64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20  | .(with-silent-modifications..... | 
| 762c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 70  | .........................;;.if.p | 
| 762e0 |  61 72 73 69 6e 67 20 69 73 20 69 6e 74 65 72 72    75 70 74 65 64 2c 20 63 6f 6d 6d 65 6e 74 73 20  | arsing.is.interrupted,.comments. | 
| 76300 |  61 6e 64 20 72 65 67 65 78 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | and.regex....................... | 
| 76320 |  20 20 20 20 20 20 20 3b 3b 20 6c 69 74 65 72 61    6c 73 20 73 74 61 79 20 69 67 6e 6f 72 65 64 20  | .......;;.literals.stay.ignored. | 
| 76340 |  62 79 20 60 70 61 72 73 65 2d 70 61 72 74 69 61    6c 2d 73 65 78 70 27 0a 20 20 20 20 20 20 20 20  | by.`parse-partial-sexp'......... | 
| 76360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 6a 73 32 2d 6d  | .....................(when.js2-m | 
| 76380 |  6f 64 65 2d 63 68 61 6e 67 65 2d 73 79 6e 74 61    78 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ode-change-syntax-p............. | 
| 763a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 72 65 6d 6f 76 65 2d 74 65 78 74 2d  | ...................(remove-text- | 
| 763c0 |  70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e    74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61  | properties.(point-min).(point-ma | 
| 763e0 |  78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | x).............................. | 
| 76400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 27 28 73 79 6e 74  | ..........................'(synt | 
| 76420 |  61 78 2d 74 61 62 6c 65 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ax-table)))..................... | 
| 76440 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f    64 65 2d 61 70 70 6c 79 2d 64 65 66 65 72 72 65  | .........(js2-mode-apply-deferre | 
| 76460 |  64 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d-properties)................... | 
| 76480 |  20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d    6d 6f 64 65 2d 72 65 6d 6f 76 65 2d 73 75 70 70  | ...........(js2-mode-remove-supp | 
| 764a0 |  72 65 73 73 65 64 2d 77 61 72 6e 69 6e 67 73 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ressed-warnings)................ | 
| 764c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 77 61 72  | ..............(js2-mode-show-war | 
| 764e0 |  6e 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nings).......................... | 
| 76500 |  20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68    6f 77 2d 65 72 72 6f 72 73 29 0a 20 20 20 20 20  | ....(js2-mode-show-errors)...... | 
| 76520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20  | ........................(if.(>=. | 
| 76540 |  6a 73 32 2d 68 69 67 68 6c 69 67 68 74 2d 6c 65    76 65 6c 20 31 29 0a 20 20 20 20 20 20 20 20 20  | js2-highlight-level.1).......... | 
| 76560 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 68 69 67  | ........................(js2-hig | 
| 76580 |  68 6c 69 67 68 74 2d 6a 73 64 6f 63 20 6a 73 32    2d 6d 6f 64 65 2d 61 73 74 29 29 29 0a 20 20 20  | hlight-jsdoc.js2-mode-ast))).... | 
| 765a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 0a  | ........................nil)))). | 
| 765c0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    69 6e 74 65 72 72 75 70 74 65 64 2d 70 0a 20 20  | ............(if.interrupted-p... | 
| 765e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20  | ..............(progn............ | 
| 76600 |  20 20 20 20 20 20 20 3b 3b 20 75 6e 66 69 6e 69    73 68 65 64 20 70 61 72 73 65 20 3d 3e 20 74 72  | .......;;.unfinished.parse.=>.tr | 
| 76620 |  79 20 61 67 61 69 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20  | y.again...................(setq. | 
| 76640 |  6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d    64 69 72 74 79 2d 70 20 74 29 0a 20 20 20 20 20  | js2-mode-buffer-dirty-p.t)...... | 
| 76660 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 6d 6f 64 65 2d 72 65 73 65 74 2d 74 69 6d  | .............(js2-mode-reset-tim | 
| 76680 |  65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d  | er))...............(if.js2-mode- | 
| 766a0 |  76 65 72 62 6f 73 65 2d 70 61 72 73 65 2d 70 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | verbose-parse-p................. | 
| 766c0 |  20 20 28 6d 65 73 73 61 67 65 20 22 50 61 72 73    65 20 74 69 6d 65 3a 20 25 73 22 20 74 69 6d 65  | ..(message."Parse.time:.%s".time | 
| 766e0 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 71 20 6a 73 32 2d 6d 6f 64 65 2d 70 61 72 73  | )))).........(setq.js2-mode-pars | 
| 76700 |  69 6e 67 20 6e 69 6c 29 0a 20 20 20 20 20 20 20    20 28 75 6e 6c 65 73 73 20 69 6e 74 65 72 72 75  | ing.nil).........(unless.interru | 
| 76720 |  70 74 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d  | pted-p...........(setq.js2-mode- | 
| 76740 |  70 61 72 73 65 2d 74 69 6d 65 72 20 6e 69 6c 29    29 29 29 29 29 0a 0a 3b 3b 20 57 65 20 62 6f 75  | parse-timer.nil))))))..;;.We.bou | 
| 76760 |  6e 64 20 69 74 20 74 6f 20 5b 6d 6f 75 73 65 2d    31 5d 20 70 72 65 76 69 6f 75 73 6c 79 2e 20 20  | nd.it.to.[mouse-1].previously... | 
| 76780 |  42 75 74 20 74 68 65 20 73 69 67 6e 61 74 75 72    65 20 6f 66 0a 3b 3b 20 6d 6f 75 73 65 2d 73 65  | But.the.signature.of.;;.mouse-se | 
| 767a0 |  74 2d 70 6f 69 6e 74 20 63 68 61 6e 67 65 64 20    61 72 6f 75 6e 64 20 32 34 2e 34 2c 20 73 6f 20  | t-point.changed.around.24.4,.so. | 
| 767c0 |  69 74 27 73 20 6b 69 6e 64 20 6f 66 20 68 61 72    64 20 74 6f 20 6b 65 65 70 0a 3b 3b 20 69 74 20  | it's.kind.of.hard.to.keep.;;.it. | 
| 767e0 |  77 6f 72 6b 69 6e 67 20 69 6e 20 32 34 2e 31 2d    32 34 2e 33 2e 20 20 53 69 6e 63 65 20 74 68 65  | working.in.24.1-24.3...Since.the | 
| 76800 |  20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20    68 75 67 65 6c 79 0a 3b 3b 20 69 6d 70 6f 72 74  | .command.is.not.hugely.;;.import | 
| 76820 |  61 6e 74 2c 20 77 65 20 72 65 6d 6f 76 65 64 20    74 68 65 20 62 69 6e 64 69 6e 67 20 28 23 33 35  | ant,.we.removed.the.binding.(#35 | 
| 76840 |  36 29 2e 20 20 4d 61 79 62 65 20 77 65 27 6c 6c    20 62 72 69 6e 67 20 69 74 0a 3b 3b 20 62 61 63  | 6)...Maybe.we'll.bring.it.;;.bac | 
| 76860 |  6b 20 77 68 65 6e 20 73 75 70 70 6f 72 74 69 6e    67 20 3c 32 34 2e 34 20 69 73 20 6e 6f 74 20 61  | k.when.supporting.<24.4.is.not.a | 
| 76880 |  20 67 6f 61 6c 20 61 6e 79 6d 6f 72 65 2e 0a 28    64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73  | .goal.anymore..(defun.js2-mode-s | 
| 768a0 |  68 6f 77 2d 6e 6f 64 65 20 28 65 76 65 6e 74 20    26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 6f 74  | how-node.(event.&optional.promot | 
| 768c0 |  65 2d 74 6f 2d 72 65 67 69 6f 6e 29 0a 20 20 22    44 65 62 75 67 67 69 6e 67 20 61 69 64 3a 20 20  | e-to-region)..."Debugging.aid:.. | 
| 768e0 |  68 69 67 68 6c 69 67 68 74 20 73 65 6c 65 63 74    65 64 20 41 53 54 20 6e 6f 64 65 20 6f 6e 20 6d  | highlight.selected.AST.node.on.m | 
| 76900 |  6f 75 73 65 20 63 6c 69 63 6b 2e 22 0a 20 20 28    69 6e 74 65 72 61 63 74 69 76 65 20 22 65 5c 6e  | ouse.click."...(interactive."e\n | 
| 76920 |  70 22 29 0a 20 20 28 6d 6f 75 73 65 2d 73 65 74    2d 70 6f 69 6e 74 20 65 76 65 6e 74 20 70 72 6f  | p")...(mouse-set-point.event.pro | 
| 76940 |  6d 6f 74 65 2d 74 6f 2d 72 65 67 69 6f 6e 29 0a    20 20 28 77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65  | mote-to-region)...(when.js2-mode | 
| 76960 |  2d 73 68 6f 77 2d 6f 76 65 72 6c 61 79 0a 20 20    20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28 6a  | -show-overlay.....(let.((node.(j | 
| 76980 |  73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74    29 29 0a 20 20 20 20 20 20 20 20 20 20 62 65 67  | s2-node-at-point))...........beg | 
| 769a0 |  20 65 6e 64 29 0a 20 20 20 20 20 20 28 69 66 20    28 6e 75 6c 6c 20 6e 6f 64 65 29 0a 20 20 20 20  | .end).......(if.(null.node)..... | 
| 769c0 |  20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22    4e 6f 20 6e 6f 64 65 20 66 6f 75 6e 64 20 61 74  | ......(message."No.node.found.at | 
| 769e0 |  20 6c 6f 63 61 74 69 6f 6e 20 25 73 22 20 28 70    6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28  | .location.%s".(point)).........( | 
| 76a00 |  73 65 74 71 20 62 65 67 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65 29  | setq.beg.(js2-node-abs-pos.node) | 
| 76a20 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65    6e 64 20 28 2b 20 62 65 67 20 28 6a 73 32 2d 6e  | ...............end.(+.beg.(js2-n | 
| 76a40 |  6f 64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 0a    20 20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d  | ode-len.node))).........(if.js2- | 
| 76a60 |  6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61    79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d  | mode-node-overlay.............(m | 
| 76a80 |  6f 76 65 2d 6f 76 65 72 6c 61 79 20 6a 73 32 2d    6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61  | ove-overlay.js2-mode-node-overla | 
| 76aa0 |  79 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20    20 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d 6d  | y.beg.end)...........(setq.js2-m | 
| 76ac0 |  6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79    20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62  | ode-node-overlay.(make-overlay.b | 
| 76ae0 |  65 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20    20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20  | eg.end))...........(overlay-put. | 
| 76b00 |  6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76    65 72 6c 61 79 20 27 66 6f 6e 74 2d 6c 6f 63 6b  | js2-mode-node-overlay.'font-lock | 
| 76b20 |  2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74    29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68  | -face.'highlight)).........(with | 
| 76b40 |  2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61    74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20  | -silent-modifications........... | 
| 76b60 |  28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 63 75    72 73 6f 72 2d 73 65 6e 73 6f 72 2d 6d 6f 64 65  | (if.(fboundp.'cursor-sensor-mode | 
| 76b80 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72  | )...............(put-text-proper | 
| 76ba0 |  74 79 20 62 65 67 20 65 6e 64 20 27 63 75 72 73    6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69  | ty.beg.end.'cursor-sensor-functi | 
| 76bc0 |  6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ons............................. | 
| 76be0 |  20 20 20 20 20 27 28 6a 73 32 2d 6d 6f 64 65 2d    68 69 64 65 2d 6f 76 65 72 6c 61 79 29 29 0a 20  | .....'(js2-mode-hide-overlay)).. | 
| 76c00 |  20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 2d    74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65  | ...........(put-text-property.be | 
| 76c20 |  67 20 65 6e 64 20 27 70 6f 69 6e 74 2d 6c 65 66    74 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68 69 64  | g.end.'point-left.#'js2-mode-hid | 
| 76c40 |  65 2d 6f 76 65 72 6c 61 79 29 29 29 0a 20 20 20    20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25  | e-overlay))).........(message."% | 
| 76c60 |  73 2c 20 70 61 72 65 6e 74 3a 20 25 73 22 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s,.parent:.%s".................. | 
| 76c80 |  28 6a 73 32 2d 6e 6f 64 65 2d 73 68 6f 72 74 2d    6e 61 6d 65 20 6e 6f 64 65 29 0a 20 20 20 20 20  | (js2-node-short-name.node)...... | 
| 76ca0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74  | ............(if.(js2-node-parent | 
| 76cc0 |  20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32  | .node)......................(js2 | 
| 76ce0 |  2d 6e 6f 64 65 2d 73 68 6f 72 74 2d 6e 61 6d 65    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e  | -node-short-name.(js2-node-paren | 
| 76d00 |  74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 22 6e 69 6c  | t.node))...................."nil | 
| 76d20 |  22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 6f 76  | "))))))..(defun.js2-mode-hide-ov | 
| 76d40 |  65 72 6c 61 79 20 28 26 6f 70 74 69 6f 6e 61 6c    20 61 72 67 31 20 61 72 67 32 20 5f 61 72 67 33  | erlay.(&optional.arg1.arg2._arg3 | 
| 76d60 |  29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20    64 65 62 75 67 67 69 6e 67 20 6f 76 65 72 6c 61  | )..."Remove.the.debugging.overla | 
| 76d80 |  79 20 77 68 65 6e 20 70 6f 69 6e 74 20 6d 6f 76    65 73 2e 0a 41 52 47 31 2c 20 41 52 47 32 20 61  | y.when.point.moves..ARG1,.ARG2.a | 
| 76da0 |  6e 64 20 41 52 47 33 20 68 61 76 65 20 64 69 66    66 65 72 65 6e 74 20 76 61 6c 75 65 73 20 64 65  | nd.ARG3.have.different.values.de | 
| 76dc0 |  70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68    65 72 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e  | pending.on.whether.this.function | 
| 76de0 |  0a 77 61 73 20 66 6f 75 6e 64 20 6f 6e 20 60 70    6f 69 6e 74 2d 6c 65 66 74 27 20 6f 72 20 69 6e  | .was.found.on.`point-left'.or.in | 
| 76e00 |  20 60 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d    66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28  | .`cursor-sensor-functions'."...( | 
| 76e20 |  77 68 65 6e 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f    64 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 28  | when.js2-mode-node-overlay.....( | 
| 76e40 |  6c 65 74 20 28 28 62 65 67 20 28 6f 76 65 72 6c    61 79 2d 73 74 61 72 74 20 6a 73 32 2d 6d 6f 64  | let.((beg.(overlay-start.js2-mod | 
| 76e60 |  65 2d 6e 6f 64 65 2d 6f 76 65 72 6c 61 79 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20  | e-node-overlay))...........(end. | 
| 76e80 |  28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6a 73 32    2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c  | (overlay-end.js2-mode-node-overl | 
| 76ea0 |  61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28    70 32 20 28 69 66 20 28 77 69 6e 64 6f 77 70 20  | ay))...........(p2.(if.(windowp. | 
| 76ec0 |  61 72 67 31 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 65  | arg1)...................;;.Calle | 
| 76ee0 |  64 20 66 72 6f 6d 20 63 75 72 73 6f 72 2d 73 65    6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e 73 2e 0a  | d.from.cursor-sensor-functions.. | 
| 76f00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 77 69 6e 64 6f 77 2d 70 6f 69 6e 74 20  | ..................(window-point. | 
| 76f20 |  61 72 67 31 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 43 61 6c 6c 65 64 20  | arg1).................;;.Called. | 
| 76f40 |  66 72 6f 6d 20 70 6f 69 6e 74 2d 6c 65 66 74 2e    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | from.point-left................. | 
| 76f60 |  20 61 72 67 32 29 29 29 0a 20 20 20 20 20 20 3b    3b 20 53 6f 6d 65 74 69 6d 65 73 20 77 65 27 72  | .arg2))).......;;.Sometimes.we'r | 
| 76f80 |  65 20 63 61 6c 6c 65 64 20 73 70 75 72 69 6f 75    73 6c 79 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65  | e.called.spuriously........(unle | 
| 76fa0 |  73 73 20 28 61 6e 64 20 70 32 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e  | ss.(and.p2....................(> | 
| 76fc0 |  3d 20 70 32 20 62 65 67 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d  | =.p2.beg)....................(<= | 
| 76fe0 |  20 70 32 20 65 6e 64 29 29 0a 20 20 20 20 20 20    20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d  | .p2.end)).........(with-silent-m | 
| 77000 |  6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20    20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 74  | odifications...........(remove-t | 
| 77020 |  65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 62    65 67 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20  | ext-properties.beg.end.......... | 
| 77040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 27 28 70 6f 69 6e 74  | .........................'(point | 
| 77060 |  2d 6c 65 66 74 20 6e 69 6c 20 63 75 72 73 6f 72    2d 73 65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e  | -left.nil.cursor-sensor-function | 
| 77080 |  73 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 65    6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6a 73 32  | s))).........(delete-overlay.js2 | 
| 770a0 |  2d 6d 6f 64 65 2d 6e 6f 64 65 2d 6f 76 65 72 6c    61 79 29 0a 20 20 20 20 20 20 20 20 28 73 65 74  | -mode-node-overlay).........(set | 
| 770c0 |  71 20 6a 73 32 2d 6d 6f 64 65 2d 6e 6f 64 65 2d    6f 76 65 72 6c 61 79 20 6e 69 6c 29 29 29 29 29  | q.js2-mode-node-overlay.nil))))) | 
| 770e0 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64    65 2d 72 65 73 65 74 20 28 29 0a 20 20 22 44 65  | ..(defun.js2-mode-reset.()..."De | 
| 77100 |  62 75 67 67 69 6e 67 20 68 65 6c 70 65 72 3a 20    20 72 65 73 65 74 20 65 76 65 72 79 74 68 69 6e  | bugging.helper:..reset.everythin | 
| 77120 |  67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69    76 65 29 0a 20 20 28 6a 73 32 2d 6d 6f 64 65 2d  | g."...(interactive)...(js2-mode- | 
| 77140 |  65 78 69 74 29 0a 20 20 28 6a 73 32 2d 6d 6f 64    65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | exit)...(js2-mode))..(defun.js2- | 
| 77160 |  6d 6f 64 65 2d 73 68 6f 77 2d 77 61 72 6e 2d 6f    72 2d 65 72 72 20 28 65 20 66 61 63 65 29 0a 20  | mode-show-warn-or-err.(e.face).. | 
| 77180 |  20 22 48 69 67 68 6c 69 67 68 74 20 61 20 77 61    72 6e 69 6e 67 20 6f 72 20 65 72 72 6f 72 20 45  | ."Highlight.a.warning.or.error.E | 
| 771a0 |  20 77 69 74 68 20 46 41 43 45 2e 0a 45 20 69 73    20 61 20 6c 69 73 74 20 6f 66 20 28 28 4d 53 47  | .with.FACE..E.is.a.list.of.((MSG | 
| 771c0 |  2d 4b 45 59 20 4d 53 47 2d 41 52 47 29 20 42 45    47 20 4c 45 4e 20 4f 56 45 52 52 49 44 45 2d 46  | -KEY.MSG-ARG).BEG.LEN.OVERRIDE-F | 
| 771e0 |  41 43 45 29 2e 0a 54 68 65 20 6c 61 73 74 20 65    6c 65 6d 65 6e 74 20 69 73 20 6f 70 74 69 6f 6e  | ACE)..The.last.element.is.option | 
| 77200 |  61 6c 2e 20 20 57 68 65 6e 20 70 72 65 73 65 6e    74 2c 20 75 73 65 20 69 6e 73 74 65 61 64 20 6f  | al...When.present,.use.instead.o | 
| 77220 |  66 20 46 41 43 45 2e 22 0a 20 20 28 6c 65 74 2a    20 28 28 6b 65 79 20 28 63 6c 2d 66 69 72 73 74  | f.FACE."...(let*.((key.(cl-first | 
| 77240 |  20 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62    65 67 20 28 63 6c 2d 73 65 63 6f 6e 64 20 65 29  | .e))..........(beg.(cl-second.e) | 
| 77260 |  29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20    28 2b 20 62 65 67 20 28 63 6c 2d 74 68 69 72 64  | )..........(end.(+.beg.(cl-third | 
| 77280 |  20 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 3b    3b 20 44 6f 6e 27 74 20 69 6e 61 64 76 65 72 74  | .e)))..........;;.Don't.inadvert | 
| 772a0 |  65 6e 74 6c 79 20 67 6f 20 6f 75 74 20 6f 66 20    62 6f 75 6e 64 73 2e 0a 20 20 20 20 20 20 20 20  | ently.go.out.of.bounds.......... | 
| 772c0 |  20 28 62 65 67 20 28 6d 61 78 20 28 70 6f 69 6e    74 2d 6d 69 6e 29 20 28 6d 69 6e 20 62 65 67 20  | .(beg.(max.(point-min).(min.beg. | 
| 772e0 |  28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6d 61  | (point-max))))..........(end.(ma | 
| 77300 |  78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6d    69 6e 20 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61  | x.(point-min).(min.end.(point-ma | 
| 77320 |  78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28    6f 76 6c 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61  | x))))..........(ovl.(make-overla | 
| 77340 |  79 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20    20 3b 3b 20 46 49 58 4d 45 3a 20 57 68 79 20 61  | y.beg.end))).....;;.FIXME:.Why.a | 
| 77360 |  20 6d 69 78 20 6f 66 20 6f 76 65 72 6c 61 79 73    20 61 6e 64 20 74 65 78 74 2d 70 72 6f 70 65 72  | .mix.of.overlays.and.text-proper | 
| 77380 |  74 69 65 73 3f 0a 20 20 20 20 28 6f 76 65 72 6c    61 79 2d 70 75 74 20 6f 76 6c 20 27 66 6f 6e 74  | ties?.....(overlay-put.ovl.'font | 
| 773a0 |  2d 6c 6f 63 6b 2d 66 61 63 65 20 28 6f 72 20 28    63 6c 2d 66 6f 75 72 74 68 20 65 29 20 66 61 63  | -lock-face.(or.(cl-fourth.e).fac | 
| 773c0 |  65 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79    2d 70 75 74 20 6f 76 6c 20 27 6a 73 32 2d 65 72  | e)).....(overlay-put.ovl.'js2-er | 
| 773e0 |  72 6f 72 20 74 29 0a 20 20 20 20 28 70 75 74 2d    74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65  | ror.t).....(put-text-property.be | 
| 77400 |  67 20 65 6e 64 20 27 68 65 6c 70 2d 65 63 68 6f    20 28 6a 73 32 2d 67 65 74 2d 6d 73 67 20 6b 65  | g.end.'help-echo.(js2-get-msg.ke | 
| 77420 |  79 29 29 0a 20 20 20 20 28 69 66 20 28 66 62 6f    75 6e 64 70 20 27 63 75 72 73 6f 72 2d 73 65 6e  | y)).....(if.(fboundp.'cursor-sen | 
| 77440 |  73 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20    20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70  | sor-mode).........(put-text-prop | 
| 77460 |  65 72 74 79 20 62 65 67 20 65 6e 64 20 27 63 75    72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66 75 6e 63  | erty.beg.end.'cursor-sensor-func | 
| 77480 |  74 69 6f 6e 73 20 27 28 6a 73 32 2d 65 63 68 6f    2d 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 28  | tions.'(js2-echo-error)).......( | 
| 774a0 |  70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74    79 20 62 65 67 20 65 6e 64 20 27 70 6f 69 6e 74  | put-text-property.beg.end.'point | 
| 774c0 |  2d 65 6e 74 65 72 65 64 20 23 27 6a 73 32 2d 65    63 68 6f 2d 65 72 72 6f 72 29 29 29 29 0a 0a 28  | -entered.#'js2-echo-error))))..( | 
| 774e0 |  64 65 66 75 6e 20 6a 73 32 2d 72 65 6d 6f 76 65    2d 6f 76 65 72 6c 61 79 73 20 28 29 0a 20 20 22  | defun.js2-remove-overlays.()..." | 
| 77500 |  52 65 6d 6f 76 65 20 6f 76 65 72 6c 61 79 73 20    66 72 6f 6d 20 62 75 66 66 65 72 20 74 68 61 74  | Remove.overlays.from.buffer.that | 
| 77520 |  20 68 61 76 65 20 61 20 60 6a 73 32 2d 65 72 72    6f 72 27 20 70 72 6f 70 65 72 74 79 2e 22 0a 20  | .have.a.`js2-error'.property.".. | 
| 77540 |  20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69    6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20  | .(let.((beg.(point-min))........ | 
| 77560 |  20 28 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78    29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78  | .(end.(point-max))).....(save-ex | 
| 77580 |  63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 64    6f 6c 69 73 74 20 28 6f 20 28 6f 76 65 72 6c 61  | cursion.......(dolist.(o.(overla | 
| 775a0 |  79 73 2d 69 6e 20 62 65 67 20 65 6e 64 29 29 0a    20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f  | ys-in.beg.end)).........(when.(o | 
| 775c0 |  76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27 6a 73    32 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20  | verlay-get.o.'js2-error)........ | 
| 775e0 |  20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c    61 79 20 6f 29 29 29 29 29 29 0a 0a 28 64 65 66  | ...(delete-overlay.o))))))..(def | 
| 77600 |  75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 61 70 70 6c    79 2d 64 65 66 65 72 72 65 64 2d 70 72 6f 70 65  | un.js2-mode-apply-deferred-prope | 
| 77620 |  72 74 69 65 73 20 28 29 0a 20 20 22 41 70 70 6c    79 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 73  | rties.()..."Apply.fontifications | 
| 77640 |  20 61 6e 64 20 6f 74 68 65 72 20 74 65 78 74 20    70 72 6f 70 65 72 74 69 65 73 20 72 65 63 6f 72  | .and.other.text.properties.recor | 
| 77660 |  64 65 64 20 64 75 72 69 6e 67 20 70 61 72 73 69    6e 67 2e 22 0a 20 20 28 77 68 65 6e 20 28 63 6c  | ded.during.parsing."...(when.(cl | 
| 77680 |  2d 70 6c 75 73 70 20 6a 73 32 2d 68 69 67 68 6c    69 67 68 74 2d 6c 65 76 65 6c 29 0a 20 20 20 20  | -plusp.js2-highlight-level)..... | 
| 776a0 |  3b 3b 20 57 65 20 64 65 66 65 72 20 63 6c 65 61    72 69 6e 67 20 66 61 63 65 73 20 61 73 20 6c 6f  | ;;.We.defer.clearing.faces.as.lo | 
| 776c0 |  6e 67 20 61 73 20 70 6f 73 73 69 62 6c 65 20 74    6f 20 65 6c 69 6d 69 6e 61 74 65 20 66 6c 61 73  | ng.as.possible.to.eliminate.flas | 
| 776e0 |  68 69 6e 67 2e 0a 20 20 20 20 28 6a 73 32 2d 63    6c 65 61 72 2d 66 61 63 65 20 28 70 6f 69 6e 74  | hing......(js2-clear-face.(point | 
| 77700 |  2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78    29 29 0a 20 20 20 20 3b 3b 20 48 61 76 65 20 74  | -min).(point-max)).....;;.Have.t | 
| 77720 |  6f 20 72 65 76 65 72 73 65 20 74 68 65 20 72 65    63 6f 72 64 65 64 20 66 6f 6e 74 69 66 69 63 61  | o.reverse.the.recorded.fontifica | 
| 77740 |  74 69 6f 6e 73 20 6c 69 73 74 20 73 6f 20 74 68    61 74 20 65 72 72 6f 72 73 0a 20 20 20 20 3b 3b  | tions.list.so.that.errors.....;; | 
| 77760 |  20 61 6e 64 20 77 61 72 6e 69 6e 67 73 20 6f 76    65 72 77 72 69 74 65 20 74 68 65 20 6e 6f 72 6d  | .and.warnings.overwrite.the.norm | 
| 77780 |  61 6c 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e    73 2e 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28  | al.fontifications......(dolist.( | 
| 777a0 |  66 20 28 6e 72 65 76 65 72 73 65 20 6a 73 32 2d    6d 6f 64 65 2d 66 6f 6e 74 69 66 69 63 61 74 69  | f.(nreverse.js2-mode-fontificati | 
| 777c0 |  6f 6e 73 29 29 0a 20 20 20 20 20 20 28 70 75 74    2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28  | ons)).......(put-text-property.( | 
| 777e0 |  63 6c 2d 66 69 72 73 74 20 66 29 20 28 63 6c 2d    73 65 63 6f 6e 64 20 66 29 20 27 66 6f 6e 74 2d  | cl-first.f).(cl-second.f).'font- | 
| 77800 |  6c 6f 63 6b 2d 66 61 63 65 20 28 63 6c 2d 74 68    69 72 64 20 66 29 29 29 0a 20 20 20 20 28 73 65  | lock-face.(cl-third.f))).....(se | 
| 77820 |  74 71 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 6e 74    69 66 69 63 61 74 69 6f 6e 73 20 6e 69 6c 29 29  | tq.js2-mode-fontifications.nil)) | 
| 77840 |  0a 20 20 28 64 6f 6c 69 73 74 20 28 70 20 6a 73    32 2d 6d 6f 64 65 2d 64 65 66 65 72 72 65 64 2d  | ...(dolist.(p.js2-mode-deferred- | 
| 77860 |  70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20    28 61 70 70 6c 79 20 23 27 70 75 74 2d 74 65 78  | properties).....(apply.#'put-tex | 
| 77880 |  74 2d 70 72 6f 70 65 72 74 79 20 70 29 29 0a 20    20 28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d  | t-property.p))...(setq.js2-mode- | 
| 778a0 |  64 65 66 65 72 72 65 64 2d 70 72 6f 70 65 72 74    69 65 73 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75  | deferred-properties.nil))..(defu | 
| 778c0 |  6e 20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d    65 72 72 6f 72 73 20 28 29 0a 20 20 22 48 69 67  | n.js2-mode-show-errors.()..."Hig | 
| 778e0 |  68 6c 69 67 68 74 20 73 79 6e 74 61 78 20 65 72    72 6f 72 73 2e 22 0a 20 20 28 77 68 65 6e 20 6a  | hlight.syntax.errors."...(when.j | 
| 77900 |  73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 70 61 72    73 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 64  | s2-mode-show-parse-errors.....(d | 
| 77920 |  6f 6c 69 73 74 20 28 65 20 28 6a 73 32 2d 61 73    74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73 20 6a 73  | olist.(e.(js2-ast-root-errors.js | 
| 77940 |  32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20 20 20    20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f  | 2-mode-ast)).......(js2-mode-sho | 
| 77960 |  77 2d 77 61 72 6e 2d 6f 72 2d 65 72 72 20 65 20    27 6a 73 32 2d 65 72 72 6f 72 29 29 29 29 0a 0a  | w-warn-or-err.e.'js2-error)))).. | 
| 77980 |  28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d    72 65 6d 6f 76 65 2d 73 75 70 70 72 65 73 73 65  | (defun.js2-mode-remove-suppresse | 
| 779a0 |  64 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a 20 20    22 54 61 6b 65 20 73 75 70 70 72 65 73 73 65 64  | d-warnings.()..."Take.suppressed | 
| 779c0 |  20 77 61 72 6e 69 6e 67 73 20 6f 75 74 20 6f 66    20 74 68 65 20 41 53 54 20 77 61 72 6e 69 6e 67  | .warnings.out.of.the.AST.warning | 
| 779e0 |  73 20 6c 69 73 74 2e 0a 54 68 69 73 20 65 6e 73    75 72 65 73 20 74 68 61 74 20 74 68 65 20 63 6f  | s.list..This.ensures.that.the.co | 
| 77a00 |  75 6e 74 73 20 61 6e 64 20 60 6e 65 78 74 2d 65    72 72 6f 72 27 20 61 72 65 20 63 6f 72 72 65 63  | unts.and.`next-error'.are.correc | 
| 77a20 |  74 2e 22 0a 20 20 28 73 65 74 66 20 28 6a 73 32    2d 61 73 74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e  | t."...(setf.(js2-ast-root-warnin | 
| 77a40 |  67 73 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29    0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 64 65  | gs.js2-mode-ast).........(js2-de | 
| 77a60 |  6c 65 74 65 2d 69 66 0a 20 20 20 20 20 20 20 20    20 28 6c 61 6d 62 64 61 20 28 65 29 0a 20 20 20  | lete-if..........(lambda.(e).... | 
| 77a80 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b    65 79 20 28 63 61 61 72 20 65 29 29 29 0a 20 20  | ........(let.((key.(caar.e)))... | 
| 77aa0 |  20 20 20 20 20 20 20 20 20 20 20 28 6f 72 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e  | ...........(or...............(an | 
| 77ac0 |  64 20 28 6e 6f 74 20 6a 73 32 2d 73 74 72 69 63    74 2d 74 72 61 69 6c 69 6e 67 2d 63 6f 6d 6d 61  | d.(not.js2-strict-trailing-comma | 
| 77ae0 |  2d 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74  | -warning)....................(st | 
| 77b00 |  72 69 6e 67 2d 6d 61 74 63 68 20 22 74 72 61 69    6c 69 6e 67 5c 5c 2e 63 6f 6d 6d 61 22 20 6b 65  | ring-match."trailing\\.comma".ke | 
| 77b20 |  79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 61 6e 64 20 28 6e 6f 74 20 6a 73 32 2d  | y))...............(and.(not.js2- | 
| 77b40 |  73 74 72 69 63 74 2d 63 6f 6e 64 2d 61 73 73 69    67 6e 2d 77 61 72 6e 69 6e 67 29 0a 20 20 20 20  | strict-cond-assign-warning)..... | 
| 77b60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 74 72 69 6e 67 3d 20 6b 65 79 20 22 6d 73 67  | ...............(string=.key."msg | 
| 77b80 |  2e 65 71 75 61 6c 2e 61 73 2e 61 73 73 69 67 6e    22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .equal.as.assign"))............. | 
| 77ba0 |  20 20 28 61 6e 64 20 6a 73 32 2d 6d 69 73 73 69    6e 67 2d 73 65 6d 69 2d 6f 6e 65 2d 6c 69 6e 65  | ..(and.js2-missing-semi-one-line | 
| 77bc0 |  2d 6f 76 65 72 72 69 64 65 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74  | -override....................(st | 
| 77be0 |  72 69 6e 67 3d 20 6b 65 79 20 22 6d 73 67 2e 6d    69 73 73 69 6e 67 2e 73 65 6d 69 22 29 0a 20 20  | ring=.key."msg.missing.semi")... | 
| 77c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6c 65 74 2a 20 28 28 62 65 67 20 28 63 6c  | .................(let*.((beg.(cl | 
| 77c20 |  2d 73 65 63 6f 6e 64 20 65 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -second.e))..................... | 
| 77c40 |  20 20 20 20 20 20 28 6e 6f 64 65 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 62  | ......(node.(js2-node-at-point.b | 
| 77c60 |  65 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | eg))...........................( | 
| 77c80 |  66 6e 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e    64 2d 70 61 72 65 6e 74 2d 66 6e 20 6e 6f 64 65  | fn.(js2-mode-find-parent-fn.node | 
| 77ca0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f  | ))...........................(bo | 
| 77cc0 |  64 79 20 28 61 6e 64 20 66 6e 20 28 6a 73 32 2d    66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f  | dy.(and.fn.(js2-function-node-bo | 
| 77ce0 |  64 79 20 66 6e 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | dy.fn)))........................ | 
| 77d00 |  20 20 20 28 6c 63 20 28 61 6e 64 20 62 6f 64 79    20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70  | ...(lc.(and.body.(js2-node-abs-p | 
| 77d20 |  6f 73 20 62 6f 64 79 29 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | os.body)))...................... | 
| 77d40 |  20 20 20 20 20 28 72 63 20 28 61 6e 64 20 6c 63    20 28 2b 20 6c 63 20 28 6a 73 32 2d 6e 6f 64 65  | .....(rc.(and.lc.(+.lc.(js2-node | 
| 77d60 |  2d 6c 65 6e 20 62 6f 64 79 29 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -len.body))))).................. | 
| 77d80 |  20 20 20 20 28 61 6e 64 20 66 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ....(and.fn..................... | 
| 77da0 |  20 20 20 20 20 20 28 6f 72 20 28 6e 75 6c 6c 20    62 6f 64 79 29 0a 20 20 20 20 20 20 20 20 20 20  | ......(or.(null.body)........... | 
| 77dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73  | ....................(save-excurs | 
| 77de0 |  69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ion............................. | 
| 77e00 |  20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62    65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ....(goto-char.beg)............. | 
| 77e20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 61 6e 64 20 28 6a 73 32 2d 73 61  | ....................(and.(js2-sa | 
| 77e40 |  6d 65 2d 6c 69 6e 65 20 6c 63 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | me-line.lc)..................... | 
| 77e60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20  | .................(js2-same-line. | 
| 77e80 |  72 63 29 29 29 29 29 29 29 29 29 29 0a 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 61 73 74 2d 72  | rc))))))))))..........(js2-ast-r | 
| 77ea0 |  6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20 6a 73 32    2d 6d 6f 64 65 2d 61 73 74 29 29 29 29 0a 0a 28  | oot-warnings.js2-mode-ast))))..( | 
| 77ec0 |  64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 73    68 6f 77 2d 77 61 72 6e 69 6e 67 73 20 28 29 0a  | defun.js2-mode-show-warnings.(). | 
| 77ee0 |  20 20 22 48 69 67 68 6c 69 67 68 74 20 73 74 72    69 63 74 2d 6d 6f 64 65 20 77 61 72 6e 69 6e 67  | .."Highlight.strict-mode.warning | 
| 77f00 |  73 2e 22 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d    6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74  | s."...(when.js2-mode-show-strict | 
| 77f20 |  2d 77 61 72 6e 69 6e 67 73 0a 20 20 20 20 28 64    6f 6c 69 73 74 20 28 65 20 28 6a 73 32 2d 61 73  | -warnings.....(dolist.(e.(js2-as | 
| 77f40 |  74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20    6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20  | t-root-warnings.js2-mode-ast)).. | 
| 77f60 |  20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73    68 6f 77 2d 77 61 72 6e 2d 6f 72 2d 65 72 72 20  | .....(js2-mode-show-warn-or-err. | 
| 77f80 |  65 20 27 6a 73 32 2d 77 61 72 6e 69 6e 67 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 65  | e.'js2-warning))))..(defun.js2-e | 
| 77fa0 |  63 68 6f 2d 65 72 72 6f 72 20 28 61 72 67 31 20    61 72 67 32 20 26 6f 70 74 69 6f 6e 61 6c 20 5f  | cho-error.(arg1.arg2.&optional._ | 
| 77fc0 |  61 72 67 33 29 0a 20 20 22 43 61 6c 6c 65 64 20    62 79 20 70 6f 69 6e 74 2d 6d 6f 74 69 6f 6e 20  | arg3)..."Called.by.point-motion. | 
| 77fe0 |  68 6f 6f 6b 73 2e 0a 41 52 47 31 2c 20 41 52 47    32 20 61 6e 64 20 41 52 47 33 20 68 61 76 65 20  | hooks..ARG1,.ARG2.and.ARG3.have. | 
| 78000 |  64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 73    20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68  | different.values.depending.on.wh | 
| 78020 |  65 74 68 65 72 20 74 68 69 73 20 66 75 6e 63 74    69 6f 6e 0a 77 61 73 20 66 6f 75 6e 64 20 6f 6e  | ether.this.function.was.found.on | 
| 78040 |  20 60 70 6f 69 6e 74 2d 65 6e 74 65 72 65 64 27    20 6f 72 20 69 6e 20 60 63 75 72 73 6f 72 2d 73  | .`point-entered'.or.in.`cursor-s | 
| 78060 |  65 6e 73 6f 72 2d 66 75 6e 63 74 69 6f 6e 73 27    2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 65 77  | ensor-functions'."...(let*.((new | 
| 78080 |  2d 70 6f 69 6e 74 20 28 69 66 20 28 77 69 6e 64    6f 77 70 20 61 72 67 31 29 0a 20 20 20 20 20 20  | -point.(if.(windowp.arg1)....... | 
| 780a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 3b 3b 20 43 61 6c 6c 65 64 20 66 72 6f 6d  | ..................;;.Called.from | 
| 780c0 |  20 63 75 72 73 6f 72 2d 73 65 6e 73 6f 72 2d 66    75 6e 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20  | .cursor-sensor-functions........ | 
| 780e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 77 69 6e 64 6f 77 2d 70 6f 69 6e 74 20  | ..................(window-point. | 
| 78100 |  61 72 67 31 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43  | arg1).......................;;.C | 
| 78120 |  61 6c 6c 65 64 20 66 72 6f 6d 20 70 6f 69 6e 74    2d 6c 65 66 74 2e 0a 20 20 20 20 20 20 20 20 20  | alled.from.point-left........... | 
| 78140 |  20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67    32 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 73  | .............arg2))..........(ms | 
| 78160 |  67 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70    65 72 74 79 20 6e 65 77 2d 70 6f 69 6e 74 20 27  | g.(get-text-property.new-point.' | 
| 78180 |  68 65 6c 70 2d 65 63 68 6f 29 29 29 0a 20 20 20    20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72  | help-echo))).....(when.(and.(str | 
| 781a0 |  69 6e 67 70 20 6d 73 67 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 61  | ingp.msg)................(not.(a | 
| 781c0 |  63 74 69 76 65 2d 6d 69 6e 69 62 75 66 66 65 72    2d 77 69 6e 64 6f 77 29 29 0a 20 20 20 20 20 20  | ctive-minibuffer-window))....... | 
| 781e0 |  20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 63    75 72 72 65 6e 74 2d 6d 65 73 73 61 67 65 29 29  | .........(not.(current-message)) | 
| 78200 |  29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65    20 6d 73 67 29 29 29 29 0a 0a 28 64 65 66 75 6e  | ).......(message.msg))))..(defun | 
| 78220 |  20 6a 73 32 2d 6c 69 6e 65 2d 62 72 65 61 6b 20    28 26 6f 70 74 69 6f 6e 61 6c 20 5f 73 6f 66 74  | .js2-line-break.(&optional._soft | 
| 78240 |  29 0a 20 20 22 42 72 65 61 6b 20 6c 69 6e 65 20    61 74 20 70 6f 69 6e 74 20 61 6e 64 20 69 6e 64  | )..."Break.line.at.point.and.ind | 
| 78260 |  65 6e 74 2c 20 63 6f 6e 74 69 6e 75 69 6e 67 20    63 6f 6d 6d 65 6e 74 20 69 66 20 77 69 74 68 69  | ent,.continuing.comment.if.withi | 
| 78280 |  6e 20 6f 6e 65 2e 0a 49 66 20 69 6e 73 69 64 65    20 61 20 73 74 72 69 6e 67 2c 20 61 6e 64 20 60  | n.one..If.inside.a.string,.and.` | 
| 782a0 |  6a 73 32 2d 63 6f 6e 63 61 74 2d 6d 75 6c 74 69    6c 69 6e 65 2d 73 74 72 69 6e 67 73 27 20 69 73  | js2-concat-multiline-strings'.is | 
| 782c0 |  20 6e 6f 74 0a 6e 69 6c 2c 20 74 75 72 6e 20 69    74 20 69 6e 74 6f 20 63 6f 6e 63 61 74 65 6e 61  | .not.nil,.turn.it.into.concatena | 
| 782e0 |  74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61    63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28  | tion."...(interactive)...(let.(( | 
| 78300 |  70 61 72 73 65 2d 73 74 61 74 75 73 20 28 73 79    6e 74 61 78 2d 70 70 73 73 29 29 29 0a 20 20 20  | parse-status.(syntax-ppss))).... | 
| 78320 |  20 28 63 6f 6e 64 0a 20 20 20 20 20 3b 3b 20 43    68 65 63 6b 20 69 66 20 77 65 27 72 65 20 69 6e  | .(cond......;;.Check.if.we're.in | 
| 78340 |  73 69 64 65 20 61 20 73 74 72 69 6e 67 2e 0a 20    20 20 20 20 28 28 6e 74 68 20 33 20 70 61 72 73  | side.a.string.......((nth.3.pars | 
| 78360 |  65 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20    28 69 66 20 6a 73 32 2d 63 6f 6e 63 61 74 2d 6d  | e-status).......(if.js2-concat-m | 
| 78380 |  75 6c 74 69 6c 69 6e 65 2d 73 74 72 69 6e 67 73    0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ultiline-strings...........(js2- | 
| 783a0 |  6d 6f 64 65 2d 73 70 6c 69 74 2d 73 74 72 69 6e    67 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a  | mode-split-string.parse-status). | 
| 783c0 |  20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20    22 5c 6e 22 29 29 29 0a 20 20 20 20 20 3b 3b 20  | ........(insert."\n")))......;;. | 
| 783e0 |  43 68 65 63 6b 20 69 66 20 69 6e 73 69 64 65 20    61 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 2e  | Check.if.inside.a.block.comment. | 
| 78400 |  0a 20 20 20 20 20 28 28 6e 74 68 20 34 20 70 61    72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20  | ......((nth.4.parse-status)..... | 
| 78420 |  20 20 28 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65    6e 64 2d 63 6f 6d 6d 65 6e 74 20 28 6e 74 68 20  | ..(js2-mode-extend-comment.(nth. | 
| 78440 |  38 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29    29 0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20  | 8.parse-status)))......(t....... | 
| 78460 |  28 6e 65 77 6c 69 6e 65 2d 61 6e 64 2d 69 6e 64    65 6e 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e  | (newline-and-indent)))))..(defun | 
| 78480 |  20 6a 73 32 2d 6d 6f 64 65 2d 73 70 6c 69 74 2d    73 74 72 69 6e 67 20 28 70 61 72 73 65 2d 73 74  | .js2-mode-split-string.(parse-st | 
| 784a0 |  61 74 75 73 29 0a 20 20 22 54 75 72 6e 20 61 20    6e 65 77 6c 69 6e 65 20 69 6e 20 6d 69 64 2d 73  | atus)..."Turn.a.newline.in.mid-s | 
| 784c0 |  74 72 69 6e 67 20 69 6e 74 6f 20 61 20 73 74 72    69 6e 67 20 63 6f 6e 63 61 74 65 6e 61 74 69 6f  | tring.into.a.string.concatenatio | 
| 784e0 |  6e 2e 0a 50 41 52 53 45 2d 53 54 41 54 55 53 20    69 73 20 61 73 20 64 6f 63 75 6d 65 6e 74 65 64  | n..PARSE-STATUS.is.as.documented | 
| 78500 |  20 69 6e 20 60 70 61 72 73 65 2d 70 61 72 74 69    61 6c 2d 73 65 78 70 27 2e 22 0a 20 20 28 6c 65  | .in.`parse-partial-sexp'."...(le | 
| 78520 |  74 2a 20 28 28 71 75 6f 74 65 2d 63 68 61 72 20    28 6e 74 68 20 33 20 70 61 72 73 65 2d 73 74 61  | t*.((quote-char.(nth.3.parse-sta | 
| 78540 |  74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 28    61 74 2d 65 6f 6c 20 28 65 71 20 6a 73 32 2d 63  | tus))..........(at-eol.(eq.js2-c | 
| 78560 |  6f 6e 63 61 74 2d 6d 75 6c 74 69 6c 69 6e 65 2d    73 74 72 69 6e 67 73 20 27 65 6f 6c 29 29 29 0a  | oncat-multiline-strings.'eol))). | 
| 78580 |  20 20 20 20 28 69 6e 73 65 72 74 20 71 75 6f 74    65 2d 63 68 61 72 29 0a 20 20 20 20 28 69 6e 73  | ....(insert.quote-char).....(ins | 
| 785a0 |  65 72 74 20 28 69 66 20 61 74 2d 65 6f 6c 20 22    20 2b 5c 6e 22 20 22 5c 6e 22 29 29 0a 20 20 20  | ert.(if.at-eol.".+\n"."\n")).... | 
| 785c0 |  20 28 75 6e 6c 65 73 73 20 61 74 2d 65 6f 6c 0a    20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 2b  | .(unless.at-eol.......(insert."+ | 
| 785e0 |  20 22 29 29 0a 20 20 20 20 28 6a 73 32 2d 69 6e    64 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28  | .")).....(js2-indent-line).....( | 
| 78600 |  69 6e 73 65 72 74 20 71 75 6f 74 65 2d 63 68 61    72 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 6f  | insert.quote-char).....(when.(eo | 
| 78620 |  6c 70 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72    74 20 71 75 6f 74 65 2d 63 68 61 72 29 0a 20 20  | lp).......(insert.quote-char)... | 
| 78640 |  20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68    61 72 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e  | ....(backward-char.1))))..(defun | 
| 78660 |  20 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64    2d 63 6f 6d 6d 65 6e 74 20 28 73 74 61 72 74 2d  | .js2-mode-extend-comment.(start- | 
| 78680 |  70 6f 73 29 0a 20 20 22 49 6e 64 65 6e 74 20 74    68 65 20 6c 69 6e 65 20 61 6e 64 2c 20 77 68 65  | pos)..."Indent.the.line.and,.whe | 
| 786a0 |  6e 20 69 6e 73 69 64 65 20 61 20 63 6f 6d 6d 65    6e 74 20 62 6c 6f 63 6b 2c 20 61 64 64 20 63 6f  | n.inside.a.comment.block,.add.co | 
| 786c0 |  6d 6d 65 6e 74 20 70 72 65 66 69 78 2e 22 0a 20    20 28 6c 65 74 20 28 73 74 61 72 20 73 69 6e 67  | mment.prefix."...(let.(star.sing | 
| 786e0 |  6c 65 20 63 6f 6c 20 66 69 72 73 74 2d 6c 69 6e    65 20 6e 65 65 64 73 2d 63 6c 6f 73 65 29 0a 20  | le.col.first-line.needs-close).. | 
| 78700 |  20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69    6f 6e 0a 20 20 20 20 20 20 28 62 61 63 6b 2d 74  | ...(save-excursion.......(back-t | 
| 78720 |  6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20    20 20 20 20 20 28 77 68 65 6e 20 28 3c 20 28 70  | o-indentation).......(when.(<.(p | 
| 78740 |  6f 69 6e 74 29 20 73 74 61 72 74 2d 70 6f 73 29    0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63  | oint).start-pos).........(goto-c | 
| 78760 |  68 61 72 20 73 74 61 72 74 2d 70 6f 73 29 29 0a    20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20  | har.start-pos)).......(cond..... | 
| 78780 |  20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20    22 5c 5c 2a 5b 5e 2f 5d 22 29 0a 20 20 20 20 20  | ...((looking-at."\\*[^/]")...... | 
| 787a0 |  20 20 20 28 73 65 74 71 20 73 74 61 72 20 74 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f  | ...(setq.star.t...............co | 
| 787c0 |  6c 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d    6e 29 29 29 0a 20 20 20 20 20 20 20 28 28 6c 6f  | l.(current-column)))........((lo | 
| 787e0 |  6f 6b 69 6e 67 2d 61 74 20 22 2f 5c 5c 2a 22 29    0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73  | oking-at."/\\*").........(setq.s | 
| 78800 |  74 61 72 20 74 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 66 69 72 73 74 2d 6c 69 6e 65 20 74  | tar.t...............first-line.t | 
| 78820 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63    6f 6c 20 28 31 2b 20 28 63 75 72 72 65 6e 74 2d  | ...............col.(1+.(current- | 
| 78840 |  63 6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20    20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22  | column))))........((looking-at." | 
| 78860 |  2f 2f 22 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 71 20 73 69 6e 67 6c 65 20 74 0a 20 20 20 20  | //").........(setq.single.t..... | 
| 78880 |  20 20 20 20 20 20 20 20 20 20 63 6f 6c 20 28 63    75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29  | ..........col.(current-column))) | 
| 788a0 |  29 29 0a 20 20 20 20 3b 3b 20 48 65 75 72 69 73    74 69 63 20 66 6f 72 20 77 68 65 74 68 65 72 20  | )).....;;.Heuristic.for.whether. | 
| 788c0 |  77 65 20 6e 65 65 64 20 74 6f 20 63 6c 6f 73 65    20 74 68 65 20 63 6f 6d 6d 65 6e 74 3a 0a 20 20  | we.need.to.close.the.comment:... | 
| 788e0 |  20 20 3b 3b 20 69 66 20 77 65 27 76 65 20 67 6f    74 20 61 20 70 61 72 73 65 20 65 72 72 6f 72 20  | ..;;.if.we've.got.a.parse.error. | 
| 78900 |  68 65 72 65 2c 20 61 73 73 75 6d 65 20 69 74 27    73 20 61 6e 20 75 6e 74 65 72 6d 69 6e 61 74 65  | here,.assume.it's.an.unterminate | 
| 78920 |  64 0a 20 20 20 20 3b 3b 20 63 6f 6d 6d 65 6e 74    2e 0a 20 20 20 20 28 73 65 74 71 20 6e 65 65 64  | d.....;;.comment......(setq.need | 
| 78940 |  73 2d 63 6c 6f 73 65 0a 20 20 20 20 20 20 20 20    20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20 20  | s-close...........(or........... | 
| 78960 |  20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65    72 74 79 20 28 31 2d 20 28 70 6f 69 6e 74 29 29  | .(get-char-property.(1-.(point)) | 
| 78980 |  20 27 6a 73 32 2d 65 72 72 6f 72 29 0a 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 68  | .'js2-error)............;;.The.h | 
| 789a0 |  65 75 72 69 73 74 69 63 20 61 62 6f 76 65 20 64    6f 65 73 6e 27 74 20 77 6f 72 6b 20 77 65 6c 6c  | euristic.above.doesn't.work.well | 
| 789c0 |  20 77 68 65 6e 20 77 65 27 72 65 0a 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 63 72 65 61 74 69  | .when.we're............;;.creati | 
| 789e0 |  6e 67 20 61 20 63 6f 6d 6d 65 6e 74 20 61 6e 64    20 74 68 65 72 65 27 73 20 61 6e 6f 74 68 65 72  | ng.a.comment.and.there's.another | 
| 78a00 |  20 6f 6e 65 20 64 6f 77 6e 73 74 72 65 61 6d 2c    0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61  | .one.downstream,............;;.a | 
| 78a20 |  73 20 6f 75 72 20 70 61 72 73 65 72 20 74 68 69    6e 6b 73 20 74 68 69 73 20 6f 6e 65 20 65 6e 64  | s.our.parser.thinks.this.one.end | 
| 78a40 |  73 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20    74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b  | s.at.the.end.of.the............; | 
| 78a60 |  3b 20 6e 65 78 74 20 6f 6e 65 2e 20 20 28 59 6f    75 20 63 61 6e 20 68 61 76 65 20 61 20 2f 2a 20  | ;.next.one...(You.can.have.a./*. | 
| 78a80 |  69 6e 73 69 64 65 20 61 20 6a 73 20 62 6c 6f 63    6b 20 63 6f 6d 6d 65 6e 74 2e 29 0a 20 20 20 20  | inside.a.js.block.comment.)..... | 
| 78aa0 |  20 20 20 20 20 20 20 3b 3b 20 53 6f 20 6a 75 73    74 20 63 6c 6f 73 65 20 69 74 20 69 66 20 74 68  | .......;;.So.just.close.it.if.th | 
| 78ac0 |  65 20 6e 65 78 74 20 6e 6f 6e 2d 77 73 20 63 68    61 72 20 69 73 6e 27 74 20 61 20 2a 2e 0a 20 20  | e.next.non-ws.char.isn't.a.*.... | 
| 78ae0 |  20 20 20 20 20 20 20 20 20 28 61 6e 64 20 66 69    72 73 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20  | .........(and.first-line........ | 
| 78b00 |  20 20 20 20 20 20 20 20 20 28 65 6f 6c 70 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .........(eolp)................. | 
| 78b20 |  28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | (save-excursion................. | 
| 78b40 |  20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f    72 77 61 72 64 20 22 20 5c 74 5c 72 5c 6e 22 29  | ..(skip-chars-forward.".\t\r\n") | 
| 78b60 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 68 61  | ...................(not.(eq.(cha | 
| 78b80 |  72 2d 61 66 74 65 72 29 20 3f 2a 29 29 29 29 29    29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f  | r-after).?*)))))).....(delete-ho | 
| 78ba0 |  72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 29 0a    20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22  | rizontal-space).....(insert."\n" | 
| 78bc0 |  29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 28 73 74 61 72 0a 20 20 20 20 20 20 28 69 6e  | ).....(cond......(star.......(in | 
| 78be0 |  64 65 6e 74 2d 74 6f 20 63 6f 6c 29 0a 20 20 20    20 20 20 28 69 6e 73 65 72 74 20 22 2a 20 22 29  | dent-to.col).......(insert."*.") | 
| 78c00 |  0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20    66 69 72 73 74 2d 6c 69 6e 65 20 6e 65 65 64 73  | .......(if.(and.first-line.needs | 
| 78c20 |  2d 63 6c 6f 73 65 29 0a 20 20 20 20 20 20 20 20    20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f  | -close)...........(save-excursio | 
| 78c40 |  6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69    6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20  | n.............(insert."\n")..... | 
| 78c60 |  20 20 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d    74 6f 20 63 6f 6c 29 0a 20 20 20 20 20 20 20 20  | ........(indent-to.col)......... | 
| 78c80 |  20 20 20 20 28 69 6e 73 65 72 74 20 22 2a 2f 22    29 29 29 29 0a 20 20 20 20 20 28 73 69 6e 67 6c  | ....(insert."*/"))))......(singl | 
| 78ca0 |  65 0a 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d    74 6f 20 63 6f 6c 29 0a 20 20 20 20 20 20 28 69  | e.......(indent-to.col).......(i | 
| 78cc0 |  6e 73 65 72 74 20 22 2f 2f 20 22 29 29 29 0a 20    20 20 20 3b 3b 20 44 6f 6e 27 74 20 6e 65 65 64  | nsert."//."))).....;;.Don't.need | 
| 78ce0 |  20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 63    6f 6d 6d 65 6e 74 20 61 66 74 65 72 20 61 6c 6c  | .to.extend.the.comment.after.all | 
| 78d00 |  2e 0a 20 20 20 20 28 6a 73 32 2d 69 6e 64 65 6e    74 2d 6c 69 6e 65 29 29 29 0a 0a 28 64 65 66 75  | ......(js2-indent-line)))..(defu | 
| 78d20 |  6e 20 6a 73 32 2d 62 65 67 69 6e 6e 69 6e 67 2d    6f 66 2d 6c 69 6e 65 20 28 29 0a 20 20 22 54 6f  | n.js2-beginning-of-line.()..."To | 
| 78d40 |  67 67 6c 65 20 70 6f 69 6e 74 20 62 65 74 77 65    65 6e 20 62 6f 6c 20 61 6e 64 20 66 69 72 73 74  | ggle.point.between.bol.and.first | 
| 78d60 |  20 6e 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 20    63 68 61 72 20 69 6e 20 6c 69 6e 65 2e 0a 41 6c  | .non-whitespace.char.in.line..Al | 
| 78d80 |  73 6f 20 6d 6f 76 65 73 20 70 61 73 74 20 63 6f    6d 6d 65 6e 74 20 64 65 6c 69 6d 69 74 65 72 73  | so.moves.past.comment.delimiters | 
| 78da0 |  20 77 68 65 6e 20 69 6e 73 69 64 65 20 63 6f 6d    6d 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72  | .when.inside.comments."...(inter | 
| 78dc0 |  61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28    6e 6f 64 65 29 0a 20 20 20 20 28 63 6f 6e 64 0a  | active)...(let.(node).....(cond. | 
| 78de0 |  20 20 20 20 20 28 28 62 6f 6c 70 29 0a 20 20 20    20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65  | .....((bolp).......(back-to-inde | 
| 78e00 |  6e 74 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 28    28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 2f 2f 22  | ntation))......((looking-at."//" | 
| 78e20 |  29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68    61 72 73 2d 66 6f 72 77 61 72 64 20 22 2f 20 5c  | ).......(skip-chars-forward."/.\ | 
| 78e40 |  74 22 29 29 0a 20 20 20 20 20 28 28 61 6e 64 20    28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29  | t"))......((and.(eq.(char-after) | 
| 78e60 |  20 3f 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d  | .?*)............(setq.node.(js2- | 
| 78e80 |  63 6f 6d 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d  | comment-at-point))............(m | 
| 78ea0 |  65 6d 71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74    2d 6e 6f 64 65 2d 66 6f 72 6d 61 74 20 6e 6f 64  | emq.(js2-comment-node-format.nod | 
| 78ec0 |  65 29 20 27 28 6a 73 64 6f 63 20 62 6c 6f 63 6b    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | e).'(jsdoc.block))............(s | 
| 78ee0 |  61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70  | ave-excursion..............(skip | 
| 78f00 |  2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20    22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 20 20  | -chars-backward.".\t").......... | 
| 78f20 |  20 20 20 20 28 62 6f 6c 70 29 29 29 0a 20 20 20    20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66  | ....(bolp))).......(skip-chars-f | 
| 78f40 |  6f 72 77 61 72 64 20 22 5c 2a 20 5c 74 22 29 29    0a 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 28  | orward."\*.\t"))......(t.......( | 
| 78f60 |  67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74    2d 61 74 2d 62 6f 6c 29 29 29 29 29 29 0a 0a 28  | goto-char.(point-at-bol))))))..( | 
| 78f80 |  64 65 66 75 6e 20 6a 73 32 2d 65 6e 64 2d 6f 66    2d 6c 69 6e 65 20 28 29 0a 20 20 22 54 6f 67 67  | defun.js2-end-of-line.()..."Togg | 
| 78fa0 |  6c 65 20 70 6f 69 6e 74 20 62 65 74 77 65 65 6e    20 65 6f 6c 20 61 6e 64 20 6c 61 73 74 20 6e 6f  | le.point.between.eol.and.last.no | 
| 78fc0 |  6e 2d 77 68 69 74 65 73 70 61 63 65 20 63 68 61    72 20 69 6e 20 6c 69 6e 65 2e 22 0a 20 20 28 69  | n-whitespace.char.in.line."...(i | 
| 78fe0 |  6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69    66 20 28 65 6f 6c 70 29 0a 20 20 20 20 20 20 28  | nteractive)...(if.(eolp).......( | 
| 79000 |  73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77    61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 28  | skip-chars-backward.".\t").....( | 
| 79020 |  67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74    2d 61 74 2d 65 6f 6c 29 29 29 29 0a 0a 28 64 65  | goto-char.(point-at-eol))))..(de | 
| 79040 |  66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 77 61 69    74 2d 66 6f 72 2d 70 61 72 73 65 20 28 63 61 6c  | fun.js2-mode-wait-for-parse.(cal | 
| 79060 |  6c 62 61 63 6b 29 0a 20 20 22 49 6e 76 6f 6b 65    20 43 41 4c 4c 42 41 43 4b 20 77 68 65 6e 20 70  | lback)..."Invoke.CALLBACK.when.p | 
| 79080 |  61 72 73 69 6e 67 20 69 73 20 66 69 6e 69 73 68    65 64 2e 0a 49 66 20 70 61 72 73 69 6e 67 20 69  | arsing.is.finished..If.parsing.i | 
| 790a0 |  73 20 61 6c 72 65 61 64 79 20 66 69 6e 69 73 68    65 64 2c 20 63 61 6c 6c 73 20 43 41 4c 4c 42 41  | s.already.finished,.calls.CALLBA | 
| 790c0 |  43 4b 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 22    0a 20 20 28 69 66 20 28 6e 6f 74 20 6a 73 32 2d  | CK.immediately."...(if.(not.js2- | 
| 790e0 |  6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72 74    79 2d 70 29 0a 20 20 20 20 20 20 28 66 75 6e 63  | mode-buffer-dirty-p).......(func | 
| 79100 |  61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 0a 20 20    20 20 28 70 75 73 68 20 63 61 6c 6c 62 61 63 6b  | all.callback).....(push.callback | 
| 79120 |  20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69 6e    67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63 6b  | .js2-mode-pending-parse-callback | 
| 79140 |  73 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b    20 27 6a 73 32 2d 70 61 72 73 65 2d 66 69 6e 69  | s).....(add-hook.'js2-parse-fini | 
| 79160 |  73 68 65 64 2d 68 6f 6f 6b 20 23 27 6a 73 32 2d    6d 6f 64 65 2d 70 61 72 73 65 2d 66 69 6e 69 73  | shed-hook.#'js2-mode-parse-finis | 
| 79180 |  68 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 6d 6f 64 65 2d 70 61 72 73 65 2d 66 69  | hed)))..(defun.js2-mode-parse-fi | 
| 791a0 |  6e 69 73 68 65 64 20 28 29 0a 20 20 22 49 6e 76    6f 6b 65 20 63 61 6c 6c 62 61 63 6b 73 20 69 6e  | nished.()..."Invoke.callbacks.in | 
| 791c0 |  20 60 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e 64 69    6e 67 2d 70 61 72 73 65 2d 63 61 6c 6c 62 61 63  | .`js2-mode-pending-parse-callbac | 
| 791e0 |  6b 73 27 2e 22 0a 20 20 3b 3b 20 57 65 20 63 61    6e 27 74 20 6c 65 74 20 65 72 72 6f 72 73 20 70  | ks'."...;;.We.can't.let.errors.p | 
| 79200 |  72 6f 70 61 67 61 74 65 20 75 70 2c 20 73 69 6e    63 65 20 69 74 20 70 72 65 76 65 6e 74 73 20 74  | ropagate.up,.since.it.prevents.t | 
| 79220 |  68 65 0a 20 20 3b 3b 20 60 6a 73 32 2d 70 61 72    73 65 27 20 6d 65 74 68 6f 64 20 66 72 6f 6d 20  | he...;;.`js2-parse'.method.from. | 
| 79240 |  63 6f 6d 70 6c 65 74 69 6e 67 20 6e 6f 72 6d 61    6c 6c 79 20 61 6e 64 20 72 65 74 75 72 6e 69 6e  | completing.normally.and.returnin | 
| 79260 |  67 0a 20 20 3b 3b 20 74 68 65 20 61 73 74 2c 20    77 68 69 63 68 20 6d 61 6b 65 73 20 74 68 69 6e  | g...;;.the.ast,.which.makes.thin | 
| 79280 |  67 73 20 6d 79 73 74 65 72 69 6f 75 73 6c 79 20    6e 6f 74 20 77 6f 72 6b 20 72 69 67 68 74 2e 0a  | gs.mysteriously.not.work.right.. | 
| 792a0 |  20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63    74 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20  | ..(unwind-protect.......(dolist. | 
| 792c0 |  28 63 62 20 6a 73 32 2d 6d 6f 64 65 2d 70 65 6e    64 69 6e 67 2d 70 61 72 73 65 2d 63 61 6c 6c 62  | (cb.js2-mode-pending-parse-callb | 
| 792e0 |  61 63 6b 73 29 0a 20 20 20 20 20 20 20 20 28 63    6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72  | acks).........(condition-case.er | 
| 79300 |  72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66    75 6e 63 61 6c 6c 20 63 62 29 0a 20 20 20 20 20  | r.............(funcall.cb)...... | 
| 79320 |  20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 73    73 61 67 65 20 22 25 73 22 20 65 72 72 29 29 29  | .....(error.(message."%s".err))) | 
| 79340 |  29 0a 20 20 20 20 28 73 65 74 71 20 6a 73 32 2d    6d 6f 64 65 2d 70 65 6e 64 69 6e 67 2d 70 61 72  | ).....(setq.js2-mode-pending-par | 
| 79360 |  73 65 2d 63 61 6c 6c 62 61 63 6b 73 20 6e 69 6c    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | se-callbacks.nil)))..(defun.js2- | 
| 79380 |  6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e    20 28 66 72 6f 6d 20 74 6f 20 66 6c 61 67 29 0a  | mode-flag-region.(from.to.flag). | 
| 793a0 |  20 20 22 48 69 64 65 20 6f 72 20 73 68 6f 77 20    74 65 78 74 20 66 72 6f 6d 20 46 52 4f 4d 20 74  | .."Hide.or.show.text.from.FROM.t | 
| 793c0 |  6f 20 54 4f 2c 20 61 63 63 6f 72 64 69 6e 67 20    74 6f 20 46 4c 41 47 2e 0a 49 66 20 46 4c 41 47  | o.TO,.according.to.FLAG..If.FLAG | 
| 793e0 |  20 69 73 20 6e 69 6c 20 74 68 65 6e 20 74 65 78    74 20 69 73 20 73 68 6f 77 6e 2c 20 77 68 69 6c  | .is.nil.then.text.is.shown,.whil | 
| 79400 |  65 20 69 66 20 46 4c 41 47 20 69 73 20 74 20 74    68 65 20 74 65 78 74 20 69 73 20 68 69 64 64 65  | e.if.FLAG.is.t.the.text.is.hidde | 
| 79420 |  6e 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 63    72 65 61 74 65 64 20 6f 76 65 72 6c 61 79 20 69  | n..Returns.the.created.overlay.i | 
| 79440 |  66 20 46 4c 41 47 20 69 73 20 6e 6f 6e 2d 6e 69    6c 2e 22 0a 20 20 28 72 65 6d 6f 76 65 2d 6f 76  | f.FLAG.is.non-nil."...(remove-ov | 
| 79460 |  65 72 6c 61 79 73 20 66 72 6f 6d 20 74 6f 20 27    69 6e 76 69 73 69 62 6c 65 20 27 6a 73 32 2d 6f  | erlays.from.to.'invisible.'js2-o | 
| 79480 |  75 74 6c 69 6e 65 29 0a 20 20 28 77 68 65 6e 20    66 6c 61 67 0a 20 20 20 20 28 6c 65 74 20 28 28  | utline)...(when.flag.....(let.(( | 
| 794a0 |  6f 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20    66 72 6f 6d 20 74 6f 29 29 29 0a 20 20 20 20 20  | o.(make-overlay.from.to)))...... | 
| 794c0 |  20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 20    27 69 6e 76 69 73 69 62 6c 65 20 27 6a 73 32 2d  | .(overlay-put.o.'invisible.'js2- | 
| 794e0 |  6f 75 74 6c 69 6e 65 29 0a 20 20 20 20 20 20 28    6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 20 27 69  | outline).......(overlay-put.o.'i | 
| 79500 |  73 65 61 72 63 68 2d 6f 70 65 6e 2d 69 6e 76 69    73 69 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20  | search-open-invisible........... | 
| 79520 |  20 20 20 20 20 20 20 20 20 27 6a 73 32 2d 69 73    65 61 72 63 68 2d 6f 70 65 6e 2d 69 6e 76 69 73  | .........'js2-isearch-open-invis | 
| 79540 |  69 62 6c 65 29 0a 20 20 20 20 20 20 6f 29 29 29    0a 0a 3b 3b 20 46 75 6e 63 74 69 6f 6e 20 74 6f  | ible).......o)))..;;.Function.to | 
| 79560 |  20 62 65 20 73 65 74 20 61 73 20 61 6e 20 6f 75    74 6c 69 6e 65 2d 69 73 65 61 72 63 68 2d 6f 70  | .be.set.as.an.outline-isearch-op | 
| 79580 |  65 6e 2d 69 6e 76 69 73 69 62 6c 65 27 20 70 72    6f 70 65 72 74 79 0a 3b 3b 20 74 6f 20 74 68 65  | en-invisible'.property.;;.to.the | 
| 795a0 |  20 6f 76 65 72 6c 61 79 20 74 68 61 74 20 6d 61    6b 65 73 20 74 68 65 20 6f 75 74 6c 69 6e 65 20  | .overlay.that.makes.the.outline. | 
| 795c0 |  69 6e 76 69 73 69 62 6c 65 20 28 73 65 65 0a 3b    3b 20 60 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67  | invisible.(see.;;.`js2-mode-flag | 
| 795e0 |  2d 72 65 67 69 6f 6e 27 29 2e 0a 28 64 65 66 75    6e 20 6a 73 32 2d 69 73 65 61 72 63 68 2d 6f 70  | -region')..(defun.js2-isearch-op | 
| 79600 |  65 6e 2d 69 6e 76 69 73 69 62 6c 65 20 28 5f 6f    76 65 72 6c 61 79 29 0a 20 20 3b 3b 20 57 65 20  | en-invisible.(_overlay)...;;.We. | 
| 79620 |  72 65 6c 79 20 6f 6e 20 74 68 65 20 66 61 63 74    20 74 68 61 74 20 69 73 65 61 72 63 68 20 70 6c  | rely.on.the.fact.that.isearch.pl | 
| 79640 |  61 63 65 73 20 70 6f 69 6e 74 20 6f 6e 20 74 68    65 20 6d 61 74 63 68 65 64 20 74 65 78 74 2e 0a  | aces.point.on.the.matched.text.. | 
| 79660 |  20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77    2d 65 6c 65 6d 65 6e 74 29 29 0a 0a 28 64 65 66  | ..(js2-mode-show-element))..(def | 
| 79680 |  75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 69 6e 76 69    73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 2d 62 6f  | un.js2-mode-invisible-overlay-bo | 
| 796a0 |  75 6e 64 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20    70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 63  | unds.(&optional.pos)..."Return.c | 
| 796c0 |  6f 6e 73 20 63 65 6c 6c 20 6f 66 20 62 6f 75 6e    64 73 20 6f 66 20 66 6f 6c 64 69 6e 67 20 6f 76  | ons.cell.of.bounds.of.folding.ov | 
| 796e0 |  65 72 6c 61 79 20 61 74 20 50 4f 53 2e 0a 52 65    74 75 72 6e 73 20 6e 69 6c 20 69 66 20 6e 6f 74  | erlay.at.POS..Returns.nil.if.not | 
| 79700 |  20 66 6f 75 6e 64 2e 22 0a 20 20 28 6c 65 74 20    28 28 6f 76 65 72 6c 61 79 73 20 28 6f 76 65 72  | .found."...(let.((overlays.(over | 
| 79720 |  6c 61 79 73 2d 61 74 20 28 6f 72 20 70 6f 73 20    28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20  | lays-at.(or.pos.(point))))...... | 
| 79740 |  20 20 20 6f 29 0a 20 20 20 20 28 77 68 69 6c 65    20 28 61 6e 64 20 6f 76 65 72 6c 61 79 73 0a 20  | ...o).....(while.(and.overlays.. | 
| 79760 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 6f 74 20 6f 29 29 0a 20 20 20 20 20 20 28 69  | ...............(not.o)).......(i | 
| 79780 |  66 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 28    63 61 72 20 6f 76 65 72 6c 61 79 73 29 20 27 69  | f.(overlay-get.(car.overlays).'i | 
| 797a0 |  6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 6f 20 28 63 61 72  | nvisible)...........(setq.o.(car | 
| 797c0 |  20 6f 76 65 72 6c 61 79 73 29 29 0a 20 20 20 20    20 20 20 20 28 73 65 74 71 20 6f 76 65 72 6c 61  | .overlays)).........(setq.overla | 
| 797e0 |  79 73 20 28 63 64 72 20 6f 76 65 72 6c 61 79 73    29 29 29 29 0a 20 20 20 20 28 69 66 20 6f 0a 20  | ys.(cdr.overlays)))).....(if.o.. | 
| 79800 |  20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6f 76    65 72 6c 61 79 2d 73 74 61 72 74 20 6f 29 20 28  | .......(cons.(overlay-start.o).( | 
| 79820 |  6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d  | overlay-end.o)))))..(defun.js2-m | 
| 79840 |  6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 74 2d    70 6f 69 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c  | ode-function-at-point.(&optional | 
| 79860 |  20 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20    74 68 65 20 69 6e 6e 65 72 6d 6f 73 74 20 66 75  | .pos)..."Return.the.innermost.fu | 
| 79880 |  6e 63 74 69 6f 6e 20 6e 6f 64 65 20 65 6e 63 6c    6f 73 69 6e 67 20 63 75 72 72 65 6e 74 20 70 6f  | nction.node.enclosing.current.po | 
| 798a0 |  69 6e 74 2e 0a 52 65 74 75 72 6e 73 20 6e 69 6c    20 69 66 20 70 6f 69 6e 74 20 69 73 20 6e 6f 74  | int..Returns.nil.if.point.is.not | 
| 798c0 |  20 69 6e 20 61 20 66 75 6e 63 74 69 6f 6e 2e 22    0a 20 20 28 6c 65 74 20 28 28 6e 6f 64 65 20 28  | .in.a.function."...(let.((node.( | 
| 798e0 |  6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e    74 20 70 6f 73 29 29 29 0a 20 20 20 20 28 77 68  | js2-node-at-point.pos))).....(wh | 
| 79900 |  69 6c 65 20 28 61 6e 64 20 6e 6f 64 65 20 28 6e    6f 74 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e  | ile.(and.node.(not.(js2-function | 
| 79920 |  2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 29 29 0a    20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65  | -node-p.node))).......(setq.node | 
| 79940 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e    74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 69  | .(js2-node-parent.node))).....(i | 
| 79960 |  66 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d    6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20  | f.(js2-function-node-p.node).... | 
| 79980 |  20 20 20 20 20 6e 6f 64 65 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 74 6f  | .....node)))..(defun.js2-mode-to | 
| 799a0 |  67 67 6c 65 2d 65 6c 65 6d 65 6e 74 20 28 29 0a    20 20 22 48 69 64 65 20 6f 72 20 73 68 6f 77 20  | ggle-element.()..."Hide.or.show. | 
| 799c0 |  74 68 65 20 66 6f 6c 64 61 62 6c 65 20 65 6c 65    6d 65 6e 74 20 61 74 20 74 68 65 20 70 6f 69 6e  | the.foldable.element.at.the.poin | 
| 799e0 |  74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69    76 65 29 0a 20 20 28 6c 65 74 20 28 63 6f 6d 6d  | t."...(interactive)...(let.(comm | 
| 79a00 |  65 6e 74 20 66 6e 20 70 6f 73 29 0a 20 20 20 20    28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a  | ent.fn.pos).....(save-excursion. | 
| 79a20 |  20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20    20 20 20 3b 3b 20 2f 2a 20 2e 2e 2e 20 2a 2f 20  | ......(cond........;;./*.....*/. | 
| 79a40 |  63 6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20    28 28 6a 73 32 2d 62 6c 6f 63 6b 2d 63 6f 6d 6d  | comment?........((js2-block-comm | 
| 79a60 |  65 6e 74 2d 70 20 28 73 65 74 71 20 63 6f 6d 6d    65 6e 74 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74  | ent-p.(setq.comment.(js2-comment | 
| 79a80 |  2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20    20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d 6f  | -at-point))).........(if.(js2-mo | 
| 79aa0 |  64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65    72 6c 61 79 2d 62 6f 75 6e 64 73 0a 20 20 20 20  | de-invisible-overlay-bounds..... | 
| 79ac0 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70    6f 73 20 28 2b 20 33 20 28 6a 73 32 2d 6e 6f 64  | .........(setq.pos.(+.3.(js2-nod | 
| 79ae0 |  65 2d 61 62 73 2d 70 6f 73 20 63 6f 6d 6d 65 6e    74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | e-abs-pos.comment))))........... | 
| 79b00 |  20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61  | ..(progn...............(goto-cha | 
| 79b20 |  72 20 70 6f 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73  | r.pos)...............(js2-mode-s | 
| 79b40 |  68 6f 77 2d 65 6c 65 6d 65 6e 74 29 29 0a 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64  | how-element))...........(js2-mod | 
| 79b60 |  65 2d 68 69 64 65 2d 65 6c 65 6d 65 6e 74 29 29    29 0a 20 20 20 20 20 20 20 3b 3b 20 2f 2f 2d 63  | e-hide-element)))........;;.//-c | 
| 79b80 |  6f 6d 6d 65 6e 74 3f 0a 20 20 20 20 20 20 20 28    28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a  | omment?........((save-excursion. | 
| 79ba0 |  20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d    74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a  | ..........(back-to-indentation). | 
| 79bc0 |  20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69    6e 67 2d 61 74 20 6a 73 32 2d 6d 6f 64 65 2d 2f  | ..........(looking-at.js2-mode-/ | 
| 79be0 |  2f 2d 63 6f 6d 6d 65 6e 74 2d 72 65 29 29 0a 20    20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65  | /-comment-re)).........(js2-mode | 
| 79c00 |  2d 74 6f 67 67 6c 65 2d 2f 2f 2d 63 6f 6d 6d 65    6e 74 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 66  | -toggle-//-comment))........;;.f | 
| 79c20 |  75 6e 63 74 69 6f 6e 3f 0a 20 20 20 20 20 20 20    28 28 73 65 74 71 20 66 6e 20 28 6a 73 32 2d 6d  | unction?........((setq.fn.(js2-m | 
| 79c40 |  6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 74 2d    70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20  | ode-function-at-point))......... | 
| 79c60 |  28 73 65 74 71 20 70 6f 73 20 28 61 6e 64 20 28    6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64  | (setq.pos.(and.(js2-function-nod | 
| 79c80 |  65 2d 62 6f 64 79 20 66 6e 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-body.fn)...................... | 
| 79ca0 |  20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d    70 6f 73 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f  | ..(js2-node-abs-pos.(js2-functio | 
| 79cc0 |  6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 66 6e 29 29    29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f  | n-node-body.fn)))).........(goto | 
| 79ce0 |  2d 63 68 61 72 20 28 31 2b 20 70 6f 73 29 29 0a    20 20 20 20 20 20 20 20 28 69 66 20 28 6a 73 32  | -char.(1+.pos)).........(if.(js2 | 
| 79d00 |  2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d    6f 76 65 72 6c 61 79 2d 62 6f 75 6e 64 73 29 0a  | -mode-invisible-overlay-bounds). | 
| 79d20 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d 65  | ............(js2-mode-show-eleme | 
| 79d40 |  6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 65 6c 65  | nt)...........(js2-mode-hide-ele | 
| 79d60 |  6d 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28    74 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61  | ment)))........(t.........(messa | 
| 79d80 |  67 65 20 22 4e 6f 74 68 69 6e 67 20 61 74 20 70    6f 69 6e 74 20 74 6f 20 68 69 64 65 20 6f 72 20  | ge."Nothing.at.point.to.hide.or. | 
| 79da0 |  73 68 6f 77 22 29 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64  | show"))))))..(defun.js2-mode-hid | 
| 79dc0 |  65 2d 65 6c 65 6d 65 6e 74 20 28 29 0a 20 20 22    46 6f 6c 64 2f 68 69 64 65 20 63 6f 6e 74 65 6e  | e-element.()..."Fold/hide.conten | 
| 79de0 |  74 73 20 6f 66 20 61 20 62 6c 6f 63 6b 2c 20 73    68 6f 77 69 6e 67 20 65 6c 6c 69 70 73 65 73 2e  | ts.of.a.block,.showing.ellipses. | 
| 79e00 |  0a 53 68 6f 77 20 74 68 65 20 68 69 64 64 65 6e    20 74 65 78 74 20 77 69 74 68 20 5c 5c 5b 6a 73  | .Show.the.hidden.text.with.\\[js | 
| 79e20 |  32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 65 6c 65 6d    65 6e 74 5d 2e 22 0a 20 20 28 69 6e 74 65 72 61  | 2-mode-show-element]."...(intera | 
| 79e40 |  63 74 69 76 65 29 0a 20 20 28 69 66 20 6a 73 32    2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d 64 69 72  | ctive)...(if.js2-mode-buffer-dir | 
| 79e60 |  74 79 2d 70 0a 20 20 20 20 20 20 28 6a 73 32 2d    6d 6f 64 65 2d 77 61 69 74 2d 66 6f 72 2d 70 61  | ty-p.......(js2-mode-wait-for-pa | 
| 79e80 |  72 73 65 20 23 27 6a 73 32 2d 6d 6f 64 65 2d 68    69 64 65 2d 65 6c 65 6d 65 6e 74 29 29 0a 20 20  | rse.#'js2-mode-hide-element))... | 
| 79ea0 |  28 6c 65 74 20 28 6e 6f 64 65 20 62 6f 64 79 20    62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 63 6f  | (let.(node.body.beg.end).....(co | 
| 79ec0 |  6e 64 0a 20 20 20 20 20 28 28 6a 73 32 2d 6d 6f    64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65  | nd......((js2-mode-invisible-ove | 
| 79ee0 |  72 6c 61 79 2d 62 6f 75 6e 64 73 29 0a 20 20 20    20 20 20 28 6d 65 73 73 61 67 65 20 22 61 6c 72  | rlay-bounds).......(message."alr | 
| 79f00 |  65 61 64 79 20 68 69 64 64 65 6e 22 29 29 0a 20    20 20 20 20 28 74 0a 20 20 20 20 20 20 28 73 65  | eady.hidden"))......(t.......(se | 
| 79f20 |  74 71 20 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20  | tq.node.(js2-node-at-point)).... | 
| 79f40 |  20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20    28 28 6a 73 32 2d 62 6c 6f 63 6b 2d 63 6f 6d 6d  | ...(cond........((js2-block-comm | 
| 79f60 |  65 6e 74 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20    20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69  | ent-p.node).........(js2-mode-hi | 
| 79f80 |  64 65 2d 63 6f 6d 6d 65 6e 74 20 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 20 28 74 0a 20 20 20 20  | de-comment.node))........(t..... | 
| 79fa0 |  20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20    6e 6f 64 65 20 28 6e 6f 74 20 28 6a 73 32 2d 66  | ....(while.(and.node.(not.(js2-f | 
| 79fc0 |  75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e    6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20  | unction-node-p.node))).......... | 
| 79fe0 |  20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32    2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64  | .(setq.node.(js2-node-parent.nod | 
| 7a000 |  65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66    20 28 61 6e 64 20 6e 6f 64 65 0a 20 20 20 20 20  | e))).........(if.(and.node...... | 
| 7a020 |  20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 62 6f 64 79 20 28 6a 73 32 2d 66 75 6e 63  | ............(setq.body.(js2-func | 
| 7a040 |  74 69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e    6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20  | tion-node-body.node))).......... | 
| 7a060 |  20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65  | ...(progn...............(setq.be | 
| 7a080 |  67 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d    70 6f 73 20 62 6f 64 79 29 0a 20 20 20 20 20 20  | g.(js2-node-abs-pos.body)....... | 
| 7a0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e    64 20 28 2b 20 62 65 67 20 28 6a 73 32 2d 6e 6f  | ..............end.(+.beg.(js2-no | 
| 7a0c0 |  64 65 2d 6c 65 6e 20 62 6f 64 79 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | de-len.body)))...............(js | 
| 7a0e0 |  32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69    6f 6e 20 28 31 2b 20 62 65 67 29 20 28 31 2d 20  | 2-mode-flag-region.(1+.beg).(1-. | 
| 7a100 |  65 6e 64 29 20 27 68 69 64 65 29 29 0a 20 20 20    20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20  | end).'hide))...........(message. | 
| 7a120 |  22 4e 6f 20 63 6f 6c 6c 61 70 73 61 62 6c 65 20    65 6c 65 6d 65 6e 74 20 66 6f 75 6e 64 20 61 74  | "No.collapsable.element.found.at | 
| 7a140 |  20 70 6f 69 6e 74 22 29 29 29 29 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65  | .point"))))))))..(defun.js2-mode | 
| 7a160 |  2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 20 28 29    0a 20 20 22 53 68 6f 77 20 74 68 65 20 68 69 64  | -show-element.()..."Show.the.hid | 
| 7a180 |  64 65 6e 20 65 6c 65 6d 65 6e 74 20 61 74 20 63    75 72 72 65 6e 74 20 70 6f 69 6e 74 2e 22 0a 20  | den.element.at.current.point.".. | 
| 7a1a0 |  20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20    20 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 20 28  | .(interactive)...(let.((bounds.( | 
| 7a1c0 |  6a 73 32 2d 6d 6f 64 65 2d 69 6e 76 69 73 69 62    6c 65 2d 6f 76 65 72 6c 61 79 2d 62 6f 75 6e 64  | js2-mode-invisible-overlay-bound | 
| 7a1e0 |  73 29 29 29 0a 20 20 20 20 28 69 66 20 62 6f 75    6e 64 73 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | s))).....(if.bounds.........(js2 | 
| 7a200 |  2d 6d 6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f    6e 20 28 63 61 72 20 62 6f 75 6e 64 73 29 20 28  | -mode-flag-region.(car.bounds).( | 
| 7a220 |  63 64 72 20 62 6f 75 6e 64 73 29 20 6e 69 6c 29    0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20  | cdr.bounds).nil).......(message. | 
| 7a240 |  22 4e 6f 74 68 69 6e 67 20 74 6f 20 75 6e 2d 68    69 64 65 22 29 29 29 29 0a 0a 28 64 65 66 75 6e  | "Nothing.to.un-hide"))))..(defun | 
| 7a260 |  20 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61    6c 6c 20 28 29 0a 20 20 22 53 68 6f 77 20 61 6c  | .js2-mode-show-all.()..."Show.al | 
| 7a280 |  6c 20 6f 66 20 74 68 65 20 74 65 78 74 20 69 6e    20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20  | l.of.the.text.in.the.buffer."... | 
| 7a2a0 |  28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20    28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72  | (interactive)...(js2-mode-flag-r | 
| 7a2c0 |  65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e    29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 6e 69  | egion.(point-min).(point-max).ni | 
| 7a2e0 |  6c 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    6d 6f 64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65  | l))..(defun.js2-mode-toggle-hide | 
| 7a300 |  2d 66 75 6e 63 74 69 6f 6e 73 20 28 29 0a 20 20    28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20  | -functions.()...(interactive)... | 
| 7a320 |  28 69 66 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e    63 74 69 6f 6e 73 2d 68 69 64 64 65 6e 0a 20 20  | (if.js2-mode-functions-hidden... | 
| 7a340 |  20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 73 68    6f 77 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20  | ....(js2-mode-show-functions)... | 
| 7a360 |  20 20 28 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65    2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 0a 0a 28  | ..(js2-mode-hide-functions)))..( | 
| 7a380 |  64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 68    69 64 65 2d 66 75 6e 63 74 69 6f 6e 73 20 28 29  | defun.js2-mode-hide-functions.() | 
| 7a3a0 |  0a 20 20 22 48 69 64 65 73 20 61 6c 6c 20 6e 6f    6e 2d 6e 65 73 74 65 64 20 66 75 6e 63 74 69 6f  | ..."Hides.all.non-nested.functio | 
| 7a3c0 |  6e 20 62 6f 64 69 65 73 20 69 6e 20 74 68 65 20    62 75 66 66 65 72 2e 0a 55 73 65 20 5c 5c 5b 6a  | n.bodies.in.the.buffer..Use.\\[j | 
| 7a3e0 |  73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c    5d 20 74 6f 20 72 65 76 65 61 6c 20 74 68 65 6d  | s2-mode-show-all].to.reveal.them | 
| 7a400 |  2c 20 6f 72 20 5c 5c 5b 6a 73 32 2d 6d 6f 64 65    2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 5d 0a 74  | ,.or.\\[js2-mode-show-element].t | 
| 7a420 |  6f 20 6f 70 65 6e 20 61 6e 20 69 6e 64 69 76 69    64 75 61 6c 20 65 6e 74 72 79 2e 22 0a 20 20 28  | o.open.an.individual.entry."...( | 
| 7a440 |  69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28    69 66 20 6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66  | interactive)...(if.js2-mode-buff | 
| 7a460 |  65 72 2d 64 69 72 74 79 2d 70 0a 20 20 20 20 20    20 28 6a 73 32 2d 6d 6f 64 65 2d 77 61 69 74 2d  | er-dirty-p.......(js2-mode-wait- | 
| 7a480 |  66 6f 72 2d 70 61 72 73 65 20 23 27 6a 73 32 2d    6d 6f 64 65 2d 68 69 64 65 2d 66 75 6e 63 74 69  | for-parse.#'js2-mode-hide-functi | 
| 7a4a0 |  6f 6e 73 29 29 0a 20 20 28 69 66 20 28 6e 75 6c    6c 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 0a  | ons))...(if.(null.js2-mode-ast). | 
| 7a4c0 |  20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22    4f 6f 70 73 20 2d 20 70 61 72 73 69 6e 67 20 66  | ......(message."Oops.-.parsing.f | 
| 7a4e0 |  61 69 6c 65 64 22 29 0a 20 20 20 20 28 73 65 74    71 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74  | ailed").....(setq.js2-mode-funct | 
| 7a500 |  69 6f 6e 73 2d 68 69 64 64 65 6e 20 74 29 0a 20    20 20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73  | ions-hidden.t).....(js2-visit-as | 
| 7a520 |  74 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20 23    27 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63 74 69  | t.js2-mode-ast.#'js2-mode-functi | 
| 7a540 |  6f 6e 2d 68 69 64 65 72 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e  | on-hider)))..(defun.js2-mode-fun | 
| 7a560 |  63 74 69 6f 6e 2d 68 69 64 65 72 20 28 6e 20 65    6e 64 70 29 0a 20 20 28 77 68 65 6e 20 28 6e 6f  | ction-hider.(n.endp)...(when.(no | 
| 7a580 |  74 20 65 6e 64 70 29 0a 20 20 20 20 28 6c 65 74    20 28 28 74 74 20 28 6a 73 32 2d 6e 6f 64 65 2d  | t.endp).....(let.((tt.(js2-node- | 
| 7a5a0 |  74 79 70 65 20 6e 29 29 0a 20 20 20 20 20 20 20    20 20 20 62 6f 64 79 20 62 65 67 20 65 6e 64 29  | type.n))...........body.beg.end) | 
| 7a5c0 |  0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20    20 20 20 20 28 28 61 6e 64 20 28 3d 20 74 74 20  | .......(cond........((and.(=.tt. | 
| 7a5e0 |  6a 73 32 2d 46 55 4e 43 54 49 4f 4e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | js2-FUNCTION)..............(setq | 
| 7a600 |  20 62 6f 64 79 20 28 6a 73 32 2d 66 75 6e 63 74    69 6f 6e 2d 6e 6f 64 65 2d 62 6f 64 79 20 6e 29  | .body.(js2-function-node-body.n) | 
| 7a620 |  29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71    20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 61  | )).........(setq.beg.(js2-node-a | 
| 7a640 |  62 73 2d 70 6f 73 20 62 6f 64 79 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 28  | bs-pos.body)...............end.( | 
| 7a660 |  2b 20 62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d    6c 65 6e 20 62 6f 64 79 29 29 29 0a 20 20 20 20  | +.beg.(js2-node-len.body)))..... | 
| 7a680 |  20 20 20 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c    61 67 2d 72 65 67 69 6f 6e 20 28 31 2b 20 62 65  | ....(js2-mode-flag-region.(1+.be | 
| 7a6a0 |  67 29 20 28 31 2d 20 65 6e 64 29 20 27 68 69 64    65 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 29 20  | g).(1-.end).'hide).........nil). | 
| 7a6c0 |  20 20 3b 20 64 6f 6e 27 74 20 70 72 6f 63 65 73    73 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 66 75  | ..;.don't.process.children.of.fu | 
| 7a6e0 |  6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 28 74    0a 20 20 20 20 20 20 20 20 74 29 29 29 29 29 20  | nction........(t.........t))))). | 
| 7a700 |  3b 20 6b 65 65 70 20 70 72 6f 63 65 73 73 69 6e    67 20 6f 74 68 65 72 20 41 53 54 20 6e 6f 64 65  | ;.keep.processing.other.AST.node | 
| 7a720 |  73 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f    64 65 2d 73 68 6f 77 2d 66 75 6e 63 74 69 6f 6e  | s..(defun.js2-mode-show-function | 
| 7a740 |  73 20 28 29 0a 20 20 22 55 6e 2d 68 69 64 65 20    61 6e 79 20 66 6f 6c 64 65 64 20 66 75 6e 63 74  | s.()..."Un-hide.any.folded.funct | 
| 7a760 |  69 6f 6e 20 62 6f 64 69 65 73 20 69 6e 20 74 68    65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e  | ion.bodies.in.the.buffer."...(in | 
| 7a780 |  74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65    74 71 20 6a 73 32 2d 6d 6f 64 65 2d 66 75 6e 63  | teractive)...(setq.js2-mode-func | 
| 7a7a0 |  74 69 6f 6e 73 2d 68 69 64 64 65 6e 20 6e 69 6c    29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73  | tions-hidden.nil)...(save-excurs | 
| 7a7c0 |  69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68    61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a  | ion.....(goto-char.(point-min)). | 
| 7a7e0 |  20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d 20 28    67 6f 74 6f 2d 63 68 61 72 20 28 6e 65 78 74 2d  | ....(while.(/=.(goto-char.(next- | 
| 7a800 |  6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28    70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20  | overlay-change.(point)))........ | 
| 7a820 |  20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d    61 78 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69  | ........(point-max)).......(doli | 
| 7a840 |  73 74 20 28 6f 20 28 6f 76 65 72 6c 61 79 73 2d    61 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20  | st.(o.(overlays-at.(point))).... | 
| 7a860 |  20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20    28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 20 27  | .....(when.(and.(overlay-get.o.' | 
| 7a880 |  69 6e 76 69 73 69 62 6c 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e  | invisible)....................(n | 
| 7a8a0 |  6f 74 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20    6f 20 27 63 6f 6d 6d 65 6e 74 29 29 29 0a 20 20  | ot.(overlay-get.o.'comment)))... | 
| 7a8c0 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64    65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 28 6f  | ........(js2-mode-flag-region.(o | 
| 7a8e0 |  76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 29 20    28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 29 20  | verlay-start.o).(overlay-end.o). | 
| 7a900 |  6e 69 6c 29 29 29 29 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d  | nil))))))..(defun.js2-mode-hide- | 
| 7a920 |  63 6f 6d 6d 65 6e 74 20 28 6e 29 0a 20 20 28 6c    65 74 2a 20 28 28 68 65 61 64 20 28 69 66 20 28  | comment.(n)...(let*.((head.(if.( | 
| 7a940 |  65 71 20 28 6a 73 32 2d 63 6f 6d 6d 65 6e 74 2d    6e 6f 64 65 2d 66 6f 72 6d 61 74 20 6e 29 20 27  | eq.(js2-comment-node-format.n).' | 
| 7a960 |  6a 73 64 6f 63 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 33 20 20 3b 20 2f  | jsdoc)....................3..;./ | 
| 7a980 |  2a 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 32 29 29 20 20 3b 20 2f 2a 0a 20 20  | **..................2))..;./*... | 
| 7a9a0 |  20 20 20 20 20 20 20 28 62 65 67 20 28 2b 20 28    6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73  | .......(beg.(+.(js2-node-abs-pos | 
| 7a9c0 |  20 6e 29 20 68 65 61 64 29 29 0a 20 20 20 20 20    20 20 20 20 28 65 6e 64 20 28 2d 20 28 2b 20 62  | .n).head))..........(end.(-.(+.b | 
| 7a9e0 |  65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e    20 6e 29 29 20 68 65 61 64 20 32 29 29 0a 20 20  | eg.(js2-node-len.n)).head.2))... | 
| 7aa00 |  20 20 20 20 20 20 20 28 6f 20 28 6a 73 32 2d 6d    6f 64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20  | .......(o.(js2-mode-flag-region. | 
| 7aa20 |  62 65 67 20 65 6e 64 20 27 68 69 64 65 29 29 29    0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75  | beg.end.'hide))).....(overlay-pu | 
| 7aa40 |  74 20 6f 20 27 63 6f 6d 6d 65 6e 74 20 74 29 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f  | t.o.'comment.t)))..(defun.js2-mo | 
| 7aa60 |  64 65 2d 74 6f 67 67 6c 65 2d 68 69 64 65 2d 63    6f 6d 6d 65 6e 74 73 20 28 29 0a 20 20 22 46 6f  | de-toggle-hide-comments.()..."Fo | 
| 7aa80 |  6c 64 73 20 61 6c 6c 20 62 6c 6f 63 6b 20 63 6f    6d 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 62 75  | lds.all.block.comments.in.the.bu | 
| 7aaa0 |  66 66 65 72 2e 0a 55 73 65 20 5c 5c 5b 6a 73 32    2d 6d 6f 64 65 2d 73 68 6f 77 2d 61 6c 6c 5d 20  | ffer..Use.\\[js2-mode-show-all]. | 
| 7aac0 |  74 6f 20 72 65 76 65 61 6c 20 74 68 65 6d 2c 20    6f 72 20 5c 5c 5b 6a 73 32 2d 6d 6f 64 65 2d 73  | to.reveal.them,.or.\\[js2-mode-s | 
| 7aae0 |  68 6f 77 2d 65 6c 65 6d 65 6e 74 5d 0a 74 6f 20    6f 70 65 6e 20 61 6e 20 69 6e 64 69 76 69 64 75  | how-element].to.open.an.individu | 
| 7ab00 |  61 6c 20 65 6e 74 72 79 2e 22 0a 20 20 28 69 6e    74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66  | al.entry."...(interactive)...(if | 
| 7ab20 |  20 6a 73 32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e    74 73 2d 68 69 64 64 65 6e 0a 20 20 20 20 20 20  | .js2-mode-comments-hidden....... | 
| 7ab40 |  28 6a 73 32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 63    6f 6d 6d 65 6e 74 73 29 0a 20 20 20 20 28 6a 73  | (js2-mode-show-comments).....(js | 
| 7ab60 |  32 2d 6d 6f 64 65 2d 68 69 64 65 2d 63 6f 6d 6d    65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20  | 2-mode-hide-comments)))..(defun. | 
| 7ab80 |  6a 73 32 2d 6d 6f 64 65 2d 68 69 64 65 2d 63 6f    6d 6d 65 6e 74 73 20 28 29 0a 20 20 28 69 6e 74  | js2-mode-hide-comments.()...(int | 
| 7aba0 |  65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20    6a 73 32 2d 6d 6f 64 65 2d 62 75 66 66 65 72 2d  | eractive)...(if.js2-mode-buffer- | 
| 7abc0 |  64 69 72 74 79 2d 70 0a 20 20 20 20 20 20 28 6a    73 32 2d 6d 6f 64 65 2d 77 61 69 74 2d 66 6f 72  | dirty-p.......(js2-mode-wait-for | 
| 7abe0 |  2d 70 61 72 73 65 20 23 27 6a 73 32 2d 6d 6f 64    65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e 74 73 29  | -parse.#'js2-mode-hide-comments) | 
| 7ac00 |  29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 6a 73    32 2d 6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20  | )...(if.(null.js2-mode-ast)..... | 
| 7ac20 |  20 20 28 6d 65 73 73 61 67 65 20 22 4f 6f 70 73    20 2d 20 70 61 72 73 69 6e 67 20 66 61 69 6c 65  | ..(message."Oops.-.parsing.faile | 
| 7ac40 |  64 22 29 0a 20 20 20 20 28 73 65 74 71 20 6a 73    32 2d 6d 6f 64 65 2d 63 6f 6d 6d 65 6e 74 73 2d  | d").....(setq.js2-mode-comments- | 
| 7ac60 |  68 69 64 64 65 6e 20 74 29 0a 20 20 20 20 28 64    6f 6c 69 73 74 20 28 6e 20 28 6a 73 32 2d 61 73  | hidden.t).....(dolist.(n.(js2-as | 
| 7ac80 |  74 2d 72 6f 6f 74 2d 63 6f 6d 6d 65 6e 74 73 20    6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 0a 20  | t-root-comments.js2-mode-ast)).. | 
| 7aca0 |  20 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d    62 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 70 20  | .....(when.(js2-block-comment-p. | 
| 7acc0 |  6e 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d    6d 6f 64 65 2d 68 69 64 65 2d 63 6f 6d 6d 65 6e  | n).........(js2-mode-hide-commen | 
| 7ace0 |  74 20 6e 29 29 29 0a 20 20 20 20 28 6a 73 32 2d    6d 6f 64 65 2d 68 69 64 65 2d 2f 2f 2d 63 6f 6d  | t.n))).....(js2-mode-hide-//-com | 
| 7ad00 |  6d 65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64  | ments)))..(defun.js2-mode-extend | 
| 7ad20 |  2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 28 64 69 72    65 63 74 69 6f 6e 29 0a 20 20 22 46 69 6e 64 20  | -//-comment.(direction)..."Find. | 
| 7ad40 |  73 74 61 72 74 20 6f 72 20 65 6e 64 20 6f 66 20    61 20 62 6c 6f 63 6b 20 6f 66 20 73 69 6d 69 6c  | start.or.end.of.a.block.of.simil | 
| 7ad60 |  61 72 20 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 6c 69    6e 65 73 2e 0a 44 49 52 45 43 54 49 4f 4e 20 69  | ar.//-comment.lines..DIRECTION.i | 
| 7ad80 |  73 20 2d 31 20 74 6f 20 6c 6f 6f 6b 20 62 61 63    6b 2c 20 31 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72  | s.-1.to.look.back,.1.to.look.for | 
| 7ada0 |  77 61 72 64 2e 0a 49 4e 44 45 4e 54 20 69 73 20    74 68 65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20  | ward..INDENT.is.the.indentation. | 
| 7adc0 |  6c 65 76 65 6c 20 74 6f 20 6d 61 74 63 68 2e 0a    52 65 74 75 72 6e 73 20 74 68 65 20 65 6e 64 2d  | level.to.match..Returns.the.end- | 
| 7ade0 |  6f 66 2d 6c 69 6e 65 20 70 6f 73 69 74 69 6f 6e    20 6f 66 20 74 68 65 20 66 75 72 74 68 65 73 74  | of-line.position.of.the.furthest | 
| 7ae00 |  20 61 64 6a 61 63 65 6e 74 0a 2f 2f 2d 63 6f 6d    6d 65 6e 74 20 6c 69 6e 65 20 77 69 74 68 20 74  | .adjacent.//-comment.line.with.t | 
| 7ae20 |  68 65 20 73 61 6d 65 20 69 6e 64 65 6e 74 61 74    69 6f 6e 20 61 73 20 74 68 65 20 63 75 72 72 65  | he.same.indentation.as.the.curre | 
| 7ae40 |  6e 74 20 6c 69 6e 65 2e 0a 49 66 20 74 68 65 72    65 20 69 73 20 6e 6f 20 73 75 63 68 20 6d 61 74  | nt.line..If.there.is.no.such.mat | 
| 7ae60 |  63 68 69 6e 67 20 6c 69 6e 65 2c 20 72 65 74 75    72 6e 73 20 63 75 72 72 65 6e 74 20 65 6e 64 20  | ching.line,.returns.current.end. | 
| 7ae80 |  6f 66 20 6c 69 6e 65 2e 22 0a 20 20 28 6c 65 74    20 28 28 70 6f 73 20 28 70 6f 69 6e 74 2d 61 74  | of.line."...(let.((pos.(point-at | 
| 7aea0 |  2d 65 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28    69 6e 64 65 6e 74 20 28 63 75 72 72 65 6e 74 2d  | -eol)).........(indent.(current- | 
| 7aec0 |  69 6e 64 65 6e 74 61 74 69 6f 6e 29 29 29 0a 20    20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69  | indentation))).....(save-excursi | 
| 7aee0 |  6f 6e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20    28 61 6e 64 20 28 7a 65 72 6f 70 20 28 66 6f 72  | on.......(while.(and.(zerop.(for | 
| 7af00 |  77 61 72 64 2d 6c 69 6e 65 20 64 69 72 65 63 74    69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ward-line.direction))........... | 
| 7af20 |  20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67    2d 61 74 20 6a 73 32 2d 6d 6f 64 65 2d 2f 2f 2d  | ........(looking-at.js2-mode-//- | 
| 7af40 |  63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65  | comment-re)...................(e | 
| 7af60 |  71 20 69 6e 64 65 6e 74 20 28 6c 65 6e 67 74 68    20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31  | q.indent.(length.(match-string.1 | 
| 7af80 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65    74 71 20 70 6f 73 20 28 70 6f 69 6e 74 2d 61 74  | )))).........(setq.pos.(point-at | 
| 7afa0 |  2d 65 6f 6c 29 29 29 0a 20 20 20 20 20 20 70 6f    73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | -eol))).......pos)))..(defun.js2 | 
| 7afc0 |  2d 6d 6f 64 65 2d 68 69 64 65 2d 2f 2f 2d 63 6f    6d 6d 65 6e 74 73 20 28 29 0a 20 20 22 46 6f 6c  | -mode-hide-//-comments.()..."Fol | 
| 7afe0 |  64 20 61 64 6a 61 63 65 6e 74 20 31 2d 6c 69 6e    65 20 63 6f 6d 6d 65 6e 74 73 2c 20 73 68 6f 77  | d.adjacent.1-line.comments,.show | 
| 7b000 |  69 6e 67 20 6f 6e 6c 79 20 73 6e 69 70 70 65 74    20 6f 66 20 66 69 72 73 74 20 6f 6e 65 2e 22 0a  | ing.only.snippet.of.first.one.". | 
| 7b020 |  20 20 28 6c 65 74 20 28 62 65 67 20 65 6e 64 29    0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72  | ..(let.(beg.end).....(save-excur | 
| 7b040 |  73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f    2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e  | sion.......(goto-char.(point-min | 
| 7b060 |  29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20    28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61  | )).......(while.(re-search-forwa | 
| 7b080 |  72 64 20 6a 73 32 2d 6d 6f 64 65 2d 2f 2f 2d 63    6f 6d 6d 65 6e 74 2d 72 65 20 6e 69 6c 20 74 29  | rd.js2-mode-//-comment-re.nil.t) | 
| 7b0a0 |  0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62    65 67 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20  | .........(setq.beg.(point)...... | 
| 7b0c0 |  20 20 20 20 20 20 20 20 20 65 6e 64 20 28 6a 73    32 2d 6d 6f 64 65 2d 65 78 74 65 6e 64 2d 2f 2f  | .........end.(js2-mode-extend-// | 
| 7b0e0 |  2d 63 6f 6d 6d 65 6e 74 20 31 29 29 0a 20 20 20    20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71  | -comment.1)).........(unless.(eq | 
| 7b100 |  20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20    20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74  | .beg.end)...........(overlay-put | 
| 7b120 |  20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d    72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 20 27  | .(js2-mode-flag-region.beg.end.' | 
| 7b140 |  68 69 64 65 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6f  | hide)........................'co | 
| 7b160 |  6d 6d 65 6e 74 20 74 29 29 0a 20 20 20 20 20 20    20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64  | mment.t)).........(goto-char.end | 
| 7b180 |  29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61    72 64 2d 63 68 61 72 20 31 29 29 29 29 29 0a 0a  | ).........(forward-char.1))))).. | 
| 7b1a0 |  28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d    74 6f 67 67 6c 65 2d 2f 2f 2d 63 6f 6d 6d 65 6e  | (defun.js2-mode-toggle-//-commen | 
| 7b1c0 |  74 20 28 29 0a 20 20 22 46 6f 6c 64 20 6f 72 20    75 6e 2d 66 6f 6c 64 20 61 6e 79 20 6d 75 6c 74  | t.()..."Fold.or.un-fold.any.mult | 
| 7b1e0 |  69 2d 6c 69 6e 65 20 2f 2f 2d 63 6f 6d 6d 65 6e    74 20 61 74 20 70 6f 69 6e 74 2e 0a 43 61 6c 6c  | i-line.//-comment.at.point..Call | 
| 7b200 |  65 72 20 73 68 6f 75 6c 64 20 68 61 76 65 20 64    65 74 65 72 6d 69 6e 65 64 20 74 68 61 74 20 74  | er.should.have.determined.that.t | 
| 7b220 |  68 69 73 20 6c 69 6e 65 20 73 74 61 72 74 73 20    77 69 74 68 20 61 20 2f 2f 2d 63 6f 6d 6d 65 6e  | his.line.starts.with.a.//-commen | 
| 7b240 |  74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 65    67 20 28 70 6f 69 6e 74 2d 61 74 2d 65 6f 6c 29  | t."...(let*.((beg.(point-at-eol) | 
| 7b260 |  29 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 20    62 65 67 29 29 0a 20 20 20 20 28 73 61 76 65 2d  | )..........(end.beg)).....(save- | 
| 7b280 |  65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20    28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a  | excursion.......(goto-char.end). | 
| 7b2a0 |  20 20 20 20 20 20 28 69 66 20 28 6a 73 32 2d 6d    6f 64 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76  | ......(if.(js2-mode-invisible-ov | 
| 7b2c0 |  65 72 6c 61 79 2d 62 6f 75 6e 64 73 29 0a 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64  | erlay-bounds)...........(js2-mod | 
| 7b2e0 |  65 2d 73 68 6f 77 2d 65 6c 65 6d 65 6e 74 29 0a    20 20 20 20 20 20 20 20 3b 3b 20 65 6c 73 65 20  | e-show-element).........;;.else. | 
| 7b300 |  68 69 64 65 20 74 68 65 20 63 6f 6d 6d 65 6e 74    0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62  | hide.the.comment.........(setq.b | 
| 7b320 |  65 67 20 28 6a 73 32 2d 6d 6f 64 65 2d 65 78 74    65 6e 64 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74 20 2d  | eg.(js2-mode-extend-//-comment.- | 
| 7b340 |  31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 65 6e 64 20 28 6a 73 32 2d 6d 6f 64 65 2d 65  | 1)...............end.(js2-mode-e | 
| 7b360 |  78 74 65 6e 64 2d 2f 2f 2d 63 6f 6d 6d 65 6e 74    20 31 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e  | xtend-//-comment.1)).........(un | 
| 7b380 |  6c 65 73 73 20 28 65 71 20 62 65 67 20 65 6e 64    29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65  | less.(eq.beg.end)...........(ove | 
| 7b3a0 |  72 6c 61 79 2d 70 75 74 20 28 6a 73 32 2d 6d 6f    64 65 2d 66 6c 61 67 2d 72 65 67 69 6f 6e 20 62  | rlay-put.(js2-mode-flag-region.b | 
| 7b3c0 |  65 67 20 65 6e 64 20 27 68 69 64 65 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | eg.end.'hide)................... | 
| 7b3e0 |  20 20 20 20 20 27 63 6f 6d 6d 65 6e 74 20 74 29    29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | .....'comment.t))))))..(defun.js | 
| 7b400 |  32 2d 6d 6f 64 65 2d 73 68 6f 77 2d 63 6f 6d 6d    65 6e 74 73 20 28 29 0a 20 20 22 55 6e 2d 68 69  | 2-mode-show-comments.()..."Un-hi | 
| 7b420 |  64 65 20 61 6e 79 20 68 69 64 64 65 6e 20 63 6f    6d 6d 65 6e 74 73 2c 20 6c 65 61 76 69 6e 67 20  | de.any.hidden.comments,.leaving. | 
| 7b440 |  6f 74 68 65 72 20 68 69 64 64 65 6e 20 65 6c 65    6d 65 6e 74 73 20 61 6c 6f 6e 65 2e 22 0a 20 20  | other.hidden.elements.alone."... | 
| 7b460 |  28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20    28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 63  | (interactive)...(setq.js2-mode-c | 
| 7b480 |  6f 6d 6d 65 6e 74 73 2d 68 69 64 64 65 6e 20 6e    69 6c 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75  | omments-hidden.nil)...(save-excu | 
| 7b4a0 |  72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d    63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29  | rsion.....(goto-char.(point-min) | 
| 7b4c0 |  29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 2f 3d    20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e 65 78  | ).....(while.(/=.(goto-char.(nex | 
| 7b4e0 |  74 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65    20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20  | t-overlay-change.(point)))...... | 
| 7b500 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74    2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 64 6f  | ..........(point-max)).......(do | 
| 7b520 |  6c 69 73 74 20 28 6f 20 28 6f 76 65 72 6c 61 79    73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a 20  | list.(o.(overlays-at.(point))).. | 
| 7b540 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 76    65 72 6c 61 79 2d 67 65 74 20 6f 20 27 63 6f 6d  | .......(when.(overlay-get.o.'com | 
| 7b560 |  6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 6d 6f 64 65 2d 66 6c 61 67 2d 72  | ment)...........(js2-mode-flag-r | 
| 7b580 |  65 67 69 6f 6e 20 28 6f 76 65 72 6c 61 79 2d 73    74 61 72 74 20 6f 29 20 28 6f 76 65 72 6c 61 79  | egion.(overlay-start.o).(overlay | 
| 7b5a0 |  2d 65 6e 64 20 6f 29 20 6e 69 6c 29 29 29 29 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 6f  | -end.o).nil))))))..(defun.js2-mo | 
| 7b5c0 |  64 65 2d 64 69 73 70 6c 61 79 2d 77 61 72 6e 69    6e 67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 20 28  | de-display-warnings-and-errors.( | 
| 7b5e0 |  29 0a 20 20 22 54 75 72 6e 20 6f 6e 20 64 69 73    70 6c 61 79 20 6f 66 20 77 61 72 6e 69 6e 67 73  | )..."Turn.on.display.of.warnings | 
| 7b600 |  20 61 6e 64 20 65 72 72 6f 72 73 2e 22 0a 20 20    28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20  | .and.errors."...(interactive)... | 
| 7b620 |  28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 73    68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73  | (setq.js2-mode-show-parse-errors | 
| 7b640 |  20 74 0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d    6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d  | .t.........js2-mode-show-strict- | 
| 7b660 |  77 61 72 6e 69 6e 67 73 20 74 29 0a 20 20 28 6a    73 32 2d 72 65 70 61 72 73 65 20 27 66 6f 72 63  | warnings.t)...(js2-reparse.'forc | 
| 7b680 |  65 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    6d 6f 64 65 2d 68 69 64 65 2d 77 61 72 6e 69 6e  | e))..(defun.js2-mode-hide-warnin | 
| 7b6a0 |  67 73 2d 61 6e 64 2d 65 72 72 6f 72 73 20 28 29    0a 20 20 22 54 75 72 6e 20 6f 66 66 20 64 69 73  | gs-and-errors.()..."Turn.off.dis | 
| 7b6c0 |  70 6c 61 79 20 6f 66 20 77 61 72 6e 69 6e 67 73    20 61 6e 64 20 65 72 72 6f 72 73 2e 22 0a 20 20  | play.of.warnings.and.errors."... | 
| 7b6e0 |  28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20    28 73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 73  | (interactive)...(setq.js2-mode-s | 
| 7b700 |  68 6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73    20 6e 69 6c 0a 20 20 20 20 20 20 20 20 6a 73 32  | how-parse-errors.nil.........js2 | 
| 7b720 |  2d 6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63    74 2d 77 61 72 6e 69 6e 67 73 20 6e 69 6c 29 0a  | -mode-show-strict-warnings.nil). | 
| 7b740 |  20 20 28 6a 73 32 2d 72 65 70 61 72 73 65 20 27    66 6f 72 63 65 29 29 0a 0a 28 64 65 66 75 6e 20  | ..(js2-reparse.'force))..(defun. | 
| 7b760 |  6a 73 32 2d 6d 6f 64 65 2d 74 6f 67 67 6c 65 2d    77 61 72 6e 69 6e 67 73 2d 61 6e 64 2d 65 72 72  | js2-mode-toggle-warnings-and-err | 
| 7b780 |  6f 72 73 20 28 29 0a 20 20 22 54 6f 67 67 6c 65    20 74 68 65 20 64 69 73 70 6c 61 79 20 6f 66 20  | ors.()..."Toggle.the.display.of. | 
| 7b7a0 |  77 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72    6f 72 73 2e 0a 53 6f 6d 65 20 75 73 65 72 73 20  | warnings.and.errors..Some.users. | 
| 7b7c0 |  64 6f 6e 27 74 20 6c 69 6b 65 20 68 61 76 69 6e    67 20 77 61 72 6e 69 6e 67 73 2f 65 72 72 6f 72  | don't.like.having.warnings/error | 
| 7b7e0 |  73 20 72 65 70 6f 72 74 65 64 20 77 68 69 6c 65    20 74 68 65 79 20 74 79 70 65 2e 22 0a 20 20 28  | s.reported.while.they.type."...( | 
| 7b800 |  69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28    73 65 74 71 20 6a 73 32 2d 6d 6f 64 65 2d 73 68  | interactive)...(setq.js2-mode-sh | 
| 7b820 |  6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 20    28 6e 6f 74 20 6a 73 32 2d 6d 6f 64 65 2d 73 68  | ow-parse-errors.(not.js2-mode-sh | 
| 7b840 |  6f 77 2d 70 61 72 73 65 2d 65 72 72 6f 72 73 29    0a 20 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64  | ow-parse-errors).........js2-mod | 
| 7b860 |  65 2d 73 68 6f 77 2d 73 74 72 69 63 74 2d 77 61    72 6e 69 6e 67 73 20 28 6e 6f 74 20 6a 73 32 2d  | e-show-strict-warnings.(not.js2- | 
| 7b880 |  6d 6f 64 65 2d 73 68 6f 77 2d 73 74 72 69 63 74    2d 77 61 72 6e 69 6e 67 73 29 29 0a 20 20 28 69  | mode-show-strict-warnings))...(i | 
| 7b8a0 |  66 20 28 63 61 6c 6c 65 64 2d 69 6e 74 65 72 61    63 74 69 76 65 6c 79 2d 70 20 27 61 6e 79 29 0a  | f.(called-interactively-p.'any). | 
| 7b8c0 |  20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22    77 61 72 6e 69 6e 67 73 20 61 6e 64 20 65 72 72  | ......(message."warnings.and.err | 
| 7b8e0 |  6f 72 73 20 25 73 22 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 6a 73 32 2d 6d  | ors.%s"................(if.js2-m | 
| 7b900 |  6f 64 65 2d 73 68 6f 77 2d 70 61 72 73 65 2d 65    72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20  | ode-show-parse-errors........... | 
| 7b920 |  20 20 20 20 20 20 20 20 20 22 65 6e 61 62 6c 65    64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ........."enabled".............. | 
| 7b940 |  20 20 20 20 22 64 69 73 61 62 6c 65 64 22 29 29    29 0a 20 20 28 6a 73 32 2d 72 65 70 61 72 73 65  | ...."disabled")))...(js2-reparse | 
| 7b960 |  20 27 66 6f 72 63 65 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 75 73 74 6f  | .'force))..(defun.js2-mode-custo | 
| 7b980 |  6d 69 7a 65 20 28 29 0a 20 20 28 69 6e 74 65 72    61 63 74 69 76 65 29 0a 20 20 28 63 75 73 74 6f  | mize.()...(interactive)...(custo | 
| 7b9a0 |  6d 69 7a 65 2d 67 72 6f 75 70 20 27 6a 73 32 2d    6d 6f 64 65 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | mize-group.'js2-mode))..(defun.j | 
| 7b9c0 |  73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72 64 2d    73 65 78 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20  | s2-mode-forward-sexp.(&optional. | 
| 7b9e0 |  61 72 67 29 0a 20 20 22 4d 6f 76 65 20 66 6f 72    77 61 72 64 20 61 63 72 6f 73 73 20 6f 6e 65 20  | arg)..."Move.forward.across.one. | 
| 7ba00 |  73 74 61 74 65 6d 65 6e 74 20 6f 72 20 62 61 6c    61 6e 63 65 64 20 65 78 70 72 65 73 73 69 6f 6e  | statement.or.balanced.expression | 
| 7ba20 |  2e 0a 57 69 74 68 20 41 52 47 2c 20 64 6f 20 69    74 20 74 68 61 74 20 6d 61 6e 79 20 74 69 6d 65  | ..With.ARG,.do.it.that.many.time | 
| 7ba40 |  73 2e 20 20 4e 65 67 61 74 69 76 65 20 61 72 67    20 2d 4e 20 6d 65 61 6e 73 0a 6d 6f 76 65 20 62  | s...Negative.arg.-N.means.move.b | 
| 7ba60 |  61 63 6b 77 61 72 64 20 61 63 72 6f 73 73 20 4e    20 62 61 6c 61 6e 63 65 64 20 65 78 70 72 65 73  | ackward.across.N.balanced.expres | 
| 7ba80 |  73 69 6f 6e 73 2e 22 0a 20 20 28 69 6e 74 65 72    61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 73  | sions."...(interactive."p")...(s | 
| 7baa0 |  65 74 71 20 61 72 67 20 28 6f 72 20 61 72 67 20    31 29 29 0a 20 20 28 73 61 76 65 2d 72 65 73 74  | etq.arg.(or.arg.1))...(save-rest | 
| 7bac0 |  72 69 63 74 69 6f 6e 0a 20 20 20 20 28 77 69 64    65 6e 29 20 3b 3b 20 60 62 6c 69 6e 6b 2d 6d 61  | riction.....(widen).;;.`blink-ma | 
| 7bae0 |  74 63 68 69 6e 67 2d 6f 70 65 6e 27 20 63 61 6c    6c 73 20 60 6e 61 72 72 6f 77 2d 74 6f 2d 72 65  | tching-open'.calls.`narrow-to-re | 
| 7bb00 |  67 69 6f 6e 27 0a 20 20 20 20 28 6a 73 32 2d 72    65 70 61 72 73 65 29 0a 20 20 20 20 28 6c 65 74  | gion'.....(js2-reparse).....(let | 
| 7bb20 |  20 28 66 6f 72 77 61 72 64 2d 73 65 78 70 2d 66    75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20  | .(forward-sexp-function......... | 
| 7bb40 |  20 20 6e 6f 64 65 20 28 73 74 61 72 74 20 28 70    6f 69 6e 74 29 29 20 70 6f 73 20 6c 70 20 72 70  | ..node.(start.(point)).pos.lp.rp | 
| 7bb60 |  20 63 68 69 6c 64 29 0a 20 20 20 20 20 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 28 28 6a 73 32  | .child).......(cond........((js2 | 
| 7bb80 |  2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 28    6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e  | -string-node-p.(js2-node-at-poin | 
| 7bba0 |  74 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72    77 61 72 64 2d 73 65 78 70 20 61 72 67 29 29 0a  | t)).........(forward-sexp.arg)). | 
| 7bbc0 |  20 20 20 20 20 20 20 3b 3b 20 62 61 63 6b 77 61    72 64 2d 73 65 78 70 0a 20 20 20 20 20 20 20 3b  | .......;;.backward-sexp........; | 
| 7bbe0 |  3b 20 63 6f 75 6c 64 20 70 72 6f 62 61 62 6c 79    20 6d 61 6b 65 20 74 68 69 73 20 62 65 74 74 65  | ;.could.probably.make.this.bette | 
| 7bc00 |  72 20 66 6f 72 20 73 6f 6d 65 20 63 61 73 65 73    3a 0a 20 20 20 20 20 20 20 3b 3b 20 20 2d 20 69  | r.for.some.cases:........;;..-.i | 
| 7bc20 |  66 20 69 6e 20 73 74 61 74 65 6d 65 6e 74 20 62    6c 6f 63 6b 20 28 65 2e 67 2e 20 66 75 6e 63 74  | f.in.statement.block.(e.g..funct | 
| 7bc40 |  69 6f 6e 20 62 6f 64 79 29 2c 20 67 6f 20 74 6f    20 70 61 72 65 6e 74 0a 20 20 20 20 20 20 20 3b  | ion.body),.go.to.parent........; | 
| 7bc60 |  3b 20 20 2d 20 69 6e 66 69 78 20 65 78 70 72 73    20 6c 69 6b 65 20 28 66 6f 6f 20 69 6e 20 62 61  | ;..-.infix.exprs.like.(foo.in.ba | 
| 7bc80 |  72 29 20 2d 20 6d 61 79 62 65 20 67 6f 20 74 6f    20 62 65 67 69 6e 6e 69 6e 67 0a 20 20 20 20 20  | r).-.maybe.go.to.beginning...... | 
| 7bca0 |  20 20 3b 3b 20 20 20 20 6f 66 20 69 6e 66 69 78    20 65 78 70 72 20 69 66 20 69 6e 20 74 68 65 20  | ..;;....of.infix.expr.if.in.the. | 
| 7bcc0 |  72 69 67 68 74 2d 73 69 64 65 20 65 78 70 72 65    73 73 69 6f 6e 3f 0a 20 20 20 20 20 20 20 28 28  | right-side.expression?........(( | 
| 7bce0 |  61 6e 64 20 61 72 67 20 28 63 6c 2d 6d 69 6e 75    73 70 20 61 72 67 29 29 0a 20 20 20 20 20 20 20  | and.arg.(cl-minusp.arg))........ | 
| 7bd00 |  20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 2d 20    61 72 67 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .(dotimes.(_.(-.arg))........... | 
| 7bd20 |  28 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d 73 77    73 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f  | (js2-backward-sws)...........(fo | 
| 7bd40 |  72 77 61 72 64 2d 63 68 61 72 20 2d 31 29 20 20    20 3b 20 45 6e 74 65 72 20 74 68 65 20 6e 6f 64  | rward-char.-1)...;.Enter.the.nod | 
| 7bd60 |  65 20 77 65 20 62 61 63 6b 65 64 20 75 70 20 74    6f 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68  | e.we.backed.up.to............(wh | 
| 7bd80 |  65 6e 20 28 73 65 74 71 20 6e 6f 64 65 20 28 6a    73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74  | en.(setq.node.(js2-node-at-point | 
| 7bda0 |  20 28 70 6f 69 6e 74 29 20 74 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70  | .(point).t)).............(setq.p | 
| 7bdc0 |  6f 73 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73    2d 70 6f 73 20 6e 6f 64 65 29 29 0a 20 20 20 20  | os.(js2-node-abs-pos.node))..... | 
| 7bde0 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70    61 72 65 6e 73 20 28 6a 73 32 2d 6d 6f 64 65 2d  | ........(let.((parens.(js2-mode- | 
| 7be00 |  66 6f 72 77 61 72 64 2d 73 65 78 70 2d 70 61 72    65 6e 73 20 6e 6f 64 65 20 70 6f 73 29 29 29 0a  | forward-sexp-parens.node.pos))). | 
| 7be20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    65 74 71 20 6c 70 20 28 63 61 72 20 70 61 72 65  | ..............(setq.lp.(car.pare | 
| 7be40 |  6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 72 70 20 28 63 64 72 20  | ns).....................rp.(cdr. | 
| 7be60 |  70 61 72 65 6e 73 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | parens))).............(when.(and | 
| 7be80 |  20 6c 70 20 28 3e 20 73 74 61 72 74 20 6c 70 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .lp.(>.start.lp))............... | 
| 7bea0 |  28 69 66 20 28 61 6e 64 20 72 70 20 28 3c 3d 20    73 74 61 72 74 20 72 70 29 29 0a 20 20 20 20 20  | (if.(and.rp.(<=.start.rp))...... | 
| 7bec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20    42 65 74 77 65 65 6e 20 70 61 72 65 6e 73 2c 20  | .............;;.Between.parens,. | 
| 7bee0 |  63 68 65 63 6b 20 69 66 20 74 68 65 72 65 27 73    20 61 20 63 68 69 6c 64 20 6e 6f 64 65 20 77 65  | check.if.there's.a.child.node.we | 
| 7bf00 |  20 63 61 6e 20 6a 75 6d 70 2e 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68  | .can.jump....................(wh | 
| 7bf20 |  65 6e 20 28 73 65 74 71 20 63 68 69 6c 64 20 28    6a 73 32 2d 6e 6f 64 65 2d 63 6c 6f 73 65 73 74  | en.(setq.child.(js2-node-closest | 
| 7bf40 |  2d 63 68 69 6c 64 20 6e 6f 64 65 20 28 70 6f 69    6e 74 29 20 6c 70 20 74 29 29 0a 20 20 20 20 20  | -child.node.(point).lp.t))...... | 
| 7bf60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 70 6f 73 20 28 6a 73 32 2d 6e 6f  | ...............(setq.pos.(js2-no | 
| 7bf80 |  64 65 2d 61 62 73 2d 70 6f 73 20 63 68 69 6c 64    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | de-abs-pos.child)))............. | 
| 7bfa0 |  20 20 20 20 3b 3b 20 42 65 66 6f 72 65 20 62 6f    74 68 20 70 61 72 65 6e 73 2e 0a 20 20 20 20 20  | ....;;.Before.both.parens....... | 
| 7bfc0 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 70 6f 73 20 6c 70 29 29 29 0a 20 20 20 20 20  | ...........(setq.pos.lp)))...... | 
| 7bfe0 |  20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74    61 74 65 20 28 70 61 72 73 65 2d 70 61 72 74 69  | .......(let.((state.(parse-parti | 
| 7c000 |  61 6c 2d 73 65 78 70 20 70 6f 73 20 73 74 61 72    74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | al-sexp.pos.start)))............ | 
| 7c020 |  20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69    66 20 28 6e 6f 74 20 28 7a 65 72 6f 70 20 28 63  | ...(goto-char.(if.(not.(zerop.(c | 
| 7c040 |  61 72 20 73 74 61 74 65 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ar.state)))..................... | 
| 7c060 |  20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 75 6d    62 6c 65 20 61 74 20 74 68 65 20 75 6e 62 61 6c  | .........;;.Stumble.at.the.unbal | 
| 7c080 |  61 6e 63 65 64 20 70 61 72 65 6e 20 69 66 20 3c    20 30 2c 20 6f 72 0a 20 20 20 20 20 20 20 20 20  | anced.paren.if.<.0,.or.......... | 
| 7c0a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 6a 75 6d 70 20 61 20 62 69  | ....................;;.jump.a.bi | 
| 7c0c0 |  74 20 66 75 72 74 68 65 72 20 69 66 20 3e 20 30    2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.further.if.>.0................ | 
| 7c0e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 63 61 6e 2d 73 65 78 70 73 20 73 74 61 72 74  | ...............(scan-sexps.start | 
| 7c100 |  20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .-1)............................ | 
| 7c120 |  70 6f 73 29 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 28 75 6e 6c 65 73 73 20 70 6f 73 20 28 67  | pos))))...........(unless.pos.(g | 
| 7c140 |  6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d    6d 69 6e 29 29 29 29 29 0a 20 20 20 20 20 20 20  | oto-char.(point-min)))))........ | 
| 7c160 |  28 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 66 6f    72 77 61 72 64 2d 73 65 78 70 0a 20 20 20 20 20  | (t.........;;.forward-sexp...... | 
| 7c180 |  20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 61    72 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 6a  | ...(dotimes.(_.arg)...........(j | 
| 7c1a0 |  73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | s2-forward-sws)...........(when. | 
| 7c1c0 |  28 73 65 74 71 20 6e 6f 64 65 20 28 6a 73 32 2d    6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 70  | (setq.node.(js2-node-at-point.(p | 
| 7c1e0 |  6f 69 6e 74 29 20 74 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20  | oint).t)).............(setq.pos. | 
| 7c200 |  28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f    73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20  | (js2-node-abs-pos.node))........ | 
| 7c220 |  20 20 20 20 20 28 6c 65 74 20 28 28 70 61 72 65    6e 73 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72  | .....(let.((parens.(js2-mode-for | 
| 7c240 |  77 61 72 64 2d 73 65 78 70 2d 70 61 72 65 6e 73    20 6e 6f 64 65 20 70 6f 73 29 29 29 0a 20 20 20  | ward-sexp-parens.node.pos))).... | 
| 7c260 |  20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 6c 70 20 28 63 61 72 20 70 61 72 65 6e 73 29  | ...........(setq.lp.(car.parens) | 
| 7c280 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 72 70 20 28 63 64 72 20 70 61 72  | .....................rp.(cdr.par | 
| 7c2a0 |  65 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 6f 72 0a 20 20 20 20 20 20 20 20 20  | ens))).............(or.......... | 
| 7c2c0 |  20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 72    70 20 28 3c 3d 20 73 74 61 72 74 20 72 70 29 29  | ....(when.(and.rp.(<=.start.rp)) | 
| 7c2e0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 69 66 20 28 3e 20 73 74 61 72 74 20 6c 70 29  | ................(if.(>.start.lp) | 
| 7c300 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 73 65 74 71 20  | ....................(when.(setq. | 
| 7c320 |  63 68 69 6c 64 20 28 6a 73 32 2d 6e 6f 64 65 2d    63 6c 6f 73 65 73 74 2d 63 68 69 6c 64 20 6e 6f  | child.(js2-node-closest-child.no | 
| 7c340 |  64 65 20 28 70 6f 69 6e 74 29 20 72 70 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de.(point).rp))................. | 
| 7c360 |  20 20 20 20 20 28 73 65 74 71 20 70 6f 73 20 28    6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 65 6e 64  | .....(setq.pos.(js2-node-abs-end | 
| 7c380 |  20 63 68 69 6c 64 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | .child)))..................(setq | 
| 7c3a0 |  20 70 6f 73 20 28 31 2b 20 72 70 29 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20  | .pos.(1+.rp))))..............;;. | 
| 7c3c0 |  4e 6f 20 70 61 72 65 6e 73 20 6f 72 20 63 68 69    6c 64 20 6e 6f 64 65 73 2c 20 6c 6f 6f 6b 73 20  | No.parens.or.child.nodes,.looks. | 
| 7c3e0 |  66 6f 72 20 74 68 65 20 65 6e 64 20 6f 66 20 74    68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2e  | for.the.end.of.the.current.node. | 
| 7c400 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63    6c 2d 69 6e 63 66 20 70 6f 73 20 28 6a 73 32 2d  | ..............(cl-incf.pos.(js2- | 
| 7c420 |  6e 6f 64 65 2d 6c 65 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | node-len........................ | 
| 7c440 |  20 20 20 20 28 69 66 20 28 6a 73 32 2d 65 78 70    72 2d 73 74 6d 74 2d 6e 6f 64 65 2d 70 20 28 6a  | ....(if.(js2-expr-stmt-node-p.(j | 
| 7c460 |  73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e    6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | s2-node-parent.node))........... | 
| 7c480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 3b 3b 20 53 74 6f 70 20 61 66 74  | .....................;;.Stop.aft | 
| 7c4a0 |  65 72 20 74 68 65 20 73 65 6d 69 63 6f 6c 6f 6e    2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | er.the.semicolon................ | 
| 7c4c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e  | .................(js2-node-paren | 
| 7c4e0 |  74 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.node)......................... | 
| 7c500 |  20 20 20 20 20 6e 6f 64 65 29 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28  | .....node)))).............(let.( | 
| 7c520 |  28 73 74 61 74 65 20 28 73 61 76 65 2d 65 78 63    75 72 73 69 6f 6e 20 28 70 61 72 73 65 2d 70 61  | (state.(save-excursion.(parse-pa | 
| 7c540 |  72 74 69 61 6c 2d 73 65 78 70 20 73 74 61 72 74    20 70 6f 73 29 29 29 29 0a 20 20 20 20 20 20 20  | rtial-sexp.start.pos))))........ | 
| 7c560 |  20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61    72 20 28 69 66 20 28 6e 6f 74 20 28 7a 65 72 6f  | .......(goto-char.(if.(not.(zero | 
| 7c580 |  70 20 28 63 61 72 20 73 74 61 74 65 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p.(car.state)))................. | 
| 7c5a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63    61 6e 2d 73 65 78 70 73 20 73 74 61 72 74 20 31  | .............(scan-sexps.start.1 | 
| 7c5c0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73  | )............................pos | 
| 7c5e0 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28    75 6e 6c 65 73 73 20 70 6f 73 20 28 67 6f 74 6f  | ))))...........(unless.pos.(goto | 
| 7c600 |  2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78    29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75  | -char.(point-max)))))))))..(defu | 
| 7c620 |  6e 20 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61    72 64 2d 73 65 78 70 2d 70 61 72 65 6e 73 20 28  | n.js2-mode-forward-sexp-parens.( | 
| 7c640 |  6e 6f 64 65 20 61 62 73 2d 70 6f 73 29 0a 20 20    22 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63  | node.abs-pos)..."Return.a.cons.c | 
| 7c660 |  65 6c 6c 20 77 69 74 68 20 70 6f 73 69 74 69 6f    6e 73 20 6f 66 20 6d 61 69 6e 20 70 61 72 65 6e  | ell.with.positions.of.main.paren | 
| 7c680 |  73 20 69 6e 20 4e 4f 44 45 2e 22 0a 20 20 28 63    6f 6e 64 0a 20 20 20 28 28 6f 72 20 28 6a 73 32  | s.in.NODE."...(cond....((or.(js2 | 
| 7c6a0 |  2d 61 72 72 61 79 2d 6e 6f 64 65 2d 70 20 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32  | -array-node-p.node).........(js2 | 
| 7c6c0 |  2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d 70 20 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 6a 73  | -object-node-p.node).........(js | 
| 7c6e0 |  32 2d 63 6f 6d 70 2d 6e 6f 64 65 2d 70 20 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 20 28 6d 65 6d  | 2-comp-node-p.node).........(mem | 
| 7c700 |  71 20 28 61 72 65 66 20 6e 6f 64 65 20 30 29 20    27 28 63 6c 2d 73 74 72 75 63 74 2d 6a 73 32 2d  | q.(aref.node.0).'(cl-struct-js2- | 
| 7c720 |  62 6c 6f 63 6b 2d 6e 6f 64 65 20 63 6c 2d 73 74    72 75 63 74 2d 6a 73 32 2d 73 63 6f 70 65 29 29  | block-node.cl-struct-js2-scope)) | 
| 7c740 |  29 0a 20 20 20 20 28 63 6f 6e 73 20 61 62 73 2d    70 6f 73 20 28 2b 20 61 62 73 2d 70 6f 73 20 28  | ).....(cons.abs-pos.(+.abs-pos.( | 
| 7c760 |  6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e 20 6e 6f 64    65 29 20 2d 31 29 29 29 0a 20 20 20 28 28 6a 73  | js2-node-len.node).-1)))....((js | 
| 7c780 |  32 2d 70 61 72 65 6e 2d 65 78 70 72 2d 6e 6f 64    65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 6c  | 2-paren-expr-node-p.node).....(l | 
| 7c7a0 |  65 74 20 28 28 6c 70 20 28 6a 73 32 2d 6e 6f 64    65 2d 6c 70 20 6e 6f 64 65 29 29 0a 20 20 20 20  | et.((lp.(js2-node-lp.node))..... | 
| 7c7c0 |  20 20 20 20 20 20 28 72 70 20 28 6a 73 32 2d 6e    6f 64 65 2d 72 70 20 6e 6f 64 65 29 29 29 0a 20  | ......(rp.(js2-node-rp.node))).. | 
| 7c7e0 |  20 20 20 20 20 28 63 6f 6e 73 20 28 77 68 65 6e    20 6c 70 20 28 2b 20 61 62 73 2d 70 6f 73 20 6c  | .....(cons.(when.lp.(+.abs-pos.l | 
| 7c800 |  70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 77 68 65 6e 20 72 70 20 28 2b 20 61 62 73 2d  | p)).............(when.rp.(+.abs- | 
| 7c820 |  70 6f 73 20 72 70 29 29 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 6e 6f 64 65 2d 63  | pos.rp)))))))..(defun.js2-node-c | 
| 7c840 |  6c 6f 73 65 73 74 2d 63 68 69 6c 64 20 28 70 61    72 65 6e 74 20 70 6f 69 6e 74 20 6c 69 6d 69 74  | losest-child.(parent.point.limit | 
| 7c860 |  20 26 6f 70 74 69 6f 6e 61 6c 20 62 65 66 6f 72    65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 61 72  | .&optional.before)...(let*.((par | 
| 7c880 |  65 6e 74 2d 70 6f 73 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74  | ent-pos.(js2-node-abs-pos.parent | 
| 7c8a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 28 72 70 6f    69 6e 74 20 28 2d 20 70 6f 69 6e 74 20 70 61 72  | ))..........(rpoint.(-.point.par | 
| 7c8c0 |  65 6e 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20    20 20 20 28 72 6c 69 6d 69 74 20 28 2d 20 6c 69  | ent-pos))..........(rlimit.(-.li | 
| 7c8e0 |  6d 69 74 20 70 61 72 65 6e 74 2d 70 6f 73 29 29    0a 20 20 20 20 20 20 20 20 20 28 6d 69 6e 20 28  | mit.parent-pos))..........(min.( | 
| 7c900 |  6d 69 6e 20 72 70 6f 69 6e 74 20 72 6c 69 6d 69    74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61  | min.rpoint.rlimit))..........(ma | 
| 7c920 |  78 20 28 6d 61 78 20 72 70 6f 69 6e 74 20 72 6c    69 6d 69 74 29 29 0a 20 20 20 20 20 20 20 20 20  | x.(max.rpoint.rlimit)).......... | 
| 7c940 |  66 6f 75 6e 64 29 0a 20 20 20 20 28 63 61 74 63    68 20 27 64 6f 6e 65 0a 20 20 20 20 20 20 28 6a  | found).....(catch.'done.......(j | 
| 7c960 |  73 32 2d 76 69 73 69 74 2d 61 73 74 0a 20 20 20    20 20 20 20 70 61 72 65 6e 74 0a 20 20 20 20 20  | s2-visit-ast........parent...... | 
| 7c980 |  20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 20    5f 65 6e 64 2d 70 29 0a 20 20 20 20 20 20 20 20  | ..(lambda.(node._end-p)......... | 
| 7c9a0 |  20 28 69 66 20 28 65 71 20 6e 6f 64 65 20 70 61    72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20  | .(if.(eq.node.parent)........... | 
| 7c9c0 |  20 20 20 74 0a 20 20 20 20 20 20 20 20 20 20 20    28 6c 65 74 20 28 28 70 6f 73 20 28 6a 73 32 2d  | ...t............(let.((pos.(js2- | 
| 7c9e0 |  6e 6f 64 65 2d 70 6f 73 20 6e 6f 64 65 29 29 20    3b 3b 20 42 6f 74 68 20 72 65 6c 61 74 69 76 65  | node-pos.node)).;;.Both.relative | 
| 7ca00 |  20 76 61 6c 75 65 73 2e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28  | .values...................(end.( | 
| 7ca20 |  2b 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 6f 73 20    6e 6f 64 65 29 20 28 6a 73 32 2d 6e 6f 64 65 2d  | +.(js2-node-pos.node).(js2-node- | 
| 7ca40 |  6c 65 6e 20 6e 6f 64 65 29 29 29 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20  | len.node))))..............(when. | 
| 7ca60 |  28 61 6e 64 20 28 3e 3d 20 70 6f 73 20 6d 69 6e    29 20 28 3c 3d 20 65 6e 64 20 6d 61 78 29 0a 20  | (and.(>=.pos.min).(<=.end.max).. | 
| 7ca80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 69 66 20 62 65 66 6f 72  | .......................(if.befor | 
| 7caa0 |  65 20 28 3c 20 70 6f 73 20 72 70 6f 69 6e 74 29    20 28 3e 20 65 6e 64 20 72 70 6f 69 6e 74 29 29  | e.(<.pos.rpoint).(>.end.rpoint)) | 
| 7cac0 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 66 6f 75 6e 64 20 6e 6f 64  | )................(setq.found.nod | 
| 7cae0 |  65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 28 77 68 65 6e 20 28 3e 20 65 6e 64 20 72 70  | e))..............(when.(>.end.rp | 
| 7cb00 |  6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 74 68 72 6f 77 20 27 64 6f 6e  | oint)................(throw.'don | 
| 7cb20 |  65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 6e 69 6c 29 29 29 29 0a 20 20 20 20  | e.nil)))............nil))))..... | 
| 7cb40 |  66 6f 75 6e 64 29 29 0a 0a 28 64 65 66 75 6e 20    6a 73 32 2d 65 72 72 6f 72 73 20 28 29 0a 20 20  | found))..(defun.js2-errors.()... | 
| 7cb60 |  22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f    66 20 65 72 72 6f 72 73 20 66 6f 75 6e 64 2e 22  | "Return.a.list.of.errors.found." | 
| 7cb80 |  0a 20 20 28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65    2d 61 73 74 0a 20 20 20 20 20 20 20 28 6a 73 32  | ...(and.js2-mode-ast........(js2 | 
| 7cba0 |  2d 61 73 74 2d 72 6f 6f 74 2d 65 72 72 6f 72 73    20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29  | -ast-root-errors.js2-mode-ast))) | 
| 7cbc0 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 77 61 72    6e 69 6e 67 73 20 28 29 0a 20 20 22 52 65 74 75  | ..(defun.js2-warnings.()..."Retu | 
| 7cbe0 |  72 6e 20 61 20 6c 69 73 74 20 6f 66 20 77 61 72    6e 69 6e 67 73 20 66 6f 75 6e 64 2e 22 0a 20 20  | rn.a.list.of.warnings.found."... | 
| 7cc00 |  28 61 6e 64 20 6a 73 32 2d 6d 6f 64 65 2d 61 73    74 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73  | (and.js2-mode-ast........(js2-as | 
| 7cc20 |  74 2d 72 6f 6f 74 2d 77 61 72 6e 69 6e 67 73 20    6a 73 32 2d 6d 6f 64 65 2d 61 73 74 29 29 29 0a  | t-root-warnings.js2-mode-ast))). | 
| 7cc40 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 68 61 76 65    2d 65 72 72 6f 72 73 2d 70 20 28 29 0a 20 20 22  | .(defun.js2-have-errors-p.()..." | 
| 7cc60 |  52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69    66 20 61 6e 79 20 70 61 72 73 65 20 65 72 72 6f  | Return.non-nil.if.any.parse.erro | 
| 7cc80 |  72 73 20 6f 72 20 77 61 72 6e 69 6e 67 73 20 77    65 72 65 20 66 6f 75 6e 64 2e 22 0a 20 20 28 6f  | rs.or.warnings.were.found."...(o | 
| 7cca0 |  72 20 28 6a 73 32 2d 65 72 72 6f 72 73 29 20 28    6a 73 32 2d 77 61 72 6e 69 6e 67 73 29 29 29 0a  | r.(js2-errors).(js2-warnings))). | 
| 7ccc0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 65 72 72 6f    72 73 2d 61 6e 64 2d 77 61 72 6e 69 6e 67 73 20  | .(defun.js2-errors-and-warnings. | 
| 7cce0 |  28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63    6f 70 79 20 6f 66 20 74 68 65 20 63 6f 6e 63 61  | ()..."Return.a.copy.of.the.conca | 
| 7cd00 |  74 65 6e 61 74 65 64 20 65 72 72 6f 72 73 20 61    6e 64 20 77 61 72 6e 69 6e 67 73 20 6c 69 73 74  | tenated.errors.and.warnings.list | 
| 7cd20 |  73 2e 0a 54 68 65 79 20 61 72 65 20 61 70 70 65    6e 64 65 64 3a 20 20 66 69 72 73 74 20 74 68 65  | s..They.are.appended:..first.the | 
| 7cd40 |  20 65 72 72 6f 72 73 2c 20 74 68 65 6e 20 74 68    65 20 77 61 72 6e 69 6e 67 73 2e 0a 45 6e 74 72  | .errors,.then.the.warnings..Entr | 
| 7cd60 |  69 65 73 20 61 72 65 20 6f 66 20 74 68 65 20 66    6f 72 6d 20 28 4d 53 47 20 42 45 47 20 45 4e 44  | ies.are.of.the.form.(MSG.BEG.END | 
| 7cd80 |  29 2e 22 0a 20 20 28 77 68 65 6e 20 6a 73 32 2d    6d 6f 64 65 2d 61 73 74 0a 20 20 20 20 28 61 70  | )."...(when.js2-mode-ast.....(ap | 
| 7cda0 |  70 65 6e 64 20 28 6a 73 32 2d 61 73 74 2d 72 6f    6f 74 2d 65 72 72 6f 72 73 20 6a 73 32 2d 6d 6f  | pend.(js2-ast-root-errors.js2-mo | 
| 7cdc0 |  64 65 2d 61 73 74 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e  | de-ast).............(copy-sequen | 
| 7cde0 |  63 65 20 28 6a 73 32 2d 61 73 74 2d 72 6f 6f 74    2d 77 61 72 6e 69 6e 67 73 20 6a 73 32 2d 6d 6f  | ce.(js2-ast-root-warnings.js2-mo | 
| 7ce00 |  64 65 2d 61 73 74 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 6e 65 78 74 2d 65 72 72  | de-ast)))))..(defun.js2-next-err | 
| 7ce20 |  6f 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72    67 20 72 65 73 65 74 29 0a 20 20 22 4d 6f 76 65  | or.(&optional.arg.reset)..."Move | 
| 7ce40 |  20 74 6f 20 6e 65 78 74 20 70 61 72 73 65 20 65    72 72 6f 72 2e 0a 54 79 70 69 63 61 6c 6c 79 20  | .to.next.parse.error..Typically. | 
| 7ce60 |  69 6e 76 6f 6b 65 64 20 76 69 61 20 5c 5c 5b 6e    65 78 74 2d 65 72 72 6f 72 5d 2e 0a 41 52 47 20  | invoked.via.\\[next-error]..ARG. | 
| 7ce80 |  69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66    20 65 72 72 6f 72 73 2c 20 66 6f 72 77 61 72 64  | is.the.number.of.errors,.forward | 
| 7cea0 |  20 6f 72 20 62 61 63 6b 77 61 72 64 2c 20 74 6f    20 6d 6f 76 65 2e 0a 52 45 53 45 54 20 6d 65 61  | .or.backward,.to.move..RESET.mea | 
| 7cec0 |  6e 73 20 73 74 61 72 74 20 6f 76 65 72 20 66 72    6f 6d 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67  | ns.start.over.from.the.beginning | 
| 7cee0 |  2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76    65 20 22 70 22 29 0a 20 20 28 69 66 20 28 6e 6f  | ."...(interactive."p")...(if.(no | 
| 7cf00 |  74 20 28 6f 72 20 28 6a 73 32 2d 65 72 72 6f 72    73 29 20 28 6a 73 32 2d 77 61 72 6e 69 6e 67 73  | t.(or.(js2-errors).(js2-warnings | 
| 7cf20 |  29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61    67 65 20 22 4e 6f 20 65 72 72 6f 72 73 22 29 0a  | ))).......(message."No.errors"). | 
| 7cf40 |  20 20 20 20 28 77 68 65 6e 20 72 65 73 65 74 0a    20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72  | ....(when.reset.......(goto-char | 
| 7cf60 |  20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20    20 20 20 28 6c 65 74 2a 20 28 28 65 72 72 73 20  | .(point-min))).....(let*.((errs. | 
| 7cf80 |  28 6a 73 32 2d 65 72 72 6f 72 73 2d 61 6e 64 2d    77 61 72 6e 69 6e 67 73 29 29 0a 20 20 20 20 20  | (js2-errors-and-warnings))...... | 
| 7cfa0 |  20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65 20    74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | ......(continue.t)............(s | 
| 7cfc0 |  74 61 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 28 63 6f 75 6e 74 20  | tart.(point))............(count. | 
| 7cfe0 |  28 6f 72 20 61 72 67 20 31 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64  | (or.arg.1))............(backward | 
| 7d000 |  20 28 63 6c 2d 6d 69 6e 75 73 70 20 63 6f 75 6e    74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28  | .(cl-minusp.count))............( | 
| 7d020 |  73 6f 72 74 65 72 20 28 69 66 20 62 61 63 6b 77    61 72 64 20 27 3e 20 27 3c 29 29 0a 20 20 20 20  | sorter.(if.backward.'>.'<))..... | 
| 7d040 |  20 20 20 20 20 20 20 28 73 74 6f 70 70 65 72 20    28 69 66 20 62 61 63 6b 77 61 72 64 20 27 3c 20  | .......(stopper.(if.backward.'<. | 
| 7d060 |  27 3e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    28 63 6f 75 6e 74 20 28 61 62 73 20 63 6f 75 6e  | '>))............(count.(abs.coun | 
| 7d080 |  74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 61    6c 6c 2d 65 72 72 73 20 65 72 72 29 0a 20 20 20  | t))............all-errs.err).... | 
| 7d0a0 |  20 20 20 3b 3b 20 53 6f 72 74 20 62 79 20 73 74    61 72 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 20 20  | ...;;.Sort.by.start.position.... | 
| 7d0c0 |  20 20 20 20 28 73 65 74 71 20 65 72 72 73 20 28    73 6f 72 74 20 65 72 72 73 20 28 6c 61 6d 62 64  | ....(setq.errs.(sort.errs.(lambd | 
| 7d0e0 |  61 20 28 65 31 20 65 32 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | a.(e1.e2)....................... | 
| 7d100 |  20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c    20 73 6f 72 74 65 72 20 28 63 6c 2d 73 65 63 6f  | ........(funcall.sorter.(cl-seco | 
| 7d120 |  6e 64 20 65 31 29 20 28 63 6c 2d 73 65 63 6f 6e    64 20 65 32 29 29 29 29 0a 20 20 20 20 20 20 20  | nd.e1).(cl-second.e2))))........ | 
| 7d140 |  20 20 20 20 20 61 6c 6c 2d 65 72 72 73 20 65 72    72 73 29 0a 20 20 20 20 20 20 3b 3b 20 46 69 6e  | .....all-errs.errs).......;;.Fin | 
| 7d160 |  64 20 6e 74 68 20 65 72 72 6f 72 20 77 69 74 68    20 70 6f 73 20 3e 20 73 74 61 72 74 2e 0a 20 20  | d.nth.error.with.pos.>.start.... | 
| 7d180 |  20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20    65 72 72 73 20 63 6f 6e 74 69 6e 75 65 29 0a 20  | ....(while.(and.errs.continue).. | 
| 7d1a0 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75    6e 63 61 6c 6c 20 73 74 6f 70 70 65 72 20 28 63  | .......(when.(funcall.stopper.(c | 
| 7d1c0 |  6c 2d 63 61 64 61 72 20 65 72 72 73 29 20 73 74    61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 28  | l-cadar.errs).start)...........( | 
| 7d1e0 |  73 65 74 71 20 65 72 72 20 28 63 61 72 20 65 72    72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28  | setq.err.(car.errs))...........( | 
| 7d200 |  69 66 20 28 7a 65 72 6f 70 20 28 63 6c 2d 64 65    63 66 20 63 6f 75 6e 74 29 29 0a 20 20 20 20 20  | if.(zerop.(cl-decf.count))...... | 
| 7d220 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63    6f 6e 74 69 6e 75 65 20 6e 69 6c 29 29 29 0a 20  | .........(setq.continue.nil))).. | 
| 7d240 |  20 20 20 20 20 20 20 28 73 65 74 71 20 65 72 72    73 20 28 63 64 72 20 65 72 72 73 29 29 29 0a 20  | .......(setq.errs.(cdr.errs))).. | 
| 7d260 |  20 20 20 20 20 3b 3b 20 43 6c 65 61 72 20 66 6f    72 20 60 6a 73 32 2d 65 63 68 6f 2d 65 72 72 6f  | .....;;.Clear.for.`js2-echo-erro | 
| 7d280 |  72 27 2e 0a 20 20 20 20 20 20 28 6d 65 73 73 61    67 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 69  | r'........(message.nil).......(i | 
| 7d2a0 |  66 20 65 72 72 0a 20 20 20 20 20 20 20 20 20 20    28 67 6f 74 6f 2d 63 68 61 72 20 28 63 6c 2d 73  | f.err...........(goto-char.(cl-s | 
| 7d2c0 |  65 63 6f 6e 64 20 65 72 72 29 29 0a 20 20 20 20    20 20 20 20 3b 3b 20 57 72 61 70 20 61 72 6f 75  | econd.err)).........;;.Wrap.arou | 
| 7d2e0 |  6e 64 20 74 6f 20 66 69 72 73 74 20 65 72 72 6f    72 2e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f  | nd.to.first.error..........(goto | 
| 7d300 |  2d 63 68 61 72 20 28 63 6c 2d 73 65 63 6f 6e 64    20 28 63 61 72 20 61 6c 6c 2d 65 72 72 73 29 29  | -char.(cl-second.(car.all-errs)) | 
| 7d320 |  29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20    77 65 20 77 65 72 65 20 61 6c 72 65 61 64 79 20  | ).........;;.If.we.were.already. | 
| 7d340 |  6f 6e 20 69 74 2c 20 65 63 68 6f 20 6d 73 67 20    61 67 61 69 6e 2e 0a 20 20 20 20 20 20 20 20 28  | on.it,.echo.msg.again..........( | 
| 7d360 |  69 66 20 28 3d 20 28 70 6f 69 6e 74 29 20 73 74    61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20  | if.(=.(point).start)............ | 
| 7d380 |  20 28 6a 73 32 2d 65 63 68 6f 2d 65 72 72 6f 72    20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 29  | .(js2-echo-error.(point).(point) | 
| 7d3a0 |  29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 64 6f 77 6e 2d 6d 6f 75 73 65 2d 33 20  | ))))))..(defun.js2-down-mouse-3. | 
| 7d3c0 |  28 29 0a 20 20 22 4d 61 6b 65 20 72 69 67 68 74    2d 63 6c 69 63 6b 20 6d 6f 76 65 20 74 68 65 20  | ()..."Make.right-click.move.the. | 
| 7d3e0 |  70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 6c 69    63 6b 20 6c 6f 63 61 74 69 6f 6e 2e 0a 54 68 69  | point.to.the.click.location..Thi | 
| 7d400 |  73 20 6d 61 6b 65 73 20 72 69 67 68 74 2d 63 6c    69 63 6b 20 63 6f 6e 74 65 78 74 20 6d 65 6e 75  | s.makes.right-click.context.menu | 
| 7d420 |  20 6f 70 65 72 61 74 69 6f 6e 73 20 61 20 62 69    74 20 6d 6f 72 65 20 69 6e 74 75 69 74 69 76 65  | .operations.a.bit.more.intuitive | 
| 7d440 |  2e 0a 54 68 65 20 70 6f 69 6e 74 20 77 69 6c 6c    20 6e 6f 74 20 6d 6f 76 65 20 69 66 20 74 68 65  | ..The.point.will.not.move.if.the | 
| 7d460 |  20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76    65 2c 20 68 6f 77 65 76 65 72 2c 20 74 6f 20 61  | .region.is.active,.however,.to.a | 
| 7d480 |  76 6f 69 64 0a 64 65 73 74 72 6f 79 69 6e 67 20    74 68 65 20 72 65 67 69 6f 6e 20 73 65 6c 65 63  | void.destroying.the.region.selec | 
| 7d4a0 |  74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61    63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28  | tion."...(interactive)...(when.( | 
| 7d4c0 |  61 6e 64 20 6a 73 32 2d 6d 6f 76 65 2d 70 6f 69    6e 74 2d 6f 6e 2d 72 69 67 68 74 2d 63 6c 69 63  | and.js2-move-point-on-right-clic | 
| 7d4e0 |  6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 6f 74 20 6d 61 72 6b 2d 61 63 74 69 76 65 29  | k..............(not.mark-active) | 
| 7d500 |  29 0a 20 20 20 20 28 6c 65 74 20 28 28 65 20 6c    61 73 74 2d 69 6e 70 75 74 2d 65 76 65 6e 74 29  | ).....(let.((e.last-input-event) | 
| 7d520 |  29 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d    65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 28  | ).......(ignore-errors.........( | 
| 7d540 |  67 6f 74 6f 2d 63 68 61 72 20 28 63 6c 2d 63 61    64 61 64 72 20 65 29 29 29 29 29 29 0a 0a 28 64  | goto-char.(cl-cadadr.e))))))..(d | 
| 7d560 |  65 66 75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 63 72    65 61 74 65 2d 69 6d 65 6e 75 2d 69 6e 64 65 78  | efun.js2-mode-create-imenu-index | 
| 7d580 |  20 28 29 0a 20 20 22 52 65 74 75 72 6e 73 20 61    6e 20 61 6c 69 73 74 20 66 6f 72 20 60 69 6d 65  | .()..."Returns.an.alist.for.`ime | 
| 7d5a0 |  6e 75 2d 2d 69 6e 64 65 78 2d 61 6c 69 73 74 27    2e 20 52 65 74 75 72 6e 73 20 6e 69 6c 20 6f 6e  | nu--index-alist'..Returns.nil.on | 
| 7d5c0 |  20 66 69 72 73 74 0a 73 63 61 6e 20 69 66 20 62    75 66 66 65 72 20 73 69 7a 65 20 3e 20 60 69 6d  | .first.scan.if.buffer.size.>.`im | 
| 7d5e0 |  65 6e 75 2d 61 75 74 6f 2d 72 65 73 63 61 6e 2d    6d 61 78 6f 75 74 27 2e 22 0a 20 20 28 77 68 65  | enu-auto-rescan-maxout'."...(whe | 
| 7d600 |  6e 20 28 61 6e 64 20 28 6e 6f 74 20 6a 73 32 2d    6d 6f 64 65 2d 61 73 74 29 0a 20 20 20 20 20 20  | n.(and.(not.js2-mode-ast)....... | 
| 7d620 |  20 20 20 20 20 20 20 28 3c 3d 20 28 62 75 66 66    65 72 2d 73 69 7a 65 29 20 69 6d 65 6e 75 2d 61  | .......(<=.(buffer-size).imenu-a | 
| 7d640 |  75 74 6f 2d 72 65 73 63 61 6e 2d 6d 61 78 6f 75    74 29 29 0a 20 20 20 20 20 20 28 6a 73 32 2d 72  | uto-rescan-maxout)).......(js2-r | 
| 7d660 |  65 70 61 72 73 65 29 29 0a 20 20 28 77 68 65 6e    20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 0a 20 20  | eparse))...(when.js2-mode-ast... | 
| 7d680 |  20 20 3b 3b 20 69 66 20 77 65 20 68 61 76 65 20    61 6e 20 61 73 74 20 62 75 74 20 6e 6f 20 72 65  | ..;;.if.we.have.an.ast.but.no.re | 
| 7d6a0 |  63 6f 72 64 65 72 2c 20 74 68 65 79 27 72 65 20    72 65 71 75 65 73 74 69 6e 67 20 61 20 72 65 73  | corder,.they're.requesting.a.res | 
| 7d6c0 |  63 61 6e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | can.....(unless.js2-imenu-record | 
| 7d6e0 |  65 72 0a 20 20 20 20 20 20 28 6a 73 32 2d 72 65    70 61 72 73 65 20 27 66 6f 72 63 65 29 29 0a 20  | er.......(js2-reparse.'force)).. | 
| 7d700 |  20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20    20 20 28 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65  | ...(prog1.........(js2-build-ime | 
| 7d720 |  6e 75 2d 69 6e 64 65 78 29 0a 20 20 20 20 20 20    28 73 65 74 71 20 6a 73 32 2d 69 6d 65 6e 75 2d  | nu-index).......(setq.js2-imenu- | 
| 7d740 |  72 65 63 6f 72 64 65 72 20 6e 69 6c 0a 20 20 20    20 20 20 20 20 20 20 20 20 6a 73 32 2d 69 6d 65  | recorder.nil.............js2-ime | 
| 7d760 |  6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 20    6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20  | nu-function-map.nil))))..(defun. | 
| 7d780 |  6a 73 32 2d 6d 6f 64 65 2d 66 69 6e 64 2d 74 61    67 20 28 29 0a 20 20 22 52 65 70 6c 61 63 65 6d  | js2-mode-find-tag.()..."Replacem | 
| 7d7a0 |  65 6e 74 20 66 6f 72 20 60 66 69 6e 64 2d 74 61    67 2d 64 65 66 61 75 6c 74 27 2e 0a 60 66 69 6e  | ent.for.`find-tag-default'..`fin | 
| 7d7c0 |  64 2d 74 61 67 2d 64 65 66 61 75 6c 74 27 20 72    65 74 75 72 6e 73 20 61 20 72 69 64 69 63 75 6c  | d-tag-default'.returns.a.ridicul | 
| 7d7e0 |  6f 75 73 20 61 6e 73 77 65 72 20 69 6e 73 69 64    65 20 63 6f 6d 6d 65 6e 74 73 2e 22 0a 20 20 28  | ous.answer.inside.comments."...( | 
| 7d800 |  6c 65 74 20 28 62 65 67 20 65 6e 64 29 0a 20 20    20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f  | let.(beg.end).....(save-excursio | 
| 7d820 |  6e 0a 20 20 20 20 20 20 28 69 66 20 28 6c 6f 6f    6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3e 22 29 0a  | n.......(if.(looking-at."\\_>"). | 
| 7d840 |  20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20    62 65 67 20 28 70 72 6f 67 6e 20 28 66 6f 72 77  | ..........(setq.beg.(progn.(forw | 
| 7d860 |  61 72 64 2d 73 79 6d 62 6f 6c 20 2d 31 29 20 28    70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20  | ard-symbol.-1).(point))......... | 
| 7d880 |  20 20 20 20 20 20 20 20 65 6e 64 20 28 70 72 6f    67 6e 20 28 66 6f 72 77 61 72 64 2d 73 79 6d 62  | ........end.(progn.(forward-symb | 
| 7d8a0 |  6f 6c 20 31 29 20 28 70 6f 69 6e 74 29 29 29 0a    20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65  | ol.1).(point))).........(setq.be | 
| 7d8c0 |  67 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72    64 2d 73 79 6d 62 6f 6c 20 31 29 20 28 70 6f 69  | g.(progn.(forward-symbol.1).(poi | 
| 7d8e0 |  6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 65 6e 64 20 28 70 72 6f 67 6e 20 28 66  | nt))...............end.(progn.(f | 
| 7d900 |  6f 72 77 61 72 64 2d 73 79 6d 62 6f 6c 20 2d 31    29 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20  | orward-symbol.-1).(point)))).... | 
| 7d920 |  20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65    78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20  | ...(replace-regexp-in-string.... | 
| 7d940 |  20 20 20 20 22 5b 5c 22 27 5d 22 20 22 22 0a 20    20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75  | ...."[\"']".""........(buffer-su | 
| 7d960 |  62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65    72 74 69 65 73 20 62 65 67 20 65 6e 64 29 29 29  | bstring-no-properties.beg.end))) | 
| 7d980 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d    6f 64 65 2d 66 6f 72 77 61 72 64 2d 73 69 62 6c  | ))..(defun.js2-mode-forward-sibl | 
| 7d9a0 |  69 6e 67 20 28 29 0a 20 20 22 4d 6f 76 65 20 74    6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65  | ing.()..."Move.to.the.end.of.the | 
| 7d9c0 |  20 73 69 62 6c 69 6e 67 20 66 6f 6c 6c 6f 77 69    6e 67 20 70 6f 69 6e 74 20 69 6e 20 70 61 72 65  | .sibling.following.point.in.pare | 
| 7d9e0 |  6e 74 2e 0a 52 65 74 75 72 6e 73 20 6e 6f 6e 2d    6e 69 6c 20 69 66 20 73 75 63 63 65 73 73 66 75  | nt..Returns.non-nil.if.successfu | 
| 7da00 |  6c 2c 20 6f 72 20 6e 69 6c 20 69 66 20 74 68 65    72 65 20 77 61 73 20 6e 6f 20 66 6f 6c 6c 6f 77  | l,.or.nil.if.there.was.no.follow | 
| 7da20 |  69 6e 67 20 73 69 62 6c 69 6e 67 2e 22 0a 20 20    28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28 6a 73  | ing.sibling."...(let*.((node.(js | 
| 7da40 |  32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e 74 29    29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65  | 2-node-at-point))..........(pare | 
| 7da60 |  6e 74 20 28 6a 73 32 2d 6d 6f 64 65 2d 66 69 6e    64 2d 65 6e 63 6c 6f 73 69 6e 67 2d 66 6e 20 6e  | nt.(js2-mode-find-enclosing-fn.n | 
| 7da80 |  6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 73    69 62 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73  | ode))..........sib).....(when.(s | 
| 7daa0 |  65 74 71 20 73 69 62 20 28 6a 73 32 2d 6e 6f 64    65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 61 66 74  | etq.sib.(js2-node-find-child-aft | 
| 7dac0 |  65 72 20 28 70 6f 69 6e 74 29 20 70 61 72 65 6e    74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d  | er.(point).parent)).......(goto- | 
| 7dae0 |  63 68 61 72 20 28 2b 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 62 73 2d 70 6f 73 20 73 69 62 29 0a 20  | char.(+.(js2-node-abs-pos.sib).. | 
| 7db00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e  | ...................(js2-node-len | 
| 7db20 |  20 73 69 62 29 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 6d 6f 64 65 2d 62 61 63 6b  | .sib))))))..(defun.js2-mode-back | 
| 7db40 |  77 61 72 64 2d 73 69 62 6c 69 6e 67 20 28 29 0a    20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62  | ward-sibling.()..."Move.to.the.b | 
| 7db60 |  65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20    73 69 62 6c 69 6e 67 20 6e 6f 64 65 20 70 72 65  | eginning.of.the.sibling.node.pre | 
| 7db80 |  63 65 64 69 6e 67 20 70 6f 69 6e 74 20 69 6e 20    70 61 72 65 6e 74 2e 0a 50 61 72 65 6e 74 20 69  | ceding.point.in.parent..Parent.i | 
| 7dba0 |  73 20 64 65 66 69 6e 65 64 20 61 73 20 74 68 65    20 65 6e 63 6c 6f 73 69 6e 67 20 73 63 72 69 70  | s.defined.as.the.enclosing.scrip | 
| 7dbc0 |  74 20 6f 72 20 66 75 6e 63 74 69 6f 6e 2e 22 0a    20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20 28  | t.or.function."...(let*.((node.( | 
| 7dbe0 |  6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69 6e    74 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 61  | js2-node-at-point))..........(pa | 
| 7dc00 |  72 65 6e 74 20 28 6a 73 32 2d 6d 6f 64 65 2d 66    69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d 66 6e  | rent.(js2-mode-find-enclosing-fn | 
| 7dc20 |  20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20    20 73 69 62 29 0a 20 20 20 20 28 77 68 65 6e 20  | .node))..........sib).....(when. | 
| 7dc40 |  28 73 65 74 71 20 73 69 62 20 28 6a 73 32 2d 6e    6f 64 65 2d 66 69 6e 64 2d 63 68 69 6c 64 2d 62  | (setq.sib.(js2-node-find-child-b | 
| 7dc60 |  65 66 6f 72 65 20 28 70 6f 69 6e 74 29 20 70 61    72 65 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f  | efore.(point).parent)).......(go | 
| 7dc80 |  74 6f 2d 63 68 61 72 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 62 73 2d 70 6f 73 20 73 69 62 29 29 29  | to-char.(js2-node-abs-pos.sib))) | 
| 7dca0 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 62    65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75  | ))..(defun.js2-beginning-of-defu | 
| 7dcc0 |  6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67    29 0a 20 20 22 47 6f 20 74 6f 20 6c 69 6e 65 20  | n.(&optional.arg)..."Go.to.line. | 
| 7dce0 |  6f 6e 20 77 68 69 63 68 20 63 75 72 72 65 6e 74    20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 73  | on.which.current.function.starts | 
| 7dd00 |  2c 20 61 6e 64 20 72 65 74 75 72 6e 20 74 20 6f    6e 20 73 75 63 63 65 73 73 2e 0a 49 66 20 77 65  | ,.and.return.t.on.success..If.we | 
| 7dd20 |  27 72 65 20 6e 6f 74 20 69 6e 20 61 20 66 75 6e    63 74 69 6f 6e 20 6f 72 20 61 6c 72 65 61 64 79  | 're.not.in.a.function.or.already | 
| 7dd40 |  20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e    67 20 6f 66 20 6f 6e 65 2c 20 67 6f 0a 74 6f 20  | .at.the.beginning.of.one,.go.to. | 
| 7dd60 |  62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 70 72 65    76 69 6f 75 73 20 73 63 72 69 70 74 2d 6c 65 76  | beginning.of.previous.script-lev | 
| 7dd80 |  65 6c 20 65 6c 65 6d 65 6e 74 2e 0a 57 69 74 68    20 41 52 47 20 4e 2c 20 64 6f 20 74 68 61 74 20  | el.element..With.ARG.N,.do.that. | 
| 7dda0 |  4e 20 74 69 6d 65 73 2e 20 49 66 20 4e 20 69 73    20 6e 65 67 61 74 69 76 65 2c 20 6d 6f 76 65 20  | N.times..If.N.is.negative,.move. | 
| 7ddc0 |  66 6f 72 77 61 72 64 2e 22 0a 20 20 28 73 65 74    71 20 61 72 67 20 28 6f 72 20 61 72 67 20 31 29  | forward."...(setq.arg.(or.arg.1) | 
| 7dde0 |  29 0a 20 20 28 69 66 20 28 63 6c 2d 70 6c 75 73    70 20 61 72 67 29 0a 20 20 20 20 20 20 28 6c 65  | )...(if.(cl-plusp.arg).......(le | 
| 7de00 |  74 20 28 28 70 61 72 65 6e 74 20 28 6a 73 32 2d    6e 6f 64 65 2d 70 61 72 65 6e 74 2d 73 63 72 69  | t.((parent.(js2-node-parent-scri | 
| 7de20 |  70 74 2d 6f 72 2d 66 6e 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a  | pt-or-fn.(js2-node-at-point)))). | 
| 7de40 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ........(when.(cond............. | 
| 7de60 |  20 20 20 28 28 6a 73 32 2d 66 75 6e 63 74 69 6f    6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29  | ...((js2-function-node-p.parent) | 
| 7de80 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6a 73 32  | .................(goto-char.(js2 | 
| 7dea0 |  2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 70 61    72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20  | -node-abs-pos.parent)))......... | 
| 7dec0 |  20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d  | .......(t.................(js2-m | 
| 7dee0 |  6f 64 65 2d 62 61 63 6b 77 61 72 64 2d 73 69 62    6c 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20  | ode-backward-sibling)))......... | 
| 7df00 |  20 20 28 69 66 20 28 3e 20 61 72 67 20 31 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ..(if.(>.arg.1)...............(j | 
| 7df20 |  73 32 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d    64 65 66 75 6e 20 28 31 2d 20 61 72 67 29 29 0a  | s2-beginning-of-defun.(1-.arg)). | 
| 7df40 |  20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29    0a 20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d  | ............t))).....(when.(js2- | 
| 7df60 |  65 6e 64 2d 6f 66 2d 64 65 66 75 6e 29 0a 20 20    20 20 20 20 28 6a 73 32 2d 62 65 67 69 6e 6e 69  | end-of-defun).......(js2-beginni | 
| 7df80 |  6e 67 2d 6f 66 2d 64 65 66 75 6e 20 28 69 66 20    28 3e 3d 20 61 72 67 20 2d 31 29 20 31 20 28 31  | ng-of-defun.(if.(>=.arg.-1).1.(1 | 
| 7dfa0 |  2b 20 61 72 67 29 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64  | +.arg))))))..(defun.js2-end-of-d | 
| 7dfc0 |  65 66 75 6e 20 28 29 0a 20 20 22 47 6f 20 74 6f    20 74 68 65 20 63 68 61 72 20 61 66 74 65 72 20  | efun.()..."Go.to.the.char.after. | 
| 7dfe0 |  74 68 65 20 6c 61 73 74 20 70 6f 73 69 74 69 6f    6e 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74  | the.last.position.of.the.current | 
| 7e000 |  20 66 75 6e 63 74 69 6f 6e 0a 6f 72 20 73 63 72    69 70 74 2d 6c 65 76 65 6c 20 65 6c 65 6d 65 6e  | .function.or.script-level.elemen | 
| 7e020 |  74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f    64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d  | t."...(let*.((node.(js2-node-at- | 
| 7e040 |  70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20    20 28 70 61 72 65 6e 74 20 28 6f 72 20 28 61 6e  | point))..........(parent.(or.(an | 
| 7e060 |  64 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d    6e 6f 64 65 2d 70 20 6e 6f 64 65 29 20 6e 6f 64  | d.(js2-function-node-p.node).nod | 
| 7e080 |  65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 6f 64  | e)......................(js2-nod | 
| 7e0a0 |  65 2d 70 61 72 65 6e 74 2d 73 63 72 69 70 74 2d    6f 72 2d 66 6e 20 6e 6f 64 65 29 29 29 0a 20 20  | e-parent-script-or-fn.node)))... | 
| 7e0c0 |  20 20 20 20 20 20 20 73 63 72 69 70 74 29 0a 20    20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73 32 2d  | .......script).....(unless.(js2- | 
| 7e0e0 |  66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20    70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 3b 3b  | function-node-p.parent).......;; | 
| 7e100 |  20 55 73 65 20 63 75 72 72 65 6e 74 20 73 63 72    69 70 74 2d 6c 65 76 65 6c 20 6e 6f 64 65 2c 20  | .Use.current.script-level.node,. | 
| 7e120 |  6f 72 2c 20 69 66 20 6e 6f 6e 65 2c 20 74 68 65    20 6e 65 78 74 20 6f 6e 65 2e 0a 20 20 20 20 20  | or,.if.none,.the.next.one....... | 
| 7e140 |  20 28 73 65 74 71 20 73 63 72 69 70 74 20 28 6f    72 20 70 61 72 65 6e 74 20 6e 6f 64 65 29 0a 20  | .(setq.script.(or.parent.node).. | 
| 7e160 |  20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e    74 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e 64  | ...........parent.(js2-node-find | 
| 7e180 |  2d 63 68 69 6c 64 2d 62 65 66 6f 72 65 20 28 70    6f 69 6e 74 29 20 73 63 72 69 70 74 29 29 0a 20  | -child-before.(point).script)).. | 
| 7e1a0 |  20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28    6e 75 6c 6c 20 70 61 72 65 6e 74 29 0a 20 20 20  | .....(when.(or.(null.parent).... | 
| 7e1c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 3d    20 28 70 6f 69 6e 74 29 20 28 2b 20 28 6a 73 32  | .............(>=.(point).(+.(js2 | 
| 7e1e0 |  2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 70 61    72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20  | -node-abs-pos.parent)........... | 
| 7e200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c  | .....................(js2-node-l | 
| 7e220 |  65 6e 20 70 61 72 65 6e 74 29 29 29 29 0a 20 20    20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 65  | en.parent)))).........(setq.pare | 
| 7e240 |  6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e    64 2d 63 68 69 6c 64 2d 61 66 74 65 72 20 28 70  | nt.(js2-node-find-child-after.(p | 
| 7e260 |  6f 69 6e 74 29 20 73 63 72 69 70 74 29 29 29 29    0a 20 20 20 20 28 77 68 65 6e 20 70 61 72 65 6e  | oint).script)))).....(when.paren | 
| 7e280 |  74 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68    61 72 20 28 2b 20 28 6a 73 32 2d 6e 6f 64 65 2d  | t.......(goto-char.(+.(js2-node- | 
| 7e2a0 |  61 62 73 2d 70 6f 73 20 70 61 72 65 6e 74 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | abs-pos.parent)................. | 
| 7e2c0 |  20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65    6e 20 70 61 72 65 6e 74 29 29 29 29 29 29 0a 0a  | ....(js2-node-len.parent)))))).. | 
| 7e2e0 |  28 64 65 66 75 6e 20 6a 73 32 2d 6d 61 72 6b 2d    64 65 66 75 6e 20 28 26 6f 70 74 69 6f 6e 61 6c  | (defun.js2-mark-defun.(&optional | 
| 7e300 |  20 61 6c 6c 6f 77 2d 65 78 74 65 6e 64 29 0a 20    20 22 50 75 74 20 6d 61 72 6b 20 61 74 20 65 6e  | .allow-extend)..."Put.mark.at.en | 
| 7e320 |  64 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69    6f 6e 2c 20 70 6f 69 6e 74 20 61 74 20 62 65 67  | d.of.this.function,.point.at.beg | 
| 7e340 |  69 6e 6e 69 6e 67 2e 0a 54 68 65 20 66 75 6e 63    74 69 6f 6e 20 6d 61 72 6b 65 64 20 69 73 20 74  | inning..The.function.marked.is.t | 
| 7e360 |  68 65 20 6f 6e 65 20 74 68 61 74 20 63 6f 6e 74    61 69 6e 73 20 70 6f 69 6e 74 2e 0a 0a 49 6e 74  | he.one.that.contains.point...Int | 
| 7e380 |  65 72 61 63 74 69 76 65 6c 79 2c 20 69 66 20 74    68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72  | eractively,.if.this.command.is.r | 
| 7e3a0 |  65 70 65 61 74 65 64 2c 0a 6f 72 20 28 69 6e 20    54 72 61 6e 73 69 65 6e 74 20 4d 61 72 6b 20 6d  | epeated,.or.(in.Transient.Mark.m | 
| 7e3c0 |  6f 64 65 29 20 69 66 20 74 68 65 20 6d 61 72 6b    20 69 73 20 61 63 74 69 76 65 2c 0a 69 74 20 6d  | ode).if.the.mark.is.active,.it.m | 
| 7e3e0 |  61 72 6b 73 20 74 68 65 20 6e 65 78 74 20 64 65    66 75 6e 20 61 66 74 65 72 20 74 68 65 20 6f 6e  | arks.the.next.defun.after.the.on | 
| 7e400 |  65 73 20 61 6c 72 65 61 64 79 20 6d 61 72 6b 65    64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69  | es.already.marked."...(interacti | 
| 7e420 |  76 65 20 22 70 22 29 0a 20 20 28 6c 65 74 20 28    65 78 74 65 6e 64 65 64 29 0a 20 20 20 20 28 77  | ve."p")...(let.(extended).....(w | 
| 7e440 |  68 65 6e 20 28 61 6e 64 20 61 6c 6c 6f 77 2d 65    78 74 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20  | hen.(and.allow-extend........... | 
| 7e460 |  20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 65    71 20 6c 61 73 74 2d 63 6f 6d 6d 61 6e 64 20 74  | .....(or.(and.(eq.last-command.t | 
| 7e480 |  68 69 73 2d 63 6f 6d 6d 61 6e 64 29 20 28 6d 61    72 6b 20 74 29 29 0a 20 20 20 20 20 20 20 20 20  | his-command).(mark.t)).......... | 
| 7e4a0 |  20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 74    72 61 6e 73 69 65 6e 74 2d 6d 61 72 6b 2d 6d 6f  | ..........(and.transient-mark-mo | 
| 7e4c0 |  64 65 20 6d 61 72 6b 2d 61 63 74 69 76 65 29 29    29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73  | de.mark-active))).......(let.((s | 
| 7e4e0 |  69 62 20 28 73 61 76 65 2d 65 78 63 75 72 73 69    6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ib.(save-excursion.............. | 
| 7e500 |  20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72    20 28 6d 61 72 6b 29 29 0a 20 20 20 20 20 20 20  | ......(goto-char.(mark))........ | 
| 7e520 |  20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20    28 6a 73 32 2d 6d 6f 64 65 2d 66 6f 72 77 61 72  | ............(if.(js2-mode-forwar | 
| 7e540 |  64 2d 73 69 62 6c 69 6e 67 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | d-sibling)...................... | 
| 7e560 |  20 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20    20 20 20 20 20 20 28 69 66 20 73 69 62 0a 20 20  | ..(point))))).........(if.sib... | 
| 7e580 |  20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ..........(progn...............( | 
| 7e5a0 |  73 65 74 2d 6d 61 72 6b 20 73 69 62 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | set-mark.sib)...............(set | 
| 7e5c0 |  71 20 65 78 74 65 6e 64 65 64 20 74 29 29 0a 20    20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 20 6d  | q.extended.t))...........;;.no.m | 
| 7e5e0 |  6f 72 65 20 73 69 62 6c 69 6e 67 73 20 2d 20 74    72 79 20 65 78 74 65 6e 64 69 6e 67 20 74 6f 20  | ore.siblings.-.try.extending.to. | 
| 7e600 |  65 6e 63 6c 6f 73 69 6e 67 20 6e 6f 64 65 0a 20    20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63  | enclosing.node...........(goto-c | 
| 7e620 |  68 61 72 20 28 6d 61 72 6b 20 74 29 29 29 29 29    0a 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 65  | har.(mark.t)))))....(when.(not.e | 
| 7e640 |  78 74 65 6e 64 65 64 29 0a 20 20 20 20 20 28 6c    65 74 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e  | xtended)......(let.((node.(js2-n | 
| 7e660 |  6f 64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 70 6f    69 6e 74 29 20 74 29 29 20 3b 20 73 6b 69 70 20  | ode-at-point.(point).t)).;.skip. | 
| 7e680 |  63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20    20 20 20 20 61 73 74 20 66 6e 20 73 74 6d 74 20  | comments............ast.fn.stmt. | 
| 7e6a0 |  70 61 72 65 6e 74 20 62 65 67 20 65 6e 64 29 0a    20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6a 73  | parent.beg.end)........(when.(js | 
| 7e6c0 |  32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 6e 6f 64    65 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74  | 2-ast-root-p.node)..........(set | 
| 7e6e0 |  71 20 61 73 74 20 6e 6f 64 65 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 28  | q.ast.node................node.( | 
| 7e700 |  6f 72 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69 6e    64 2d 63 68 69 6c 64 2d 61 66 74 65 72 20 28 70  | or.(js2-node-find-child-after.(p | 
| 7e720 |  6f 69 6e 74 29 20 6e 6f 64 65 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | oint).node)..................... | 
| 7e740 |  20 20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 66 69    6e 64 2d 63 68 69 6c 64 2d 62 65 66 6f 72 65 20  | ....(js2-node-find-child-before. | 
| 7e760 |  28 70 6f 69 6e 74 29 20 6e 6f 64 65 29 29 29 29    0a 20 20 20 20 20 20 20 3b 3b 20 6f 6e 6c 79 20  | (point).node))))........;;.only. | 
| 7e780 |  6d 61 72 6b 20 77 68 6f 6c 65 20 62 75 66 66 65    72 20 69 66 20 77 65 20 63 61 6e 27 74 20 66 69  | mark.whole.buffer.if.we.can't.fi | 
| 7e7a0 |  6e 64 20 61 6e 79 20 63 68 69 6c 64 72 65 6e 0a    20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c  | nd.any.children........(if.(null | 
| 7e7c0 |  20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20    20 20 28 73 65 74 71 20 6e 6f 64 65 20 61 73 74  | .node)............(setq.node.ast | 
| 7e7e0 |  29 29 0a 20 20 20 20 20 20 20 28 69 66 20 28 6a    73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65  | ))........(if.(js2-function-node | 
| 7e800 |  2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20    20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e 74  | -p.node)............(setq.parent | 
| 7e820 |  20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20    28 73 65 74 71 20 66 6e 20 28 6a 73 32 2d 6d 6f  | .node)..........(setq.fn.(js2-mo | 
| 7e840 |  64 65 2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e    67 2d 66 6e 20 6e 6f 64 65 29 0a 20 20 20 20 20  | de-find-enclosing-fn.node)...... | 
| 7e860 |  20 20 20 20 20 20 20 20 20 20 73 74 6d 74 20 28    69 66 20 28 6f 72 20 28 6e 75 6c 6c 20 66 6e 29  | ..........stmt.(if.(or.(null.fn) | 
| 7e880 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73  | .............................(js | 
| 7e8a0 |  32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 66 6e 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | 2-ast-root-p.fn))............... | 
| 7e8c0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6d    6f 64 65 2d 66 69 6e 64 2d 66 69 72 73 74 2d 73  | ..........(js2-mode-find-first-s | 
| 7e8e0 |  74 6d 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 70 61 72 65 6e 74  | tmt.node))................parent | 
| 7e900 |  20 28 6f 72 20 73 74 6d 74 20 66 6e 29 29 29 0a    20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67  | .(or.stmt.fn)))........(setq.beg | 
| 7e920 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70    6f 73 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20  | .(js2-node-abs-pos.parent)...... | 
| 7e940 |  20 20 20 20 20 20 20 20 65 6e 64 20 28 2b 20 62    65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65 6e  | ........end.(+.beg.(js2-node-len | 
| 7e960 |  20 70 61 72 65 6e 74 29 29 29 0a 20 20 20 20 20    20 20 28 70 75 73 68 2d 6d 61 72 6b 20 62 65 67  | .parent)))........(push-mark.beg | 
| 7e980 |  29 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63    68 61 72 20 65 6e 64 29 0a 20 20 20 20 20 20 20  | )........(goto-char.end)........ | 
| 7e9a0 |  28 65 78 63 68 61 6e 67 65 2d 70 6f 69 6e 74 2d    61 6e 64 2d 6d 61 72 6b 29 29 29 29 29 0a 0a 28  | (exchange-point-and-mark)))))..( | 
| 7e9c0 |  64 65 66 75 6e 20 6a 73 32 2d 6e 61 72 72 6f 77    2d 74 6f 2d 64 65 66 75 6e 20 28 29 0a 20 20 22  | defun.js2-narrow-to-defun.()..." | 
| 7e9e0 |  4e 61 72 72 6f 77 20 74 6f 20 74 68 65 20 66 75    6e 63 74 69 6f 6e 20 65 6e 63 6c 6f 73 69 6e 67  | Narrow.to.the.function.enclosing | 
| 7ea00 |  20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65    72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a  | .point."...(interactive)...(let* | 
| 7ea20 |  20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64    65 2d 61 74 2d 70 6f 69 6e 74 20 28 70 6f 69 6e  | .((node.(js2-node-at-point.(poin | 
| 7ea40 |  74 29 20 74 29 29 20 20 3b 20 73 6b 69 70 20 63    6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20  | t).t))..;.skip.comments......... | 
| 7ea60 |  20 28 66 6e 20 28 69 66 20 28 6a 73 32 2d 73 63    72 69 70 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65  | .(fn.(if.(js2-script-node-p.node | 
| 7ea80 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20  | )..................node......... | 
| 7eaa0 |  20 20 20 20 20 20 20 28 6a 73 32 2d 6d 6f 64 65    2d 66 69 6e 64 2d 65 6e 63 6c 6f 73 69 6e 67 2d  | .......(js2-mode-find-enclosing- | 
| 7eac0 |  66 6e 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20    20 20 20 20 28 62 65 67 20 28 6a 73 32 2d 6e 6f  | fn.node)))..........(beg.(js2-no | 
| 7eae0 |  64 65 2d 61 62 73 2d 70 6f 73 20 66 6e 29 29 29    0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6a 73  | de-abs-pos.fn))).....(unless.(js | 
| 7eb00 |  32 2d 61 73 74 2d 72 6f 6f 74 2d 70 20 66 6e 29    0a 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74  | 2-ast-root-p.fn).......(narrow-t | 
| 7eb20 |  6f 2d 72 65 67 69 6f 6e 20 62 65 67 20 28 2b 20    62 65 67 20 28 6a 73 32 2d 6e 6f 64 65 2d 6c 65  | o-region.beg.(+.beg.(js2-node-le | 
| 7eb40 |  6e 20 66 6e 29 29 29 29 29 29 0a 0a 28 64 65 66    75 6e 20 6a 73 32 2d 6a 75 6d 70 2d 74 6f 2d 64  | n.fn))))))..(defun.js2-jump-to-d | 
| 7eb60 |  65 66 69 6e 69 74 69 6f 6e 20 28 26 6f 70 74 69    6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 4a 75 6d  | efinition.(&optional.arg)..."Jum | 
| 7eb80 |  70 20 74 6f 20 74 68 65 20 64 65 66 69 6e 69 74    69 6f 6e 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74  | p.to.the.definition.of.an.object | 
| 7eba0 |  27 73 20 70 72 6f 70 65 72 74 79 2c 20 76 61 72    69 61 62 6c 65 20 6f 72 20 66 75 6e 63 74 69 6f  | 's.property,.variable.or.functio | 
| 7ebc0 |  6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69    76 65 20 22 50 22 29 0a 20 20 28 69 66 20 28 65  | n."...(interactive."P")...(if.(e | 
| 7ebe0 |  76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65    20 28 66 62 6f 75 6e 64 70 20 27 78 72 65 66 2d  | val-when-compile.(fboundp.'xref- | 
| 7ec00 |  70 75 73 68 2d 6d 61 72 6b 65 72 2d 73 74 61 63    6b 29 29 0a 20 20 20 20 20 20 28 78 72 65 66 2d  | push-marker-stack)).......(xref- | 
| 7ec20 |  70 75 73 68 2d 6d 61 72 6b 65 72 2d 73 74 61 63    6b 29 0a 20 20 20 20 28 72 69 6e 67 2d 69 6e 73  | push-marker-stack).....(ring-ins | 
| 7ec40 |  65 72 74 20 66 69 6e 64 2d 74 61 67 2d 6d 61 72    6b 65 72 2d 72 69 6e 67 20 28 70 6f 69 6e 74 2d  | ert.find-tag-marker-ring.(point- | 
| 7ec60 |  6d 61 72 6b 65 72 29 29 29 0a 20 20 28 6a 73 32    2d 72 65 70 61 72 73 65 29 0a 20 20 28 6c 65 74  | marker)))...(js2-reparse)...(let | 
| 7ec80 |  2a 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f    64 65 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20  | *.((node.(js2-node-at-point))... | 
| 7eca0 |  20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20 28    6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74 20  | .......(parent.(js2-node-parent. | 
| 7ecc0 |  6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20    28 6e 61 6d 65 73 20 28 69 66 20 28 6a 73 32 2d  | node))..........(names.(if.(js2- | 
| 7ece0 |  70 72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20    70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20  | prop-get-node-p.parent)......... | 
| 7ed00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 76    65 72 73 65 20 28 6c 65 74 20 28 28 74 65 6d 70  | ............(reverse.(let.((temp | 
| 7ed20 |  20 28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65    73 74 65 64 2d 70 72 6f 70 2d 67 65 74 20 70 61  | .(js2-compute-nested-prop-get.pa | 
| 7ed40 |  72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | rent)))......................... | 
| 7ed60 |  20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20    66 6f 72 20 6e 20 69 6e 20 74 65 6d 70 0a 20 20  | .......(cl-loop.for.n.in.temp... | 
| 7ed80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 7eda0 |  20 20 20 20 20 20 77 69 74 68 20 72 65 73 75 6c    74 20 3d 20 27 28 29 0a 20 20 20 20 20 20 20 20  | ......with.result.=.'()......... | 
| 7edc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 7ede0 |  64 6f 20 28 70 75 73 68 20 6e 20 72 65 73 75 6c    74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | do.(push.n.result).............. | 
| 7ee00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 75 6e 74 69 6c  | ...........................until | 
| 7ee20 |  20 28 65 71 75 61 6c 20 6e 6f 64 65 20 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(equal.node.n)................. | 
| 7ee40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20  | ........................finally. | 
| 7ee60 |  72 65 74 75 72 6e 20 72 65 73 75 6c 74 29 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 6e 6f 64 65  | return.result)))))..........node | 
| 7ee80 |  2d 69 6e 69 74 29 0a 20 20 20 20 28 75 6e 6c 65    73 73 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d  | -init).....(unless.(and.(js2-nam | 
| 7eea0 |  65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-node-p.node).................. | 
| 7eec0 |  28 6e 6f 74 20 28 6a 73 32 2d 76 61 72 2d 69 6e    69 74 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74  | (not.(js2-var-init-node-p.parent | 
| 7eee0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6e 6f 74 20 28 6a 73 32 2d 66 75  | ))..................(not.(js2-fu | 
| 7ef00 |  6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 70 61    72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 65  | nction-node-p.parent))).......(e | 
| 7ef20 |  72 72 6f 72 20 22 4e 6f 64 65 20 69 73 20 6e 6f    74 20 61 20 73 75 70 70 6f 72 74 65 64 20 6a 75  | rror."Node.is.not.a.supported.ju | 
| 7ef40 |  6d 70 20 6e 6f 64 65 22 29 29 0a 20 20 20 20 28    70 75 73 68 20 28 6f 72 20 28 61 6e 64 20 6e 61  | mp.node")).....(push.(or.(and.na | 
| 7ef60 |  6d 65 73 20 28 70 6f 70 20 6e 61 6d 65 73 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | mes.(pop.names))...............( | 
| 7ef80 |  75 6e 6c 65 73 73 20 28 61 6e 64 20 28 6a 73 32    2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64  | unless.(and.(js2-object-prop-nod | 
| 7efa0 |  65 2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-p.parent)..................... | 
| 7efc0 |  20 20 20 20 20 20 20 28 65 71 20 6e 6f 64 65 20    28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70  | .......(eq.node.(js2-object-prop | 
| 7efe0 |  2d 6e 6f 64 65 2d 6c 65 66 74 20 70 61 72 65 6e    74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | -node-left.parent))............. | 
| 7f000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6e 6f 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 67 65  | ...............(not.(js2-node-ge | 
| 7f020 |  74 2d 70 72 6f 70 20 70 61 72 65 6e 74 20 27 53    48 4f 52 54 48 41 4e 44 29 29 29 0a 20 20 20 20  | t-prop.parent.'SHORTHAND)))..... | 
| 7f040 |  20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............node)............... | 
| 7f060 |  28 65 72 72 6f 72 20 22 4e 6f 64 65 20 69 73 20    6e 6f 74 20 61 20 73 75 70 70 6f 72 74 65 64 20  | (error."Node.is.not.a.supported. | 
| 7f080 |  6a 75 6d 70 20 6e 6f 64 65 22 29 29 20 6e 61 6d    65 73 29 0a 20 20 20 20 28 73 65 74 71 20 6e 6f  | jump.node")).names).....(setq.no | 
| 7f0a0 |  64 65 2d 69 6e 69 74 20 28 6a 73 32 2d 73 65 61    72 63 68 2d 73 63 6f 70 65 20 6e 6f 64 65 20 6e  | de-init.(js2-search-scope.node.n | 
| 7f0c0 |  61 6d 65 73 29 29 0a 0a 20 20 20 20 3b 3b 20 74    6f 64 6f 3a 20 64 69 73 70 6c 61 79 20 6c 69 73  | ames))......;;.todo:.display.lis | 
| 7f0e0 |  74 20 6f 66 20 72 65 73 75 6c 74 73 20 69 6e 20    62 75 66 66 65 72 0a 20 20 20 20 3b 3b 20 74 6f  | t.of.results.in.buffer.....;;.to | 
| 7f100 |  64 6f 3a 20 67 72 6f 75 70 20 66 6f 75 6e 64 20    72 65 66 65 72 65 6e 63 65 73 20 62 79 20 62 75  | do:.group.found.references.by.bu | 
| 7f120 |  66 66 65 72 0a 20 20 20 20 28 75 6e 6c 65 73 73    20 6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20 20 20  | ffer.....(unless.node-init...... | 
| 7f140 |  20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66    65 72 0a 20 20 20 20 20 20 20 28 63 61 74 63 68  | .(switch-to-buffer........(catch | 
| 7f160 |  20 27 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20    20 28 75 6e 6c 65 73 73 20 61 72 67 0a 20 20 20  | .'found..........(unless.arg.... | 
| 7f180 |  20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c    61 6d 62 64 61 20 28 62 29 0a 20 20 20 20 20 20  | ........(mapc.(lambda.(b)....... | 
| 7f1a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69    74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65  | .............(with-current-buffe | 
| 7f1c0 |  72 20 62 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28  | r.b......................(when.( | 
| 7f1e0 |  64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27    6a 73 32 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20  | derived-mode-p.'js2-mode)....... | 
| 7f200 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69 74  | .................(setq.node-init | 
| 7f220 |  20 28 6a 73 32 2d 73 65 61 72 63 68 2d 73 63 6f    70 65 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74 20  | .(js2-search-scope.js2-mode-ast. | 
| 7f240 |  6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | names))........................( | 
| 7f260 |  69 66 20 6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | if.node-init.................... | 
| 7f280 |  20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27    66 6f 75 6e 64 20 62 29 29 29 29 29 0a 20 20 20  | ........(throw.'found.b))))).... | 
| 7f2a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62    75 66 66 65 72 2d 6c 69 73 74 29 29 29 0a 20 20  | ..............(buffer-list)))... | 
| 7f2c0 |  20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 20 20    20 20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69  | .......nil))).....(setq.node-ini | 
| 7f2e0 |  74 20 28 69 66 20 28 6c 69 73 74 70 20 6e 6f 64    65 2d 69 6e 69 74 29 20 28 63 61 72 20 6e 6f 64  | t.(if.(listp.node-init).(car.nod | 
| 7f300 |  65 2d 69 6e 69 74 29 20 6e 6f 64 65 2d 69 6e 69    74 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20  | e-init).node-init)).....(unless. | 
| 7f320 |  6e 6f 64 65 2d 69 6e 69 74 0a 20 20 20 20 20 20    28 70 6f 70 2d 74 61 67 2d 6d 61 72 6b 29 0a 20  | node-init.......(pop-tag-mark).. | 
| 7f340 |  20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20    6a 75 6d 70 20 6c 6f 63 61 74 69 6f 6e 20 66 6f  | .....(error."No.jump.location.fo | 
| 7f360 |  75 6e 64 22 29 29 0a 20 20 20 20 28 67 6f 74 6f    2d 63 68 61 72 20 28 6a 73 32 2d 6e 6f 64 65 2d  | und")).....(goto-char.(js2-node- | 
| 7f380 |  61 62 73 2d 70 6f 73 20 6e 6f 64 65 2d 69 6e 69    74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | abs-pos.node-init))))..(defun.js | 
| 7f3a0 |  32 2d 73 65 61 72 63 68 2d 6f 62 6a 65 63 74 20    28 6e 6f 64 65 20 6e 61 6d 65 2d 6e 6f 64 65 29  | 2-search-object.(node.name-node) | 
| 7f3c0 |  0a 20 20 22 43 68 65 63 6b 20 69 66 20 6f 62 6a    65 63 74 20 4e 4f 44 45 20 63 6f 6e 74 61 69 6e  | ..."Check.if.object.NODE.contain | 
| 7f3e0 |  73 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 20 4e    41 4d 45 2d 4e 4f 44 45 2e 22 0a 20 20 28 63 6c  | s.element.with.NAME-NODE."...(cl | 
| 7f400 |  2d 61 73 73 65 72 74 20 28 6a 73 32 2d 6f 62 6a    65 63 74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | -assert.(js2-object-node-p.node) | 
| 7f420 |  29 0a 20 20 3b 3b 20 4f 6e 6c 79 20 73 75 70 70    6f 72 74 20 6e 61 6d 65 2d 6e 6f 64 65 20 61 6e  | )...;;.Only.support.name-node.an | 
| 7f440 |  64 20 6e 6f 64 65 73 20 66 6f 72 20 74 68 65 20    74 69 6d 65 20 62 65 69 6e 67 0a 20 20 28 63 6c  | d.nodes.for.the.time.being...(cl | 
| 7f460 |  2d 6c 6f 6f 70 20 66 6f 72 20 65 6c 65 6d 20 69    6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f  | -loop.for.elem.in.(js2-object-no | 
| 7f480 |  64 65 2d 65 6c 65 6d 73 20 6e 6f 64 65 29 0a 20    20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6c 65  | de-elems.node)............for.le | 
| 7f4a0 |  66 74 20 3d 20 28 6a 73 32 2d 69 6e 66 69 78 2d    6e 6f 64 65 2d 6c 65 66 74 20 65 6c 65 6d 29 0a  | ft.=.(js2-infix-node-left.elem). | 
| 7f4c0 |  20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6f    72 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d 65  | ...........if.(or.(and.(js2-name | 
| 7f4e0 |  2d 6e 6f 64 65 2d 70 20 6c 65 66 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -node-p.left)................... | 
| 7f500 |  20 20 20 20 20 28 65 71 75 61 6c 20 28 6a 73 32    2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20  | .....(equal.(js2-name-node-name. | 
| 7f520 |  6e 61 6d 65 2d 6e 6f 64 65 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | name-node)...................... | 
| 7f540 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6e 61    6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20 6c 65 66  | .........(js2-name-node-name.lef | 
| 7f560 |  74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 61 6e 64 20 28 6a 73 32  | t)))...................(and.(js2 | 
| 7f580 |  2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6c    65 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -string-node-p.left)............ | 
| 7f5a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72    69 6e 67 3d 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e  | ............(string=.(js2-name-n | 
| 7f5c0 |  6f 64 65 2d 6e 61 6d 65 20 6e 61 6d 65 2d 6e 6f    64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ode-name.name-node)............. | 
| 7f5e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d  | ....................(js2-string- | 
| 7f600 |  6e 6f 64 65 2d 76 61 6c 75 65 20 6c 65 66 74 29    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 72  | node-value.left))))............r | 
| 7f620 |  65 74 75 72 6e 20 65 6c 65 6d 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 73 65 61 72 63 68 2d  | eturn.elem))..(defun.js2-search- | 
| 7f640 |  6f 62 6a 65 63 74 2d 66 6f 72 2d 70 72 6f 70 20    28 6f 62 6a 65 63 74 20 70 72 6f 70 2d 6e 61 6d  | object-for-prop.(object.prop-nam | 
| 7f660 |  65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f    64 65 20 69 6e 20 4f 42 4a 45 43 54 20 74 68 61  | es)..."Return.node.in.OBJECT.tha | 
| 7f680 |  74 20 6d 61 74 63 68 65 73 20 50 52 4f 50 2d 4e    41 4d 45 53 20 6f 72 20 6e 69 6c 2e 0a 50 52 4f  | t.matches.PROP-NAMES.or.nil..PRO | 
| 7f6a0 |  50 2d 4e 41 4d 45 53 20 69 73 20 61 20 6c 69 73    74 20 6f 66 20 76 61 6c 75 65 73 20 72 65 70 72  | P-NAMES.is.a.list.of.values.repr | 
| 7f6c0 |  65 73 65 6e 74 69 6e 67 20 61 20 70 61 74 68 20    74 6f 20 61 20 76 61 6c 75 65 20 69 6e 20 4f 42  | esenting.a.path.to.a.value.in.OB | 
| 7f6e0 |  4a 45 43 54 2e 0a 69 2e 65 2e 20 28 5c 5c 3d 27    6e 61 6d 65 5c 5c 3d 27 20 5c 5c 3d 27 76 61 6c  | JECT..i.e..(\\='name\\='.\\='val | 
| 7f700 |  75 65 5c 5c 3d 27 29 20 3d 20 7b 6e 61 6d 65 20    3a 20 7b 20 76 61 6c 75 65 3a 20 33 7d 7d 22 0a  | ue\\=').=.{name.:.{.value:.3}}". | 
| 7f720 |  20 20 28 6c 65 74 20 28 6e 6f 64 65 0a 20 20 20    20 20 20 20 20 28 74 65 6d 70 2d 6f 62 6a 65 63  | ..(let.(node.........(temp-objec | 
| 7f740 |  74 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20    20 20 28 74 65 6d 70 20 74 29 20 3b 74 65 6d 70  | t.object).........(temp.t).;temp | 
| 7f760 |  6f 72 61 79 20 6e 6f 64 65 0a 20 20 20 20 20 20    20 20 28 6e 61 6d 65 73 20 70 72 6f 70 2d 6e 61  | oray.node.........(names.prop-na | 
| 7f780 |  6d 65 73 29 29 0a 20 20 20 20 28 77 68 69 6c 65    20 28 61 6e 64 20 74 65 6d 70 20 6e 61 6d 65 73  | mes)).....(while.(and.temp.names | 
| 7f7a0 |  20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64    65 2d 70 20 74 65 6d 70 2d 6f 62 6a 65 63 74 29  | .(js2-object-node-p.temp-object) | 
| 7f7c0 |  29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 65    6d 70 20 28 6a 73 32 2d 73 65 61 72 63 68 2d 6f  | ).......(setq.temp.(js2-search-o | 
| 7f7e0 |  62 6a 65 63 74 20 74 65 6d 70 2d 6f 62 6a 65 63    74 20 28 70 6f 70 20 6e 61 6d 65 73 29 29 29 0a  | bject.temp-object.(pop.names))). | 
| 7f800 |  20 20 20 20 20 20 28 61 6e 64 20 28 73 65 74 71    20 6e 6f 64 65 20 74 65 6d 70 29 0a 20 20 20 20  | ......(and.(setq.node.temp)..... | 
| 7f820 |  20 20 20 20 20 28 73 65 74 71 20 74 65 6d 70 2d    6f 62 6a 65 63 74 20 28 6a 73 32 2d 69 6e 66 69  | .....(setq.temp-object.(js2-infi | 
| 7f840 |  78 2d 6e 6f 64 65 2d 72 69 67 68 74 20 74 65 6d    70 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73  | x-node-right.temp)))).....(unles | 
| 7f860 |  73 20 6e 61 6d 65 73 20 6e 6f 64 65 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 73 65 61 72  | s.names.node)))..(defun.js2-sear | 
| 7f880 |  63 68 2d 73 63 6f 70 65 20 28 6e 6f 64 65 20 6e    61 6d 65 73 29 0a 20 20 22 53 65 61 72 63 68 65  | ch-scope.(node.names)..."Searche | 
| 7f8a0 |  73 20 4e 4f 44 45 20 73 63 6f 70 65 20 66 6f 72    20 6a 75 6d 70 20 6c 6f 63 61 74 69 6f 6e 20 6d  | s.NODE.scope.for.jump.location.m | 
| 7f8c0 |  61 74 63 68 69 6e 67 20 4e 41 4d 45 53 2e 0a 4e    41 4d 45 53 20 69 73 20 61 20 6c 69 73 74 20 6f  | atching.NAMES..NAMES.is.a.list.o | 
| 7f8e0 |  66 20 70 72 6f 70 65 72 74 79 20 76 61 6c 75 65    73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 2e  | f.property.values.to.search.for. | 
| 7f900 |  20 46 6f 72 20 66 75 6e 63 74 69 6f 6e 73 0a 61    6e 64 20 76 61 72 69 61 62 6c 65 73 20 4e 41 4d  | .For.functions.and.variables.NAM | 
| 7f920 |  45 53 20 77 69 6c 6c 20 63 6f 6e 74 61 69 6e 20    6f 6e 65 20 65 6c 65 6d 65 6e 74 2e 22 0a 20 20  | ES.will.contain.one.element."... | 
| 7f940 |  28 6c 65 74 20 28 6e 6f 64 65 2d 69 6e 69 74 20    76 61 6c 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20  | (let.(node-init.val).....(cond.. | 
| 7f960 |  20 20 20 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e    6f 64 65 2d 70 20 28 63 61 72 20 6e 61 6d 65 73  | ....((js2-name-node-p.(car.names | 
| 7f980 |  29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 76    61 6c 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64  | )).......(setq.val.(js2-name-nod | 
| 7f9a0 |  65 2d 6e 61 6d 65 20 28 63 61 72 20 6e 61 6d 65    73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71  | e-name.(car.names))).......(setq | 
| 7f9c0 |  20 6e 6f 64 65 2d 69 6e 69 74 20 28 6a 73 32 2d    67 65 74 2d 73 79 6d 62 6f 6c 2d 64 65 63 6c 61  | .node-init.(js2-get-symbol-decla | 
| 7f9e0 |  72 61 74 69 6f 6e 20 6e 6f 64 65 20 76 61 6c 29    29 29 0a 20 20 20 20 20 28 28 61 6e 64 20 28 6a  | ration.node.val)))......((and.(j | 
| 7fa00 |  73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64 65 2d    70 20 28 63 61 72 20 6e 61 6d 65 73 29 29 0a 20  | s2-keyword-node-p.(car.names)).. | 
| 7fa20 |  20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c    20 28 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f  | ..........(equal.(js2-keyword-no | 
| 7fa40 |  64 65 2d 74 79 70 65 20 28 63 61 72 20 6e 61 6d    65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | de-type.(car.names))............ | 
| 7fa60 |  20 20 20 20 20 20 20 6a 73 32 2d 54 48 49 53 29    29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28  | .......js2-THIS)).......(let*.(( | 
| 7fa80 |  73 63 6f 70 65 20 28 6a 73 32 2d 6e 6f 64 65 2d    67 65 74 2d 65 6e 63 6c 6f 73 69 6e 67 2d 73 63  | scope.(js2-node-get-enclosing-sc | 
| 7faa0 |  6f 70 65 20 6e 6f 64 65 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 70 61 72 65 6e 74 20  | ope.node))..............(parent. | 
| 7fac0 |  28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e 74    20 73 63 6f 70 65 29 29 29 0a 20 20 20 20 20 20  | (js2-node-parent.scope)))....... | 
| 7fae0 |  20 20 28 77 68 65 6e 20 28 6f 72 20 28 6a 73 32    2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 2d 70 20 70  | ..(when.(or.(js2-method-node-p.p | 
| 7fb00 |  61 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 6f 62  | arent)...................(js2-ob | 
| 7fb20 |  6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 70    20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20  | ject-prop-node-p.parent))....... | 
| 7fb40 |  20 20 20 20 3b 3b 20 63 6c 61 73 73 20 6f 72 20    6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20  | ....;;.class.or.object.......... | 
| 7fb60 |  20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69 74    20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72 65 6e  | .(setq.node-init.(js2-node-paren | 
| 7fb80 |  74 20 70 61 72 65 6e 74 29 29 29 29 29 29 0a 0a    20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65  | t.parent))))))......(when.(>.(le | 
| 7fba0 |  6e 67 74 68 20 6e 61 6d 65 73 29 20 31 29 0a 20    20 20 20 20 20 28 77 68 65 6e 20 6e 6f 64 65 2d  | ngth.names).1).......(when.node- | 
| 7fbc0 |  69 6e 69 74 0a 20 20 20 20 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6a 73  | init.........(cond..........((js | 
| 7fbe0 |  32 2d 6e 61 6d 65 2d 6e 6f 64 65 2d 70 20 28 63    61 72 20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20  | 2-name-node-p.(car.names))...... | 
| 7fc00 |  20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 76 61    72 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 20  | .....;;.Check.var.declarations.. | 
| 7fc20 |  20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28    73 74 72 69 6e 67 3d 20 76 61 6c 20 28 6a 73 32  | .........(when.(string=.val.(js2 | 
| 7fc40 |  2d 6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 20    6e 6f 64 65 2d 69 6e 69 74 29 29 0a 20 20 20 20  | -name-node-name.node-init))..... | 
| 7fc60 |  20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70    61 72 65 6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d  | ........(let.((parent.(js2-node- | 
| 7fc80 |  70 61 72 65 6e 74 20 6e 6f 64 65 2d 69 6e 69 74    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | parent.node-init)))............. | 
| 7fca0 |  20 20 28 73 65 74 71 20 6e 6f 64 65 2d 69 6e 69    74 20 28 77 68 65 6e 20 28 6a 73 32 2d 76 61 72  | ..(setq.node-init.(when.(js2-var | 
| 7fcc0 |  2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 70 61 72    65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -init-node-p.parent)............ | 
| 7fce0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 73 65 61 72 63 68  | .....................(js2-search | 
| 7fd00 |  2d 6f 62 6a 65 63 74 2d 66 6f 72 2d 70 72 6f 70    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -object-for-prop................ | 
| 7fd20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d  | ..................(js2-var-init- | 
| 7fd40 |  6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72    20 70 61 72 65 6e 74 29 0a 20 20 20 20 20 20 20  | node-initializer.parent)........ | 
| 7fd60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 6e  | ..........................(cdr.n | 
| 7fd80 |  61 6d 65 73 29 29 29 29 29 29 29 0a 20 20 20 20    20 20 20 20 20 28 28 6a 73 32 2d 6f 62 6a 65 63  | ames)))))))..........((js2-objec | 
| 7fda0 |  74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 2d 69 6e    69 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73  | t-node-p.node-init)...........(s | 
| 7fdc0 |  65 74 71 20 6e 6f 64 65 2d 69 6e 69 74 20 28 6a    73 32 2d 73 65 61 72 63 68 2d 6f 62 6a 65 63 74  | etq.node-init.(js2-search-object | 
| 7fde0 |  2d 66 6f 72 2d 70 72 6f 70 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -for-prop....................... | 
| 7fe00 |  20 20 20 20 20 6e 6f 64 65 2d 69 6e 69 74 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .....node-init.................. | 
| 7fe20 |  20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 6e    61 6d 65 73 29 29 29 29 29 29 0a 0a 20 20 20 20  | ..........(cdr.names))))))...... | 
| 7fe40 |  20 20 3b 3b 20 43 68 65 63 6b 20 61 6c 6c 20 61    73 73 69 67 6e 20 6e 6f 64 65 73 0a 20 20 20 20  | ..;;.Check.all.assign.nodes..... | 
| 7fe60 |  20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74    0a 20 20 20 20 20 20 20 6a 73 32 2d 6d 6f 64 65  | ..(js2-visit-ast........js2-mode | 
| 7fe80 |  2d 61 73 74 0a 20 20 20 20 20 20 20 28 6c 61 6d    62 64 61 20 28 6e 6f 64 65 20 65 6e 64 70 29 0a  | -ast........(lambda.(node.endp). | 
| 7fea0 |  20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73    20 65 6e 64 70 0a 20 20 20 20 20 20 20 20 20 20  | .........(unless.endp........... | 
| 7fec0 |  20 28 69 66 20 28 6a 73 32 2d 61 73 73 69 67 6e    2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20  | .(if.(js2-assign-node-p.node)... | 
| 7fee0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65    74 20 28 28 6c 65 66 74 20 28 6a 73 32 2d 61 73  | .............(let.((left.(js2-as | 
| 7ff00 |  73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e    6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | sign-node-left.node))........... | 
| 7ff20 |  20 20 20 20 20 20 20 20 20 20 20 28 72 69 67 68    74 20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f  | ...........(right.(js2-assign-no | 
| 7ff40 |  64 65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | de-right.node))................. | 
| 7ff60 |  20 20 20 20 20 28 74 65 6d 70 2d 6e 61 6d 65 73    20 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20  | .....(temp-names.names))........ | 
| 7ff80 |  20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20    28 6a 73 32 2d 70 72 6f 70 2d 67 65 74 2d 6e 6f  | ..........(when.(js2-prop-get-no | 
| 7ffa0 |  64 65 2d 70 20 6c 65 66 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | de-p.left)....................(l | 
| 7ffc0 |  65 74 2a 20 28 28 70 72 6f 70 2d 6c 69 73 74 20    28 6a 73 32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73  | et*.((prop-list.(js2-compute-nes | 
| 7ffe0 |  74 65 64 2d 70 72 6f 70 2d 67 65 74 20 6c 65 66    74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ted-prop-get.left))............. | 
| 80000 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b    20 27 74 68 69 73 27 20 6f 72 20 27 73 75 70 65  | ..............;;.'this'.or.'supe | 
| 80020 |  72 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 61  | r'...........................(ta | 
| 80040 |  72 67 65 74 2d 69 73 2d 6b 65 79 77 6f 72 64 20    28 6a 73 32 2d 6b 65 79 77 6f 72 64 2d 6e 6f 64  | rget-is-keyword.(js2-keyword-nod | 
| 80060 |  65 2d 70 20 28 63 61 72 20 74 65 6d 70 2d 6e 61    6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20  | e-p.(car.temp-names))).......... | 
| 80080 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 5f 20 28 77 68 65 6e 20 74 61 72 67 65 74  | .................(_.(when.target | 
| 800a0 |  2d 69 73 2d 6b 65 79 77 6f 72 64 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -is-keyword..................... | 
| 800c0 |  20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20    74 65 6d 70 2d 6e 61 6d 65 73 29 29 29 0a 20 20  | ...........(pop.temp-names)))... | 
| 800e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 66 6f 75 6e 64 20 28  | ........................(found.( | 
| 80100 |  75 6e 6c 65 73 73 20 74 61 72 67 65 74 2d 69 73    2d 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20  | unless.target-is-keyword........ | 
| 80120 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d  | ............................(cl- | 
| 80140 |  6c 6f 6f 70 20 66 6f 72 20 70 72 6f 70 20 69 6e    20 70 72 6f 70 2d 6c 69 73 74 0a 20 20 20 20 20  | loop.for.prop.in.prop-list...... | 
| 80160 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 80180 |  20 20 20 20 20 20 20 75 6e 74 69 6c 20 28 6e 6f    74 20 28 73 74 72 69 6e 67 3d 20 28 6a 73 32 2d  | .......until.(not.(string=.(js2- | 
| 801a0 |  6e 61 6d 65 2d 6e 6f 64 65 2d 6e 61 6d 65 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | name-node-name.................. | 
| 801c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 801e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 70 6f 70 20 74 65 6d 70 2d 6e 61 6d 65 73 29  | ................(pop.temp-names) | 
| 80200 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 80220 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 80240 |  20 20 28 61 6e 64 20 28 6a 73 32 2d 6e 61 6d 65    2d 6e 6f 64 65 2d 70 20 70 72 6f 70 29 0a 20 20  | ..(and.(js2-name-node-p.prop)... | 
| 80260 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 80280 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 802a0 |  20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64    65 2d 6e 61 6d 65 20 70 72 6f 70 29 29 29 29 0a  | ...(js2-name-node-name.prop)))). | 
| 802c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 802e0 |  20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28    6e 6f 74 20 74 65 6d 70 2d 6e 61 6d 65 73 29 20  | ............if.(not.temp-names). | 
| 80300 |  72 65 74 75 72 6e 20 70 72 6f 70 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | return.prop))).................. | 
| 80320 |  20 20 20 20 20 20 20 20 20 28 66 6f 75 6e 64 2d    6e 6f 64 65 20 28 6f 72 20 66 6f 75 6e 64 0a 20  | .........(found-node.(or.found.. | 
| 80340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 80360 |  20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28    6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d  | .........(when.(js2-object-node- | 
| 80380 |  70 20 72 69 67 68 74 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | p.right)........................ | 
| 803a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 73 65 61 72 63 68  | .....................(js2-search | 
| 803c0 |  2d 6f 62 6a 65 63 74 2d 66 6f 72 2d 70 72 6f 70    20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20  | -object-for-prop.right.......... | 
| 803e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 80400 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74  | ...............................t | 
| 80420 |  65 6d 70 2d 6e 61 6d 65 73 29 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | emp-names))))).................. | 
| 80440 |  20 20 20 20 28 69 66 20 66 6f 75 6e 64 2d 6e 6f    64 65 20 28 70 75 73 68 20 66 6f 75 6e 64 2d 6e  | ....(if.found-node.(push.found-n | 
| 80460 |  6f 64 65 20 6e 6f 64 65 2d 69 6e 69 74 29 29 29    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 74  | ode.node-init))))))............t | 
| 80480 |  29 29 29 29 0a 20 20 20 20 6e 6f 64 65 2d 69 6e    69 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32  | )))).....node-init))..(defun.js2 | 
| 804a0 |  2d 67 65 74 2d 73 79 6d 62 6f 6c 2d 64 65 63 6c    61 72 61 74 69 6f 6e 20 28 6e 6f 64 65 20 6e 61  | -get-symbol-declaration.(node.na | 
| 804c0 |  6d 65 29 0a 20 20 22 46 69 6e 64 20 73 63 6f 70    65 20 66 6f 72 20 4e 41 4d 45 20 66 72 6f 6d 20  | me)..."Find.scope.for.NAME.from. | 
| 804e0 |  4e 4f 44 45 2e 22 0a 20 20 28 6c 65 74 20 28 28    73 63 6f 70 65 20 28 6a 73 32 2d 67 65 74 2d 64  | NODE."...(let.((scope.(js2-get-d | 
| 80500 |  65 66 69 6e 69 6e 67 2d 73 63 6f 70 65 0a 20 20    20 20 20 20 20 20 20 20 28 6f 72 20 28 6a 73 32  | efining-scope...........(or.(js2 | 
| 80520 |  2d 6e 6f 64 65 2d 67 65 74 2d 65 6e 63 6c 6f 73    69 6e 67 2d 73 63 6f 70 65 20 6e 6f 64 65 29 0a  | -node-get-enclosing-scope.node). | 
| 80540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64    65 29 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 28  | .............node).name))).....( | 
| 80560 |  69 66 20 73 63 6f 70 65 20 28 6a 73 32 2d 73 79    6d 62 6f 6c 2d 61 73 74 2d 6e 6f 64 65 20 28 6a  | if.scope.(js2-symbol-ast-node.(j | 
| 80580 |  73 32 2d 73 63 6f 70 65 2d 67 65 74 2d 73 79 6d    62 6f 6c 20 73 63 6f 70 65 20 6e 61 6d 65 29 29  | s2-scope-get-symbol.scope.name)) | 
| 805a0 |  29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6a    73 32 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 6a 73  | )))..(provide.'js2-mode)..;;;.js | 
| 805c0 |  32 2d 6d 6f 64 65 2e 65 6c 20 65 6e 64 73 20 68    65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00  | 2-mode.el.ends.here............. | 
| 805e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 80600 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72  | js2-mode-20231224/js2-imenu-extr | 
| 80620 |  61 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | as.el........................... | 
| 80640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 80660 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 80680 |  30 30 35 30 31 30 32 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 34 36 37 00 20 30 00 00 00  | 0050102.00000000000.015467..0... | 
| 806a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 806c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 806e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 80700 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 80720 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 80740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 80760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 80780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 807a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 807c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 807e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 80800 |  3b 3b 3b 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78    74 72 61 73 2e 65 6c 20 2d 2d 2d 20 49 6d 65 6e  | ;;;.js2-imenu-extras.el.---.Imen | 
| 80820 |  75 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 64    64 69 74 69 6f 6e 61 6c 20 63 6f 6e 73 74 72 75  | u.support.for.additional.constru | 
| 80840 |  63 74 73 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c    2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d  | cts..-*-.lexical-binding:.t;.-*- | 
| 80860 |  0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28    43 29 20 32 30 31 32 2d 32 30 31 34 20 20 46 72  | ..;;.Copyright.(C).2012-2014..Fr | 
| 80880 |  65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e    64 61 74 69 6f 6e 2c 20 49 6e 63 2e 0a 0a 3b 3b  | ee.Software.Foundation,.Inc...;; | 
| 808a0 |  20 41 75 74 68 6f 72 3a 20 20 20 20 44 6d 69 74    72 79 20 47 75 74 6f 76 20 3c 64 67 75 74 6f 76  | .Author:....Dmitry.Gutov.<dgutov | 
| 808c0 |  40 79 61 6e 64 65 78 2e 72 75 3e 0a 3b 3b 20 4b    65 79 77 6f 72 64 73 3a 20 20 6c 61 6e 67 75 61  | @yandex.ru>.;;.Keywords:..langua | 
| 808e0 |  67 65 73 2c 20 6a 61 76 61 73 63 72 69 70 74 2c    20 69 6d 65 6e 75 0a 0a 3b 3b 20 54 68 69 73 20  | ges,.javascript,.imenu..;;.This. | 
| 80900 |  66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20    47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 47  | file.is.part.of.GNU.Emacs...;;.G | 
| 80920 |  4e 55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65    20 73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63  | NU.Emacs.is.free.software:.you.c | 
| 80940 |  61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20    69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79  | an.redistribute.it.and/or.modify | 
| 80960 |  0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65    20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e  | .;;.it.under.the.terms.of.the.GN | 
| 80980 |  55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63    20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c  | U.General.Public.License.as.publ | 
| 809a0 |  69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20    46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f  | ished.by.;;.the.Free.Software.Fo | 
| 809c0 |  75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72    20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68  | undation,.either.version.3.of.th | 
| 809e0 |  65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b    20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e  | e.License,.or.;;.(at.your.option | 
| 80a00 |  29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73    69 6f 6e 2e 0a 0a 3b 3b 20 47 4e 55 20 45 6d 61  | ).any.later.version...;;.GNU.Ema | 
| 80a20 |  63 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65    64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68  | cs.is.distributed.in.the.hope.th | 
| 80a40 |  61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73    65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54  | at.it.will.be.useful,.;;.but.WIT | 
| 80a60 |  48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54    59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20  | HOUT.ANY.WARRANTY;.without.even. | 
| 80a80 |  74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72    61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48  | the.implied.warranty.of.;;.MERCH | 
| 80aa0 |  41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49    54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54  | ANTABILITY.or.FITNESS.FOR.A.PART | 
| 80ac0 |  49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20    20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20  | ICULAR.PURPOSE...See.the.;;.GNU. | 
| 80ae0 |  47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c    69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20  | General.Public.License.for.more. | 
| 80b00 |  64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75    20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63  | details...;;.You.should.have.rec | 
| 80b20 |  65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20    74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20  | eived.a.copy.of.the.GNU.General. | 
| 80b40 |  50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b    3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55  | Public.License.;;.along.with.GNU | 
| 80b60 |  20 45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c    20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77  | .Emacs...If.not,.see.<http://www | 
| 80b80 |  2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65    73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e  | .gnu.org/licenses/>...;;;.Commen | 
| 80ba0 |  74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 70    61 63 6b 61 67 65 20 61 64 64 73 20 49 6d 65 6e  | tary:..;;.This.package.adds.Imen | 
| 80bc0 |  75 20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 64    64 69 74 69 6f 6e 61 6c 20 66 72 61 6d 65 77 6f  | u.support.for.additional.framewo | 
| 80be0 |  72 6b 20 63 6f 6e 73 74 72 75 63 74 73 20 61 6e    64 0a 3b 3b 20 73 74 72 75 63 74 75 72 61 6c 20  | rk.constructs.and.;;.structural. | 
| 80c00 |  70 61 74 74 65 72 6e 73 20 74 6f 20 60 6a 73 32    2d 6d 6f 64 65 27 2e 0a 0a 3b 3b 20 55 73 61 67  | patterns.to.`js2-mode'...;;.Usag | 
| 80c20 |  65 3a 0a 0a 3b 3b 20 28 61 64 64 2d 68 6f 6f 6b    20 27 6a 73 32 2d 6d 6f 64 65 2d 68 6f 6f 6b 20  | e:..;;.(add-hook.'js2-mode-hook. | 
| 80c40 |  27 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61    73 2d 6d 6f 64 65 29 0a 0a 3b 3b 20 54 6f 20 63  | 'js2-imenu-extras-mode)..;;.To.c | 
| 80c60 |  75 73 74 6f 6d 69 7a 65 20 68 6f 77 20 69 74 20    77 6f 72 6b 73 3a 0a 3b 3b 20 20 20 4d 2d 78 20  | ustomize.how.it.works:.;;...M-x. | 
| 80c80 |  63 75 73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20    52 45 54 20 6a 73 32 2d 69 6d 65 6e 75 20 52 45  | customize-group.RET.js2-imenu.RE | 
| 80ca0 |  54 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d    6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 6a  | T..(require.'cl-lib).(require.'j | 
| 80cc0 |  73 32 2d 6d 6f 64 65 29 0a 0a 28 65 76 61 6c 2d    77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28  | s2-mode)..(eval-when-compile...( | 
| 80ce0 |  77 68 65 6e 20 28 3c 3d 20 65 6d 61 63 73 2d 6d    61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 36 29  | when.(<=.emacs-major-version.26) | 
| 80d00 |  0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 73    75 62 72 2d 78 29 29 29 0a 0a 28 64 65 66 76 61  | .....(require.'subr-x)))..(defva | 
| 80d20 |  72 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 65    6e 73 69 6f 6e 2d 73 74 79 6c 65 73 0a 20 20 60  | r.js2-imenu-extension-styles...` | 
| 80d40 |  28 28 3a 66 72 61 6d 65 77 6f 72 6b 20 6a 71 75    65 72 79 0a 20 20 20 20 20 3a 63 61 6c 6c 2d 72  | ((:framework.jquery......:call-r | 
| 80d60 |  65 20 20 20 22 5c 5c 5f 3c 5c 5c 28 3f 3a 6a 51    75 65 72 79 5c 5c 7c 5c 5c 24 5c 5c 7c 5f 5c 5c  | e..."\\_<\\(?:jQuery\\|\\$\\|_\\ | 
| 80d80 |  29 5c 5c 2e 65 78 74 65 6e 64 5c 5c 73 2d 2a 28    22 0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72  | )\\.extend\\s-*("......:recorder | 
| 80da0 |  20 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f    72 64 2d 6a 71 75 65 72 79 2d 65 78 74 65 6e 64  | ..js2-imenu-record-jquery-extend | 
| 80dc0 |  29 0a 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f    72 6b 20 6a 71 75 65 72 79 2d 75 69 0a 20 20 20  | )......(:framework.jquery-ui.... | 
| 80de0 |  20 20 3a 63 61 6c 6c 2d 72 65 20 20 20 22 5e 5c    5c 73 2d 2a 5c 5c 28 3f 3a 6a 51 75 65 72 79 5c  | ..:call-re..."^\\s-*\\(?:jQuery\ | 
| 80e00 |  5c 7c 5c 5c 24 5c 5c 29 5c 5c 2e 77 69 64 67 65    74 5c 5c 73 2d 2a 28 22 0a 20 20 20 20 20 3a 72  | \|\\$\\)\\.widget\\s-*("......:r | 
| 80e20 |  65 63 6f 72 64 65 72 20 20 6a 73 32 2d 69 6d 65    6e 75 2d 72 65 63 6f 72 64 2d 73 74 72 69 6e 67  | ecorder..js2-imenu-record-string | 
| 80e40 |  2d 64 65 63 6c 61 72 65 29 0a 0a 20 20 20 20 28    3a 66 72 61 6d 65 77 6f 72 6b 20 64 6f 6a 6f 0a  | -declare)......(:framework.dojo. | 
| 80e60 |  20 20 20 20 20 3a 63 61 6c 6c 2d 72 65 20 20 20    22 5e 5c 5c 73 2d 2a 64 6f 6a 6f 2e 64 65 63 6c  | .....:call-re..."^\\s-*dojo.decl | 
| 80e80 |  61 72 65 5c 5c 73 2d 2a 28 22 0a 20 20 20 20 20    3a 72 65 63 6f 72 64 65 72 20 20 6a 73 32 2d 69  | are\\s-*("......:recorder..js2-i | 
| 80ea0 |  6d 65 6e 75 2d 72 65 63 6f 72 64 2d 73 74 72 69    6e 67 2d 64 65 63 6c 61 72 65 29 0a 0a 20 20 20  | menu-record-string-declare)..... | 
| 80ec0 |  20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 62 61 63    6b 62 6f 6e 65 0a 20 20 20 20 20 3a 63 61 6c 6c  | .(:framework.backbone......:call | 
| 80ee0 |  2d 72 65 20 20 20 2c 28 63 6f 6e 63 61 74 20 22    5c 5c 5f 3c 22 20 6a 73 32 2d 6d 6f 64 65 2d 69  | -re...,(concat."\\_<".js2-mode-i | 
| 80f00 |  64 65 6e 74 69 66 69 65 72 2d 72 65 20 22 5c 5c    2e 65 78 74 65 6e 64 5c 5c 73 2d 2a 28 22 29 0a  | dentifier-re."\\.extend\\s-*("). | 
| 80f20 |  20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 20    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | .....:recorder..js2-imenu-record | 
| 80f40 |  2d 62 61 63 6b 62 6f 6e 65 2d 65 78 74 65 6e 64    29 0a 0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f  | -backbone-extend)......(:framewo | 
| 80f60 |  72 6b 20 65 6e 79 6f 0a 20 20 20 20 20 3a 63 61    6c 6c 2d 72 65 20 20 20 22 5c 5c 5f 3c 65 6e 79  | rk.enyo......:call-re..."\\_<eny | 
| 80f80 |  6f 5c 5c 2e 6b 69 6e 64 5c 5c 73 2d 2a 28 22 0a    20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 20  | o\\.kind\\s-*("......:recorder.. | 
| 80fa0 |  6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64    2d 65 6e 79 6f 2d 6b 69 6e 64 29 0a 0a 20 20 20  | js2-imenu-record-enyo-kind)..... | 
| 80fc0 |  20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 72 65 61    63 74 0a 20 20 20 20 20 3a 63 61 6c 6c 2d 72 65  | .(:framework.react......:call-re | 
| 80fe0 |  20 22 5c 5c 5f 3c 52 65 61 63 74 5c 5c 2e 63 72    65 61 74 65 43 6c 61 73 73 5c 5c 73 2d 2a 28 22  | ."\\_<React\\.createClass\\s-*(" | 
| 81000 |  0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | ......:recorder.js2-imenu-record | 
| 81020 |  2d 72 65 61 63 74 2d 63 6c 61 73 73 29 0a 0a 20    20 20 20 28 3a 66 72 61 6d 65 77 6f 72 6b 20 6d  | -react-class)......(:framework.m | 
| 81040 |  6f 63 68 61 0a 20 20 20 20 20 3a 63 61 6c 6c 2d    72 65 20 2c 28 72 78 20 6c 69 6e 65 2d 73 74 61  | ocha......:call-re.,(rx.line-sta | 
| 81060 |  72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 2a 20 28 73 79 6e 74 61 78  | rt....................(*.(syntax | 
| 81080 |  20 77 68 69 74 65 73 70 61 63 65 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .whitespace))................... | 
| 810a0 |  20 28 6f 72 20 22 64 65 73 63 72 69 62 65 22 20    22 66 64 65 73 63 72 69 62 65 22 20 22 64 65 73  | .(or."describe"."fdescribe"."des | 
| 810c0 |  63 72 69 62 65 2e 6f 6e 6c 79 22 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | cribe.only").................... | 
| 810e0 |  28 2a 20 28 73 79 6e 74 61 78 20 77 68 69 74 65    73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20  | (*.(syntax.whitespace))......... | 
| 81100 |  20 20 20 20 20 20 20 20 20 20 20 22 28 22 29 0a    20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20 6a  | ..........."(")......:recorder.j | 
| 81120 |  73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d    6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 29 0a  | s2-imenu-record-mocha-describe). | 
| 81140 |  0a 20 20 20 20 28 3a 66 72 61 6d 65 77 6f 72 6b    20 73 65 6e 63 68 61 0a 20 20 20 20 20 3a 63 61  | .....(:framework.sencha......:ca | 
| 81160 |  6c 6c 2d 72 65 20 22 5e 5c 5c 73 2d 2a 45 78 74    5c 5c 2e 64 65 66 69 6e 65 5c 5c 73 2d 2a 28 22  | ll-re."^\\s-*Ext\\.define\\s-*(" | 
| 81180 |  0a 20 20 20 20 20 3a 72 65 63 6f 72 64 65 72 20    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | ......:recorder.js2-imenu-record | 
| 811a0 |  2d 73 65 6e 63 68 61 2d 63 6c 61 73 73 29 29 0a    20 20 22 4c 69 73 74 20 6f 66 20 4a 61 76 61 53  | -sencha-class))..."List.of.JavaS | 
| 811c0 |  63 72 69 70 74 20 63 6c 61 73 73 20 64 65 66 69    6e 69 74 69 6f 6e 20 6f 72 20 65 78 74 65 6e 73  | cript.class.definition.or.extens | 
| 811e0 |  69 6f 6e 20 73 74 79 6c 65 73 2e 0a 0a 3a 66 72    61 6d 65 77 6f 72 6b 20 69 73 20 61 20 76 61 6c  | ion.styles...:framework.is.a.val | 
| 81200 |  69 64 20 76 61 6c 75 65 20 69 6e 20 60 6a 73 32    2d 69 6d 65 6e 75 2d 65 6e 61 62 6c 65 64 2d 66  | id.value.in.`js2-imenu-enabled-f | 
| 81220 |  72 61 6d 65 77 6f 72 6b 73 27 2e 0a 0a 3a 63 61    6c 6c 2d 72 65 20 69 73 20 61 20 72 65 67 75 6c  | rameworks'...:call-re.is.a.regul | 
| 81240 |  61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68    61 74 20 68 61 73 20 6e 6f 20 63 61 70 74 75 72  | ar.expression.that.has.no.captur | 
| 81260 |  69 6e 67 20 67 72 6f 75 70 73 2e 0a 0a 3a 72 65    63 6f 72 64 65 72 20 69 73 20 61 20 66 75 6e 63  | ing.groups...:recorder.is.a.func | 
| 81280 |  74 69 6f 6e 20 6e 61 6d 65 20 74 68 61 74 20 77    69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 68  | tion.name.that.will.be.called.wh | 
| 812a0 |  65 6e 20 74 68 65 20 72 65 67 75 6c 61 72 0a 65    78 70 72 65 73 73 69 6f 6e 20 6d 61 74 63 68 65  | en.the.regular.expression.matche | 
| 812c0 |  73 20 73 6f 6d 65 20 74 65 78 74 20 69 6e 20 74    68 65 20 62 75 66 66 65 72 2e 20 20 57 68 65 6e  | s.some.text.in.the.buffer...When | 
| 812e0 |  20 69 74 27 73 20 63 61 6c 6c 65 64 2c 20 70 6f    69 6e 74 20 77 69 6c 6c 20 62 65 0a 61 74 20 74  | .it's.called,.point.will.be.at.t | 
| 81300 |  68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d 61    74 63 68 2e 20 20 54 68 65 20 66 75 6e 63 74 69  | he.end.of.the.match...The.functi | 
| 81320 |  6f 6e 20 6d 75 73 74 20 6b 65 65 70 20 74 68 65    20 70 6f 69 6e 74 20 70 6f 73 69 74 69 6f 6e 2e  | on.must.keep.the.point.position. | 
| 81340 |  22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73    32 2d 69 6d 65 6e 75 2d 61 76 61 69 6c 61 62 6c  | ")..(defconst.js2-imenu-availabl | 
| 81360 |  65 2d 66 72 61 6d 65 77 6f 72 6b 73 0a 20 20 28    6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28  | e-frameworks...(mapcar.(lambda.( | 
| 81380 |  73 74 79 6c 65 29 20 28 70 6c 69 73 74 2d 67 65    74 20 73 74 79 6c 65 20 3a 66 72 61 6d 65 77 6f  | style).(plist-get.style.:framewo | 
| 813a0 |  72 6b 29 29 20 6a 73 32 2d 69 6d 65 6e 75 2d 65    78 74 65 6e 73 69 6f 6e 2d 73 74 79 6c 65 73 29  | rk)).js2-imenu-extension-styles) | 
| 813c0 |  0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69    6c 61 62 6c 65 20 4a 61 76 61 53 63 72 69 70 74  | ..."List.of.available.JavaScript | 
| 813e0 |  20 66 72 61 6d 65 77 6f 72 6b 20 73 79 6d 62 6f    6c 73 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f  | .framework.symbols.")..(defcusto | 
| 81400 |  6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 6e 61 62    6c 65 64 2d 66 72 61 6d 65 77 6f 72 6b 73 20 6a  | m.js2-imenu-enabled-frameworks.j | 
| 81420 |  73 32 2d 69 6d 65 6e 75 2d 61 76 61 69 6c 61 62    6c 65 2d 66 72 61 6d 65 77 6f 72 6b 73 0a 20 20  | s2-imenu-available-frameworks... | 
| 81440 |  22 46 72 61 6d 65 77 6f 72 6b 73 20 74 6f 20 62    65 20 72 65 63 6f 67 6e 69 7a 65 64 20 62 79 20  | "Frameworks.to.be.recognized.by. | 
| 81460 |  60 6a 73 32 2d 6d 6f 64 65 27 2e 22 0a 20 20 3a    74 79 70 65 20 28 63 6f 6e 73 20 27 73 65 74 20  | `js2-mode'."...:type.(cons.'set. | 
| 81480 |  28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20    28 78 29 20 28 6c 69 73 74 20 27 63 6f 6e 73 74  | (mapcar.(lambda.(x).(list.'const | 
| 814a0 |  20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .x))............................ | 
| 814c0 |  6a 73 32 2d 69 6d 65 6e 75 2d 61 76 61 69 6c 61    62 6c 65 2d 66 72 61 6d 65 77 6f 72 6b 73 29 29  | js2-imenu-available-frameworks)) | 
| 814e0 |  0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32 2d 69    6d 65 6e 75 29 0a 0a 28 64 65 66 63 75 73 74 6f  | ...:group.'js2-imenu)..(defcusto | 
| 81500 |  6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77    2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73  | m.js2-imenu-show-other-functions | 
| 81520 |  20 74 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f    20 73 68 6f 77 20 66 75 6e 63 74 69 6f 6e 73 20  | .t..."Non-nil.to.show.functions. | 
| 81540 |  6e 6f 74 20 72 65 63 6f 67 6e 69 7a 65 64 20 62    79 20 6f 74 68 65 72 20 6d 65 63 68 61 6e 69 73  | not.recognized.by.other.mechanis | 
| 81560 |  6d 73 2c 0a 69 6e 20 61 20 73 68 61 72 65 64 20    6e 61 6d 65 73 70 61 63 65 2e 22 0a 20 20 3a 74  | ms,.in.a.shared.namespace."...:t | 
| 81580 |  79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a    67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75  | ype.'boolean...:group.'js2-imenu | 
| 815a0 |  29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73    32 2d 69 6d 65 6e 75 2d 6f 74 68 65 72 2d 66 75  | )..(defcustom.js2-imenu-other-fu | 
| 815c0 |  6e 63 74 69 6f 6e 73 2d 6e 73 20 22 3f 22 0a 20    20 22 4e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65  | nctions-ns."?"..."Namespace.name | 
| 815e0 |  20 74 6f 20 75 73 65 20 66 6f 72 20 6f 74 68 65    72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20  | .to.use.for.other.functions."... | 
| 81600 |  3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20    3a 67 72 6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e  | :type.'string...:group.'js2-imen | 
| 81620 |  75 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6a    73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d 6f  | u)..(defcustom.js2-imenu-show-mo | 
| 81640 |  64 75 6c 65 2d 70 61 74 74 65 72 6e 20 74 0a 20    20 22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 72 65 63  | dule-pattern.t..."Non-nil.to.rec | 
| 81660 |  6f 67 6e 69 7a 65 20 74 68 65 20 6d 6f 64 75 6c    65 20 70 61 74 74 65 72 6e 3a 0a 0a 76 61 72 20  | ognize.the.module.pattern:..var. | 
| 81680 |  66 6f 6f 62 73 20 3d 20 28 66 75 6e 63 74 69 6f    6e 28 61 29 20 7b 0a 20 20 72 65 74 75 72 6e 20  | foobs.=.(function(a).{...return. | 
| 816a0 |  7b 66 69 62 3a 20 66 75 6e 63 74 69 6f 6e 28 29    20 7b 7d 2c 20 66 75 62 3a 20 66 75 6e 63 74 69  | {fib:.function().{},.fub:.functi | 
| 816c0 |  6f 6e 28 29 20 7b 7d 7d 3b 0a 7d 29 28 62 29 3b    0a 0a 57 65 20 72 65 63 6f 72 64 20 74 68 65 20  | on().{}};.})(b);..We.record.the. | 
| 816e0 |  72 65 74 75 72 6e 65 64 20 68 61 73 68 20 61 73    20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68  | returned.hash.as.belonging.to.th | 
| 81700 |  65 20 6e 61 6d 65 64 20 6d 6f 64 75 6c 65 2c 20    61 6e 64 0a 70 72 65 66 69 78 20 61 6e 79 20 66  | e.named.module,.and.prefix.any.f | 
| 81720 |  75 6e 63 74 69 6f 6e 73 20 64 65 66 69 6e 65 64    20 69 6e 73 69 64 65 20 74 68 65 20 49 49 46 45  | unctions.defined.inside.the.IIFE | 
| 81740 |  20 77 69 74 68 20 74 68 65 20 6d 6f 64 75 6c 65    20 6e 61 6d 65 2e 22 0a 20 20 3a 74 79 70 65 20  | .with.the.module.name."...:type. | 
| 81760 |  27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75    70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a 0a 28  | 'boolean...:group.'js2-imenu)..( | 
| 81780 |  64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 69 6d    65 6e 75 2d 73 70 6c 69 74 2d 73 74 72 69 6e 67  | defcustom.js2-imenu-split-string | 
| 817a0 |  2d 69 64 65 6e 74 69 66 69 65 72 73 20 74 0a 20    20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20  | -identifiers.t..."When.non-nil,. | 
| 817c0 |  73 70 6c 69 74 20 73 74 72 69 6e 67 20 69 64 65    6e 74 69 66 69 65 72 73 20 6f 6e 20 64 6f 74 73  | split.string.identifiers.on.dots | 
| 817e0 |  2e 0a 43 75 72 72 65 6e 74 6c 79 20 75 73 65 64    20 66 6f 72 20 6a 51 75 65 72 79 20 77 69 64 67  | ..Currently.used.for.jQuery.widg | 
| 81800 |  65 74 73 2c 20 44 6f 6a 6f 20 61 6e 64 20 45 6e    79 6f 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e  | ets,.Dojo.and.Enyo.declarations. | 
| 81820 |  22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65    61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6a 73 32  | "...:type.'boolean...:group.'js2 | 
| 81840 |  2d 69 6d 65 6e 75 29 0a 0a 28 64 65 66 63 75 73    74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f  | -imenu)..(defcustom.js2-imenu-mo | 
| 81860 |  63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64    65 2d 6e 61 6d 65 73 20 27 28 22 64 65 73 63 72  | cha-describe-node-names.'("descr | 
| 81880 |  69 62 65 22 20 22 64 65 73 63 72 69 62 65 2e 6f    6e 6c 79 22 20 22 66 64 65 73 63 72 69 62 65 22  | ibe"."describe.only"."fdescribe" | 
| 818a0 |  29 0a 20 20 22 4c 69 73 74 20 6f 66 20 73 74 72    69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 61 20  | )..."List.of.strings.starting.a. | 
| 818c0 |  64 65 73 63 72 69 62 65 28 29 20 6e 6f 64 65 2e    22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65  | describe().node."...:type.'(repe | 
| 818e0 |  61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72    6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a  | at.string)...:group.'js2-imenu). | 
| 81900 |  0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d    69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 69 74 2d 6e  | .(defcustom.js2-imenu-mocha-it-n | 
| 81920 |  6f 64 65 2d 6e 61 6d 65 73 20 27 28 22 69 74 22    20 22 69 74 2e 6f 6e 6c 79 22 20 22 66 69 74 22  | ode-names.'("it"."it.only"."fit" | 
| 81940 |  29 0a 20 20 22 4c 69 73 74 20 6f 66 20 73 74 72    69 6e 67 73 20 73 74 61 72 74 69 6e 67 20 61 20  | )..."List.of.strings.starting.a. | 
| 81960 |  69 74 28 29 20 6e 6f 64 65 2e 22 0a 20 20 3a 74    79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72  | it().node."...:type.'(repeat.str | 
| 81980 |  69 6e 67 29 0a 20 20 3a 67 72 6f 75 70 20 27 6a    73 32 2d 69 6d 65 6e 75 29 0a 0a 28 64 65 66 63  | ing)...:group.'js2-imenu)..(defc | 
| 819a0 |  75 73 74 6f 6d 20 6a 73 32 2d 69 6d 65 6e 75 2d    6d 6f 63 68 61 2d 68 6f 6f 6b 2d 6e 6f 64 65 2d  | ustom.js2-imenu-mocha-hook-node- | 
| 819c0 |  6e 61 6d 65 73 20 27 28 22 62 65 66 6f 72 65 45    61 63 68 22 20 22 61 66 74 65 72 45 61 63 68 22  | names.'("beforeEach"."afterEach" | 
| 819e0 |  20 22 62 65 66 6f 72 65 41 6c 6c 22 20 22 61 66    74 65 72 41 6c 6c 22 29 0a 20 20 22 4c 69 73 74  | ."beforeAll"."afterAll")..."List | 
| 81a00 |  20 6f 66 20 73 74 72 69 6e 67 73 20 73 74 61 72    74 69 6e 67 20 61 20 68 6f 6f 6b 20 6e 6f 64 65  | .of.strings.starting.a.hook.node | 
| 81a20 |  20 28 65 2e 67 2e 2c 20 62 65 66 6f 72 65 20 61    6e 64 20 61 66 74 65 72 20 68 6f 6f 6b 73 29 2e  | .(e.g.,.before.and.after.hooks). | 
| 81a40 |  22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65    61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72  | "...:type.'(repeat.string)...:gr | 
| 81a60 |  6f 75 70 20 27 6a 73 32 2d 69 6d 65 6e 75 29 0a    0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a  | oup.'js2-imenu)..;;;###autoload. | 
| 81a80 |  28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75    2d 65 78 74 72 61 73 2d 73 65 74 75 70 20 28 29  | (defun.js2-imenu-extras-setup.() | 
| 81aa0 |  0a 20 20 28 77 68 65 6e 20 6a 73 32 2d 69 6d 65    6e 75 2d 65 6e 61 62 6c 65 64 2d 66 72 61 6d 65  | ...(when.js2-imenu-enabled-frame | 
| 81ac0 |  77 6f 72 6b 73 0a 20 20 20 20 28 61 64 64 2d 68    6f 6f 6b 20 27 6a 73 32 2d 62 75 69 6c 64 2d 69  | works.....(add-hook.'js2-build-i | 
| 81ae0 |  6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 20 27    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | menu-callbacks.'js2-imenu-record | 
| 81b00 |  2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 20    74 29 29 0a 20 20 28 77 68 65 6e 20 28 6f 72 20  | -declarations.t.t))...(when.(or. | 
| 81b20 |  6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6f    74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73 20 6a  | js2-imenu-show-other-functions.j | 
| 81b40 |  73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d 6f    64 75 6c 65 2d 70 61 74 74 65 72 6e 29 0a 20 20  | s2-imenu-show-module-pattern)... | 
| 81b60 |  20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6a 73 32    2d 62 75 69 6c 64 2d 69 6d 65 6e 75 2d 63 61 6c  | ..(add-hook.'js2-build-imenu-cal | 
| 81b80 |  6c 62 61 63 6b 73 20 27 6a 73 32 2d 69 6d 65 6e    75 2d 77 61 6c 6b 2d 61 73 74 20 74 20 74 29 29  | lbacks.'js2-imenu-walk-ast.t.t)) | 
| 81ba0 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d    65 6e 75 2d 65 78 74 72 61 73 2d 72 65 6d 6f 76  | )..(defun.js2-imenu-extras-remov | 
| 81bc0 |  65 20 28 29 0a 20 20 28 72 65 6d 6f 76 65 2d 68    6f 6f 6b 20 27 6a 73 32 2d 62 75 69 6c 64 2d 69  | e.()...(remove-hook.'js2-build-i | 
| 81be0 |  6d 65 6e 75 2d 63 61 6c 6c 62 61 63 6b 73 20 27    6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64  | menu-callbacks.'js2-imenu-record | 
| 81c00 |  2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 74 29    0a 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20  | -declarations.t)...(remove-hook. | 
| 81c20 |  27 6a 73 32 2d 62 75 69 6c 64 2d 69 6d 65 6e 75    2d 63 61 6c 6c 62 61 63 6b 73 20 27 6a 73 32 2d  | 'js2-build-imenu-callbacks.'js2- | 
| 81c40 |  69 6d 65 6e 75 2d 77 61 6c 6b 2d 61 73 74 20 74    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69  | imenu-walk-ast.t))..(defun.js2-i | 
| 81c60 |  6d 65 6e 75 2d 72 65 63 6f 72 64 2d 64 65 63 6c    61 72 61 74 69 6f 6e 73 20 28 29 0a 20 20 28 6c  | menu-record-declarations.()...(l | 
| 81c80 |  65 74 2a 20 28 28 73 74 79 6c 65 73 20 28 63 6c    2d 6c 6f 6f 70 20 66 6f 72 20 73 74 79 6c 65 20  | et*.((styles.(cl-loop.for.style. | 
| 81ca0 |  69 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74    65 6e 73 69 6f 6e 2d 73 74 79 6c 65 73 0a 20 20  | in.js2-imenu-extension-styles... | 
| 81cc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 77 68 65 6e 20 28 6d 65  | ........................when.(me | 
| 81ce0 |  6d 71 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74    79 6c 65 20 3a 66 72 61 6d 65 77 6f 72 6b 29 0a  | mq.(plist-get.style.:framework). | 
| 81d00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 81d20 |  20 20 20 20 20 6a 73 32 2d 69 6d 65 6e 75 2d 65    6e 61 62 6c 65 64 2d 66 72 61 6d 65 77 6f 72 6b  | .....js2-imenu-enabled-framework | 
| 81d40 |  73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c  | s)...........................col | 
| 81d60 |  6c 65 63 74 20 73 74 79 6c 65 29 29 0a 20 20 20    20 20 20 20 20 20 28 72 65 20 28 6d 61 70 63 6f  | lect.style))..........(re.(mapco | 
| 81d80 |  6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 73 74    79 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ncat.(lambda.(style)............ | 
| 81da0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    63 6f 6e 63 61 74 20 22 5c 5c 28 22 20 28 70 6c  | ...............(concat."\\(".(pl | 
| 81dc0 |  69 73 74 2d 67 65 74 20 73 74 79 6c 65 20 3a 63    61 6c 6c 2d 72 65 29 20 22 5c 5c 29 22 29 29 0a  | ist-get.style.:call-re)."\\)")). | 
| 81de0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 73 74 79 6c 65 73 20 22  | ........................styles." | 
| 81e00 |  5c 5c 7c 22 29 29 29 0a 20 20 20 20 28 67 6f 74    6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69  | \\|"))).....(goto-char.(point-mi | 
| 81e20 |  6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28    6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 66 6f  | n)).....(while.(js2-re-search-fo | 
| 81e40 |  72 77 61 72 64 20 72 65 20 6e 69 6c 20 74 29 0a    20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66  | rward.re.nil.t).......(cl-loop.f | 
| 81e60 |  6f 72 20 69 20 66 72 6f 6d 20 30 20 74 6f 20 28    31 2d 20 28 6c 65 6e 67 74 68 20 73 74 79 6c 65  | or.i.from.0.to.(1-.(length.style | 
| 81e80 |  73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 77 68 65 6e 20 28 6d 61 74 63 68 2d 62  | s))................when.(match-b | 
| 81ea0 |  65 67 69 6e 6e 69 6e 67 20 28 31 2b 20 69 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | eginning.(1+.i))................ | 
| 81ec0 |  72 65 74 75 72 6e 20 28 66 75 6e 63 61 6c 6c 20    28 70 6c 69 73 74 2d 67 65 74 20 28 6e 74 68 20  | return.(funcall.(plist-get.(nth. | 
| 81ee0 |  69 20 73 74 79 6c 65 73 29 20 3a 72 65 63 6f 72    64 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75  | i.styles).:recorder))))))..(defu | 
| 81f00 |  6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f    72 64 2d 6a 71 75 65 72 79 2d 65 78 74 65 6e 64  | n.js2-imenu-record-jquery-extend | 
| 81f20 |  20 28 29 0a 20 20 28 6c 65 74 20 28 28 70 72 65    64 20 28 6c 61 6d 62 64 61 20 28 73 75 62 6a 65  | .()...(let.((pred.(lambda.(subje | 
| 81f40 |  63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20  | ct).................(and........ | 
| 81f60 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 70    72 6f 70 2d 67 65 74 2d 6e 6f 64 65 2d 70 20 73  | ..........(js2-prop-get-node-p.s | 
| 81f80 |  75 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67  | ubject)..................(string | 
| 81fa0 |  3d 20 28 6a 73 32 2d 6e 61 6d 65 2d 6e 6f 64 65    2d 6e 61 6d 65 20 28 6a 73 32 2d 70 72 6f 70 2d  | =.(js2-name-node-name.(js2-prop- | 
| 81fc0 |  67 65 74 2d 6e 6f 64 65 2d 72 69 67 68 74 20 73    75 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20  | get-node-right.subject))........ | 
| 81fe0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 22 70 72 6f 74 6f 74 79 70 65 22 29 29  | ..................."prototype")) | 
| 82000 |  29 29 29 0a 20 20 20 20 28 6a 73 32 2d 69 6d 65    6e 75 2d 72 65 63 6f 72 64 2d 65 78 74 65 6e 64  | ))).....(js2-imenu-record-extend | 
| 82020 |  2d 66 69 72 73 74 2d 61 72 67 20 28 31 2d 20 28    70 6f 69 6e 74 29 29 20 70 72 65 64 0a 20 20 20  | -first-arg.(1-.(point)).pred.... | 
| 82040 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 82060 |  20 20 20 20 27 6a 73 32 2d 63 6f 6d 70 75 74 65    2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65 74  | ....'js2-compute-nested-prop-get | 
| 82080 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 73 74 72  | )))..(defun.js2-imenu-record-str | 
| 820a0 |  69 6e 67 2d 64 65 63 6c 61 72 65 20 28 29 0a 20    20 28 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f  | ing-declare.()...(js2-imenu-reco | 
| 820c0 |  72 64 2d 65 78 74 65 6e 64 2d 66 69 72 73 74 2d    61 72 67 0a 20 20 20 28 31 2d 20 28 70 6f 69 6e  | rd-extend-first-arg....(1-.(poin | 
| 820e0 |  74 29 29 20 27 6a 73 32 2d 73 74 72 69 6e 67 2d    6e 6f 64 65 2d 70 0a 20 20 20 28 6c 61 6d 62 64  | t)).'js2-string-node-p....(lambd | 
| 82100 |  61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 28 69    66 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 70 6c 69  | a.(node)......(if.js2-imenu-spli | 
| 82120 |  74 2d 73 74 72 69 6e 67 2d 69 64 65 6e 74 69 66    69 65 72 73 0a 20 20 20 20 20 20 20 20 20 28 73  | t-string-identifiers..........(s | 
| 82140 |  70 6c 69 74 2d 73 74 72 69 6e 67 20 28 6a 73 32    2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76 61 6c  | plit-string.(js2-string-node-val | 
| 82160 |  75 65 20 6e 6f 64 65 29 20 22 5c 5c 2e 22 20 74    29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28  | ue.node)."\\.".t)........(list.( | 
| 82180 |  6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d    76 61 6c 75 65 20 6e 6f 64 65 29 29 29 29 29 29  | js2-string-node-value.node)))))) | 
| 821a0 |  0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65    6e 75 2d 72 65 63 6f 72 64 2d 65 78 74 65 6e 64  | ..(defun.js2-imenu-record-extend | 
| 821c0 |  2d 66 69 72 73 74 2d 61 72 67 20 28 70 6f 69 6e    74 20 70 72 65 64 20 71 6e 61 6d 65 2d 66 6e 29  | -first-arg.(point.pred.qname-fn) | 
| 821e0 |  0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 64 65 20    28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d 70 6f 69  | ...(let*.((node.(js2-node-at-poi | 
| 82200 |  6e 74 20 70 6f 69 6e 74 29 29 0a 20 20 20 20 20    20 20 20 20 28 61 72 67 73 20 28 6a 73 32 2d 63  | nt.point))..........(args.(js2-c | 
| 82220 |  61 6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f    64 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 73  | all-node-args.node))..........(s | 
| 82240 |  75 62 6a 65 63 74 20 28 63 6c 2d 66 69 72 73 74    20 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68  | ubject.(cl-first.args))).....(wh | 
| 82260 |  65 6e 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64    20 73 75 62 6a 65 63 74 29 0a 20 20 20 20 20 20  | en.(funcall.pred.subject)....... | 
| 82280 |  28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 61 72 67    20 69 6e 20 28 63 64 72 20 61 72 67 73 29 0a 20  | (cl-loop.for.arg.in.(cdr.args).. | 
| 822a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68    65 6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e  | ..............when.(js2-object-n | 
| 822c0 |  6f 64 65 2d 70 20 61 72 67 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 64 6f 20 28 6a 73  | ode-p.arg)................do.(js | 
| 822e0 |  32 2d 72 65 63 6f 72 64 2d 6f 62 6a 65 63 74 2d    6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20 20  | 2-record-object-literal......... | 
| 82300 |  20 20 20 20 20 20 20 20 20 20 20 61 72 67 20 28    66 75 6e 63 61 6c 6c 20 71 6e 61 6d 65 2d 66 6e  | ...........arg.(funcall.qname-fn | 
| 82320 |  20 73 75 62 6a 65 63 74 29 20 28 6a 73 32 2d 6e    6f 64 65 2d 61 62 73 2d 70 6f 73 20 61 72 67 29  | .subject).(js2-node-abs-pos.arg) | 
| 82340 |  29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73    32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 62  | )))))..(defun.js2-imenu-record-b | 
| 82360 |  61 63 6b 62 6f 6e 65 2d 6f 72 2d 72 65 61 63 74    20 28 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f  | ackbone-or-react.()...(let*.((no | 
| 82380 |  64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 74 2d    70 6f 69 6e 74 20 28 31 2d 20 28 70 6f 69 6e 74  | de.(js2-node-at-point.(1-.(point | 
| 823a0 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61    72 67 73 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f  | ))))..........(args.(js2-call-no | 
| 823c0 |  64 65 2d 61 72 67 73 20 6e 6f 64 65 29 29 0a 20    20 20 20 20 20 20 20 20 28 6d 65 74 68 6f 64 73  | de-args.node))..........(methods | 
| 823e0 |  20 28 63 6c 2d 66 69 72 73 74 20 61 72 67 73 29    29 0a 20 20 20 20 20 20 20 20 20 28 70 61 72 65  | .(cl-first.args))..........(pare | 
| 82400 |  6e 74 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72    65 6e 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20  | nt.(js2-node-parent.node)))..... | 
| 82420 |  28 77 68 65 6e 20 28 6a 73 32 2d 6f 62 6a 65 63    74 2d 6e 6f 64 65 2d 70 20 6d 65 74 68 6f 64 73  | (when.(js2-object-node-p.methods | 
| 82440 |  29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73    75 62 6a 65 63 74 20 28 63 6f 6e 64 20 28 28 6a  | ).......(let.((subject.(cond.((j | 
| 82460 |  73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f 64 65    2d 70 20 70 61 72 65 6e 74 29 0a 20 20 20 20 20  | s2-var-init-node-p.parent)...... | 
| 82480 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d  | .......................(js2-var- | 
| 824a0 |  69 6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74    20 70 61 72 65 6e 74 29 29 0a 20 20 20 20 20 20  | init-node-target.parent))....... | 
| 824c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 28 6a 73 32 2d 61 73 73 69 67  | .....................((js2-assig | 
| 824e0 |  6e 2d 6e 6f 64 65 2d 70 20 70 61 72 65 6e 74 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n-node-p.parent)................ | 
| 82500 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 6c 65  | .............(js2-assign-node-le | 
| 82520 |  66 74 20 70 61 72 65 6e 74 29 29 29 29 29 0a 20    20 20 20 20 20 20 20 28 77 68 65 6e 20 73 75 62  | ft.parent))))).........(when.sub | 
| 82540 |  6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 72 65 63 6f 72 64 2d 6f 62 6a 65 63  | ject...........(js2-record-objec | 
| 82560 |  74 2d 6c 69 74 65 72 61 6c 20 6d 65 74 68 6f 64    73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t-literal.methods............... | 
| 82580 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 63 6f 6d 70  | .......................(js2-comp | 
| 825a0 |  75 74 65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d    67 65 74 20 73 75 62 6a 65 63 74 29 0a 20 20 20  | ute-nested-prop-get.subject).... | 
| 825c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 825e0 |  20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d    70 6f 73 20 6d 65 74 68 6f 64 73 29 29 29 29 29  | ..(js2-node-abs-pos.methods))))) | 
| 82600 |  29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 6a    73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d  | ))..(defalias.'js2-imenu-record- | 
| 82620 |  62 61 63 6b 62 6f 6e 65 2d 65 78 74 65 6e 64 20    27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72  | backbone-extend.'js2-imenu-recor | 
| 82640 |  64 2d 62 61 63 6b 62 6f 6e 65 2d 6f 72 2d 72 65    61 63 74 29 0a 0a 28 64 65 66 61 6c 69 61 73 20  | d-backbone-or-react)..(defalias. | 
| 82660 |  27 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72    64 2d 72 65 61 63 74 2d 63 6c 61 73 73 20 27 6a  | 'js2-imenu-record-react-class.'j | 
| 82680 |  73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d    62 61 63 6b 62 6f 6e 65 2d 6f 72 2d 72 65 61 63  | s2-imenu-record-backbone-or-reac | 
| 826a0 |  74 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69    6d 65 6e 75 2d 72 65 63 6f 72 64 2d 65 6e 79 6f  | t)..(defun.js2-imenu-record-enyo | 
| 826c0 |  2d 6b 69 6e 64 20 28 29 0a 20 20 28 6c 65 74 2a    20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64  | -kind.()...(let*.((node.(js2-nod | 
| 826e0 |  65 2d 61 74 2d 70 6f 69 6e 74 20 28 31 2d 20 28    70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20  | e-at-point.(1-.(point))))....... | 
| 82700 |  20 20 20 28 61 72 67 73 20 28 6a 73 32 2d 63 61    6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64  | ...(args.(js2-call-node-args.nod | 
| 82720 |  65 29 29 0a 20 20 20 20 20 20 20 20 20 28 6f 70    74 69 6f 6e 73 20 28 63 6c 2d 66 69 72 73 74 20  | e))..........(options.(cl-first. | 
| 82740 |  61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65    6e 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f  | args))).....(when.(js2-object-no | 
| 82760 |  64 65 2d 70 20 6f 70 74 69 6f 6e 73 29 0a 20 20    20 20 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d  | de-p.options).......(let.((name- | 
| 82780 |  76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20  | value..............(cl-loop.for. | 
| 827a0 |  65 6c 65 6d 20 69 6e 20 28 6a 73 32 2d 6f 62 6a    65 63 74 2d 6e 6f 64 65 2d 65 6c 65 6d 73 20 6f  | elem.in.(js2-object-node-elems.o | 
| 827c0 |  70 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68  | ptions).......................th | 
| 827e0 |  65 72 65 69 73 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74  | ereis.......................(let | 
| 82800 |  20 28 28 6b 65 79 20 28 6a 73 32 2d 6f 62 6a 65    63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65 66  | .((key.(js2-object-prop-node-lef | 
| 82820 |  74 20 65 6c 65 6d 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t.elem))........................ | 
| 82840 |  20 20 20 20 20 28 76 61 6c 75 65 20 28 6a 73 32    2d 6f 62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64  | .....(value.(js2-object-prop-nod | 
| 82860 |  65 2d 72 69 67 68 74 20 65 6c 65 6d 29 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-right.elem)))................. | 
| 82880 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61    6e 64 20 28 65 71 75 61 6c 0a 20 20 20 20 20 20  | ........(when.(and.(equal....... | 
| 828a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63  | ..............................(c | 
| 828c0 |  6f 6e 64 20 28 28 6a 73 32 2d 6e 61 6d 65 2d 6e    6f 64 65 2d 70 20 6b 65 79 29 0a 20 20 20 20 20  | ond.((js2-name-node-p.key)...... | 
| 828e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 82900 |  20 20 20 20 20 20 28 6a 73 32 2d 6e 61 6d 65 2d    6e 6f 64 65 2d 6e 61 6d 65 20 6b 65 79 29 29 0a  | ......(js2-name-node-name.key)). | 
| 82920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 82940 |  20 20 20 20 20 20 20 20 20 20 28 28 6a 73 32 2d    73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 6b 65  | ..........((js2-string-node-p.ke | 
| 82960 |  79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | y).............................. | 
| 82980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76  | ..............(js2-string-node-v | 
| 829a0 |  61 6c 75 65 20 6b 65 79 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | alue.key)))..................... | 
| 829c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    22 6e 61 6d 65 22 29 0a 20 20 20 20 20 20 20 20  | ................"name")......... | 
| 829e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ...........................(js2- | 
| 82a00 |  73 74 72 69 6e 67 2d 6e 6f 64 65 2d 70 20 76 61    6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20  | string-node-p.value))........... | 
| 82a20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65  | ................(js2-string-node | 
| 82a40 |  2d 76 61 6c 75 65 20 76 61 6c 75 65 29 29 29 29    29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e  | -value.value)))))).........(when | 
| 82a60 |  20 6e 61 6d 65 2d 76 61 6c 75 65 0a 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72  | .name-value...........(js2-recor | 
| 82a80 |  64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72 61 6c    20 6f 70 74 69 6f 6e 73 0a 20 20 20 20 20 20 20  | d-object-literal.options........ | 
| 82aa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69  | ..............................(i | 
| 82ac0 |  66 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 70 6c 69    74 2d 73 74 72 69 6e 67 2d 69 64 65 6e 74 69 66  | f.js2-imenu-split-string-identif | 
| 82ae0 |  69 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | iers............................ | 
| 82b00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    70 6c 69 74 2d 73 74 72 69 6e 67 20 6e 61 6d 65  | ..............(split-string.name | 
| 82b20 |  2d 76 61 6c 75 65 20 22 5c 5c 2e 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -value."\\.")................... | 
| 82b40 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6c 69 73 74 20 6e 61 6d 65 2d  | .....................(list.name- | 
| 82b60 |  76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | value))......................... | 
| 82b80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6f  | .............(js2-node-abs-pos.o | 
| 82ba0 |  70 74 69 6f 6e 73 29 29 29 29 29 29 29 0a 0a 28    64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d  | ptions)))))))..(defun.js2-imenu- | 
| 82bc0 |  72 65 63 6f 72 64 2d 73 65 6e 63 68 61 2d 63 6c    61 73 73 20 28 29 0a 20 20 28 6c 65 74 2a 20 28  | record-sencha-class.()...(let*.( | 
| 82be0 |  28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f 64 65 2d    61 74 2d 70 6f 69 6e 74 20 28 31 2d 20 28 70 6f  | (node.(js2-node-at-point.(1-.(po | 
| 82c00 |  69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20    20 28 61 72 67 73 20 28 6a 73 32 2d 63 61 6c 6c  | int))))..........(args.(js2-call | 
| 82c20 |  2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64 65 29    29 0a 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65  | -node-args.node))..........(name | 
| 82c40 |  20 28 63 6c 2d 66 69 72 73 74 20 61 72 67 73 29    29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 74 68  | .(cl-first.args))..........(meth | 
| 82c60 |  6f 64 73 20 28 63 6c 2d 73 65 63 6f 6e 64 20 61    72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e  | ods.(cl-second.args))).....(when | 
| 82c80 |  20 28 61 6e 64 20 28 6a 73 32 2d 73 74 72 69 6e    67 2d 6e 6f 64 65 2d 70 20 6e 61 6d 65 29 20 28  | .(and.(js2-string-node-p.name).( | 
| 82ca0 |  6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 2d    70 20 6d 65 74 68 6f 64 73 29 29 0a 20 20 20 20  | js2-object-node-p.methods))..... | 
| 82cc0 |  20 20 28 6c 65 74 20 28 28 6e 61 6d 65 2d 76 61    6c 75 65 20 28 6a 73 32 2d 73 74 72 69 6e 67 2d  | ..(let.((name-value.(js2-string- | 
| 82ce0 |  6e 6f 64 65 2d 76 61 6c 75 65 20 6e 61 6d 65 29    29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | node-value.name))).........(js2- | 
| 82d00 |  72 65 63 6f 72 64 2d 6f 62 6a 65 63 74 2d 6c 69    74 65 72 61 6c 20 6d 65 74 68 6f 64 73 0a 20 20  | record-object-literal.methods... | 
| 82d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 82d40 |  20 28 69 66 20 6a 73 32 2d 69 6d 65 6e 75 2d 73    70 6c 69 74 2d 73 74 72 69 6e 67 2d 69 64 65 6e  | .(if.js2-imenu-split-string-iden | 
| 82d60 |  74 69 66 69 65 72 73 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | tifiers......................... | 
| 82d80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6e 61 6d  | ...............(split-string.nam | 
| 82da0 |  65 2d 76 61 6c 75 65 20 22 5c 5c 2e 22 20 74 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-value."\\.".t)................ | 
| 82dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 69 73 74 20 6e 61 6d 65  | ......................(list.name | 
| 82de0 |  2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -value))........................ | 
| 82e00 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6d 65  | ............(js2-node-abs-pos.me | 
| 82e20 |  74 68 6f 64 73 29 29 29 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65  | thods))))))..(defun.js2-imenu-re | 
| 82e40 |  63 6f 72 64 2d 6d 6f 63 68 61 2d 64 65 73 63 72    69 62 65 20 28 29 0a 20 20 22 50 6f 70 75 6c 61  | cord-mocha-describe.()..."Popula | 
| 82e60 |  74 65 20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65    63 6f 72 64 65 72 27 20 77 69 74 68 20 6d 6f 63  | te.`js2-imenu-recorder'.with.moc | 
| 82e80 |  68 61 2d 6c 69 6b 65 20 64 65 73 63 72 69 62 65    2f 69 74 2f 62 65 66 6f 72 65 45 61 63 68 2f e2  | ha-like.describe/it/beforeEach/. | 
| 82ea0 |  80 a6 20 6e 6f 64 65 73 2e 22 0a 20 20 28 6c 65    74 20 28 28 6e 6f 64 65 20 28 6a 73 32 2d 6e 6f  | ...nodes."...(let.((node.(js2-no | 
| 82ec0 |  64 65 2d 61 74 2d 70 6f 69 6e 74 20 28 31 2d 20    28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20  | de-at-point.(1-.(point)))))..... | 
| 82ee0 |  28 77 68 65 6e 20 28 6a 73 32 2d 69 6d 65 6e 75    2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 74  | (when.(js2-imenu-extras--mocha-t | 
| 82f00 |  6f 70 2d 6c 65 76 65 6c 2d 64 65 73 63 72 69 62    65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20  | op-level-describe-p.node)....... | 
| 82f20 |  28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61    73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e  | (js2-imenu-extras--mocha-visit-n | 
| 82f40 |  6f 64 65 20 6e 6f 64 65 20 28 6c 69 73 74 29 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | ode.node.(list)))))..(defun.js2- | 
| 82f60 |  69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f    63 68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 20 28  | imenu-extras--mocha-visit-node.( | 
| 82f80 |  6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 22 53    65 61 72 63 68 20 4e 4f 44 45 20 61 6e 64 20 69  | node.qname)..."Search.NODE.and.i | 
| 82fa0 |  74 73 20 63 68 69 6c 64 72 65 6e 20 66 6f 72 20    6d 6f 63 68 61 20 74 65 73 74 20 62 6c 6f 63 6b  | ts.children.for.mocha.test.block | 
| 82fc0 |  73 2e 0a 0a 49 66 20 6d 6f 63 68 61 20 74 65 73    74 20 62 6c 6f 63 6b 73 20 61 72 65 20 66 6f 75  | s...If.mocha.test.blocks.are.fou | 
| 82fe0 |  6e 64 20 28 65 2e 67 2e 2c 20 61 20 64 65 73 63    72 69 62 65 28 29 20 6f 72 20 69 74 28 29 20 62  | nd.(e.g.,.a.describe().or.it().b | 
| 83000 |  6c 6f 63 6b 29 0a 74 68 65 79 20 61 72 65 20 61    64 64 65 64 20 74 6f 20 60 6a 73 32 2d 69 6d 65  | lock).they.are.added.to.`js2-ime | 
| 83020 |  6e 75 2d 72 65 63 6f 72 64 65 72 27 20 77 69 74    68 20 51 4e 41 4d 45 20 61 73 20 70 72 65 66 69  | nu-recorder'.with.QNAME.as.prefi | 
| 83040 |  78 2e 0a 0a 51 4e 41 4d 45 20 69 73 20 61 20 6c    69 73 74 20 6f 66 20 6e 6f 64 65 73 20 72 65 70  | x...QNAME.is.a.list.of.nodes.rep | 
| 83060 |  72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 71 75    61 6c 69 66 69 65 64 20 6e 61 6d 65 20 6f 66 0a  | resenting.the.qualified.name.of. | 
| 83080 |  4e 4f 44 45 27 73 20 70 61 72 65 6e 74 2e 20 20    49 66 20 4e 4f 44 45 20 68 61 73 20 6e 6f 20 70  | NODE's.parent...If.NODE.has.no.p | 
| 830a0 |  61 72 65 6e 74 2c 20 51 4e 41 4d 45 20 69 73 20    74 68 65 20 65 6d 70 74 79 20 6c 69 73 74 2e 0a  | arent,.QNAME.is.the.empty.list.. | 
| 830c0 |  54 68 65 20 6c 61 73 74 20 69 74 65 6d 20 6f 66    20 51 4e 41 4d 45 20 69 73 20 4e 4f 44 45 27 73  | The.last.item.of.QNAME.is.NODE's | 
| 830e0 |  20 70 61 72 65 6e 74 20 6e 61 6d 65 20 77 68 69    6c 65 20 74 68 65 20 69 74 65 6d 0a 62 65 66 6f  | .parent.name.while.the.item.befo | 
| 83100 |  72 65 20 74 68 61 74 20 69 73 20 4e 4f 44 45 27    73 20 67 72 61 6e 64 70 61 72 65 6e 74 20 6e 61  | re.that.is.NODE's.grandparent.na | 
| 83120 |  6d 65 20 65 74 63 2e 22 0a 20 20 28 6a 73 32 2d    76 69 73 69 74 2d 61 73 74 0a 20 20 20 6e 6f 64  | me.etc."...(js2-visit-ast....nod | 
| 83140 |  65 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 68    69 6c 64 20 65 6e 64 2d 70 29 0a 20 20 20 20 20  | e....(lambda.(child.end-p)...... | 
| 83160 |  28 77 68 65 6e 20 28 6e 6f 74 20 65 6e 64 2d 70    29 0a 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d  | (when.(not.end-p)........(js2-im | 
| 83180 |  65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68    61 2d 63 68 65 63 6b 2d 75 6e 6b 6e 6f 77 6e 2d  | enu-extras--mocha-check-unknown- | 
| 831a0 |  6e 6f 64 65 20 63 68 69 6c 64 20 71 6e 61 6d 65    29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | node.child.qname)))))..(defun.js | 
| 831c0 |  32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d    6d 6f 63 68 61 2d 63 68 65 63 6b 2d 75 6e 6b 6e  | 2-imenu-extras--mocha-check-unkn | 
| 831e0 |  6f 77 6e 2d 6e 6f 64 65 20 28 6e 6f 64 65 20 71    6e 61 6d 65 29 0a 20 20 22 49 66 20 4e 4f 44 45  | own-node.(node.qname)..."If.NODE | 
| 83200 |  20 69 73 20 61 20 6d 6f 63 68 61 20 74 65 73 74    20 62 6c 6f 63 6b 2c 20 70 6f 70 75 6c 61 74 65  | .is.a.mocha.test.block,.populate | 
| 83220 |  20 60 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f    72 64 65 72 27 2e 0a 0a 51 4e 41 4d 45 20 69 73  | .`js2-imenu-recorder'...QNAME.is | 
| 83240 |  20 74 68 65 20 73 61 6d 65 20 61 73 20 64 65 73    63 72 69 62 65 64 20 69 6e 0a 60 6a 73 32 2d 69  | .the.same.as.described.in.`js2-i | 
| 83260 |  6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63    68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 27 2e 22  | menu-extras--mocha-visit-node'." | 
| 83280 |  0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6a 73    32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d  | ...(cond....((js2-imenu-extras-- | 
| 832a0 |  6d 6f 63 68 61 2d 64 65 73 63 72 69 62 65 2d 6e    6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20 20 20 20  | mocha-describe-node-p.node)..... | 
| 832c0 |  28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6a 73    32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d  | (progn.......(js2-imenu-extras-- | 
| 832e0 |  6d 6f 63 68 61 2d 76 69 73 69 74 2d 64 65 73 63    72 69 62 65 2d 6e 6f 64 65 20 6e 6f 64 65 20 71  | mocha-visit-describe-node.node.q | 
| 83300 |  6e 61 6d 65 29 0a 20 20 20 20 20 20 6e 69 6c 29    29 0a 20 20 20 28 28 6a 73 32 2d 69 6d 65 6e 75  | name).......nil))....((js2-imenu | 
| 83320 |  2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 69    74 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a 20  | -extras--mocha-it-node-p.node).. | 
| 83340 |  20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20    28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61  | ...(progn.......(js2-imenu-extra | 
| 83360 |  73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 69    74 2d 6e 6f 64 65 20 6e 6f 64 65 20 71 6e 61 6d  | s--mocha-visit-it-node.node.qnam | 
| 83380 |  65 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 0a 20    20 20 28 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78  | e).......nil))....((js2-imenu-ex | 
| 833a0 |  74 72 61 73 2d 2d 6d 6f 63 68 61 2d 62 65 66 6f    72 65 2d 61 66 74 65 72 2d 6e 6f 64 65 2d 70 20  | tras--mocha-before-after-node-p. | 
| 833c0 |  6e 6f 64 65 29 0a 20 20 20 20 28 70 72 6f 67 6e    0a 20 20 20 20 20 20 28 6a 73 32 2d 69 6d 65 6e  | node).....(progn.......(js2-imen | 
| 833e0 |  75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d    76 69 73 69 74 2d 62 65 66 6f 72 65 2d 61 66 74  | u-extras--mocha-visit-before-aft | 
| 83400 |  65 72 2d 6e 6f 64 65 20 6e 6f 64 65 20 71 6e 61    6d 65 29 0a 20 20 20 20 20 20 6e 69 6c 29 29 0a  | er-node.node.qname).......nil)). | 
| 83420 |  20 20 20 28 28 6a 73 32 2d 69 6d 65 6e 75 2d 65    78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 6e 61 6d  | ...((js2-imenu-extras--mocha-nam | 
| 83440 |  65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65    2d 70 20 6e 6f 64 65 29 0a 20 20 20 20 28 70 72  | ed-function-node-p.node).....(pr | 
| 83460 |  6f 67 6e 0a 20 20 20 20 20 20 28 6a 73 32 2d 69    6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63  | ogn.......(js2-imenu-extras--moc | 
| 83480 |  68 61 2d 76 69 73 69 74 2d 6e 61 6d 65 64 2d 66    75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 20 6e 6f 64  | ha-visit-named-function-node.nod | 
| 834a0 |  65 20 71 6e 61 6d 65 29 0a 20 20 20 20 20 20 6e    69 6c 29 29 0a 20 20 20 28 74 20 74 29 29 29 0a  | e.qname).......nil))....(t.t))). | 
| 834c0 |  0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e    75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d  | .(defun.js2-imenu-extras--mocha- | 
| 834e0 |  74 6f 70 2d 6c 65 76 65 6c 2d 64 65 73 63 72 69    62 65 2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52  | top-level-describe-p.(node)..."R | 
| 83500 |  65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66    20 4e 4f 44 45 20 69 73 20 61 20 74 6f 70 2d 6c  | eturn.non-nil.if.NODE.is.a.top-l | 
| 83520 |  65 76 65 6c 20 6d 6f 63 68 61 20 64 65 73 63 72    69 62 65 28 29 20 62 6c 6f 63 6b 2e 0a 0a 41 20  | evel.mocha.describe().block...A. | 
| 83540 |  74 6f 70 2d 6c 65 76 65 6c 20 62 6c 6f 63 6b 20    69 73 20 6f 6e 65 20 77 68 69 63 68 20 69 73 6e  | top-level.block.is.one.which.isn | 
| 83560 |  27 74 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61    6e 6f 74 68 65 72 20 6d 6f 63 68 61 0a 64 65 73  | 't.included.in.another.mocha.des | 
| 83580 |  63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e 22 0a    20 20 28 61 6e 64 20 28 6a 73 32 2d 69 6d 65 6e  | cribe().block."...(and.(js2-imen | 
| 835a0 |  75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d    64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d 70 20  | u-extras--mocha-describe-node-p. | 
| 835c0 |  6e 6f 64 65 29 0a 20 20 20 20 20 20 20 28 6e 6f    74 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74  | node)........(not.(js2-imenu-ext | 
| 835e0 |  72 61 73 2d 2d 6d 6f 63 68 61 2d 69 73 2d 6f 72    2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69 62 65  | ras--mocha-is-or-within-describe | 
| 83600 |  2d 62 6c 6f 63 6b 2d 70 20 28 6a 73 32 2d 6e 6f    64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65 29 29  | -block-p.(js2-node-parent.node)) | 
| 83620 |  29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d    69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f  | )))..(defun.js2-imenu-extras--mo | 
| 83640 |  63 68 61 2d 77 69 74 68 69 6e 2d 64 65 73 63 72    69 62 65 2d 62 6c 6f 63 6b 2d 70 20 28 6e 6f 64  | cha-within-describe-block-p.(nod | 
| 83660 |  65 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e    2d 6e 69 6c 20 69 66 20 4e 4f 44 45 20 69 73 20  | e)..."Return.non-nil.if.NODE.is. | 
| 83680 |  77 69 74 68 69 6e 20 61 20 6d 6f 63 68 61 20 64    65 73 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e  | within.a.mocha.describe().block. | 
| 836a0 |  22 0a 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65    78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 69 73 2d  | "...(js2-imenu-extras--mocha-is- | 
| 836c0 |  6f 72 2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69    62 65 2d 62 6c 6f 63 6b 2d 70 20 28 6a 73 32 2d  | or-within-describe-block-p.(js2- | 
| 836e0 |  6e 6f 64 65 2d 70 61 72 65 6e 74 20 6e 6f 64 65    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | node-parent.node)))..(defun.js2- | 
| 83700 |  69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f    63 68 61 2d 69 73 2d 6f 72 2d 77 69 74 68 69 6e  | imenu-extras--mocha-is-or-within | 
| 83720 |  2d 64 65 73 63 72 69 62 65 2d 62 6c 6f 63 6b 2d    70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75  | -describe-block-p.(node)..."Retu | 
| 83740 |  72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f    44 45 20 69 73 20 61 20 6f 72 20 77 69 74 68 69  | rn.non-nil.if.NODE.is.a.or.withi | 
| 83760 |  6e 20 61 20 6d 6f 63 68 61 20 64 65 73 63 72 69    62 65 28 29 20 62 6c 6f 63 6b 2e 22 0a 20 20 28  | n.a.mocha.describe().block."...( | 
| 83780 |  77 68 65 6e 20 6e 6f 64 65 0a 20 20 20 20 28 6f    72 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74  | when.node.....(or.(js2-imenu-ext | 
| 837a0 |  72 61 73 2d 2d 6d 6f 63 68 61 2d 64 65 73 63 72    69 62 65 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | ras--mocha-describe-node-p.node) | 
| 837c0 |  0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d    65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68  | .........(js2-imenu-extras--moch | 
| 837e0 |  61 2d 77 69 74 68 69 6e 2d 64 65 73 63 72 69 62    65 2d 62 6c 6f 63 6b 2d 70 20 6e 6f 64 65 29 29  | a-within-describe-block-p.node)) | 
| 83800 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69    6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63  | ))..(defun.js2-imenu-extras--moc | 
| 83820 |  68 61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65    2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74  | ha-describe-node-p.(node)..."Ret | 
| 83840 |  75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e    4f 44 45 20 69 73 20 61 20 6d 6f 63 68 61 20 64  | urn.non-nil.if.NODE.is.a.mocha.d | 
| 83860 |  65 73 63 72 69 62 65 28 29 20 62 6c 6f 63 6b 2e    22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28  | escribe().block."...(when-let.(( | 
| 83880 |  6e 61 6d 65 20 28 6a 73 32 2d 69 6d 65 6e 75 2d    65 78 74 72 61 73 2d 2d 63 61 6c 6c 2d 74 61 72  | name.(js2-imenu-extras--call-tar | 
| 838a0 |  67 65 74 2d 6e 61 6d 65 20 6e 6f 64 65 29 29 29    0a 20 20 20 20 28 6d 65 6d 62 65 72 20 6e 61 6d  | get-name.node))).....(member.nam | 
| 838c0 |  65 20 6a 73 32 2d 69 6d 65 6e 75 2d 6d 6f 63 68    61 2d 64 65 73 63 72 69 62 65 2d 6e 6f 64 65 2d  | e.js2-imenu-mocha-describe-node- | 
| 838e0 |  6e 61 6d 65 73 29 29 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61  | names)))..(defun.js2-imenu-extra | 
| 83900 |  73 2d 2d 6d 6f 63 68 61 2d 69 74 2d 6e 6f 64 65    2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74  | s--mocha-it-node-p.(node)..."Ret | 
| 83920 |  75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e    4f 44 45 20 69 73 20 61 20 6d 6f 63 68 61 20 69  | urn.non-nil.if.NODE.is.a.mocha.i | 
| 83940 |  74 28 29 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 77    68 65 6e 2d 6c 65 74 20 28 28 6e 61 6d 65 20 28  | t().block."...(when-let.((name.( | 
| 83960 |  6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73    2d 2d 63 61 6c 6c 2d 74 61 72 67 65 74 2d 6e 61  | js2-imenu-extras--call-target-na | 
| 83980 |  6d 65 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28    6d 65 6d 62 65 72 20 6e 61 6d 65 20 6a 73 32 2d  | me.node))).....(member.name.js2- | 
| 839a0 |  69 6d 65 6e 75 2d 6d 6f 63 68 61 2d 69 74 2d 6e    6f 64 65 2d 6e 61 6d 65 73 29 29 29 0a 0a 28 64  | imenu-mocha-it-node-names)))..(d | 
| 839c0 |  65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65    78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 62 65 66  | efun.js2-imenu-extras--mocha-bef | 
| 839e0 |  6f 72 65 2d 61 66 74 65 72 2d 6e 6f 64 65 2d 70    20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74 75 72  | ore-after-node-p.(node)..."Retur | 
| 83a00 |  6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e 4f 44    45 20 69 73 20 61 20 60 7b 62 65 66 6f 72 65 2c  | n.non-nil.if.NODE.is.a.`{before, | 
| 83a20 |  61 66 74 65 72 7d 7b 45 61 63 68 2c 41 6c 6c 7d    27 20 62 6c 6f 63 6b 2e 22 0a 20 20 28 77 68 65  | after}{Each,All}'.block."...(whe | 
| 83a40 |  6e 2d 6c 65 74 20 28 28 6e 61 6d 65 20 28 6a 73    32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d  | n-let.((name.(js2-imenu-extras-- | 
| 83a60 |  63 61 6c 6c 2d 74 61 72 67 65 74 2d 6e 61 6d 65    20 6e 6f 64 65 29 29 29 0a 20 20 20 20 28 6d 65  | call-target-name.node))).....(me | 
| 83a80 |  6d 62 65 72 20 6e 61 6d 65 20 6a 73 32 2d 69 6d    65 6e 75 2d 6d 6f 63 68 61 2d 68 6f 6f 6b 2d 6e  | mber.name.js2-imenu-mocha-hook-n | 
| 83aa0 |  6f 64 65 2d 6e 61 6d 65 73 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65  | ode-names)))..(defun.js2-imenu-e | 
| 83ac0 |  78 74 72 61 73 2d 2d 6d 6f 63 68 61 2d 6e 61 6d    65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65  | xtras--mocha-named-function-node | 
| 83ae0 |  2d 70 20 28 6e 6f 64 65 29 0a 20 20 22 52 65 74    75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4e  | -p.(node)..."Return.non-nil.if.N | 
| 83b00 |  4f 44 45 20 69 73 20 61 20 66 75 6e 63 74 69 6f    6e 20 64 65 66 69 6e 69 74 69 6f 6e 2e 22 0a 20  | ODE.is.a.function.definition.".. | 
| 83b20 |  20 28 61 6e 64 20 28 6a 73 32 2d 66 75 6e 63 74    69 6f 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | .(and.(js2-function-node-p.node) | 
| 83b40 |  0a 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75 6e    63 74 69 6f 6e 2d 6e 61 6d 65 20 6e 6f 64 65 29  | ........(js2-function-name.node) | 
| 83b60 |  29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69    6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63  | ))..(defun.js2-imenu-extras--moc | 
| 83b80 |  68 61 2d 76 69 73 69 74 2d 64 65 73 63 72 69 62    65 2d 6e 6f 64 65 20 28 6e 6f 64 65 20 71 6e 61  | ha-visit-describe-node.(node.qna | 
| 83ba0 |  6d 65 29 0a 20 20 22 52 65 63 6f 72 64 20 4e 4f    44 45 2c 20 61 20 6d 6f 63 68 61 20 64 65 73 63  | me)..."Record.NODE,.a.mocha.desc | 
| 83bc0 |  72 69 62 65 28 29 20 62 6c 6f 63 6b 2c 20 69 6e    20 69 6d 65 6e 75 2e 0a 41 6c 73 6f 20 73 65 61  | ribe().block,.in.imenu..Also.sea | 
| 83be0 |  72 63 68 20 61 6e 64 20 72 65 63 6f 72 64 20 6f    74 68 65 72 20 6d 6f 63 68 61 20 62 6c 6f 63 6b  | rch.and.record.other.mocha.block | 
| 83c00 |  73 20 77 69 74 68 69 6e 20 4e 4f 44 45 27 73 20    62 6f 64 79 2e 0a 0a 51 4e 41 4d 45 20 69 73 20  | s.within.NODE's.body...QNAME.is. | 
| 83c20 |  74 68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63    72 69 62 65 64 20 69 6e 0a 60 6a 73 32 2d 69 6d  | the.same.as.described.in.`js2-im | 
| 83c40 |  65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68    61 2d 76 69 73 69 74 2d 6e 6f 64 65 27 2e 22 0a  | enu-extras--mocha-visit-node'.". | 
| 83c60 |  20 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28    6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72  | ..(let*.((args.(js2-call-node-ar | 
| 83c80 |  67 73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20    20 20 20 28 6e 61 6d 65 20 28 63 6c 2d 66 69 72  | gs.node))..........(name.(cl-fir | 
| 83ca0 |  73 74 20 61 72 67 73 29 29 0a 20 20 20 20 20 20    20 20 20 28 71 6e 61 6d 65 20 28 61 70 70 65 6e  | st.args))..........(qname.(appen | 
| 83cc0 |  64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 6e 61    6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28  | d.qname.(list.name)))..........( | 
| 83ce0 |  62 6f 64 79 20 28 63 61 72 20 28 6c 61 73 74 20    61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20  | body.(car.(last.args)))......... | 
| 83d00 |  20 28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 32 2d    6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64  | .(position.(js2-node-abs-pos.nod | 
| 83d20 |  65 29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65    63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79  | e))).....(js2-record-imenu-entry | 
| 83d40 |  20 62 6f 64 79 20 71 6e 61 6d 65 20 70 6f 73 69    74 69 6f 6e 29 0a 20 20 20 20 28 6a 73 32 2d 69  | .body.qname.position).....(js2-i | 
| 83d60 |  6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63    68 61 2d 76 69 73 69 74 2d 6e 6f 64 65 20 62 6f  | menu-extras--mocha-visit-node.bo | 
| 83d80 |  64 79 20 71 6e 61 6d 65 29 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78  | dy.qname)))..(defun.js2-imenu-ex | 
| 83da0 |  74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69    74 2d 69 74 2d 6e 6f 64 65 20 28 6e 6f 64 65 20  | tras--mocha-visit-it-node.(node. | 
| 83dc0 |  71 6e 61 6d 65 29 0a 20 20 22 52 65 63 6f 72 64    20 4e 4f 44 45 2c 20 61 20 6d 6f 63 68 61 20 69  | qname)..."Record.NODE,.a.mocha.i | 
| 83de0 |  74 28 29 20 62 6c 6f 63 6b 2c 20 69 6e 20 69 6d    65 6e 75 2e 0a 0a 51 4e 41 4d 45 20 69 73 20 74  | t().block,.in.imenu...QNAME.is.t | 
| 83e00 |  68 65 20 73 61 6d 65 20 61 73 20 64 65 73 63 72    69 62 65 64 20 69 6e 0a 60 6a 73 32 2d 69 6d 65  | he.same.as.described.in.`js2-ime | 
| 83e20 |  6e 75 2d 65 78 74 72 61 73 2d 2d 6d 6f 63 68 61    2d 76 69 73 69 74 2d 6e 6f 64 65 27 2e 22 0a 20  | nu-extras--mocha-visit-node'.".. | 
| 83e40 |  20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 6a    73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 61 72 67  | .(let*.((args.(js2-call-node-arg | 
| 83e60 |  73 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20    20 20 28 6e 61 6d 65 20 28 63 6c 2d 66 69 72 73  | s.node))..........(name.(cl-firs | 
| 83e80 |  74 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20    20 20 28 71 6e 61 6d 65 20 28 61 70 70 65 6e 64  | t.args))..........(qname.(append | 
| 83ea0 |  20 71 6e 61 6d 65 20 28 6c 69 73 74 20 6e 61 6d    65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62  | .qname.(list.name)))..........(b | 
| 83ec0 |  6f 64 79 20 28 63 61 72 20 28 6c 61 73 74 20 61    72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20  | ody.(car.(last.args))).......... | 
| 83ee0 |  28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 32 2d 6e    6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65  | (position.(js2-node-abs-pos.node | 
| 83f00 |  29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 63    6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20  | ))).....(js2-record-imenu-entry. | 
| 83f20 |  62 6f 64 79 20 71 6e 61 6d 65 20 70 6f 73 69 74    69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a  | body.qname.position)))..(defun.j | 
| 83f40 |  73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d    2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 62 65 66  | s2-imenu-extras--mocha-visit-bef | 
| 83f60 |  6f 72 65 2d 61 66 74 65 72 2d 6e 6f 64 65 20 28    6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20 22 52  | ore-after-node.(node.qname)..."R | 
| 83f80 |  65 63 6f 72 64 20 4e 4f 44 45 2c 20 61 20 6d 6f    63 68 61 20 7b 62 65 66 6f 72 65 2c 61 66 74 65  | ecord.NODE,.a.mocha.{before,afte | 
| 83fa0 |  72 7d 7b 45 61 63 68 2c 41 6c 6c 7d 28 29 20 62    6c 6f 63 6b 2c 20 69 6e 20 69 6d 65 6e 75 2e 0a  | r}{Each,All}().block,.in.imenu.. | 
| 83fc0 |  0a 51 4e 41 4d 45 20 69 73 20 74 68 65 20 73 61    6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20  | .QNAME.is.the.same.as.described. | 
| 83fe0 |  69 6e 0a 60 6a 73 32 2d 69 6d 65 6e 75 2d 65 78    74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69  | in.`js2-imenu-extras--mocha-visi | 
| 84000 |  74 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74    2a 20 28 28 61 72 67 73 20 28 6a 73 32 2d 63 61  | t-node'."...(let*.((args.(js2-ca | 
| 84020 |  6c 6c 2d 6e 6f 64 65 2d 61 72 67 73 20 6e 6f 64    65 29 29 0a 20 20 20 20 20 20 20 20 20 28 71 6e  | ll-node-args.node))..........(qn | 
| 84040 |  61 6d 65 20 28 61 70 70 65 6e 64 20 71 6e 61 6d    65 20 28 6c 69 73 74 20 28 6a 73 32 2d 69 6d 65  | ame.(append.qname.(list.(js2-ime | 
| 84060 |  6e 75 2d 65 78 74 72 61 73 2d 2d 63 61 6c 6c 2d    74 61 72 67 65 74 2d 6e 61 6d 65 20 6e 6f 64 65  | nu-extras--call-target-name.node | 
| 84080 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62    6f 64 79 20 28 63 61 72 20 28 6c 61 73 74 20 61  | ))))..........(body.(car.(last.a | 
| 840a0 |  72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20    28 70 6f 73 69 74 69 6f 6e 20 28 6a 73 32 2d 6e  | rgs)))..........(position.(js2-n | 
| 840c0 |  6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f 64 65    29 29 29 0a 20 20 20 20 28 6a 73 32 2d 72 65 63  | ode-abs-pos.node))).....(js2-rec | 
| 840e0 |  6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20    62 6f 64 79 20 71 6e 61 6d 65 20 70 6f 73 69 74  | ord-imenu-entry.body.qname.posit | 
| 84100 |  69 6f 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d  | ion)))..(defun.js2-imenu-extras- | 
| 84120 |  2d 6d 6f 63 68 61 2d 76 69 73 69 74 2d 6e 61 6d    65 64 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65  | -mocha-visit-named-function-node | 
| 84140 |  20 28 6e 6f 64 65 20 71 6e 61 6d 65 29 0a 20 20    22 52 65 63 6f 72 64 20 4e 4f 44 45 2c 20 61 20  | .(node.qname)..."Record.NODE,.a. | 
| 84160 |  66 75 6e 63 74 69 6f 6e 20 64 65 63 6c 61 72 61    74 69 6f 6e 2c 20 69 6e 20 69 6d 65 6e 75 2e 0a  | function.declaration,.in.imenu.. | 
| 84180 |  0a 51 4e 41 4d 45 20 69 73 20 74 68 65 20 73 61    6d 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20  | .QNAME.is.the.same.as.described. | 
| 841a0 |  69 6e 0a 60 6a 73 32 2d 69 6d 65 6e 75 2d 65 78    74 72 61 73 2d 2d 6d 6f 63 68 61 2d 76 69 73 69  | in.`js2-imenu-extras--mocha-visi | 
| 841c0 |  74 2d 6e 6f 64 65 27 2e 22 0a 20 20 28 6c 65 74    2a 20 28 28 71 6e 61 6d 65 20 28 61 70 70 65 6e  | t-node'."...(let*.((qname.(appen | 
| 841e0 |  64 20 71 6e 61 6d 65 20 28 6c 69 73 74 20 28 6a    73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65  | d.qname.(list.(js2-function-name | 
| 84200 |  20 6e 6f 64 65 29 29 29 29 0a 20 20 20 20 20 20    20 20 20 28 70 6f 73 69 74 69 6f 6e 20 28 6a 73  | .node))))..........(position.(js | 
| 84220 |  32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e    6f 64 65 29 29 29 0a 20 20 20 20 28 6a 73 32 2d  | 2-node-abs-pos.node))).....(js2- | 
| 84240 |  72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74    72 79 20 6e 6f 64 65 20 71 6e 61 6d 65 20 70 6f  | record-imenu-entry.node.qname.po | 
| 84260 |  73 69 74 69 6f 6e 29 29 29 0a 0a 28 64 65 66 75    6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72  | sition)))..(defun.js2-imenu-extr | 
| 84280 |  61 73 2d 2d 63 61 6c 6c 2d 74 61 72 67 65 74 2d    6e 61 6d 65 20 28 6e 6f 64 65 29 0a 20 20 22 52  | as--call-target-name.(node)..."R | 
| 842a0 |  65 74 75 72 6e 20 74 68 65 20 66 75 6e 63 74 69    6f 6e 20 6e 61 6d 65 2c 20 61 73 20 73 74 72 69  | eturn.the.function.name,.as.stri | 
| 842c0 |  6e 67 2c 20 63 61 6c 6c 65 64 20 62 79 20 4e 4f    44 45 2e 0a 49 66 20 6e 6f 64 65 20 69 73 20 6e  | ng,.called.by.NODE..If.node.is.n | 
| 842e0 |  6f 74 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 61    6c 6c 2c 20 72 65 74 75 72 6e 20 6e 69 6c 2e 22  | ot.a.function.call,.return.nil." | 
| 84300 |  0a 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 63 61    6c 6c 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29 0a  | ...(when.(js2-call-node-p.node). | 
| 84320 |  20 20 20 20 28 6a 73 32 2d 69 6d 65 6e 75 2d 65    78 74 72 61 73 2d 2d 73 74 72 69 6e 67 2d 63 6f  | ....(js2-imenu-extras--string-co | 
| 84340 |  6e 74 65 6e 74 20 28 6a 73 32 2d 63 61 6c 6c 2d    6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f 64 65  | ntent.(js2-call-node-target.node | 
| 84360 |  29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 2d 73  | ))))..(defun.js2-imenu-extras--s | 
| 84380 |  74 72 69 6e 67 2d 63 6f 6e 74 65 6e 74 20 28 6e    6f 64 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61  | tring-content.(node)..."Return.a | 
| 843a0 |  20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e    74 69 6e 67 20 74 68 65 20 76 61 6c 75 65 20 6f  | .string.representing.the.value.o | 
| 843c0 |  66 20 4e 4f 44 45 2e 22 0a 20 20 28 69 66 20 28    6a 73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d  | f.NODE."...(if.(js2-string-node- | 
| 843e0 |  70 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 28 6a    73 32 2d 73 74 72 69 6e 67 2d 6e 6f 64 65 2d 76  | p.node).......(js2-string-node-v | 
| 84400 |  61 6c 75 65 20 6e 6f 64 65 29 0a 20 20 20 20 28    6c 65 74 20 28 28 73 74 61 72 74 20 28 6a 73 32  | alue.node).....(let.((start.(js2 | 
| 84420 |  2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 6e 6f    64 65 29 29 29 0a 20 20 20 20 20 20 28 62 75 66  | -node-abs-pos.node))).......(buf | 
| 84440 |  66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f    2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20  | fer-substring-no-properties..... | 
| 84460 |  20 20 20 73 74 61 72 74 0a 20 20 20 20 20 20 20    28 2b 20 73 74 61 72 74 20 28 6a 73 32 2d 6e 6f  | ...start........(+.start.(js2-no | 
| 84480 |  64 65 2d 6c 65 6e 20 6e 6f 64 65 29 29 29 29 29    29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 69 6d  | de-len.node))))))..(defun.js2-im | 
| 844a0 |  65 6e 75 2d 77 61 6c 6b 2d 61 73 74 20 28 29 0a    20 20 28 6a 73 32 2d 76 69 73 69 74 2d 61 73 74  | enu-walk-ast.()...(js2-visit-ast | 
| 844c0 |  0a 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 61 73 74    0a 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 6f 64  | ....js2-mode-ast....(lambda.(nod | 
| 844e0 |  65 20 65 6e 64 2d 70 29 0a 20 20 20 20 20 28 75    6e 6c 65 73 73 20 65 6e 64 2d 70 0a 20 20 20 20  | e.end-p)......(unless.end-p..... | 
| 84500 |  20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20    20 28 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75  | ...(cond.........((and.js2-imenu | 
| 84520 |  2d 73 68 6f 77 2d 6f 74 68 65 72 2d 66 75 6e 63    74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20  | -show-other-functions........... | 
| 84540 |  20 20 20 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d    70 72 6f 70 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65  | ....(js2-object-prop-node-p.node | 
| 84560 |  29 29 0a 20 20 20 20 20 20 20 20 20 28 6a 73 32    2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72  | ))..........(js2-imenu-record-or | 
| 84580 |  70 68 61 6e 2d 70 72 6f 70 2d 6e 6f 64 65 2d 66    75 6e 63 74 69 6f 6e 20 6e 6f 64 65 29 29 0a 20  | phan-prop-node-function.node)).. | 
| 845a0 |  20 20 20 20 20 20 20 28 28 6a 73 32 2d 61 73 73    69 67 6e 2d 6e 6f 64 65 2d 70 20 6e 6f 64 65 29  | .......((js2-assign-node-p.node) | 
| 845c0 |  0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20  | ..........(cond...........((and. | 
| 845e0 |  6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6f    74 68 65 72 2d 66 75 6e 63 74 69 6f 6e 73 0a 20  | js2-imenu-show-other-functions.. | 
| 84600 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64  | ...............(js2-function-nod | 
| 84620 |  65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 61 73 73 69 67 6e  | e-p..................(js2-assign | 
| 84640 |  2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65    29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28  | -node-right.node)))............( | 
| 84660 |  6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64    2d 6f 72 70 68 61 6e 2d 61 73 73 69 67 6e 2d 6e  | js2-imenu-record-orphan-assign-n | 
| 84680 |  6f 64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 61 73  | ode-function.............(js2-as | 
| 846a0 |  73 69 67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e    6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | sign-node-left.node)............ | 
| 846c0 |  20 28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64    65 2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 0a  | .(js2-assign-node-right.node))). | 
| 846e0 |  20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20    6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f 77 2d 6d  | ..........((and.js2-imenu-show-m | 
| 84700 |  6f 64 75 6c 65 2d 70 61 74 74 65 72 6e 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | odule-pattern.................(j | 
| 84720 |  73 32 2d 63 61 6c 6c 2d 6e 6f 64 65 2d 70 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-call-node-p.................. | 
| 84740 |  28 6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65    2d 72 69 67 68 74 20 6e 6f 64 65 29 29 29 0a 20  | (js2-assign-node-right.node))).. | 
| 84760 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69    6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6d 6f 64 75  | ..........(js2-imenu-record-modu | 
| 84780 |  6c 65 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 61 73 73 69  | le-pattern.............(js2-assi | 
| 847a0 |  67 6e 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f 64    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28  | gn-node-left.node).............( | 
| 847c0 |  6a 73 32 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d    72 69 67 68 74 20 6e 6f 64 65 29 29 29 29 29 0a  | js2-assign-node-right.node))))). | 
| 847e0 |  20 20 20 20 20 20 20 20 28 28 6a 73 32 2d 76 61    72 2d 69 6e 69 74 2d 6e 6f 64 65 2d 70 20 6e 6f  | ........((js2-var-init-node-p.no | 
| 84800 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 61  | de)..........(cond...........((a | 
| 84820 |  6e 64 20 6a 73 32 2d 69 6d 65 6e 75 2d 73 68 6f    77 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f 6e  | nd.js2-imenu-show-other-function | 
| 84840 |  73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 66 75 6e 63 74 69 6f 6e 2d  | s.................(js2-function- | 
| 84860 |  6e 6f 64 65 2d 70 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72  | node-p..................(js2-var | 
| 84880 |  2d 69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69    61 6c 69 7a 65 72 20 6e 6f 64 65 29 29 29 0a 20  | -init-node-initializer.node))).. | 
| 848a0 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69    6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72 70 68  | ..........(js2-imenu-record-orph | 
| 848c0 |  61 6e 2d 61 73 73 69 67 6e 2d 6e 6f 64 65 2d 66    75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20  | an-assign-node-function......... | 
| 848e0 |  20 20 20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69    74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20 6e 6f  | ....(js2-var-init-node-target.no | 
| 84900 |  64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d 6e 6f  | de).............(js2-var-init-no | 
| 84920 |  64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72 20 6e    6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20  | de-initializer.node))).......... | 
| 84940 |  20 28 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75    2d 73 68 6f 77 2d 6d 6f 64 75 6c 65 2d 70 61 74  | .((and.js2-imenu-show-module-pat | 
| 84960 |  74 65 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e  | tern.................(js2-call-n | 
| 84980 |  6f 64 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d  | ode-p..................(js2-var- | 
| 849a0 |  69 6e 69 74 2d 6e 6f 64 65 2d 69 6e 69 74 69 61    6c 69 7a 65 72 20 6e 6f 64 65 29 29 29 0a 20 20  | init-node-initializer.node)))... | 
| 849c0 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 69 6d    65 6e 75 2d 72 65 63 6f 72 64 2d 6d 6f 64 75 6c  | .........(js2-imenu-record-modul | 
| 849e0 |  65 2d 70 61 74 74 65 72 6e 0a 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 76 61 72 2d 69  | e-pattern.............(js2-var-i | 
| 84a00 |  6e 69 74 2d 6e 6f 64 65 2d 74 61 72 67 65 74 20    6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20  | nit-node-target.node)........... | 
| 84a20 |  20 20 28 6a 73 32 2d 76 61 72 2d 69 6e 69 74 2d    6e 6f 64 65 2d 69 6e 69 74 69 61 6c 69 7a 65 72  | ..(js2-var-init-node-initializer | 
| 84a40 |  20 6e 6f 64 65 29 29 29 29 29 29 0a 20 20 20 20    20 20 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e  | .node))))))........t))))..(defun | 
| 84a60 |  20 6a 73 32 2d 69 6d 65 6e 75 2d 70 61 72 65 6e    74 2d 6b 65 79 2d 6e 61 6d 65 73 20 28 6e 6f 64  | .js2-imenu-parent-key-names.(nod | 
| 84a80 |  65 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69    73 74 20 6f 66 20 70 61 72 65 6e 74 20 6b 65 79  | e)..."Get.the.list.of.parent.key | 
| 84aa0 |  20 6e 61 6d 65 73 20 6f 66 20 4e 4f 44 45 2e 0a    0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 66 6f  | .names.of.NODE...For.example,.fo | 
| 84ac0 |  72 20 63 6f 64 65 0a 0a 20 20 7b 72 75 6c 65 73    3a 20 7b 70 61 73 73 77 6f 72 64 3a 20 7b 72 65  | r.code....{rules:.{password:.{re | 
| 84ae0 |  71 75 69 72 65 64 3a 20 66 75 6e 63 74 69 6f 6e    28 29 20 7b 7d 7d 7d 7d 0a 0a 77 68 65 6e 20 4e  | quired:.function().{}}}}..when.N | 
| 84b00 |  4f 44 45 20 69 73 20 74 68 65 20 69 6e 6e 65 72    20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f  | ODE.is.the.inner.`js2-object-pro | 
| 84b20 |  70 2d 6d 6f 64 65 27 2c 0a 69 74 20 72 65 74 75    72 6e 73 20 28 5c 22 72 75 6c 65 73 5c 22 20 5c  | p-mode',.it.returns.(\"rules\".\ | 
| 84b40 |  22 70 61 73 73 77 6f 72 64 5c 22 29 2e 22 0a 20    20 28 6c 65 74 20 28 72 6c 74 20 28 6e 20 6e 6f  | "password\")."...(let.(rlt.(n.no | 
| 84b60 |  64 65 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20    28 73 65 74 71 20 6e 20 28 6a 73 32 2d 69 6d 65  | de)).....(while.(setq.n.(js2-ime | 
| 84b80 |  6e 75 2d 70 61 72 65 6e 74 2d 70 72 6f 70 2d 6e    6f 64 65 20 6e 29 29 0a 20 20 20 20 20 20 28 70  | nu-parent-prop-node.n)).......(p | 
| 84ba0 |  75 73 68 20 28 6a 73 32 2d 70 72 6f 70 2d 6e 6f    64 65 2d 6e 61 6d 65 20 28 6a 73 32 2d 6f 62 6a  | ush.(js2-prop-node-name.(js2-obj | 
| 84bc0 |  65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d 6c 65    66 74 20 6e 29 29 20 72 6c 74 29 29 0a 20 20 20  | ect-prop-node-left.n)).rlt)).... | 
| 84be0 |  20 72 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 6a    73 32 2d 69 6d 65 6e 75 2d 70 61 72 65 6e 74 2d  | .rlt))..(defun.js2-imenu-parent- | 
| 84c00 |  70 72 6f 70 2d 6e 6f 64 65 20 28 6e 6f 64 65 29    0a 20 20 22 57 68 65 6e 20 74 68 65 20 70 61 72  | prop-node.(node)..."When.the.par | 
| 84c20 |  65 6e 74 20 6f 66 20 4e 4f 44 45 20 69 73 20 60    6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f 64 65 27  | ent.of.NODE.is.`js2-object-node' | 
| 84c40 |  2c 0a 61 6e 64 20 74 68 65 20 67 72 61 6e 64 70    61 72 65 6e 74 20 69 73 20 60 6a 73 32 2d 6f 62  | ,.and.the.grandparent.is.`js2-ob | 
| 84c60 |  6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 27 2c    0a 72 65 74 75 72 6e 20 74 68 65 20 67 72 61 6e  | ject-prop-node',.return.the.gran | 
| 84c80 |  64 70 61 72 65 6e 74 2e 22 0a 20 20 3b 3b 20 53    75 70 70 6f 73 65 20 74 68 65 20 63 6f 64 65 20  | dparent."...;;.Suppose.the.code. | 
| 84ca0 |  69 73 3a 0a 20 20 3b 3b 20 7b 70 61 72 65 6e 74    2d 6b 65 79 3a 20 7b 72 65 71 75 69 72 65 64 3a  | is:...;;.{parent-key:.{required: | 
| 84cc0 |  20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 7d 7d    0a 20 20 3b 3b 20 4e 4f 44 45 20 69 73 20 60 72  | .function().{}}}...;;.NODE.is.`r | 
| 84ce0 |  65 71 75 69 72 65 64 3a 20 66 75 6e 63 74 69 6f    6e 28 29 20 7b 7d 27 2e 0a 20 20 28 6c 65 74 20  | equired:.function().{}'....(let. | 
| 84d00 |  28 70 32 20 70 33 29 0a 20 20 20 20 3b 3b 20 50    61 72 65 6e 74 20 69 73 20 60 7b 72 65 71 75 69  | (p2.p3).....;;.Parent.is.`{requi | 
| 84d20 |  72 65 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20    7b 7d 7d 27 2e 0a 20 20 20 20 28 73 65 74 71 20  | red:.function().{}}'......(setq. | 
| 84d40 |  70 32 20 28 6a 73 32 2d 6e 6f 64 65 2d 70 61 72    65 6e 74 20 6e 6f 64 65 29 29 0a 20 20 20 20 3b  | p2.(js2-node-parent.node)).....; | 
| 84d60 |  3b 20 47 50 20 69 73 20 60 70 61 72 65 6e 74 2d    6b 65 79 3a 20 7b 72 65 71 75 69 72 65 64 3a 20  | ;.GP.is.`parent-key:.{required:. | 
| 84d80 |  66 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 7d 27 2e    0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20  | function().{}}'......(when.(and. | 
| 84da0 |  70 32 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e    6f 64 65 2d 70 20 70 32 29 29 0a 20 20 20 20 20  | p2.(js2-object-node-p.p2))...... | 
| 84dc0 |  20 28 73 65 74 71 20 70 33 20 28 6a 73 32 2d 6e    6f 64 65 2d 70 61 72 65 6e 74 20 70 32 29 29 0a  | .(setq.p3.(js2-node-parent.p2)). | 
| 84de0 |  20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 70    33 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72  | ......(if.(and.p3.(js2-object-pr | 
| 84e00 |  6f 70 2d 6e 6f 64 65 2d 70 20 70 33 29 29 20 70    33 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | op-node-p.p3)).p3))))..(defun.js | 
| 84e20 |  32 2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f    72 70 68 61 6e 2d 70 72 6f 70 2d 6e 6f 64 65 2d  | 2-imenu-record-orphan-prop-node- | 
| 84e40 |  66 75 6e 63 74 69 6f 6e 20 28 6e 6f 64 65 29 0a    20 20 22 52 65 63 6f 72 64 20 6f 72 70 68 61 6e  | function.(node)..."Record.orphan | 
| 84e60 |  20 66 75 6e 63 74 69 6f 6e 20 77 68 65 6e 20 69    74 27 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66  | .function.when.it's.the.value.of | 
| 84e80 |  20 4e 4f 44 45 2e 0a 4e 4f 44 45 20 6d 75 73 74    20 62 65 20 60 6a 73 32 2d 6f 62 6a 65 63 74 2d  | .NODE..NODE.must.be.`js2-object- | 
| 84ea0 |  70 72 6f 70 2d 6e 6f 64 65 27 2e 22 0a 20 20 28    77 68 65 6e 20 28 6a 73 32 2d 66 75 6e 63 74 69  | prop-node'."...(when.(js2-functi | 
| 84ec0 |  6f 6e 2d 6e 6f 64 65 2d 70 20 28 6a 73 32 2d 6f    62 6a 65 63 74 2d 70 72 6f 70 2d 6e 6f 64 65 2d  | on-node-p.(js2-object-prop-node- | 
| 84ee0 |  72 69 67 68 74 20 6e 6f 64 65 29 29 0a 20 20 20    20 28 6c 65 74 20 28 28 66 6e 2d 6e 6f 64 65 20  | right.node)).....(let.((fn-node. | 
| 84f00 |  28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70    2d 6e 6f 64 65 2d 72 69 67 68 74 20 6e 6f 64 65  | (js2-object-prop-node-right.node | 
| 84f20 |  29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73    73 20 28 61 6e 64 20 6a 73 32 2d 69 6d 65 6e 75  | ))).......(unless.(and.js2-imenu | 
| 84f40 |  2d 66 75 6e 63 74 69 6f 6e 2d 6d 61 70 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -function-map................... | 
| 84f60 |  20 28 67 65 74 68 61 73 68 20 66 6e 2d 6e 6f 64    65 20 6a 73 32 2d 69 6d 65 6e 75 2d 66 75 6e 63  | .(gethash.fn-node.js2-imenu-func | 
| 84f80 |  74 69 6f 6e 2d 6d 61 70 29 29 0a 20 20 20 20 20    20 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 6e 6f  | tion-map)).........(let.((key-no | 
| 84fa0 |  64 65 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 70    72 6f 70 2d 6e 6f 64 65 2d 6c 65 66 74 20 6e 6f  | de.(js2-object-prop-node-left.no | 
| 84fc0 |  64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 63 68 61 69 6e 29 0a 20 20 20 20 20 20  | de))...............chain)....... | 
| 84fe0 |  20 20 20 20 28 73 65 74 71 20 63 68 61 69 6e 20    28 6e 63 6f 6e 63 20 28 6a 73 32 2d 69 6d 65 6e  | ....(setq.chain.(nconc.(js2-imen | 
| 85000 |  75 2d 70 61 72 65 6e 74 2d 6b 65 79 2d 6e 61 6d    65 73 20 6e 6f 64 65 29 0a 20 20 20 20 20 20 20  | u-parent-key-names.node)........ | 
| 85020 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6c 69 73 74 20 28 6a 73 32  | ......................(list.(js2 | 
| 85040 |  2d 70 72 6f 70 2d 6e 6f 64 65 2d 6e 61 6d 65 20    6b 65 79 2d 6e 6f 64 65 29 29 29 29 0a 20 20 20  | -prop-node-name.key-node)))).... | 
| 85060 |  20 20 20 20 20 20 20 28 70 75 73 68 20 6a 73 32    2d 69 6d 65 6e 75 2d 6f 74 68 65 72 2d 66 75 6e  | .......(push.js2-imenu-other-fun | 
| 85080 |  63 74 69 6f 6e 73 2d 6e 73 20 63 68 61 69 6e 29    0a 20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ctions-ns.chain)...........(js2- | 
| 850a0 |  72 65 63 6f 72 64 2d 69 6d 65 6e 75 2d 65 6e 74    72 79 20 66 6e 2d 6e 6f 64 65 20 63 68 61 69 6e  | record-imenu-entry.fn-node.chain | 
| 850c0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 850e0 |  20 20 20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73    2d 70 6f 73 20 6b 65 79 2d 6e 6f 64 65 29 29 29  | ...(js2-node-abs-pos.key-node))) | 
| 85100 |  29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32    2d 69 6d 65 6e 75 2d 72 65 63 6f 72 64 2d 6f 72  | ))))..(defun.js2-imenu-record-or | 
| 85120 |  70 68 61 6e 2d 61 73 73 69 67 6e 2d 6e 6f 64 65    2d 66 75 6e 63 74 69 6f 6e 20 28 74 61 72 67 65  | phan-assign-node-function.(targe | 
| 85140 |  74 2d 6e 6f 64 65 20 66 6e 2d 6e 6f 64 65 29 0a    20 20 22 52 65 63 6f 72 64 20 6f 72 70 68 61 6e  | t-node.fn-node)..."Record.orphan | 
| 85160 |  20 66 75 6e 63 74 69 6f 6e 20 46 4e 2d 4e 4f 44    45 20 61 73 73 69 67 6e 65 64 20 74 6f 20 6e 6f  | .function.FN-NODE.assigned.to.no | 
| 85180 |  64 65 20 54 41 52 47 45 54 2e 22 0a 20 20 28 77    68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 6a 73 32  | de.TARGET."...(when.(or.(not.js2 | 
| 851a0 |  2d 69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d    6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20  | -imenu-function-map)............ | 
| 851c0 |  20 28 65 71 20 27 73 6b 69 70 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 68  | .(eq.'skip.................(geth | 
| 851e0 |  61 73 68 20 66 6e 2d 6e 6f 64 65 20 6a 73 32 2d    69 6d 65 6e 75 2d 66 75 6e 63 74 69 6f 6e 2d 6d  | ash.fn-node.js2-imenu-function-m | 
| 85200 |  61 70 20 27 73 6b 69 70 29 29 29 0a 20 20 20 20    28 6c 65 74 20 28 28 63 68 61 69 6e 20 28 6a 73  | ap.'skip))).....(let.((chain.(js | 
| 85220 |  32 2d 63 6f 6d 70 75 74 65 2d 6e 65 73 74 65 64    2d 70 72 6f 70 2d 67 65 74 20 74 61 72 67 65 74  | 2-compute-nested-prop-get.target | 
| 85240 |  2d 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 28    77 68 65 6e 20 63 68 61 69 6e 0a 20 20 20 20 20  | -node))).......(when.chain...... | 
| 85260 |  20 20 20 28 70 75 73 68 20 6a 73 32 2d 69 6d 65    6e 75 2d 6f 74 68 65 72 2d 66 75 6e 63 74 69 6f  | ...(push.js2-imenu-other-functio | 
| 85280 |  6e 73 2d 6e 73 20 63 68 61 69 6e 29 0a 20 20 20    20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64  | ns-ns.chain).........(js2-record | 
| 852a0 |  2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 66 6e 2d    6e 6f 64 65 20 63 68 61 69 6e 20 28 6a 73 32 2d  | -imenu-entry.fn-node.chain.(js2- | 
| 852c0 |  6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20 66 6e 2d    6e 6f 64 65 29 29 29 29 29 29 0a 0a 28 64 65 66  | node-abs-pos.fn-node))))))..(def | 
| 852e0 |  75 6e 20 6a 73 32 2d 69 6d 65 6e 75 2d 72 65 63    6f 72 64 2d 6d 6f 64 75 6c 65 2d 70 61 74 74 65  | un.js2-imenu-record-module-patte | 
| 85300 |  72 6e 20 28 74 61 72 67 65 74 20 69 6e 69 74 29    0a 20 20 22 52 65 63 6f 67 6e 69 7a 65 20 61 6e  | rn.(target.init)..."Recognize.an | 
| 85320 |  64 20 72 65 63 6f 72 64 20 6d 6f 64 75 6c 65 20    70 61 74 74 65 72 6e 20 75 73 65 20 69 6e 73 74  | d.record.module.pattern.use.inst | 
| 85340 |  61 6e 63 65 2e 0a 49 4e 49 54 20 6d 75 73 74 20    62 65 20 60 6a 73 32 2d 63 61 6c 6c 2d 6e 6f 64  | ance..INIT.must.be.`js2-call-nod | 
| 85360 |  65 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61    6c 6c 74 20 28 6a 73 32 2d 63 61 6c 6c 2d 6e 6f  | e'."...(let.((callt.(js2-call-no | 
| 85380 |  64 65 2d 74 61 72 67 65 74 20 69 6e 69 74 29 29    29 0a 20 20 20 20 3b 3b 20 4a 75 73 74 20 62 61  | de-target.init))).....;;.Just.ba | 
| 853a0 |  73 69 63 20 63 61 6c 6c 20 66 6f 72 6d 3a 20 28    66 75 6e 63 74 69 6f 6e 28 29 20 7b 2e 2e 2e 7d  | sic.call.form:.(function().{...} | 
| 853c0 |  29 28 29 3b 0a 20 20 20 20 3b 3b 20 54 4f 44 4f    3a 20 48 61 6e 64 6c 65 20 76 61 72 69 61 74 69  | )();.....;;.TODO:.Handle.variati | 
| 853e0 |  6f 6e 73 20 77 69 74 68 6f 75 74 20 64 75 70 6c    69 63 61 74 69 6e 67 20 60 6a 73 32 2d 77 72 61  | ons.without.duplicating.`js2-wra | 
| 85400 |  70 70 65 72 2d 66 75 6e 63 74 69 6f 6e 2d 70 27    3f 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64  | pper-function-p'?.....(when.(and | 
| 85420 |  20 28 6a 73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65    2d 70 20 63 61 6c 6c 74 29 0a 20 20 20 20 20 20  | .(js2-paren-node-p.callt)....... | 
| 85440 |  20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 66 75    6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 70 20 28 6a  | .........(js2-function-node-p.(j | 
| 85460 |  73 32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78    70 72 20 63 61 6c 6c 74 29 29 29 0a 20 20 20 20  | s2-paren-node-expr.callt)))..... | 
| 85480 |  20 20 28 6c 65 74 2a 20 28 28 66 6e 20 28 6a 73    32 2d 70 61 72 65 6e 2d 6e 6f 64 65 2d 65 78 70  | ..(let*.((fn.(js2-paren-node-exp | 
| 854a0 |  72 20 63 61 6c 6c 74 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 62 6c 6b 20 28 6a 73 32  | r.callt))..............(blk.(js2 | 
| 854c0 |  2d 66 75 6e 63 74 69 6f 6e 2d 6e 6f 64 65 2d 62    6f 64 79 20 66 6e 29 29 0a 20 20 20 20 20 20 20  | -function-node-body.fn))........ | 
| 854e0 |  20 20 20 20 20 20 28 72 65 74 20 28 63 61 72 20    28 6c 61 73 74 20 28 6a 73 32 2d 62 6c 6f 63 6b  | ......(ret.(car.(last.(js2-block | 
| 85500 |  2d 6e 6f 64 65 2d 6b 69 64 73 20 62 6c 6b 29 29    29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65  | -node-kids.blk))))).........(whe | 
| 85520 |  6e 20 28 61 6e 64 20 28 6a 73 32 2d 72 65 74 75    72 6e 2d 6e 6f 64 65 2d 70 20 72 65 74 29 0a 20  | n.(and.(js2-return-node-p.ret).. | 
| 85540 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 6f 62 6a 65 63 74 2d 6e 6f  | ..................(js2-object-no | 
| 85560 |  64 65 2d 70 20 28 6a 73 32 2d 72 65 74 75 72 6e    2d 6e 6f 64 65 2d 72 65 74 76 61 6c 20 72 65 74  | de-p.(js2-return-node-retval.ret | 
| 85580 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b    20 54 4f 44 4f 3a 20 4d 61 70 20 66 75 6e 63 74  | )))...........;;.TODO:.Map.funct | 
| 855a0 |  69 6f 6e 20 6e 61 6d 65 73 20 77 68 65 6e 20 72    65 76 65 61 6c 69 6e 67 20 6d 6f 64 75 6c 65 20  | ion.names.when.revealing.module. | 
| 855c0 |  70 61 74 74 65 72 6e 20 69 73 20 75 73 65 64 2e    0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20  | pattern.is.used............(let. | 
| 855e0 |  28 28 72 65 74 76 61 6c 20 28 6a 73 32 2d 72 65    74 75 72 6e 2d 6e 6f 64 65 2d 72 65 74 76 61 6c  | ((retval.(js2-return-node-retval | 
| 85600 |  20 72 65 74 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 71  | .ret)).................(target-q | 
| 85620 |  6e 61 6d 65 20 28 6a 73 32 2d 63 6f 6d 70 75 74    65 2d 6e 65 73 74 65 64 2d 70 72 6f 70 2d 67 65  | name.(js2-compute-nested-prop-ge | 
| 85640 |  74 20 74 61 72 67 65 74 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 28 6a 73 32 2d 72 65 63  | t.target))).............(js2-rec | 
| 85660 |  6f 72 64 2d 6f 62 6a 65 63 74 2d 6c 69 74 65 72    61 6c 20 72 65 74 76 61 6c 20 74 61 72 67 65 74  | ord-object-literal.retval.target | 
| 85680 |  2d 71 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -qname.......................... | 
| 856a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a    73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70 6f 73 20  | ..............(js2-node-abs-pos. | 
| 856c0 |  72 65 74 76 61 6c 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 6a 73 32 2d 72 65 63 6f 72 64  | retval)).............(js2-record | 
| 856e0 |  2d 69 6d 65 6e 75 2d 65 6e 74 72 79 20 66 6e 20    74 61 72 67 65 74 2d 71 6e 61 6d 65 0a 20 20 20  | -imenu-entry.fn.target-qname.... | 
| 85700 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 85720 |  20 28 6a 73 32 2d 6e 6f 64 65 2d 61 62 73 2d 70    6f 73 20 74 61 72 67 65 74 29 29 29 29 29 29 29  | .(js2-node-abs-pos.target))))))) | 
| 85740 |  29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61    64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d  | )..;;;###autoload.(define-minor- | 
| 85760 |  6d 6f 64 65 20 6a 73 32 2d 69 6d 65 6e 75 2d 65    78 74 72 61 73 2d 6d 6f 64 65 0a 20 20 22 54 6f  | mode.js2-imenu-extras-mode..."To | 
| 85780 |  67 67 6c 65 20 49 6d 65 6e 75 20 73 75 70 70 6f    72 74 20 66 6f 72 20 66 72 61 6d 65 77 6f 72 6b  | ggle.Imenu.support.for.framework | 
| 857a0 |  73 20 61 6e 64 20 73 74 72 75 63 74 75 72 61 6c    20 70 61 74 74 65 72 6e 73 2e 22 0a 20 20 3a 6c  | s.and.structural.patterns."...:l | 
| 857c0 |  69 67 68 74 65 72 20 22 22 0a 20 20 28 69 66 20    6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73  | ighter.""...(if.js2-imenu-extras | 
| 857e0 |  2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 6a 73 32    2d 69 6d 65 6e 75 2d 65 78 74 72 61 73 2d 73 65  | -mode.......(js2-imenu-extras-se | 
| 85800 |  74 75 70 29 0a 20 20 20 20 28 6a 73 32 2d 69 6d    65 6e 75 2d 65 78 74 72 61 73 2d 72 65 6d 6f 76  | tup).....(js2-imenu-extras-remov | 
| 85820 |  65 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27    6a 73 32 2d 69 6d 65 6e 75 2d 65 78 74 72 61 73  | e)))..(provide.'js2-imenu-extras | 
| 85840 |  29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | )............................... | 
| 85860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 858a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 858c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 858e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 859a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 859c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 859e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85a00 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00  | js2-mode-20231224/LICENSE....... | 
| 85a20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85a60 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 85a80 |  30 31 30 34 35 31 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 30 34 33 00 20 30 00 00 00  | 0104513.00000000000.013043..0... | 
| 85aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85b00 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 85b20 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 85b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 85c00 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 4c 20  | ....................GNU.GENERAL. | 
| 85c20 |  50 55 42 4c 49 43 20 4c 49 43 45 4e 53 45 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | PUBLIC.LICENSE.................. | 
| 85c40 |  20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c    20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 20  | ......Version.3,.29.June.2007... | 
| 85c60 |  43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30    30 37 20 46 72 65 65 20 53 6f 66 74 77 61 72 65  | Copyright.(C).2007.Free.Software | 
| 85c80 |  20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63    2e 20 3c 68 74 74 70 3a 2f 2f 66 73 66 2e 6f 72  | .Foundation,.Inc..<http://fsf.or | 
| 85ca0 |  67 2f 3e 0a 20 45 76 65 72 79 6f 6e 65 20 69 73    20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 6f  | g/>..Everyone.is.permitted.to.co | 
| 85cc0 |  70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74    65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 65  | py.and.distribute.verbatim.copie | 
| 85ce0 |  73 0a 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e    73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 74  | s..of.this.license.document,.but | 
| 85d00 |  20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20    6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 20  | .changing.it.is.not.allowed..... | 
| 85d20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 50 72 65 61 6d 62  | ..........................Preamb | 
| 85d40 |  6c 65 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65    6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63  | le....The.GNU.General.Public.Lic | 
| 85d60 |  65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20    63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 65  | ense.is.a.free,.copyleft.license | 
| 85d80 |  20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e    64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66  | .for.software.and.other.kinds.of | 
| 85da0 |  20 77 6f 72 6b 73 2e 0a 0a 20 20 54 68 65 20 6c    69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 74  | .works.....The.licenses.for.most | 
| 85dc0 |  20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74    68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 6f  | .software.and.other.practical.wo | 
| 85de0 |  72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64    0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 6f  | rks.are.designed.to.take.away.yo | 
| 85e00 |  75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68    61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 74  | ur.freedom.to.share.and.change.t | 
| 85e20 |  68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f    6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 20  | he.works...By.contrast,.the.GNU. | 
| 85e40 |  47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c    69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e 64  | General.Public.License.is.intend | 
| 85e60 |  65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20    79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 0a  | ed.to.guarantee.your.freedom.to. | 
| 85e80 |  73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65    20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f 66  | share.and.change.all.versions.of | 
| 85ea0 |  20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d    61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d 61  | .a.program--to.make.sure.it.rema | 
| 85ec0 |  69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72    65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 73  | ins.free.software.for.all.its.us | 
| 85ee0 |  65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72    65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e  | ers...We,.the.Free.Software.Foun | 
| 85f00 |  64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a    47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c  | dation,.use.the.GNU.General.Publ | 
| 85f20 |  69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d    6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 77  | ic.License.for.most.of.our.softw | 
| 85f40 |  61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20    61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 65  | are;.it.applies.also.to.any.othe | 
| 85f60 |  72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20    74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 20  | r.work.released.this.way.by.its. | 
| 85f80 |  61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61    6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 6f  | authors...You.can.apply.it.to.yo | 
| 85fa0 |  75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f    2e 0a 0a 20 20 57 68 65 6e 20 77 65 20 73 70 65  | ur.programs,.too.....When.we.spe | 
| 85fc0 |  61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77    61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 65  | ak.of.free.software,.we.are.refe | 
| 85fe0 |  72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d    2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f 75  | rring.to.freedom,.not.price...Ou | 
| 86000 |  72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63    20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 65  | r.General.Public.Licenses.are.de | 
| 86020 |  73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73    75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 76  | signed.to.make.sure.that.you.hav | 
| 86040 |  65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f    20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 69  | e.the.freedom.to.distribute.copi | 
| 86060 |  65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77    61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 20  | es.of.free.software.(and.charge. | 
| 86080 |  66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20    77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 20  | for.them.if.you.wish),.that.you. | 
| 860a0 |  72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63    6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 69  | receive.source.code.or.can.get.i | 
| 860c0 |  74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74    2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 63  | t.if.you.want.it,.that.you.can.c | 
| 860e0 |  68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61    72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 73  | hange.the.software.or.use.pieces | 
| 86100 |  20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72    65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e 64  | .of.it.in.new.free.programs,.and | 
| 86120 |  20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79    6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 20  | .that.you.know.you.can.do.these. | 
| 86140 |  74 68 69 6e 67 73 2e 0a 0a 20 20 54 6f 20 70 72    6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74  | things.....To.protect.your.right | 
| 86160 |  73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72    65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 6f  | s,.we.need.to.prevent.others.fro | 
| 86180 |  6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68    65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 73  | m.denying.you.these.rights.or.as | 
| 861a0 |  6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72    65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 73  | king.you.to.surrender.the.rights | 
| 861c0 |  2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f    75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 72  | ...Therefore,.you.have.certain.r | 
| 861e0 |  65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20    69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 74  | esponsibilities.if.you.distribut | 
| 86200 |  65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20    73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 0a  | e.copies.of.the.software,.or.if. | 
| 86220 |  79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72    65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20  | you.modify.it:.responsibilities. | 
| 86240 |  74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66    72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 73  | to.respect.the.freedom.of.others | 
| 86260 |  2e 0a 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65    2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62  | .....For.example,.if.you.distrib | 
| 86280 |  75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75    63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 68  | ute.copies.of.such.a.program,.wh | 
| 862a0 |  65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20    66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 6d  | ether.gratis.or.for.a.fee,.you.m | 
| 862c0 |  75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74    68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 68  | ust.pass.on.to.the.recipients.th | 
| 862e0 |  65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20    74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 65  | e.same.freedoms.that.you.receive | 
| 86300 |  64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b    65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 79  | d...You.must.make.sure.that.they | 
| 86320 |  2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f    72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 6f  | ,.too,.receive.or.can.get.the.so | 
| 86340 |  75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20    79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 68  | urce.code...And.you.must.show.th | 
| 86360 |  65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73    6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 69  | em.these.terms.so.they.know.thei | 
| 86380 |  72 20 72 69 67 68 74 73 2e 0a 0a 20 20 44 65 76    65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 65  | r.rights.....Developers.that.use | 
| 863a0 |  20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f    74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 73  | .the.GNU.GPL.protect.your.rights | 
| 863c0 |  20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a    0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 79  | .with.two.steps:.(1).assert.copy | 
| 863e0 |  72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66    74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 6f  | right.on.the.software,.and.(2).o | 
| 86400 |  66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69    63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f 75  | ffer.you.this.License.giving.you | 
| 86420 |  20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f    6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 72  | .legal.permission.to.copy,.distr | 
| 86440 |  69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64    69 66 79 20 69 74 2e 0a 0a 20 20 46 6f 72 20 74  | ibute.and/or.modify.it.....For.t | 
| 86460 |  68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61    6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f 74  | he.developers'.and.authors'.prot | 
| 86480 |  65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20    63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e 73  | ection,.the.GPL.clearly.explains | 
| 864a0 |  0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e    6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74  | .that.there.is.no.warranty.for.t | 
| 864c0 |  68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72    65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 65  | his.free.software...For.both.use | 
| 864e0 |  72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27    20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 72  | rs'.and.authors'.sake,.the.GPL.r | 
| 86500 |  65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64    69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 62  | equires.that.modified.versions.b | 
| 86520 |  65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e    67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 65  | e.marked.as.changed,.so.that.the | 
| 86540 |  69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c    20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 74  | ir.problems.will.not.be.attribut | 
| 86560 |  65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74    6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 65  | ed.erroneously.to.authors.of.pre | 
| 86580 |  76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a    0a 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 20  | vious.versions.....Some.devices. | 
| 865a0 |  61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20    64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 73  | are.designed.to.deny.users.acces | 
| 865c0 |  73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20    72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 72  | s.to.install.or.run.modified.ver | 
| 865e0 |  73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66    74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 65  | sions.of.the.software.inside.the | 
| 86600 |  6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20    6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 6e  | m,.although.the.manufacturer.can | 
| 86620 |  20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73    20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 69  | .do.so...This.is.fundamentally.i | 
| 86640 |  6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68    20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f 74  | ncompatible.with.the.aim.of.prot | 
| 86660 |  65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72    65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 20  | ecting.users'.freedom.to.change. | 
| 86680 |  74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54    68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 61  | the.software...The.systematic.pa | 
| 866a0 |  74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62    75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 68  | ttern.of.such.abuse.occurs.in.th | 
| 866c0 |  65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63    74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 61  | e.area.of.products.for.individua | 
| 866e0 |  6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68    20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 68  | ls.to.use,.which.is.precisely.wh | 
| 86700 |  65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75    6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 68  | ere.it.is.most.unacceptable...Th | 
| 86720 |  65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65    20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 76  | erefore,.we.have.designed.this.v | 
| 86740 |  65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50    4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 68  | ersion.of.the.GPL.to.prohibit.th | 
| 86760 |  65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74    68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 20  | e.practice.for.those.products... | 
| 86780 |  49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73    20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 69  | If.such.problems.arise.substanti | 
| 867a0 |  61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f    6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 20  | ally.in.other.domains,.we.stand. | 
| 867c0 |  72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20    74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 74  | ready.to.extend.this.provision.t | 
| 867e0 |  6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20    69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 6f  | o.those.domains.in.future.versio | 
| 86800 |  6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61    73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f 74  | ns.of.the.GPL,.as.needed.to.prot | 
| 86820 |  65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20    6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 46 69 6e  | ect.the.freedom.of.users.....Fin | 
| 86840 |  61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67    72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e 65  | ally,.every.program.is.threatene | 
| 86860 |  64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20    73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 73  | d.constantly.by.software.patents | 
| 86880 |  2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20    6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e 74  | ..States.should.not.allow.patent | 
| 868a0 |  73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65    76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 73  | s.to.restrict.development.and.us | 
| 868c0 |  65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e    20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65  | e.of.software.on.general-purpose | 
| 868e0 |  20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20    69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 6f  | .computers,.but.in.those.that.do | 
| 86900 |  2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f    69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 64  | ,.we.wish.to.avoid.the.special.d | 
| 86920 |  61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e    74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 20  | anger.that.patents.applied.to.a. | 
| 86940 |  66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75    6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 63  | free.program.could.make.it.effec | 
| 86960 |  74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61    72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 20  | tively.proprietary...To.prevent. | 
| 86980 |  74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73    73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 6e  | this,.the.GPL.assures.that.paten | 
| 869a0 |  74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65    64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 20  | ts.cannot.be.used.to.render.the. | 
| 869c0 |  70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65    2e 0a 0a 20 20 54 68 65 20 70 72 65 63 69 73 65  | program.non-free.....The.precise | 
| 869e0 |  20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69    74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 6e  | .terms.and.conditions.for.copyin | 
| 86a00 |  67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20    61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e  | g,.distribution.and.modification | 
| 86a20 |  20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .follow......................... | 
| 86a40 |  20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49    54 49 4f 4e 53 0a 0a 20 20 30 2e 20 44 65 66 69  | .TERMS.AND.CONDITIONS....0..Defi | 
| 86a60 |  6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 22 54 68 69    73 20 4c 69 63 65 6e 73 65 22 20 72 65 66 65 72  | nitions....."This.License".refer | 
| 86a80 |  73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f    66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61  | s.to.version.3.of.the.GNU.Genera | 
| 86aa0 |  6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65    2e 0a 0a 20 20 22 43 6f 70 79 72 69 67 68 74 22  | l.Public.License....."Copyright" | 
| 86ac0 |  20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79    72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 20  | .also.means.copyright-like.laws. | 
| 86ae0 |  74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74    68 65 72 20 6b 69 6e 64 73 20 6f 66 0a 77 6f 72  | that.apply.to.other.kinds.of.wor | 
| 86b00 |  6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69    63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 2e  | ks,.such.as.semiconductor.masks. | 
| 86b20 |  0a 0a 20 20 22 54 68 65 20 50 72 6f 67 72 61 6d    22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 20  | ...."The.Program".refers.to.any. | 
| 86b40 |  63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f    72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65  | copyrightable.work.licensed.unde | 
| 86b60 |  72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2e 20    20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 69  | r.this.License...Each.licensee.i | 
| 86b80 |  73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22    79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 65  | s.addressed.as."you"..."Licensee | 
| 86ba0 |  73 22 20 61 6e 64 0a 22 72 65 63 69 70 69 65 6e    74 73 22 20 6d 61 79 20 62 65 20 69 6e 64 69 76  | s".and."recipients".may.be.indiv | 
| 86bc0 |  69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69    7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 54 6f 20 22  | iduals.or.organizations.....To." | 
| 86be0 |  6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d    65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 6f  | modify".a.work.means.to.copy.fro | 
| 86c00 |  6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f    72 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 6f  | m.or.adapt.all.or.part.of.the.wo | 
| 86c20 |  72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20    72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 69  | rk.in.a.fashion.requiring.copyri | 
| 86c40 |  67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20    6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 6d  | ght.permission,.other.than.the.m | 
| 86c60 |  61 6b 69 6e 67 20 6f 66 20 61 6e 0a 65 78 61 63    74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 73  | aking.of.an.exact.copy...The.res | 
| 86c80 |  75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63    61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 65  | ulting.work.is.called.a."modifie | 
| 86ca0 |  64 20 76 65 72 73 69 6f 6e 22 20 6f 66 20 74 68    65 0a 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 6f  | d.version".of.the.earlier.work.o | 
| 86cc0 |  72 20 61 20 77 6f 72 6b 20 22 62 61 73 65 64 20    6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 20  | r.a.work."based.on".the.earlier. | 
| 86ce0 |  77 6f 72 6b 2e 0a 0a 20 20 41 20 22 63 6f 76 65    72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 20  | work.....A."covered.work".means. | 
| 86d00 |  65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64    69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f 72  | either.the.unmodified.Program.or | 
| 86d20 |  20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e    20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20  | .a.work.based.on.the.Program.... | 
| 86d40 |  20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20    61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20  | .To."propagate".a.work.means.to. | 
| 86d60 |  64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68    20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f 75  | do.anything.with.it.that,.withou | 
| 86d80 |  74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f    75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 72  | t.permission,.would.make.you.dir | 
| 86da0 |  65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61    72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 0a  | ectly.or.secondarily.liable.for. | 
| 86dc0 |  69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64    65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 63 6f  | infringement.under.applicable.co | 
| 86de0 |  70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63    65 70 74 20 65 78 65 63 75 74 69 6e 67 20 69 74  | pyright.law,.except.executing.it | 
| 86e00 |  20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f    72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 72  | .on.a.computer.or.modifying.a.pr | 
| 86e20 |  69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f    70 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65  | ivate.copy...Propagation.include | 
| 86e40 |  73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72    69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f 72  | s.copying,.distribution.(with.or | 
| 86e60 |  20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63    61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 20 61  | .without.modification),.making.a | 
| 86e80 |  76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a    70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 73  | vailable.to.the.public,.and.in.s | 
| 86ea0 |  6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74    68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 61  | ome.countries.other.activities.a | 
| 86ec0 |  73 20 77 65 6c 6c 2e 0a 0a 20 20 54 6f 20 22 63    6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d 65  | s.well.....To."convey".a.work.me | 
| 86ee0 |  61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20    70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 74  | ans.any.kind.of.propagation.that | 
| 86f00 |  20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70    61 72 74 69 65 73 20 74 6f 20 6d 61 6b 65 20 6f  | .enables.other.parties.to.make.o | 
| 86f20 |  72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73    2e 20 20 4d 65 72 65 20 69 6e 74 65 72 61 63 74  | r.receive.copies...Mere.interact | 
| 86f40 |  69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 20    74 68 72 6f 75 67 68 0a 61 20 63 6f 6d 70 75 74  | ion.with.a.user.through.a.comput | 
| 86f60 |  65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68    20 6e 6f 20 74 72 61 6e 73 66 65 72 20 6f 66 20  | er.network,.with.no.transfer.of. | 
| 86f80 |  61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 20 63    6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 41 6e 20  | a.copy,.is.not.conveying.....An. | 
| 86fa0 |  69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72    20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 6c  | interactive.user.interface.displ | 
| 86fc0 |  61 79 73 20 22 41 70 70 72 6f 70 72 69 61 74 65    20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 0a  | ays."Appropriate.Legal.Notices". | 
| 86fe0 |  74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68    61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 61  | to.the.extent.that.it.includes.a | 
| 87000 |  20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20    70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 69  | .convenient.and.prominently.visi | 
| 87020 |  62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74    20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 6e  | ble.feature.that.(1).displays.an | 
| 87040 |  20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70    79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 61  | .appropriate.copyright.notice,.a | 
| 87060 |  6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65    20 75 73 65 72 20 74 68 61 74 20 74 68 65 72 65  | nd.(2).tells.the.user.that.there | 
| 87080 |  20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20    66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 65 78  | .is.no.warranty.for.the.work.(ex | 
| 870a0 |  63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65    6e 74 20 74 68 61 74 20 77 61 72 72 61 6e 74 69  | cept.to.the.extent.that.warranti | 
| 870c0 |  65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29    2c 20 74 68 61 74 20 6c 69 63 65 6e 73 65 65 73  | es.are.provided),.that.licensees | 
| 870e0 |  20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a    77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20  | .may.convey.the.work.under.this. | 
| 87100 |  4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77    20 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 20  | License,.and.how.to.view.a.copy. | 
| 87120 |  6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e    20 20 49 66 0a 74 68 65 20 69 6e 74 65 72 66 61  | of.this.License...If.the.interfa | 
| 87140 |  63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69    73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d 61  | ce.presents.a.list.of.user.comma | 
| 87160 |  6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20    73 75 63 68 20 61 73 20 61 0a 6d 65 6e 75 2c 20  | nds.or.options,.such.as.a.menu,. | 
| 87180 |  61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d    20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 65  | a.prominent.item.in.the.list.mee | 
| 871a0 |  74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f    6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 20  | ts.this.criterion.....1..Source. | 
| 871c0 |  43 6f 64 65 2e 0a 0a 20 20 54 68 65 20 22 73 6f    75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 61  | Code.....The."source.code".for.a | 
| 871e0 |  20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20    70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 6f  | .work.means.the.preferred.form.o | 
| 87200 |  66 20 74 68 65 20 77 6f 72 6b 0a 66 6f 72 20 6d    61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 61 74 69  | f.the.work.for.making.modificati | 
| 87220 |  6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a    65 63 74 20 63 6f 64 65 22 20 6d 65 61 6e 73 20  | ons.to.it..."Object.code".means. | 
| 87240 |  61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 66    6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a 0a  | any.non-source.form.of.a.work... | 
| 87260 |  20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e    74 65 72 66 61 63 65 22 20 6d 65 61 6e 73 20 61  | ..A."Standard.Interface".means.a | 
| 87280 |  6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74    20 65 69 74 68 65 72 20 69 73 20 61 6e 20 6f 66  | n.interface.that.either.is.an.of | 
| 872a0 |  66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20    64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 63  | ficial.standard.defined.by.a.rec | 
| 872c0 |  6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64    73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 20 74  | ognized.standards.body,.or,.in.t | 
| 872e0 |  68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72    66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 20  | he.case.of.interfaces.specified. | 
| 87300 |  66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72    20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e  | for.a.particular.programming.lan | 
| 87320 |  67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a    69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 61  | guage,.one.that.is.widely.used.a | 
| 87340 |  6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20    77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 20  | mong.developers.working.in.that. | 
| 87360 |  6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 54 68 65    20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69  | language.....The."System.Librari | 
| 87380 |  65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74    61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 64  | es".of.an.executable.work.includ | 
| 873a0 |  65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65    72 0a 74 68 61 6e 20 74 68 65 20 77 6f 72 6b 20  | e.anything,.other.than.the.work. | 
| 873c0 |  61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74    20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 64  | as.a.whole,.that.(a).is.included | 
| 873e0 |  20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66    6f 72 6d 20 6f 66 0a 70 61 63 6b 61 67 69 6e 67  | .in.the.normal.form.of.packaging | 
| 87400 |  20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65    6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 73  | .a.Major.Component,.but.which.is | 
| 87420 |  20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61    74 20 4d 61 6a 6f 72 0a 43 6f 6d 70 6f 6e 65 6e  | .not.part.of.that.Major.Componen | 
| 87440 |  74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65    73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c 65  | t,.and.(b).serves.only.to.enable | 
| 87460 |  20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b    20 77 69 74 68 20 74 68 61 74 0a 4d 61 6a 6f 72  | .use.of.the.work.with.that.Major | 
| 87480 |  20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74    6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 74  | .Component,.or.to.implement.a.St | 
| 874a0 |  61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65    20 66 6f 72 20 77 68 69 63 68 20 61 6e 0a 69 6d  | andard.Interface.for.which.an.im | 
| 874c0 |  70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20    61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65  | plementation.is.available.to.the | 
| 874e0 |  20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63    65 20 63 6f 64 65 20 66 6f 72 6d 2e 20 20 41 0a  | .public.in.source.code.form...A. | 
| 87500 |  22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74    22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 65  | "Major.Component",.in.this.conte | 
| 87520 |  78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f    72 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d 70  | xt,.means.a.major.essential.comp | 
| 87540 |  6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77    69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 6e  | onent.(kernel,.window.system,.an | 
| 87560 |  64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20    73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 69  | d.so.on).of.the.specific.operati | 
| 87580 |  6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e    79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20  | ng.system.(if.any).on.which.the. | 
| 875a0 |  65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20    72 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 69  | executable.work.runs,.or.a.compi | 
| 875c0 |  6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64    75 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f 72  | ler.used.to.produce.the.work,.or | 
| 875e0 |  20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20    69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 64  | .an.object.code.interpreter.used | 
| 87600 |  20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 54    68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 6e  | .to.run.it.....The."Correspondin | 
| 87620 |  67 20 53 6f 75 72 63 65 22 20 66 6f 72 20 61 20    77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63  | g.Source".for.a.work.in.object.c | 
| 87640 |  6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61    6c 6c 0a 74 68 65 20 73 6f 75 72 63 65 20 63 6f  | ode.form.means.all.the.source.co | 
| 87660 |  64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e    65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c 20  | de.needed.to.generate,.install,. | 
| 87680 |  61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63    75 74 61 62 6c 65 0a 77 6f 72 6b 29 20 72 75 6e  | and.(for.an.executable.work).run | 
| 876a0 |  20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65    20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 74  | .the.object.code.and.to.modify.t | 
| 876c0 |  68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69    6e 67 20 73 63 72 69 70 74 73 20 74 6f 0a 63 6f  | he.work,.including.scripts.to.co | 
| 876e0 |  6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69    76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 72  | ntrol.those.activities...However | 
| 87700 |  2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e    63 6c 75 64 65 20 74 68 65 20 77 6f 72 6b 27 73  | ,.it.does.not.include.the.work's | 
| 87720 |  0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65    73 2c 20 6f 72 20 67 65 6e 65 72 61 6c 2d 70 75  | .System.Libraries,.or.general-pu | 
| 87740 |  72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67    65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 62  | rpose.tools.or.generally.availab | 
| 87760 |  6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73    20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 20  | le.free.programs.which.are.used. | 
| 87780 |  75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65    72 66 6f 72 6d 69 6e 67 20 74 68 6f 73 65 20 61  | unmodified.in.performing.those.a | 
| 877a0 |  63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68    69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 74  | ctivities.but.which.are.not.part | 
| 877c0 |  20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46    6f 72 20 65 78 61 6d 70 6c 65 2c 20 43 6f 72 72  | .of.the.work...For.example,.Corr | 
| 877e0 |  65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65    0a 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 66  | esponding.Source.includes.interf | 
| 87800 |  61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66    69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 20  | ace.definition.files.associated. | 
| 87820 |  77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65    73 20 66 6f 72 0a 74 68 65 20 77 6f 72 6b 2c 20  | with.source.files.for.the.work,. | 
| 87840 |  61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63    6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 20 6c  | and.the.source.code.for.shared.l | 
| 87860 |  69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e    61 6d 69 63 61 6c 6c 79 0a 6c 69 6e 6b 65 64 20  | ibraries.and.dynamically.linked. | 
| 87880 |  73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74    20 74 68 65 20 77 6f 72 6b 20 69 73 20 73 70 65  | subprograms.that.the.work.is.spe | 
| 878a0 |  63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e    65 64 20 74 6f 20 72 65 71 75 69 72 65 2c 0a 73  | cifically.designed.to.require,.s | 
| 878c0 |  75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61    74 65 20 64 61 74 61 20 63 6f 6d 6d 75 6e 69 63  | uch.as.by.intimate.data.communic | 
| 878e0 |  61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c    20 66 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 68  | ation.or.control.flow.between.th | 
| 87900 |  6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20    61 6e 64 20 6f 74 68 65 72 20 70 61 72 74 73 20  | ose.subprograms.and.other.parts. | 
| 87920 |  6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20    54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e  | of.the.work.....The.Correspondin | 
| 87940 |  67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f    74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 69  | g.Source.need.not.include.anythi | 
| 87960 |  6e 67 20 74 68 61 74 20 75 73 65 72 73 0a 63 61    6e 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 74  | ng.that.users.can.regenerate.aut | 
| 87980 |  6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20    6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 74  | omatically.from.other.parts.of.t | 
| 879a0 |  68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67    0a 53 6f 75 72 63 65 2e 0a 0a 20 20 54 68 65 20  | he.Corresponding.Source.....The. | 
| 879c0 |  43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f    75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b 20  | Corresponding.Source.for.a.work. | 
| 879e0 |  69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66    6f 72 6d 20 69 73 20 74 68 61 74 0a 73 61 6d 65  | in.source.code.form.is.that.same | 
| 87a00 |  20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73    69 63 20 50 65 72 6d 69 73 73 69 6f 6e 73 2e 0a  | .work.....2..Basic.Permissions.. | 
| 87a20 |  0a 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72    61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73  | ...All.rights.granted.under.this | 
| 87a40 |  20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61    6e 74 65 64 20 66 6f 72 20 74 68 65 20 74 65 72  | .License.are.granted.for.the.ter | 
| 87a60 |  6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f    6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 61  | m.of.copyright.on.the.Program,.a | 
| 87a80 |  6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62    6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 20  | nd.are.irrevocable.provided.the. | 
| 87aa0 |  73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e    73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 73  | stated.conditions.are.met...This | 
| 87ac0 |  20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69    74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 72  | .License.explicitly.affirms.your | 
| 87ae0 |  20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69    73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 65  | .unlimited.permission.to.run.the | 
| 87b00 |  20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67    72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 74  | .unmodified.Program...The.output | 
| 87b20 |  20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a    63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 20  | .from.running.a.covered.work.is. | 
| 87b40 |  63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20    4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 20  | covered.by.this.License.only.if. | 
| 87b60 |  74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65    6e 20 69 74 73 0a 63 6f 6e 74 65 6e 74 2c 20 63  | the.output,.given.its.content,.c | 
| 87b80 |  6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76    65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 73  | onstitutes.a.covered.work...This | 
| 87ba0 |  20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c    65 64 67 65 73 20 79 6f 75 72 0a 72 69 67 68 74  | .License.acknowledges.your.right | 
| 87bc0 |  73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72    20 6f 74 68 65 72 20 65 71 75 69 76 61 6c 65 6e  | s.of.fair.use.or.other.equivalen | 
| 87be0 |  74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62    79 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 2e  | t,.as.provided.by.copyright.law. | 
| 87c00 |  0a 0a 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65    2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 67  | ....You.may.make,.run.and.propag | 
| 87c20 |  61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b    73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e 6f  | ate.covered.works.that.you.do.no | 
| 87c40 |  74 0a 63 6f 6e 76 65 79 2c 20 77 69 74 68 6f 75    74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f 20  | t.convey,.without.conditions.so. | 
| 87c60 |  6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63    65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 20 72  | long.as.your.license.otherwise.r | 
| 87c80 |  65 6d 61 69 6e 73 0a 69 6e 20 66 6f 72 63 65 2e    20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79  | emains.in.force...You.may.convey | 
| 87ca0 |  20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74    6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 65  | .covered.works.to.others.for.the | 
| 87cc0 |  20 73 6f 6c 65 20 70 75 72 70 6f 73 65 0a 6f 66    20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 6b  | .sole.purpose.of.having.them.mak | 
| 87ce0 |  65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20    65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 20  | e.modifications.exclusively.for. | 
| 87d00 |  79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20    79 6f 75 0a 77 69 74 68 20 66 61 63 69 6c 69 74  | you,.or.provide.you.with.facilit | 
| 87d20 |  69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20    74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 72 6f  | ies.for.running.those.works,.pro | 
| 87d40 |  76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63    6f 6d 70 6c 79 20 77 69 74 68 0a 74 68 65 20 74  | vided.that.you.comply.with.the.t | 
| 87d60 |  65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63    65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 79 69 6e  | erms.of.this.License.in.conveyin | 
| 87d80 |  67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66    6f 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f 0a  | g.all.material.for.which.you.do. | 
| 87da0 |  6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79    72 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 68  | not.control.copyright...Those.th | 
| 87dc0 |  75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e    6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 64  | us.making.or.running.the.covered | 
| 87de0 |  20 77 6f 72 6b 73 0a 66 6f 72 20 79 6f 75 20 6d    75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 73  | .works.for.you.must.do.so.exclus | 
| 87e00 |  69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65    68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 72  | ively.on.your.behalf,.under.your | 
| 87e20 |  20 64 69 72 65 63 74 69 6f 6e 0a 61 6e 64 20 63    6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d 73  | .direction.and.control,.on.terms | 
| 87e40 |  20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74    68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 20  | .that.prohibit.them.from.making. | 
| 87e60 |  61 6e 79 20 63 6f 70 69 65 73 20 6f 66 0a 79 6f    75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 6d  | any.copies.of.your.copyrighted.m | 
| 87e80 |  61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20    74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 68  | aterial.outside.their.relationsh | 
| 87ea0 |  69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20    43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20  | ip.with.you.....Conveying.under. | 
| 87ec0 |  61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d    73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d 69  | any.other.circumstances.is.permi | 
| 87ee0 |  74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65    72 0a 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73  | tted.solely.under.the.conditions | 
| 87f00 |  20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20    53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 20  | .stated.below...Sublicensing.is. | 
| 87f20 |  6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63    74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 74  | not.allowed;.section.10.makes.it | 
| 87f40 |  20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20    20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 55  | .unnecessary.....3..Protecting.U | 
| 87f60 |  73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68    74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 72  | sers'.Legal.Rights.From.Anti-Cir | 
| 87f80 |  63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a    0a 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 6f  | cumvention.Law.....No.covered.wo | 
| 87fa0 |  72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d    65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 66  | rk.shall.be.deemed.part.of.an.ef | 
| 87fc0 |  66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f    67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 6e  | fective.technological.measure.un | 
| 87fe0 |  64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62    6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 6e  | der.any.applicable.law.fulfillin | 
| 88000 |  67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e    64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 6f  | g.obligations.under.article.11.o | 
| 88020 |  66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72    69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f 70  | f.the.WIPO.copyright.treaty.adop | 
| 88040 |  74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62    65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d 69  | ted.on.20.December.1996,.or.simi | 
| 88060 |  6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69    74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 74  | lar.laws.prohibiting.or.restrict | 
| 88080 |  69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f    6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 72  | ing.circumvention.of.such.measur | 
| 880a0 |  65 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 20    63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64  | es.....When.you.convey.a.covered | 
| 880c0 |  20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65    20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 72  | .work,.you.waive.any.legal.power | 
| 880e0 |  20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75    6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 68  | .to.forbid.circumvention.of.tech | 
| 88100 |  6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72    65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e 74  | nological.measures.to.the.extent | 
| 88120 |  20 73 75 63 68 20 63 69 72 63 75 6d 76 65 6e 74    69 6f 6e 0a 69 73 20 65 66 66 65 63 74 65 64 20  | .such.circumvention.is.effected. | 
| 88140 |  62 79 20 65 78 65 72 63 69 73 69 6e 67 20 72 69    67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20  | by.exercising.rights.under.this. | 
| 88160 |  4c 69 63 65 6e 73 65 20 77 69 74 68 20 72 65 73    70 65 63 74 20 74 6f 0a 74 68 65 20 63 6f 76 65  | License.with.respect.to.the.cove | 
| 88180 |  72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f    75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 69  | red.work,.and.you.disclaim.any.i | 
| 881a0 |  6e 74 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69    74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 0a 6d  | ntention.to.limit.operation.or.m | 
| 881c0 |  6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74    68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 61  | odification.of.the.work.as.a.mea | 
| 881e0 |  6e 73 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c    20 61 67 61 69 6e 73 74 20 74 68 65 20 77 6f 72  | ns.of.enforcing,.against.the.wor | 
| 88200 |  6b 27 73 0a 75 73 65 72 73 2c 20 79 6f 75 72 20    6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 73  | k's.users,.your.or.third.parties | 
| 88220 |  27 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74    6f 20 66 6f 72 62 69 64 20 63 69 72 63 75 6d 76  | '.legal.rights.to.forbid.circumv | 
| 88240 |  65 6e 74 69 6f 6e 20 6f 66 0a 74 65 63 68 6e 6f    6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73  | ention.of.technological.measures | 
| 88260 |  2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e    67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 65  | .....4..Conveying.Verbatim.Copie | 
| 88280 |  73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f    6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 6f  | s.....You.may.convey.verbatim.co | 
| 882a0 |  70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67    72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f 64  | pies.of.the.Program's.source.cod | 
| 882c0 |  65 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65    20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 69  | e.as.you.receive.it,.in.any.medi | 
| 882e0 |  75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61    74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f 75  | um,.provided.that.you.conspicuou | 
| 88300 |  73 6c 79 20 61 6e 64 0a 61 70 70 72 6f 70 72 69    61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f 6e  | sly.and.appropriately.publish.on | 
| 88320 |  20 65 61 63 68 20 63 6f 70 79 20 61 6e 20 61 70    70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69  | .each.copy.an.appropriate.copyri | 
| 88340 |  67 68 74 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70    20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69  | ght.notice;.keep.intact.all.noti | 
| 88360 |  63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74    20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e  | ces.stating.that.this.License.an | 
| 88380 |  64 20 61 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73    73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 64  | d.any.non-permissive.terms.added | 
| 883a0 |  20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20    73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 20  | .in.accord.with.section.7.apply. | 
| 883c0 |  74 6f 20 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65    70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74  | to.the.code;.keep.intact.all.not | 
| 883e0 |  69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65    6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 61  | ices.of.the.absence.of.any.warra | 
| 88400 |  6e 74 79 3b 20 61 6e 64 20 67 69 76 65 20 61 6c    6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 63  | nty;.and.give.all.recipients.a.c | 
| 88420 |  6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65    6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 74  | opy.of.this.License.along.with.t | 
| 88440 |  68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 59    6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 6e  | he.Program.....You.may.charge.an | 
| 88460 |  79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72    69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f 70  | y.price.or.no.price.for.each.cop | 
| 88480 |  79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65    79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 6f  | y.that.you.convey,.and.you.may.o | 
| 884a0 |  66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 20    77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 74  | ffer.support.or.warranty.protect | 
| 884c0 |  69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a 0a    20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4d  | ion.for.a.fee.....5..Conveying.M | 
| 884e0 |  6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 56    65 72 73 69 6f 6e 73 2e 0a 0a 20 20 59 6f 75 20  | odified.Source.Versions.....You. | 
| 88500 |  6d 61 79 20 63 6f 6e 76 65 79 20 61 20 77 6f 72    6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 50  | may.convey.a.work.based.on.the.P | 
| 88520 |  72 6f 67 72 61 6d 2c 20 6f 72 20 74 68 65 20 6d    6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f 0a  | rogram,.or.the.modifications.to. | 
| 88540 |  70 72 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20    74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e 20  | produce.it.from.the.Program,.in. | 
| 88560 |  74 68 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72    63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 68  | the.form.of.source.code.under.th | 
| 88580 |  65 0a 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69    6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 74  | e.terms.of.section.4,.provided.t | 
| 885a0 |  68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65    74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 63  | hat.you.also.meet.all.of.these.c | 
| 885c0 |  6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20    61 29 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 74  | onditions:......a).The.work.must | 
| 885e0 |  20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74    20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e 67  | .carry.prominent.notices.stating | 
| 88600 |  20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69    65 64 0a 20 20 20 20 69 74 2c 20 61 6e 64 20 67  | .that.you.modified.....it,.and.g | 
| 88620 |  69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74    20 64 61 74 65 2e 0a 0a 20 20 20 20 62 29 20 54  | iving.a.relevant.date.......b).T | 
| 88640 |  68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72    72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74  | he.work.must.carry.prominent.not | 
| 88660 |  69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61    74 20 69 74 20 69 73 0a 20 20 20 20 72 65 6c 65  | ices.stating.that.it.is.....rele | 
| 88680 |  61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20    4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 20  | ased.under.this.License.and.any. | 
| 886a0 |  63 6f 6e 64 69 74 69 6f 6e 73 20 61 64 64 65 64    20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 0a 20  | conditions.added.under.section.. | 
| 886c0 |  20 20 20 37 2e 20 20 54 68 69 73 20 72 65 71 75    69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 73  | ...7...This.requirement.modifies | 
| 886e0 |  20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74    20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 6f  | .the.requirement.in.section.4.to | 
| 88700 |  0a 20 20 20 20 22 6b 65 65 70 20 69 6e 74 61 63    74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e 0a  | ....."keep.intact.all.notices".. | 
| 88720 |  0a 20 20 20 20 63 29 20 59 6f 75 20 6d 75 73 74    20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e 74  | .....c).You.must.license.the.ent | 
| 88740 |  69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77    68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 73  | ire.work,.as.a.whole,.under.this | 
| 88760 |  0a 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20    61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 73  | .....License.to.anyone.who.comes | 
| 88780 |  20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e    20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 69  | .into.possession.of.a.copy...Thi | 
| 887a0 |  73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69    6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 70  | s.....License.will.therefore.app | 
| 887c0 |  6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61    6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 73 65  | ly,.along.with.any.applicable.se | 
| 887e0 |  63 74 69 6f 6e 20 37 0a 20 20 20 20 61 64 64 69    74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 6f  | ction.7.....additional.terms,.to | 
| 88800 |  20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68    65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c 20  | .the.whole.of.the.work,.and.all. | 
| 88820 |  69 74 73 20 70 61 72 74 73 2c 0a 20 20 20 20 72    65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77  | its.parts,.....regardless.of.how | 
| 88840 |  20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67    65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e 73  | .they.are.packaged...This.Licens | 
| 88860 |  65 20 67 69 76 65 73 20 6e 6f 0a 20 20 20 20 70    65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 63  | e.gives.no.....permission.to.lic | 
| 88880 |  65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e    20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 2c 20  | ense.the.work.in.any.other.way,. | 
| 888a0 |  62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a    20 20 20 20 69 6e 76 61 6c 69 64 61 74 65 20 73  | but.it.does.not.....invalidate.s | 
| 888c0 |  75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69    66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 72  | uch.permission.if.you.have.separ | 
| 888e0 |  61 74 65 6c 79 20 72 65 63 65 69 76 65 64 20 69    74 2e 0a 0a 20 20 20 20 64 29 20 49 66 20 74 68  | ately.received.it.......d).If.th | 
| 88900 |  65 20 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72    61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65  | e.work.has.interactive.user.inte | 
| 88920 |  72 66 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73    74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 41 70  | rfaces,.each.must.display.....Ap | 
| 88940 |  70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20    4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 72  | propriate.Legal.Notices;.however | 
| 88960 |  2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d    20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65  | ,.if.the.Program.has.interactive | 
| 88980 |  0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 73 20    74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 70  | .....interfaces.that.do.not.disp | 
| 889a0 |  6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20    4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 79  | lay.Appropriate.Legal.Notices,.y | 
| 889c0 |  6f 75 72 0a 20 20 20 20 77 6f 72 6b 20 6e 65 65    64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d 20  | our.....work.need.not.make.them. | 
| 889e0 |  64 6f 20 73 6f 2e 0a 0a 20 20 41 20 63 6f 6d 70    69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76  | do.so.....A.compilation.of.a.cov | 
| 88a00 |  65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f    74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 6e  | ered.work.with.other.separate.an | 
| 88a20 |  64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f    72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 6e  | d.independent.works,.which.are.n | 
| 88a40 |  6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75    72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f 66  | ot.by.their.nature.extensions.of | 
| 88a60 |  20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72    6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 65  | .the.covered.work,.and.which.are | 
| 88a80 |  20 6e 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69    74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 6f  | .not.combined.with.it.such.as.to | 
| 88aa0 |  20 66 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70    72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f 6e  | .form.a.larger.program,.in.or.on | 
| 88ac0 |  20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73    74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 69  | .a.volume.of.a.storage.or.distri | 
| 88ae0 |  62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69    73 20 63 61 6c 6c 65 64 20 61 6e 0a 22 61 67 67  | bution.medium,.is.called.an."agg | 
| 88b00 |  72 65 67 61 74 65 22 20 69 66 20 74 68 65 20 63    6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 69  | regate".if.the.compilation.and.i | 
| 88b20 |  74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70    79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a 75  | ts.resulting.copyright.are.not.u | 
| 88b40 |  73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65    20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 6c  | sed.to.limit.the.access.or.legal | 
| 88b60 |  20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63    6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 65  | .rights.of.the.compilation's.use | 
| 88b80 |  72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74    68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 6f  | rs.beyond.what.the.individual.wo | 
| 88ba0 |  72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63    6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65  | rks.permit...Inclusion.of.a.cove | 
| 88bc0 |  72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61    67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e 6f  | red.work.in.an.aggregate.does.no | 
| 88be0 |  74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63    65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 6f  | t.cause.this.License.to.apply.to | 
| 88c00 |  20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73    20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 74  | .the.other.parts.of.the.aggregat | 
| 88c20 |  65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69    6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 6f  | e.....6..Conveying.Non-Source.Fo | 
| 88c40 |  72 6d 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20    63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 64  | rms.....You.may.convey.a.covered | 
| 88c60 |  20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20    63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 20  | .work.in.object.code.form.under. | 
| 88c80 |  74 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63    74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 70  | the.terms.of.sections.4.and.5,.p | 
| 88ca0 |  72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75    20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 65  | rovided.that.you.also.convey.the | 
| 88cc0 |  0a 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c    65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  | .machine-readable.Corresponding. | 
| 88ce0 |  53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65    20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c  | Source.under.the.terms.of.this.L | 
| 88d00 |  69 63 65 6e 73 65 2c 0a 69 6e 20 6f 6e 65 20 6f    66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a 20  | icense,.in.one.of.these.ways:... | 
| 88d20 |  20 20 20 61 29 20 43 6f 6e 76 65 79 20 74 68 65    20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c  | ...a).Convey.the.object.code.in, | 
| 88d40 |  20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c    20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64  | .or.embodied.in,.a.physical.prod | 
| 88d60 |  75 63 74 0a 20 20 20 20 28 69 6e 63 6c 75 64 69    6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69  | uct.....(including.a.physical.di | 
| 88d80 |  73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75    6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20  | stribution.medium),.accompanied. | 
| 88da0 |  62 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65    73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20  | by.the.....Corresponding.Source. | 
| 88dc0 |  66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62    6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 69  | fixed.on.a.durable.physical.medi | 
| 88de0 |  75 6d 0a 20 20 20 20 63 75 73 74 6f 6d 61 72 69    6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74  | um.....customarily.used.for.soft | 
| 88e00 |  77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65    2e 0a 0a 20 20 20 20 62 29 20 43 6f 6e 76 65 79  | ware.interchange.......b).Convey | 
| 88e20 |  20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65    20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64  | .the.object.code.in,.or.embodied | 
| 88e40 |  20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20    70 72 6f 64 75 63 74 0a 20 20 20 20 28 69 6e 63  | .in,.a.physical.product.....(inc | 
| 88e60 |  6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61    6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6d  | luding.a.physical.distribution.m | 
| 88e80 |  65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e    69 65 64 20 62 79 20 61 0a 20 20 20 20 77 72 69  | edium),.accompanied.by.a.....wri | 
| 88ea0 |  74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69    64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 74  | tten.offer,.valid.for.at.least.t | 
| 88ec0 |  68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76    61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 20  | hree.years.and.valid.for.as..... | 
| 88ee0 |  6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65    72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f 72  | long.as.you.offer.spare.parts.or | 
| 88f00 |  20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72    74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 75  | .customer.support.for.that.produ | 
| 88f20 |  63 74 0a 20 20 20 20 6d 6f 64 65 6c 2c 20 74 6f    20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 6f  | ct.....model,.to.give.anyone.who | 
| 88f40 |  20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f    62 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 65  | .possesses.the.object.code.eithe | 
| 88f60 |  72 20 28 31 29 20 61 0a 20 20 20 20 63 6f 70 79    20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 6f  | r.(1).a.....copy.of.the.Correspo | 
| 88f80 |  6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72    20 61 6c 6c 20 74 68 65 20 73 6f 66 74 77 61 72  | nding.Source.for.all.the.softwar | 
| 88fa0 |  65 20 69 6e 20 74 68 65 0a 20 20 20 20 70 72 6f    64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f 76  | e.in.the.....product.that.is.cov | 
| 88fc0 |  65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63    65 6e 73 65 2c 20 6f 6e 20 61 20 64 75 72 61 62  | ered.by.this.License,.on.a.durab | 
| 88fe0 |  6c 65 20 70 68 79 73 69 63 61 6c 0a 20 20 20 20    6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 69  | le.physical.....medium.customari | 
| 89000 |  6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74    77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65  | ly.used.for.software.interchange | 
| 89020 |  2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f    0a 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 79  | ,.for.a.price.no.....more.than.y | 
| 89040 |  6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63    6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c 6c  | our.reasonable.cost.of.physicall | 
| 89060 |  79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69    73 0a 20 20 20 20 63 6f 6e 76 65 79 69 6e 67 20  | y.performing.this.....conveying. | 
| 89080 |  6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32    29 20 61 63 63 65 73 73 20 74 6f 20 63 6f 70 79  | of.source,.or.(2).access.to.copy | 
| 890a0 |  20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70    6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 72  | .the.....Corresponding.Source.fr | 
| 890c0 |  6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72    76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 65  | om.a.network.server.at.no.charge | 
| 890e0 |  2e 0a 0a 20 20 20 20 63 29 20 43 6f 6e 76 65 79    20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 69  | .......c).Convey.individual.copi | 
| 89100 |  65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74    20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f 70  | es.of.the.object.code.with.a.cop | 
| 89120 |  79 20 6f 66 20 74 68 65 0a 20 20 20 20 77 72 69    74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 72  | y.of.the.....written.offer.to.pr | 
| 89140 |  6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73    70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20  | ovide.the.Corresponding.Source.. | 
| 89160 |  20 54 68 69 73 0a 20 20 20 20 61 6c 74 65 72 6e    61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 64  | .This.....alternative.is.allowed | 
| 89180 |  20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c    6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 72  | .only.occasionally.and.noncommer | 
| 891a0 |  63 69 61 6c 6c 79 2c 20 61 6e 64 0a 20 20 20 20    6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 65  | cially,.and.....only.if.you.rece | 
| 891c0 |  69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20    63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 61  | ived.the.object.code.with.such.a | 
| 891e0 |  6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f    72 64 0a 20 20 20 20 77 69 74 68 20 73 75 62 73  | n.offer,.in.accord.....with.subs | 
| 89200 |  65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20    64 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62  | ection.6b.......d).Convey.the.ob | 
| 89220 |  6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66    65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 6f  | ject.code.by.offering.access.fro | 
| 89240 |  6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20    20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 73  | m.a.designated.....place.(gratis | 
| 89260 |  20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65    29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 75  | .or.for.a.charge),.and.offer.equ | 
| 89280 |  69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74    6f 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73  | ivalent.access.to.the.....Corres | 
| 892a0 |  70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69    6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74  | ponding.Source.in.the.same.way.t | 
| 892c0 |  68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 20    70 6c 61 63 65 20 61 74 20 6e 6f 0a 20 20 20 20  | hrough.the.same.place.at.no..... | 
| 892e0 |  66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20    20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 65  | further.charge...You.need.not.re | 
| 89300 |  71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73    20 74 6f 20 63 6f 70 79 20 74 68 65 0a 20 20 20  | quire.recipients.to.copy.the.... | 
| 89320 |  20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53    6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 68  | .Corresponding.Source.along.with | 
| 89340 |  20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65    2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 20  | .the.object.code...If.the.place. | 
| 89360 |  74 6f 0a 20 20 20 20 63 6f 70 79 20 74 68 65 20    6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 61  | to.....copy.the.object.code.is.a | 
| 89380 |  20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c    20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69  | .network.server,.the.Correspondi | 
| 893a0 |  6e 67 20 53 6f 75 72 63 65 0a 20 20 20 20 6d 61    79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 72  | ng.Source.....may.be.on.a.differ | 
| 893c0 |  65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72    61 74 65 64 20 62 79 20 79 6f 75 20 6f 72 20 61  | ent.server.(operated.by.you.or.a | 
| 893e0 |  20 74 68 69 72 64 20 70 61 72 74 79 29 0a 20 20    20 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20  | .third.party).....that.supports. | 
| 89400 |  65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69    6e 67 20 66 61 63 69 6c 69 74 69 65 73 2c 20 70  | equivalent.copying.facilities,.p | 
| 89420 |  72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e    74 61 69 6e 0a 20 20 20 20 63 6c 65 61 72 20 64  | rovided.you.maintain.....clear.d | 
| 89440 |  69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74    6f 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64  | irections.next.to.the.object.cod | 
| 89460 |  65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74    6f 20 66 69 6e 64 20 74 68 65 0a 20 20 20 20 43  | e.saying.where.to.find.the.....C | 
| 89480 |  6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75    72 63 65 2e 20 20 52 65 67 61 72 64 6c 65 73 73  | orresponding.Source...Regardless | 
| 894a0 |  20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20    68 6f 73 74 73 20 74 68 65 0a 20 20 20 20 43 6f  | .of.what.server.hosts.the.....Co | 
| 894c0 |  72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72    63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 20 6f  | rresponding.Source,.you.remain.o | 
| 894e0 |  62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75    72 65 20 74 68 61 74 20 69 74 20 69 73 0a 20 20  | bligated.to.ensure.that.it.is... | 
| 89500 |  20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20    61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 65  | ..available.for.as.long.as.neede | 
| 89520 |  64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65    73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2e  | d.to.satisfy.these.requirements. | 
| 89540 |  0a 0a 20 20 20 20 65 29 20 43 6f 6e 76 65 79 20    74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20  | ......e).Convey.the.object.code. | 
| 89560 |  75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65    65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e 2c  | using.peer-to-peer.transmission, | 
| 89580 |  20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 79 6f    75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 70  | .provided.....you.inform.other.p | 
| 895a0 |  65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f    62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 43  | eers.where.the.object.code.and.C | 
| 895c0 |  6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20    20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77  | orresponding.....Source.of.the.w | 
| 895e0 |  6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66    66 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 6e  | ork.are.being.offered.to.the.gen | 
| 89600 |  65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e    6f 0a 20 20 20 20 63 68 61 72 67 65 20 75 6e 64  | eral.public.at.no.....charge.und | 
| 89620 |  65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64    2e 0a 0a 20 20 41 20 73 65 70 61 72 61 62 6c 65  | er.subsection.6d.....A.separable | 
| 89640 |  20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20    6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 6f  | .portion.of.the.object.code,.who | 
| 89660 |  73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69    73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d 20  | se.source.code.is.excluded.from. | 
| 89680 |  74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e    67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 79  | the.Corresponding.Source.as.a.Sy | 
| 896a0 |  73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65    65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 64  | stem.Library,.need.not.be.includ | 
| 896c0 |  65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20    74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20  | ed.in.conveying.the.object.code. | 
| 896e0 |  77 6f 72 6b 2e 0a 0a 20 20 41 20 22 55 73 65 72    20 50 72 6f 64 75 63 74 22 20 69 73 20 65 69 74  | work.....A."User.Product".is.eit | 
| 89700 |  68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75    6d 65 72 20 70 72 6f 64 75 63 74 22 2c 20 77 68  | her.(1).a."consumer.product",.wh | 
| 89720 |  69 63 68 20 6d 65 61 6e 73 20 61 6e 79 0a 74 61    6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c 20  | ich.means.any.tangible.personal. | 
| 89740 |  70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69    73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 20  | property.which.is.normally.used. | 
| 89760 |  66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 20 66 61    6d 69 6c 79 2c 0a 6f 72 20 68 6f 75 73 65 68 6f  | for.personal,.family,.or.househo | 
| 89780 |  6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20    28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 73  | ld.purposes,.or.(2).anything.des | 
| 897a0 |  69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f    72 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e 0a  | igned.or.sold.for.incorporation. | 
| 897c0 |  69 6e 74 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e    20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e 67  | into.a.dwelling...In.determining | 
| 897e0 |  20 77 68 65 74 68 65 72 20 61 20 70 72 6f 64 75    63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 72  | .whether.a.product.is.a.consumer | 
| 89800 |  20 70 72 6f 64 75 63 74 2c 0a 64 6f 75 62 74 66    75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 62  | .product,.doubtful.cases.shall.b | 
| 89820 |  65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61    76 6f 72 20 6f 66 20 63 6f 76 65 72 61 67 65 2e  | e.resolved.in.favor.of.coverage. | 
| 89840 |  20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c    61 72 0a 70 72 6f 64 75 63 74 20 72 65 63 65 69  | ..For.a.particular.product.recei | 
| 89860 |  76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75    6c 61 72 20 75 73 65 72 2c 20 22 6e 6f 72 6d 61  | ved.by.a.particular.user,."norma | 
| 89880 |  6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73    20 74 6f 20 61 0a 74 79 70 69 63 61 6c 20 6f 72  | lly.used".refers.to.a.typical.or | 
| 898a0 |  20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74    68 61 74 20 63 6c 61 73 73 20 6f 66 20 70 72 6f  | .common.use.of.that.class.of.pro | 
| 898c0 |  64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73    20 6f 66 20 74 68 65 20 73 74 61 74 75 73 0a 6f  | duct,.regardless.of.the.status.o | 
| 898e0 |  66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72    20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 20  | f.the.particular.user.or.of.the. | 
| 89900 |  77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 65    20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72  | way.in.which.the.particular.user | 
| 89920 |  0a 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c 20    6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 73  | .actually.uses,.or.expects.or.is | 
| 89940 |  20 65 78 70 65 63 74 65 64 20 74 6f 20 75 73 65    2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 20  | .expected.to.use,.the.product... | 
| 89960 |  41 20 70 72 6f 64 75 63 74 0a 69 73 20 61 20 63    6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 20  | A.product.is.a.consumer.product. | 
| 89980 |  72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68    65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 63  | regardless.of.whether.the.produc | 
| 899a0 |  74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61    6c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 6e  | t.has.substantial.commercial,.in | 
| 899c0 |  64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d    63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 75  | dustrial.or.non-consumer.uses,.u | 
| 899e0 |  6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20    72 65 70 72 65 73 65 6e 74 0a 74 68 65 20 6f 6e  | nless.such.uses.represent.the.on | 
| 89a00 |  6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d    6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 68  | ly.significant.mode.of.use.of.th | 
| 89a20 |  65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 22 49    6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f  | e.product....."Installation.Info | 
| 89a40 |  72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55    73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 6e  | rmation".for.a.User.Product.mean | 
| 89a60 |  73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70    72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 6f  | s.any.methods,.procedures,.autho | 
| 89a80 |  72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f    72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 74  | rization.keys,.or.other.informat | 
| 89aa0 |  69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f 20    69 6e 73 74 61 6c 6c 0a 61 6e 64 20 65 78 65 63  | ion.required.to.install.and.exec | 
| 89ac0 |  75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72    73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 72  | ute.modified.versions.of.a.cover | 
| 89ae0 |  65 64 20 77 6f 72 6b 20 69 6e 20 74 68 61 74 20    55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 6f  | ed.work.in.that.User.Product.fro | 
| 89b00 |  6d 0a 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72    73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 72  | m.a.modified.version.of.its.Corr | 
| 89b20 |  65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65    2e 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 69  | esponding.Source...The.informati | 
| 89b40 |  6f 6e 20 6d 75 73 74 0a 73 75 66 66 69 63 65 20    74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 74  | on.must.suffice.to.ensure.that.t | 
| 89b60 |  68 65 20 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e    63 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 20  | he.continued.functioning.of.the. | 
| 89b80 |  6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 0a    63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 61  | modified.object.code.is.in.no.ca | 
| 89ba0 |  73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 20    69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 20  | se.prevented.or.interfered.with. | 
| 89bc0 |  73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 0a 6d    6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 20  | solely.because.modification.has. | 
| 89be0 |  62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 49 66    20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 6f  | been.made.....If.you.convey.an.o | 
| 89c00 |  62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20    75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69  | bject.code.work.under.this.secti | 
| 89c20 |  6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 20    6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20  | on.in,.or.with,.or.specifically. | 
| 89c40 |  66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 73    65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 20  | for.use.in,.a.User.Product,.and. | 
| 89c60 |  74 68 65 20 63 6f 6e 76 65 79 69 6e 67 20 6f 63    63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 20  | the.conveying.occurs.as.part.of. | 
| 89c80 |  61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e    20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 74  | a.transaction.in.which.the.right | 
| 89ca0 |  20 6f 66 20 70 6f 73 73 65 73 73 69 6f 6e 20 61    6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 73  | .of.possession.and.use.of.the.Us | 
| 89cc0 |  65 72 20 50 72 6f 64 75 63 74 20 69 73 20 74 72    61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 65  | er.Product.is.transferred.to.the | 
| 89ce0 |  20 72 65 63 69 70 69 65 6e 74 20 69 6e 20 70 65    72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 20  | .recipient.in.perpetuity.or.for. | 
| 89d00 |  61 0a 66 69 78 65 64 20 74 65 72 6d 20 28 72 65    67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 20  | a.fixed.term.(regardless.of.how. | 
| 89d20 |  74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20    69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 64  | the.transaction.is.characterized | 
| 89d40 |  29 2c 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e    64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e 76  | ),.the.Corresponding.Source.conv | 
| 89d60 |  65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 20    73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20  | eyed.under.this.section.must.be. | 
| 89d80 |  61 63 63 6f 6d 70 61 6e 69 65 64 0a 62 79 20 74    68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20  | accompanied.by.the.Installation. | 
| 89da0 |  49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75    74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d 65  | Information...But.this.requireme | 
| 89dc0 |  6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c    79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f 75  | nt.does.not.apply.if.neither.you | 
| 89de0 |  20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70    61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 65  | .nor.any.third.party.retains.the | 
| 89e00 |  20 61 62 69 6c 69 74 79 20 74 6f 20 69 6e 73 74    61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 6a  | .ability.to.install.modified.obj | 
| 89e20 |  65 63 74 20 63 6f 64 65 20 6f 6e 20 74 68 65 20    55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 6f  | ect.code.on.the.User.Product.(fo | 
| 89e40 |  72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 77    6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e 73  | r.example,.the.work.has.been.ins | 
| 89e60 |  74 61 6c 6c 65 64 20 69 6e 20 52 4f 4d 29 2e 0a    0a 20 20 54 68 65 20 72 65 71 75 69 72 65 6d 65  | talled.in.ROM).....The.requireme | 
| 89e80 |  6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 49 6e    73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f 72  | nt.to.provide.Installation.Infor | 
| 89ea0 |  6d 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20    69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 72  | mation.does.not.include.a.requir | 
| 89ec0 |  65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75    65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 70  | ement.to.continue.to.provide.sup | 
| 89ee0 |  70 6f 72 74 20 73 65 72 76 69 63 65 2c 20 77 61    72 72 61 6e 74 79 2c 20 6f 72 20 75 70 64 61 74  | port.service,.warranty,.or.updat | 
| 89f00 |  65 73 0a 66 6f 72 20 61 20 77 6f 72 6b 20 74 68    61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69  | es.for.a.work.that.has.been.modi | 
| 89f20 |  66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65    64 20 62 79 20 74 68 65 20 72 65 63 69 70 69 65  | fied.or.installed.by.the.recipie | 
| 89f40 |  6e 74 2c 20 6f 72 20 66 6f 72 0a 74 68 65 20 55    73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 77  | nt,.or.for.the.User.Product.in.w | 
| 89f60 |  68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e    20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e 73  | hich.it.has.been.modified.or.ins | 
| 89f80 |  74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20    74 6f 20 61 0a 6e 65 74 77 6f 72 6b 20 6d 61 79  | talled...Access.to.a.network.may | 
| 89fa0 |  20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20    74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e  | .be.denied.when.the.modification | 
| 89fc0 |  20 69 74 73 65 6c 66 20 6d 61 74 65 72 69 61 6c    6c 79 20 61 6e 64 0a 61 64 76 65 72 73 65 6c 79  | .itself.materially.and.adversely | 
| 89fe0 |  20 61 66 66 65 63 74 73 20 74 68 65 20 6f 70 65    72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65  | .affects.the.operation.of.the.ne | 
| 8a000 |  74 77 6f 72 6b 20 6f 72 20 76 69 6f 6c 61 74 65    73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 0a  | twork.or.violates.the.rules.and. | 
| 8a020 |  70 72 6f 74 6f 63 6f 6c 73 20 66 6f 72 20 63 6f    6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 6f  | protocols.for.communication.acro | 
| 8a040 |  73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a    0a 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67  | ss.the.network.....Corresponding | 
| 8a060 |  20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64    2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 69  | .Source.conveyed,.and.Installati | 
| 8a080 |  6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70    72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 6f  | on.Information.provided,.in.acco | 
| 8a0a0 |  72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63    74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e 20  | rd.with.this.section.must.be.in. | 
| 8a0c0 |  61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73    20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d 65  | a.format.that.is.publicly.docume | 
| 8a0e0 |  6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61    6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e  | nted.(and.with.an.implementation | 
| 8a100 |  20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68    65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 72  | .available.to.the.public.in.sour | 
| 8a120 |  63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 61    6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 20  | ce.code.form),.and.must.require. | 
| 8a140 |  6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 77    6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a 75  | no.special.password.or.key.for.u | 
| 8a160 |  6e 70 61 63 6b 69 6e 67 2c 20 72 65 61 64 69 6e    67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a 20  | npacking,.reading.or.copying.... | 
| 8a180 |  20 37 2e 20 41 64 64 69 74 69 6f 6e 61 6c 20 54    65 72 6d 73 2e 0a 0a 20 20 22 41 64 64 69 74 69  | .7..Additional.Terms....."Additi | 
| 8a1a0 |  6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73    22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 74  | onal.permissions".are.terms.that | 
| 8a1c0 |  20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20    74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c 69  | .supplement.the.terms.of.this.Li | 
| 8a1e0 |  63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20    65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d 20  | cense.by.making.exceptions.from. | 
| 8a200 |  6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69    74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a 41  | one.or.more.of.its.conditions..A | 
| 8a220 |  64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73    73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61  | dditional.permissions.that.are.a | 
| 8a240 |  70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65    20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d 20  | pplicable.to.the.entire.Program. | 
| 8a260 |  73 68 61 6c 6c 0a 62 65 20 74 72 65 61 74 65 64    20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 20  | shall.be.treated.as.though.they. | 
| 8a280 |  77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e    20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74  | were.included.in.this.License,.t | 
| 8a2a0 |  6f 20 74 68 65 20 65 78 74 65 6e 74 0a 74 68 61    74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 64  | o.the.extent.that.they.are.valid | 
| 8a2c0 |  20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c    65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 74  | .under.applicable.law...If.addit | 
| 8a2e0 |  69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e    73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20  | ional.permissions.apply.only.to. | 
| 8a300 |  70 61 72 74 20 6f 66 20 74 68 65 20 50 72 6f 67    72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 6d  | part.of.the.Program,.that.part.m | 
| 8a320 |  61 79 20 62 65 20 75 73 65 64 20 73 65 70 61 72    61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f 73  | ay.be.used.separately.under.thos | 
| 8a340 |  65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 62    75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 72  | e.permissions,.but.the.entire.Pr | 
| 8a360 |  6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f    76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 4c  | ogram.remains.governed.by.this.L | 
| 8a380 |  69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72    65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 64  | icense.without.regard.to.the.add | 
| 8a3a0 |  69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69    6f 6e 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75  | itional.permissions.....When.you | 
| 8a3c0 |  20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f    66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b  | .convey.a.copy.of.a.covered.work | 
| 8a3e0 |  2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75    72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 20  | ,.you.may.at.your.option.remove. | 
| 8a400 |  61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70    65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d 20  | any.additional.permissions.from. | 
| 8a420 |  74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72    6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a 69  | that.copy,.or.from.any.part.of.i | 
| 8a440 |  74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20    70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 20  | t...(Additional.permissions.may. | 
| 8a460 |  62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65    71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e 0a  | be.written.to.require.their.own. | 
| 8a480 |  72 65 6d 6f 76 61 6c 20 69 6e 20 63 65 72 74 61    69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 6f  | removal.in.certain.cases.when.yo | 
| 8a4a0 |  75 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72    6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c 61  | u.modify.the.work.)..You.may.pla | 
| 8a4c0 |  63 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 70 65    72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 74  | ce.additional.permissions.on.mat | 
| 8a4e0 |  65 72 69 61 6c 2c 20 61 64 64 65 64 20 62 79 20    79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 64  | erial,.added.by.you.to.a.covered | 
| 8a500 |  20 77 6f 72 6b 2c 0a 66 6f 72 20 77 68 69 63 68    20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 6e  | .work,.for.which.you.have.or.can | 
| 8a520 |  20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74    65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 6d  | .give.appropriate.copyright.perm | 
| 8a540 |  69 73 73 69 6f 6e 2e 0a 0a 20 20 4e 6f 74 77 69    74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 6f  | ission.....Notwithstanding.any.o | 
| 8a560 |  74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f    66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20  | ther.provision.of.this.License,. | 
| 8a580 |  66 6f 72 20 6d 61 74 65 72 69 61 6c 20 79 6f 75    0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65  | for.material.you.add.to.a.covere | 
| 8a5a0 |  64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20    28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 62  | d.work,.you.may.(if.authorized.b | 
| 8a5c0 |  79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20    68 6f 6c 64 65 72 73 20 6f 66 0a 74 68 61 74 20  | y.the.copyright.holders.of.that. | 
| 8a5e0 |  6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65    6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f  | material).supplement.the.terms.o | 
| 8a600 |  66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77    69 74 68 20 74 65 72 6d 73 3a 0a 0a 20 20 20 20  | f.this.License.with.terms:...... | 
| 8a620 |  61 29 20 44 69 73 63 6c 61 69 6d 69 6e 67 20 77    61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 74  | a).Disclaiming.warranty.or.limit | 
| 8a640 |  69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69    66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 74  | ing.liability.differently.from.t | 
| 8a660 |  68 65 0a 20 20 20 20 74 65 72 6d 73 20 6f 66 20    73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 20  | he.....terms.of.sections.15.and. | 
| 8a680 |  31 36 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e    73 65 3b 20 6f 72 0a 0a 20 20 20 20 62 29 20 52  | 16.of.this.License;.or......b).R | 
| 8a6a0 |  65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76    61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 69  | equiring.preservation.of.specifi | 
| 8a6c0 |  65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65    67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 0a 20  | ed.reasonable.legal.notices.or.. | 
| 8a6e0 |  20 20 20 61 75 74 68 6f 72 20 61 74 74 72 69 62    75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 6d  | ...author.attributions.in.that.m | 
| 8a700 |  61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68    65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65  | aterial.or.in.the.Appropriate.Le | 
| 8a720 |  67 61 6c 0a 20 20 20 20 4e 6f 74 69 63 65 73 20    64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f 72  | gal.....Notices.displayed.by.wor | 
| 8a740 |  6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74    3b 20 6f 72 0a 0a 20 20 20 20 63 29 20 50 72 6f  | ks.containing.it;.or......c).Pro | 
| 8a760 |  68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72    65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68  | hibiting.misrepresentation.of.th | 
| 8a780 |  65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74    20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 20 20  | e.origin.of.that.material,.or... | 
| 8a7a0 |  20 20 72 65 71 75 69 72 69 6e 67 20 74 68 61 74    20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f  | ..requiring.that.modified.versio | 
| 8a7c0 |  6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72    69 61 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 6e  | ns.of.such.material.be.marked.in | 
| 8a7e0 |  0a 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20    77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 6e  | .....reasonable.ways.as.differen | 
| 8a800 |  74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69    6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 0a  | t.from.the.original.version;.or. | 
| 8a820 |  0a 20 20 20 20 64 29 20 4c 69 6d 69 74 69 6e 67    20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 62  | .....d).Limiting.the.use.for.pub | 
| 8a840 |  6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20    6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 65  | licity.purposes.of.names.of.lice | 
| 8a860 |  6e 73 6f 72 73 20 6f 72 0a 20 20 20 20 61 75 74    68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 65  | nsors.or.....authors.of.the.mate | 
| 8a880 |  72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 65 29    20 44 65 63 6c 69 6e 69 6e 67 20 74 6f 20 67 72  | rial;.or......e).Declining.to.gr | 
| 8a8a0 |  61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72    20 74 72 61 64 65 6d 61 72 6b 20 6c 61 77 20 66  | ant.rights.under.trademark.law.f | 
| 8a8c0 |  6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20    20 20 20 74 72 61 64 65 20 6e 61 6d 65 73 2c 20  | or.use.of.some.....trade.names,. | 
| 8a8e0 |  74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73    65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f 72  | trademarks,.or.service.marks;.or | 
| 8a900 |  0a 0a 20 20 20 20 66 29 20 52 65 71 75 69 72 69    6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 69  | ......f).Requiring.indemnificati | 
| 8a920 |  6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20    61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 74  | on.of.licensors.and.authors.of.t | 
| 8a940 |  68 61 74 0a 20 20 20 20 6d 61 74 65 72 69 61 6c    20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63  | hat.....material.by.anyone.who.c | 
| 8a960 |  6f 6e 76 65 79 73 20 74 68 65 20 6d 61 74 65 72    69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 64  | onveys.the.material.(or.modified | 
| 8a980 |  20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20    20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 61  | .versions.of.....it).with.contra | 
| 8a9a0 |  63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e    73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 74  | ctual.assumptions.of.liability.t | 
| 8a9c0 |  6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c    20 66 6f 72 0a 20 20 20 20 61 6e 79 20 6c 69 61  | o.the.recipient,.for.....any.lia | 
| 8a9e0 |  62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73    65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 73  | bility.that.these.contractual.as | 
| 8aa00 |  73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74    6c 79 20 69 6d 70 6f 73 65 20 6f 6e 0a 20 20 20  | sumptions.directly.impose.on.... | 
| 8aa20 |  20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73    20 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 0a 20  | .those.licensors.and.authors.... | 
| 8aa40 |  20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70    65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 69  | .All.other.non-permissive.additi | 
| 8aa60 |  6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63    6f 6e 73 69 64 65 72 65 64 20 22 66 75 72 74 68  | onal.terms.are.considered."furth | 
| 8aa80 |  65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 22    20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 6e  | er.restrictions".within.the.mean | 
| 8aaa0 |  69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31    30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72  | ing.of.section.10...If.the.Progr | 
| 8aac0 |  61 6d 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76    65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 61  | am.as.you.received.it,.or.any.pa | 
| 8aae0 |  72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69    6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 74  | rt.of.it,.contains.a.notice.stat | 
| 8ab00 |  69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 67    6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 20  | ing.that.it.is.governed.by.this. | 
| 8ab20 |  4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69    74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 69  | License.along.with.a.term.that.i | 
| 8ab40 |  73 20 61 20 66 75 72 74 68 65 72 0a 72 65 73 74    72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 79  | s.a.further.restriction,.you.may | 
| 8ab60 |  20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72    6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 65  | .remove.that.term...If.a.license | 
| 8ab80 |  20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69    6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 73  | .document.contains.a.further.res | 
| 8aba0 |  74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72    6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e 67  | triction.but.permits.relicensing | 
| 8abc0 |  20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e    64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65  | .or.conveying.under.this.License | 
| 8abe0 |  2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f    20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20  | ,.you.may.add.to.a.covered.work. | 
| 8ac00 |  6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65    64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a 6f  | material.governed.by.the.terms.o | 
| 8ac20 |  66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64    6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 65  | f.that.license.document,.provide | 
| 8ac40 |  64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68    65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 64  | d.that.the.further.restriction.d | 
| 8ac60 |  6f 65 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20    73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e 67  | oes.not.survive.such.relicensing | 
| 8ac80 |  20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a    20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 72  | .or.conveying.....If.you.add.ter | 
| 8aca0 |  6d 73 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20    77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 77  | ms.to.a.covered.work.in.accord.w | 
| 8acc0 |  69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e    2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 65  | ith.this.section,.you.must.place | 
| 8ace0 |  2c 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e    74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c 20  | ,.in.the.relevant.source.files,. | 
| 8ad00 |  61 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74    68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 65  | a.statement.of.the.additional.te | 
| 8ad20 |  72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74    6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 6f  | rms.that.apply.to.those.files,.o | 
| 8ad40 |  72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63    61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 66  | r.a.notice.indicating.where.to.f | 
| 8ad60 |  69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62    6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 41 64 64  | ind.the.applicable.terms.....Add | 
| 8ad80 |  69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70    65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f 6e  | itional.terms,.permissive.or.non | 
| 8ada0 |  2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79    20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 68  | -permissive,.may.be.stated.in.th | 
| 8adc0 |  65 0a 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61    72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 6c  | e.form.of.a.separately.written.l | 
| 8ade0 |  69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65    64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 3b  | icense,.or.stated.as.exceptions; | 
| 8ae00 |  0a 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69    72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 69  | .the.above.requirements.apply.ei | 
| 8ae20 |  74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20    54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 20  | ther.way.....8..Termination..... | 
| 8ae40 |  59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 6f 70    61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20  | You.may.not.propagate.or.modify. | 
| 8ae60 |  61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 65    78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 73  | a.covered.work.except.as.express | 
| 8ae80 |  6c 79 0a 70 72 6f 76 69 64 65 64 20 75 6e 64 65    72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20  | ly.provided.under.this.License.. | 
| 8aea0 |  20 41 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68    65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 67  | .Any.attempt.otherwise.to.propag | 
| 8aec0 |  61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 69 74    20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 69  | ate.or.modify.it.is.void,.and.wi | 
| 8aee0 |  6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79    20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 20  | ll.automatically.terminate.your. | 
| 8af00 |  72 69 67 68 74 73 20 75 6e 64 65 72 0a 74 68 69    73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c 75  | rights.under.this.License.(inclu | 
| 8af20 |  64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20    6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 64  | ding.any.patent.licenses.granted | 
| 8af40 |  20 75 6e 64 65 72 20 74 68 65 20 74 68 69 72 64    0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 65  | .under.the.third.paragraph.of.se | 
| 8af60 |  63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 48 6f    77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 65  | ction.11).....However,.if.you.ce | 
| 8af80 |  61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f    6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73  | ase.all.violation.of.this.Licens | 
| 8afa0 |  65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 6c 69 63    65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 74  | e,.then.your.license.from.a.part | 
| 8afc0 |  69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74    20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e 73  | icular.copyright.holder.is.reins | 
| 8afe0 |  74 61 74 65 64 20 28 61 29 0a 70 72 6f 76 69 73    69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 20  | tated.(a).provisionally,.unless. | 
| 8b000 |  61 6e 64 20 75 6e 74 69 6c 20 74 68 65 20 63 6f    70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 65  | and.until.the.copyright.holder.e | 
| 8b020 |  78 70 6c 69 63 69 74 6c 79 20 61 6e 64 0a 66 69    6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 73  | xplicitly.and.finally.terminates | 
| 8b040 |  20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61    6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e 74  | .your.license,.and.(b).permanent | 
| 8b060 |  6c 79 2c 20 69 66 20 74 68 65 20 63 6f 70 79 72    69 67 68 74 0a 68 6f 6c 64 65 72 20 66 61 69 6c  | ly,.if.the.copyright.holder.fail | 
| 8b080 |  73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20    6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e  | s.to.notify.you.of.the.violation | 
| 8b0a0 |  20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61    62 6c 65 20 6d 65 61 6e 73 0a 70 72 69 6f 72 20  | .by.some.reasonable.means.prior. | 
| 8b0c0 |  74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72    20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e 0a  | to.60.days.after.the.cessation.. | 
| 8b0e0 |  0a 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75    72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61  | ...Moreover,.your.license.from.a | 
| 8b100 |  20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79    72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 0a  | .particular.copyright.holder.is. | 
| 8b120 |  72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61    6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 6f  | reinstated.permanently.if.the.co | 
| 8b140 |  70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e    6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 74  | pyright.holder.notifies.you.of.t | 
| 8b160 |  68 65 0a 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20    73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20  | he.violation.by.some.reasonable. | 
| 8b180 |  6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74    68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f  | means,.this.is.the.first.time.yo | 
| 8b1a0 |  75 20 68 61 76 65 0a 72 65 63 65 69 76 65 64 20    6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 74  | u.have.received.notice.of.violat | 
| 8b1c0 |  69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65    6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f 72  | ion.of.this.License.(for.any.wor | 
| 8b1e0 |  6b 29 20 66 72 6f 6d 20 74 68 61 74 0a 63 6f 70    79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 61  | k).from.that.copyright.holder,.a | 
| 8b200 |  6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20    76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 20  | nd.you.cure.the.violation.prior. | 
| 8b220 |  74 6f 20 33 30 20 64 61 79 73 20 61 66 74 65 72    0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f 66  | to.30.days.after.your.receipt.of | 
| 8b240 |  20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20    54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 79  | .the.notice.....Termination.of.y | 
| 8b260 |  6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72    20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 6f  | our.rights.under.this.section.do | 
| 8b280 |  65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65    20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f 66  | es.not.terminate.the.licenses.of | 
| 8b2a0 |  20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76    65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 65  | .parties.who.have.received.copie | 
| 8b2c0 |  73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d    20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 20  | s.or.rights.from.you.under.this. | 
| 8b2e0 |  4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75    72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 65  | License...If.your.rights.have.be | 
| 8b300 |  65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e    64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 6c  | en.terminated.and.not.permanentl | 
| 8b320 |  79 0a 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f    75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 79  | y.reinstated,.you.do.not.qualify | 
| 8b340 |  20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20    6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 65  | .to.receive.new.licenses.for.the | 
| 8b360 |  20 73 61 6d 65 0a 6d 61 74 65 72 69 61 6c 20 75    6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 2e  | .same.material.under.section.10. | 
| 8b380 |  0a 0a 20 20 39 2e 20 41 63 63 65 70 74 61 6e 63    65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 66  | ....9..Acceptance.Not.Required.f | 
| 8b3a0 |  6f 72 20 48 61 76 69 6e 67 20 43 6f 70 69 65 73    2e 0a 0a 20 20 59 6f 75 20 61 72 65 20 6e 6f 74  | or.Having.Copies.....You.are.not | 
| 8b3c0 |  20 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63    65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65  | .required.to.accept.this.License | 
| 8b3e0 |  20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63    65 69 76 65 20 6f 72 0a 72 75 6e 20 61 20 63 6f  | .in.order.to.receive.or.run.a.co | 
| 8b400 |  70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61    6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 72  | py.of.the.Program...Ancillary.pr | 
| 8b420 |  6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63    6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 75  | opagation.of.a.covered.work.occu | 
| 8b440 |  72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20    61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66  | rring.solely.as.a.consequence.of | 
| 8b460 |  20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70    65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e  | .using.peer-to-peer.transmission | 
| 8b480 |  0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f    70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 73  | .to.receive.a.copy.likewise.does | 
| 8b4a0 |  20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 63 63    65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 65  | .not.require.acceptance...Howeve | 
| 8b4c0 |  72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72    20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 6e  | r,.nothing.other.than.this.Licen | 
| 8b4e0 |  73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 70 65    72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f 70  | se.grants.you.permission.to.prop | 
| 8b500 |  61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20    61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b  | agate.or.modify.any.covered.work | 
| 8b520 |  2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e 73    20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 69  | ...These.actions.infringe.copyri | 
| 8b540 |  67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a 6e 6f    74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69  | ght.if.you.do.not.accept.this.Li | 
| 8b560 |  63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 6f 72    65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 20  | cense...Therefore,.by.modifying. | 
| 8b580 |  6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61    0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 79  | or.propagating.a.covered.work,.y | 
| 8b5a0 |  6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72    20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 74  | ou.indicate.your.acceptance.of.t | 
| 8b5c0 |  68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64    6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 74  | his.License.to.do.so.....10..Aut | 
| 8b5e0 |  6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67    20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 52  | omatic.Licensing.of.Downstream.R | 
| 8b600 |  65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 45 61    63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e 76  | ecipients.....Each.time.you.conv | 
| 8b620 |  65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72    6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e 74  | ey.a.covered.work,.the.recipient | 
| 8b640 |  20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72    65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e 73  | .automatically.receives.a.licens | 
| 8b660 |  65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69    6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 74  | e.from.the.original.licensors,.t | 
| 8b680 |  6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e    64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 74  | o.run,.modify.and.propagate.that | 
| 8b6a0 |  20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74    6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20  | .work,.subject.to.this.License.. | 
| 8b6c0 |  20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73    70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e 66  | .You.are.not.responsible.for.enf | 
| 8b6e0 |  6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63    65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 69  | orcing.compliance.by.third.parti | 
| 8b700 |  65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63    65 6e 73 65 2e 0a 0a 20 20 41 6e 20 22 65 6e 74  | es.with.this.License.....An."ent | 
| 8b720 |  69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 22    20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f  | ity.transaction".is.a.transactio | 
| 8b740 |  6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63    6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 67  | n.transferring.control.of.an.org | 
| 8b760 |  61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75    62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c 20  | anization,.or.substantially.all. | 
| 8b780 |  61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f    72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 6e  | assets.of.one,.or.subdividing.an | 
| 8b7a0 |  0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f    72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e 69  | .organization,.or.merging.organi | 
| 8b7c0 |  7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f    70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f  | zations...If.propagation.of.a.co | 
| 8b7e0 |  76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c    74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 74  | vered.work.results.from.an.entit | 
| 8b800 |  79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65    61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 61  | y.transaction,.each.party.to.tha | 
| 8b820 |  74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68    6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f 70  | t.transaction.who.receives.a.cop | 
| 8b840 |  79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c    73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 74  | y.of.the.work.also.receives.what | 
| 8b860 |  65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f    20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 61  | ever.licenses.to.the.work.the.pa | 
| 8b880 |  72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f    72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 61  | rty's.predecessor.in.interest.ha | 
| 8b8a0 |  64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20    75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 6f  | d.or.could.give.under.the.previo | 
| 8b8c0 |  75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c    75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 6f  | us.paragraph,.plus.a.right.to.po | 
| 8b8e0 |  73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a    43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f  | ssession.of.the.Corresponding.So | 
| 8b900 |  75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b    20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 63  | urce.of.the.work.from.the.predec | 
| 8b920 |  65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73    74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 63  | essor.in.interest,.if.the.predec | 
| 8b940 |  65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20    63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 20  | essor.has.it.or.can.get.it.with. | 
| 8b960 |  72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72    74 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6e  | reasonable.efforts.....You.may.n | 
| 8b980 |  6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75    72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f  | ot.impose.any.further.restrictio | 
| 8b9a0 |  6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69    73 65 20 6f 66 20 74 68 65 0a 72 69 67 68 74 73  | ns.on.the.exercise.of.the.rights | 
| 8b9c0 |  20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69    72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 20  | .granted.or.affirmed.under.this. | 
| 8b9e0 |  4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78    61 6d 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a 6e  | License...For.example,.you.may.n | 
| 8ba00 |  6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65    6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 79  | ot.impose.a.license.fee,.royalty | 
| 8ba20 |  2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67    65 20 66 6f 72 20 65 78 65 72 63 69 73 65 20 6f  | ,.or.other.charge.for.exercise.o | 
| 8ba40 |  66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64    20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65  | f.rights.granted.under.this.Lice | 
| 8ba60 |  6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79    20 6e 6f 74 20 69 6e 69 74 69 61 74 65 20 6c 69  | nse,.and.you.may.not.initiate.li | 
| 8ba80 |  74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64    69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 69  | tigation.(including.a.cross-clai | 
| 8baa0 |  6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69    6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 20  | m.or.counterclaim.in.a.lawsuit). | 
| 8bac0 |  61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e    79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 69  | alleging.that.any.patent.claim.i | 
| 8bae0 |  73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d    61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 65  | s.infringed.by.making,.using,.se | 
| 8bb00 |  6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20    66 6f 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d 70  | lling,.offering.for.sale,.or.imp | 
| 8bb20 |  6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72    61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 6f  | orting.the.Program.or.any.portio | 
| 8bb40 |  6e 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20    50 61 74 65 6e 74 73 2e 0a 0a 20 20 41 20 22 63  | n.of.it.....11..Patents.....A."c | 
| 8bb60 |  6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61    20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65  | ontributor".is.a.copyright.holde | 
| 8bb80 |  72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73    20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 0a  | r.who.authorizes.use.under.this. | 
| 8bba0 |  4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50    72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 6b  | License.of.the.Program.or.a.work | 
| 8bbc0 |  20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72    6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e 20  | .on.which.the.Program.is.based.. | 
| 8bbe0 |  20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c    69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c 65  | .The.work.thus.licensed.is.calle | 
| 8bc00 |  64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f    72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f 72  | d.the.contributor's."contributor | 
| 8bc20 |  20 76 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 41 20    63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 65  | .version".....A.contributor's."e | 
| 8bc40 |  73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20    63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c 20  | ssential.patent.claims".are.all. | 
| 8bc60 |  70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 6f 77    6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f 6c 6c 65  | patent.claims.owned.or.controlle | 
| 8bc80 |  64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62    75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 6c  | d.by.the.contributor,.whether.al | 
| 8bca0 |  72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f    72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 75  | ready.acquired.or.hereafter.acqu | 
| 8bcc0 |  69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64    20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 79  | ired,.that.would.be.infringed.by | 
| 8bce0 |  20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65    72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 20  | .some.manner,.permitted.by.this. | 
| 8bd00 |  4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69    6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 65  | License,.of.making,.using,.or.se | 
| 8bd20 |  6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69    62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a 62  | lling.its.contributor.version,.b | 
| 8bd40 |  75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64    65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 6f  | ut.do.not.include.claims.that.wo | 
| 8bd60 |  75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64    20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 65  | uld.be.infringed.only.as.a.conse | 
| 8bd80 |  71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65    72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f  | quence.of.further.modification.o | 
| 8bda0 |  66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f    72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 0a  | f.the.contributor.version...For. | 
| 8bdc0 |  70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73    20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 6f  | purposes.of.this.definition,."co | 
| 8bde0 |  6e 74 72 6f 6c 22 20 69 6e 63 6c 75 64 65 73 20    74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 61  | ntrol".includes.the.right.to.gra | 
| 8be00 |  6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c 69 63    65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e 65  | nt.patent.sublicenses.in.a.manne | 
| 8be20 |  72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74    68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e  | r.consistent.with.the.requiremen | 
| 8be40 |  74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 65 6e    73 65 2e 0a 0a 20 20 45 61 63 68 20 63 6f 6e 74  | ts.of.this.License.....Each.cont | 
| 8be60 |  72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79    6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 69  | ributor.grants.you.a.non-exclusi | 
| 8be80 |  76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72    6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 65  | ve,.worldwide,.royalty-free.pate | 
| 8bea0 |  6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72    20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72  | nt.license.under.the.contributor | 
| 8bec0 |  27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74    65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a 6d  | 's.essential.patent.claims,.to.m | 
| 8bee0 |  61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20    6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c 20  | ake,.use,.sell,.offer.for.sale,. | 
| 8bf00 |  69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72    77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 79  | import.and.otherwise.run,.modify | 
| 8bf20 |  20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74    68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 69  | .and.propagate.the.contents.of.i | 
| 8bf40 |  74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76    65 72 73 69 6f 6e 2e 0a 0a 20 20 49 6e 20 74 68  | ts.contributor.version.....In.th | 
| 8bf60 |  65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65    65 20 70 61 72 61 67 72 61 70 68 73 2c 20 61 20  | e.following.three.paragraphs,.a. | 
| 8bf80 |  22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22    20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 0a  | "patent.license".is.any.express. | 
| 8bfa0 |  61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d    6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 72  | agreement.or.commitment,.however | 
| 8bfc0 |  20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f    74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 70  | .denominated,.not.to.enforce.a.p | 
| 8bfe0 |  61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61    6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 73  | atent.(such.as.an.express.permis | 
| 8c000 |  73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65    20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f 76  | sion.to.practice.a.patent.or.cov | 
| 8c020 |  65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65    20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 72  | enant.not.to.sue.for.patent.infr | 
| 8c040 |  69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 22    67 72 61 6e 74 22 20 73 75 63 68 20 61 20 70 61  | ingement)...To."grant".such.a.pa | 
| 8c060 |  74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20    61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 6f  | tent.license.to.a.party.means.to | 
| 8c080 |  20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67    72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69  | .make.such.an.agreement.or.commi | 
| 8c0a0 |  74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66    6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 67  | tment.not.to.enforce.a.patent.ag | 
| 8c0c0 |  61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e    0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65  | ainst.the.party.....If.you.conve | 
| 8c0e0 |  79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b    2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79  | y.a.covered.work,.knowingly.rely | 
| 8c100 |  69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20    6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 65  | ing.on.a.patent.license,.and.the | 
| 8c120 |  20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53    6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72  | .Corresponding.Source.of.the.wor | 
| 8c140 |  6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62    6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 6f  | k.is.not.available.for.anyone.to | 
| 8c160 |  20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63    68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 20  | .copy,.free.of.charge.and.under. | 
| 8c180 |  74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69    73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f 75  | the.terms.of.this.License,.throu | 
| 8c1a0 |  67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76    61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b 20  | gh.a.publicly.available.network. | 
| 8c1c0 |  73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20    72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 62  | server.or.other.readily.accessib | 
| 8c1e0 |  6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79    6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 28  | le.means,.then.you.must.either.( | 
| 8c200 |  31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72    72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63  | 1).cause.the.Corresponding.Sourc | 
| 8c220 |  65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c    61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 72  | e.to.be.so.available,.or.(2).arr | 
| 8c240 |  61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20    79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 20  | ange.to.deprive.yourself.of.the. | 
| 8c260 |  62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70    61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 6f  | benefit.of.the.patent.license.fo | 
| 8c280 |  72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61    72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 61  | r.this.particular.work,.or.(3).a | 
| 8c2a0 |  72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e    6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 77  | rrange,.in.a.manner.consistent.w | 
| 8c2c0 |  69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d    65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 63  | ith.the.requirements.of.this.Lic | 
| 8c2e0 |  65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20    74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 6e  | ense,.to.extend.the.patent.licen | 
| 8c300 |  73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d    20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 22 4b  | se.to.downstream.recipients..."K | 
| 8c320 |  6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67    22 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 65  | nowingly.relying".means.you.have | 
| 8c340 |  0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67    65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 20  | .actual.knowledge.that,.but.for. | 
| 8c360 |  74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e    73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 69  | the.patent.license,.your.conveyi | 
| 8c380 |  6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 20 77    6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 79  | ng.the.covered.work.in.a.country | 
| 8c3a0 |  2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69    65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 65  | ,.or.your.recipient's.use.of.the | 
| 8c3c0 |  20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 69 6e    20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 6c  | .covered.work.in.a.country,.woul | 
| 8c3e0 |  64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f    72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 61  | d.infringe.one.or.more.identifia | 
| 8c400 |  62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74    68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 74  | ble.patents.in.that.country.that | 
| 8c420 |  20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e    20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 20  | .you.have.reason.to.believe.are. | 
| 8c440 |  76 61 6c 69 64 2e 0a 0a 20 20 49 66 2c 20 70 75    72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e 20  | valid.....If,.pursuant.to.or.in. | 
| 8c460 |  63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20    61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 63  | connection.with.a.single.transac | 
| 8c480 |  74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d    65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 2c  | tion.or.arrangement,.you.convey, | 
| 8c4a0 |  20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79    20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 65  | .or.propagate.by.procuring.conve | 
| 8c4c0 |  79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65    72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 72  | yance.of,.a.covered.work,.and.gr | 
| 8c4e0 |  61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63    65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 20  | ant.a.patent.license.to.some.of. | 
| 8c500 |  74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65    69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65  | the.parties.receiving.the.covere | 
| 8c520 |  64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69    6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c 20  | d.work.authorizing.them.to.use,. | 
| 8c540 |  70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66    79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 70  | propagate,.modify.or.convey.a.sp | 
| 8c560 |  65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74    68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c  | ecific.copy.of.the.covered.work, | 
| 8c580 |  20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74    20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 61  | .then.the.patent.license.you.gra | 
| 8c5a0 |  6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61    6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f 20  | nt.is.automatically.extended.to. | 
| 8c5c0 |  61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f    66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 6f  | all.recipients.of.the.covered.wo | 
| 8c5e0 |  72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73    65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 41 20 70  | rk.and.works.based.on.it.....A.p | 
| 8c600 |  61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73    20 22 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79  | atent.license.is."discriminatory | 
| 8c620 |  22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74    20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e 0a  | ".if.it.does.not.include.within. | 
| 8c640 |  74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73    20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 69  | the.scope.of.its.coverage,.prohi | 
| 8c660 |  62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73    65 20 6f 66 2c 20 6f 72 20 69 73 0a 63 6f 6e 64  | bits.the.exercise.of,.or.is.cond | 
| 8c680 |  69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e    6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 6f  | itioned.on.the.non-exercise.of.o | 
| 8c6a0 |  6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68    65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 72  | ne.or.more.of.the.rights.that.ar | 
| 8c6c0 |  65 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67    72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69  | e.specifically.granted.under.thi | 
| 8c6e0 |  73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20    6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 61  | s.License...You.may.not.convey.a | 
| 8c700 |  20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 69 66    20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 79  | .covered.work.if.you.are.a.party | 
| 8c720 |  20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65    6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 20  | .to.an.arrangement.with.a.third. | 
| 8c740 |  70 61 72 74 79 20 74 68 61 74 20 69 73 0a 69 6e    20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f 66  | party.that.is.in.the.business.of | 
| 8c760 |  20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f    66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 68  | .distributing.software,.under.wh | 
| 8c780 |  69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79    6d 65 6e 74 0a 74 6f 20 74 68 65 20 74 68 69 72  | ich.you.make.payment.to.the.thir | 
| 8c7a0 |  64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e    20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 79  | d.party.based.on.the.extent.of.y | 
| 8c7c0 |  6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20    63 6f 6e 76 65 79 69 6e 67 0a 74 68 65 20 77 6f  | our.activity.of.conveying.the.wo | 
| 8c7e0 |  72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68    69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 61  | rk,.and.under.which.the.third.pa | 
| 8c800 |  72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61    6e 79 20 6f 66 20 74 68 65 0a 70 61 72 74 69 65  | rty.grants,.to.any.of.the.partie | 
| 8c820 |  73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65    69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 20  | s.who.would.receive.the.covered. | 
| 8c840 |  77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61    20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 0a  | work.from.you,.a.discriminatory. | 
| 8c860 |  70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28    61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e  | patent.license.(a).in.connection | 
| 8c880 |  20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20    74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b  | .with.copies.of.the.covered.work | 
| 8c8a0 |  0a 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75    20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 65  | .conveyed.by.you.(or.copies.made | 
| 8c8c0 |  20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69    65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 6d  | .from.those.copies),.or.(b).prim | 
| 8c8e0 |  61 72 69 6c 79 0a 66 6f 72 20 61 6e 64 20 69 6e    20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68  | arily.for.and.in.connection.with | 
| 8c900 |  20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63    74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 6f  | .specific.products.or.compilatio | 
| 8c920 |  6e 73 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20    74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b  | ns.that.contain.the.covered.work | 
| 8c940 |  2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74    65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 61  | ,.unless.you.entered.into.that.a | 
| 8c960 |  72 72 61 6e 67 65 6d 65 6e 74 2c 0a 6f 72 20 74    68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 6e  | rrangement,.or.that.patent.licen | 
| 8c980 |  73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20    70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 63  | se.was.granted,.prior.to.28.Marc | 
| 8c9a0 |  68 20 32 30 30 37 2e 0a 0a 20 20 4e 6f 74 68 69    6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e  | h.2007.....Nothing.in.this.Licen | 
| 8c9c0 |  73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73    74 72 75 65 64 20 61 73 20 65 78 63 6c 75 64 69  | se.shall.be.construed.as.excludi | 
| 8c9e0 |  6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61    6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 6e  | ng.or.limiting.any.implied.licen | 
| 8ca00 |  73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65    6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 65  | se.or.other.defenses.to.infringe | 
| 8ca20 |  6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74    68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 6c  | ment.that.may.otherwise.be.avail | 
| 8ca40 |  61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65    72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 74  | able.to.you.under.applicable.pat | 
| 8ca60 |  65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20    4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 20  | ent.law.....12..No.Surrender.of. | 
| 8ca80 |  4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e    0a 0a 20 20 49 66 20 63 6f 6e 64 69 74 69 6f 6e  | Others'.Freedom.....If.condition | 
| 8caa0 |  73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e    20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 79  | s.are.imposed.on.you.(whether.by | 
| 8cac0 |  20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67    72 65 65 6d 65 6e 74 20 6f 72 0a 6f 74 68 65 72  | .court.order,.agreement.or.other | 
| 8cae0 |  77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72    61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 74  | wise).that.contradict.the.condit | 
| 8cb00 |  69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63    65 6e 73 65 2c 20 74 68 65 79 20 64 6f 20 6e 6f  | ions.of.this.License,.they.do.no | 
| 8cb20 |  74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f    6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e 73  | t.excuse.you.from.the.conditions | 
| 8cb40 |  20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65    2e 20 20 49 66 20 79 6f 75 20 63 61 6e 6e 6f 74  | .of.this.License...If.you.cannot | 
| 8cb60 |  20 63 6f 6e 76 65 79 20 61 0a 63 6f 76 65 72 65    64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f 20  | .convey.a.covered.work.so.as.to. | 
| 8cb80 |  73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e    65 6f 75 73 6c 79 20 79 6f 75 72 20 6f 62 6c 69  | satisfy.simultaneously.your.obli | 
| 8cba0 |  67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68    69 73 0a 4c 69 63 65 6e 73 65 20 61 6e 64 20 61  | gations.under.this.License.and.a | 
| 8cbc0 |  6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65    6e 74 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c 20  | ny.other.pertinent.obligations,. | 
| 8cbe0 |  74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71    75 65 6e 63 65 20 79 6f 75 20 6d 61 79 0a 6e 6f  | then.as.a.consequence.you.may.no | 
| 8cc00 |  74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61    6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65  | t.convey.it.at.all...For.example | 
| 8cc20 |  2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74    6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 6c  | ,.if.you.agree.to.terms.that.obl | 
| 8cc40 |  69 67 61 74 65 20 79 6f 75 0a 74 6f 20 63 6f 6c    6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 66  | igate.you.to.collect.a.royalty.f | 
| 8cc60 |  6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65    79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 20  | or.further.conveying.from.those. | 
| 8cc80 |  74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76    65 79 0a 74 68 65 20 50 72 6f 67 72 61 6d 2c 20  | to.whom.you.convey.the.Program,. | 
| 8cca0 |  74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75    20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 62  | the.only.way.you.could.satisfy.b | 
| 8ccc0 |  6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20    61 6e 64 20 74 68 69 73 0a 4c 69 63 65 6e 73 65  | oth.those.terms.and.this.License | 
| 8cce0 |  20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66    72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 72  | .would.be.to.refrain.entirely.fr | 
| 8cd00 |  6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65    20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 2e  | om.conveying.the.Program.....13. | 
| 8cd20 |  20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e    55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c  | .Use.with.the.GNU.Affero.General | 
| 8cd40 |  20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e    0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64  | .Public.License.....Notwithstand | 
| 8cd60 |  69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72    6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20  | ing.any.other.provision.of.this. | 
| 8cd80 |  4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76    65 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20  | License,.you.have.permission.to. | 
| 8cda0 |  6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20    61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b  | link.or.combine.any.covered.work | 
| 8cdc0 |  20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63    65 6e 73 65 64 0a 75 6e 64 65 72 20 76 65 72 73  | .with.a.work.licensed.under.vers | 
| 8cde0 |  69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55    20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20  | ion.3.of.the.GNU.Affero.General. | 
| 8ce00 |  50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69    6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 63 6f 6d  | Public.License.into.a.single.com | 
| 8ce20 |  62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20    74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 65  | bined.work,.and.to.convey.the.re | 
| 8ce40 |  73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54    68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73  | sulting.work...The.terms.of.this | 
| 8ce60 |  0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f    6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 20  | .License.will.continue.to.apply. | 
| 8ce80 |  74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63    68 20 69 73 20 74 68 65 20 63 6f 76 65 72 65 64  | to.the.part.which.is.the.covered | 
| 8cea0 |  20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73    70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d 65  | .work,.but.the.special.requireme | 
| 8cec0 |  6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41    66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75  | nts.of.the.GNU.Affero.General.Pu | 
| 8cee0 |  62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65    63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 72  | blic.License,.section.13,.concer | 
| 8cf00 |  6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e    20 74 68 72 6f 75 67 68 20 61 20 6e 65 74 77 6f  | ning.interaction.through.a.netwo | 
| 8cf20 |  72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f    20 74 68 65 0a 63 6f 6d 62 69 6e 61 74 69 6f 6e  | rk.will.apply.to.the.combination | 
| 8cf40 |  20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e    20 52 65 76 69 73 65 64 20 56 65 72 73 69 6f 6e  | .as.such.....14..Revised.Version | 
| 8cf60 |  73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73    65 2e 0a 0a 20 20 54 68 65 20 46 72 65 65 20 53  | s.of.this.License.....The.Free.S | 
| 8cf80 |  6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69    6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 72  | oftware.Foundation.may.publish.r | 
| 8cfa0 |  65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65    77 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 74 68  | evised.and/or.new.versions.of.th | 
| 8cfc0 |  65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75    62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 72 6f  | e.GNU.General.Public.License.fro | 
| 8cfe0 |  6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20    20 53 75 63 68 20 6e 65 77 20 76 65 72 73 69 6f  | m.time.to.time...Such.new.versio | 
| 8d000 |  6e 73 20 77 69 6c 6c 0a 62 65 20 73 69 6d 69 6c    61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f 20  | ns.will.be.similar.in.spirit.to. | 
| 8d020 |  74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73    69 6f 6e 2c 20 62 75 74 20 6d 61 79 20 64 69 66  | the.present.version,.but.may.dif | 
| 8d040 |  66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f    0a 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 6f  | fer.in.detail.to.address.new.pro | 
| 8d060 |  62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e    73 2e 0a 0a 20 20 45 61 63 68 20 76 65 72 73 69  | blems.or.concerns.....Each.versi | 
| 8d080 |  6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69    73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 72  | on.is.given.a.distinguishing.ver | 
| 8d0a0 |  73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66    20 74 68 65 0a 50 72 6f 67 72 61 6d 20 73 70 65  | sion.number...If.the.Program.spe | 
| 8d0c0 |  63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65    72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 76  | cifies.that.a.certain.numbered.v | 
| 8d0e0 |  65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e    55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63  | ersion.of.the.GNU.General.Public | 
| 8d100 |  20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79    20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 20  | .License."or.any.later.version". | 
| 8d120 |  61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79    6f 75 20 68 61 76 65 20 74 68 65 0a 6f 70 74 69  | applies.to.it,.you.have.the.opti | 
| 8d140 |  6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20    74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f  | on.of.following.the.terms.and.co | 
| 8d160 |  6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20    6f 66 20 74 68 61 74 20 6e 75 6d 62 65 72 65 64  | nditions.either.of.that.numbered | 
| 8d180 |  0a 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61    6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e  | .version.or.of.any.later.version | 
| 8d1a0 |  20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68    65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 0a  | .published.by.the.Free.Software. | 
| 8d1c0 |  46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20    74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 73  | Foundation...If.the.Program.does | 
| 8d1e0 |  20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76    65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f 66  | .not.specify.a.version.number.of | 
| 8d200 |  20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c    20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c  | .the.GNU.General.Public.License, | 
| 8d220 |  20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20    61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 72  | .you.may.choose.any.version.ever | 
| 8d240 |  20 70 75 62 6c 69 73 68 65 64 0a 62 79 20 74 68    65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20  | .published.by.the.Free.Software. | 
| 8d260 |  46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 49    66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 73 70  | Foundation.....If.the.Program.sp | 
| 8d280 |  65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70    72 6f 78 79 20 63 61 6e 20 64 65 63 69 64 65 20  | ecifies.that.a.proxy.can.decide. | 
| 8d2a0 |  77 68 69 63 68 20 66 75 74 75 72 65 0a 76 65 72    73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e 55  | which.future.versions.of.the.GNU | 
| 8d2c0 |  20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20    4c 69 63 65 6e 73 65 20 63 61 6e 20 62 65 20 75  | .General.Public.License.can.be.u | 
| 8d2e0 |  73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27    73 0a 70 75 62 6c 69 63 20 73 74 61 74 65 6d 65  | sed,.that.proxy's.public.stateme | 
| 8d300 |  6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65    20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 65  | nt.of.acceptance.of.a.version.pe | 
| 8d320 |  72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72    69 7a 65 73 20 79 6f 75 0a 74 6f 20 63 68 6f 6f  | rmanently.authorizes.you.to.choo | 
| 8d340 |  73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20    66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d 2e  | se.that.version.for.the.Program. | 
| 8d360 |  0a 0a 20 20 4c 61 74 65 72 20 6c 69 63 65 6e 73    65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 67  | ....Later.license.versions.may.g | 
| 8d380 |  69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e    61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 0a  | ive.you.additional.or.different. | 
| 8d3a0 |  70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f    77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 69  | permissions...However,.no.additi | 
| 8d3c0 |  6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73    20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20  | onal.obligations.are.imposed.on. | 
| 8d3e0 |  61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f    70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 61  | any.author.or.copyright.holder.a | 
| 8d400 |  73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f    75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 66  | s.a.result.of.your.choosing.to.f | 
| 8d420 |  6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65    72 73 69 6f 6e 2e 0a 0a 20 20 31 35 2e 20 44 69  | ollow.a.later.version.....15..Di | 
| 8d440 |  73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72    61 6e 74 79 2e 0a 0a 20 20 54 48 45 52 45 20 49  | sclaimer.of.Warranty.....THERE.I | 
| 8d460 |  53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f    52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c 20 54  | S.NO.WARRANTY.FOR.THE.PROGRAM,.T | 
| 8d480 |  4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52    4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c 49 43  | O.THE.EXTENT.PERMITTED.BY.APPLIC | 
| 8d4a0 |  41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50    54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 45  | ABLE.LAW...EXCEPT.WHEN.OTHERWISE | 
| 8d4c0 |  20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49    4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 48 54  | .STATED.IN.WRITING.THE.COPYRIGHT | 
| 8d4e0 |  0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20    4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 52  | .HOLDERS.AND/OR.OTHER.PARTIES.PR | 
| 8d500 |  4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41    4d 20 22 41 53 20 49 53 22 20 57 49 54 48 4f 55  | OVIDE.THE.PROGRAM."AS.IS".WITHOU | 
| 8d520 |  54 20 57 41 52 52 41 4e 54 59 0a 4f 46 20 41 4e    59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 45  | T.WARRANTY.OF.ANY.KIND,.EITHER.E | 
| 8d540 |  58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c    49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20  | XPRESSED.OR.IMPLIED,.INCLUDING,. | 
| 8d560 |  42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20    54 4f 2c 0a 54 48 45 20 49 4d 50 4c 49 45 44 20  | BUT.NOT.LIMITED.TO,.THE.IMPLIED. | 
| 8d580 |  57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45    52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e  | WARRANTIES.OF.MERCHANTABILITY.AN | 
| 8d5a0 |  44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20    50 41 52 54 49 43 55 4c 41 52 0a 50 55 52 50 4f  | D.FITNESS.FOR.A.PARTICULAR.PURPO | 
| 8d5c0 |  53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20    52 49 53 4b 20 41 53 20 54 4f 20 54 48 45 20 51  | SE...THE.ENTIRE.RISK.AS.TO.THE.Q | 
| 8d5e0 |  55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f    52 4d 41 4e 43 45 20 4f 46 20 54 48 45 20 50 52  | UALITY.AND.PERFORMANCE.OF.THE.PR | 
| 8d600 |  4f 47 52 41 4d 0a 49 53 20 57 49 54 48 20 59 4f    55 2e 20 20 53 48 4f 55 4c 44 20 54 48 45 20 50  | OGRAM.IS.WITH.YOU...SHOULD.THE.P | 
| 8d620 |  52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46    45 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 55  | ROGRAM.PROVE.DEFECTIVE,.YOU.ASSU | 
| 8d640 |  4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 0a 41    4c 4c 20 4e 45 43 45 53 53 41 52 59 20 53 45 52  | ME.THE.COST.OF.ALL.NECESSARY.SER | 
| 8d660 |  56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f    52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a 20  | VICING,.REPAIR.OR.CORRECTION.... | 
| 8d680 |  20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e 20    6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a 20  | .16..Limitation.of.Liability.... | 
| 8d6a0 |  20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c    45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 20  | .IN.NO.EVENT.UNLESS.REQUIRED.BY. | 
| 8d6c0 |  41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f    52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 20 57  | APPLICABLE.LAW.OR.AGREED.TO.IN.W | 
| 8d6e0 |  52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20    43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52  | RITING.WILL.ANY.COPYRIGHT.HOLDER | 
| 8d700 |  2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50    41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 45  | ,.OR.ANY.OTHER.PARTY.WHO.MODIFIE | 
| 8d720 |  53 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53    0a 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 20  | S.AND/OR.CONVEYS.THE.PROGRAM.AS. | 
| 8d740 |  50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c    20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 4f  | PERMITTED.ABOVE,.BE.LIABLE.TO.YO | 
| 8d760 |  55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 20 49    4e 43 4c 55 44 49 4e 47 20 41 4e 59 0a 47 45 4e  | U.FOR.DAMAGES,.INCLUDING.ANY.GEN | 
| 8d780 |  45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49    4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 4f 4e  | ERAL,.SPECIAL,.INCIDENTAL.OR.CON | 
| 8d7a0 |  53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47    45 53 20 41 52 49 53 49 4e 47 20 4f 55 54 20 4f  | SEQUENTIAL.DAMAGES.ARISING.OUT.O | 
| 8d7c0 |  46 20 54 48 45 0a 55 53 45 20 4f 52 20 49 4e 41    42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 54 48  | F.THE.USE.OR.INABILITY.TO.USE.TH | 
| 8d7e0 |  45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55    44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d  | E.PROGRAM.(INCLUDING.BUT.NOT.LIM | 
| 8d800 |  49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 0a    44 41 54 41 20 4f 52 20 44 41 54 41 20 42 45 49  | ITED.TO.LOSS.OF.DATA.OR.DATA.BEI | 
| 8d820 |  4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43    43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 53  | NG.RENDERED.INACCURATE.OR.LOSSES | 
| 8d840 |  20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f    55 20 4f 52 20 54 48 49 52 44 0a 50 41 52 54 49  | .SUSTAINED.BY.YOU.OR.THIRD.PARTI | 
| 8d860 |  45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20    4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 54  | ES.OR.A.FAILURE.OF.THE.PROGRAM.T | 
| 8d880 |  4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41    4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 41 4d  | O.OPERATE.WITH.ANY.OTHER.PROGRAM | 
| 8d8a0 |  53 29 2c 0a 45 56 45 4e 20 49 46 20 53 55 43 48    20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 52  | S),.EVEN.IF.SUCH.HOLDER.OR.OTHER | 
| 8d8c0 |  20 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20    41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50  | .PARTY.HAS.BEEN.ADVISED.OF.THE.P | 
| 8d8e0 |  4f 53 53 49 42 49 4c 49 54 59 20 4f 46 0a 53 55    43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 31  | OSSIBILITY.OF.SUCH.DAMAGES.....1 | 
| 8d900 |  37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f    6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 35  | 7..Interpretation.of.Sections.15 | 
| 8d920 |  20 61 6e 64 20 31 36 2e 0a 0a 20 20 49 66 20 74    68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f 66  | .and.16.....If.the.disclaimer.of | 
| 8d940 |  20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69    6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 62  | .warranty.and.limitation.of.liab | 
| 8d960 |  69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61    62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 67  | ility.provided.above.cannot.be.g | 
| 8d980 |  69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c    20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 6e  | iven.local.legal.effect.accordin | 
| 8d9a0 |  67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73    2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 72  | g.to.their.terms,.reviewing.cour | 
| 8d9c0 |  74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c    6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d 6f  | ts.shall.apply.local.law.that.mo | 
| 8d9e0 |  73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f    78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f 6c  | st.closely.approximates.an.absol | 
| 8da00 |  75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c    6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 74  | ute.waiver.of.all.civil.liabilit | 
| 8da20 |  79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20    77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 6d  | y.in.connection.with.the.Program | 
| 8da40 |  2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61    6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 6f  | ,.unless.a.warranty.or.assumptio | 
| 8da60 |  6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61    63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f 70  | n.of.liability.accompanies.a.cop | 
| 8da80 |  79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d    20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 61  | y.of.the.Program.in.return.for.a | 
| 8daa0 |  20 66 65 65 2e 0a 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 20  | .fee........................END. | 
| 8dac0 |  4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e    44 49 54 49 4f 4e 53 0a 0a 20 20 20 20 20 20 20  | OF.TERMS.AND.CONDITIONS......... | 
| 8dae0 |  20 20 20 20 20 48 6f 77 20 74 6f 20 41 70 70 6c    79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 6f  | .....How.to.Apply.These.Terms.to | 
| 8db00 |  20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61    6d 73 0a 0a 20 20 49 66 20 79 6f 75 20 64 65 76  | .Your.New.Programs....If.you.dev | 
| 8db20 |  65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72    61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e 74  | elop.a.new.program,.and.you.want | 
| 8db40 |  20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65    20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 62  | .it.to.be.of.the.greatest.possib | 
| 8db60 |  6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75    62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 77  | le.use.to.the.public,.the.best.w | 
| 8db80 |  61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68    69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 74  | ay.to.achieve.this.is.to.make.it | 
| 8dba0 |  0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77    68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 61  | .free.software.which.everyone.ca | 
| 8dbc0 |  6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61    6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 20  | n.redistribute.and.change.under. | 
| 8dbe0 |  74 68 65 73 65 20 74 65 72 6d 73 2e 0a 0a 20 20    54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 68  | these.terms.....To.do.so,.attach | 
| 8dc00 |  20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e    6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 72  | .the.following.notices.to.the.pr | 
| 8dc20 |  6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61    66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 74  | ogram...It.is.safest.to.attach.t | 
| 8dc40 |  68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74    20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 20  | hem.to.the.start.of.each.source. | 
| 8dc60 |  66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66    65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 74  | file.to.most.effectively.state.t | 
| 8dc80 |  68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20    77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 61  | he.exclusion.of.warranty;.and.ea | 
| 8dca0 |  63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68    61 76 65 20 61 74 20 6c 65 61 73 74 0a 74 68 65  | ch.file.should.have.at.least.the | 
| 8dcc0 |  20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e    65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 20  | ."copyright".line.and.a.pointer. | 
| 8dce0 |  74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c    6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 6e  | to.where.the.full.notice.is.foun | 
| 8dd00 |  64 2e 0a 0a 20 20 20 20 3c 6f 6e 65 20 6c 69 6e    65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 72  | d.......<one.line.to.give.the.pr | 
| 8dd20 |  6f 67 72 61 6d 27 73 20 6e 61 6d 65 20 61 6e 64    20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f 66  | ogram's.name.and.a.brief.idea.of | 
| 8dd40 |  20 77 68 61 74 20 69 74 20 64 6f 65 73 2e 3e 0a    20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 43  | .what.it.does.>.....Copyright.(C | 
| 8dd60 |  29 20 3c 79 65 61 72 3e 20 20 3c 6e 61 6d 65 20    6f 66 20 61 75 74 68 6f 72 3e 0a 0a 20 20 20 20  | ).<year>..<name.of.author>...... | 
| 8dd80 |  54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20    66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 79  | This.program.is.free.software:.y | 
| 8dda0 |  6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62    75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f  | ou.can.redistribute.it.and/or.mo | 
| 8ddc0 |  64 69 66 79 0a 20 20 20 20 69 74 20 75 6e 64 65    72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74  | dify.....it.under.the.terms.of.t | 
| 8dde0 |  68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50    75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73  | he.GNU.General.Public.License.as | 
| 8de00 |  20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20    20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77  | .published.by.....the.Free.Softw | 
| 8de20 |  61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20    65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33  | are.Foundation,.either.version.3 | 
| 8de40 |  20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c    20 6f 72 0a 20 20 20 20 28 61 74 20 79 6f 75 72  | .of.the.License,.or.....(at.your | 
| 8de60 |  20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74    65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 20  | .option).any.later.version...... | 
| 8de80 |  20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73    20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20  | .This.program.is.distributed.in. | 
| 8dea0 |  74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74    20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c  | the.hope.that.it.will.be.useful, | 
| 8dec0 |  0a 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54    20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77  | .....but.WITHOUT.ANY.WARRANTY;.w | 
| 8dee0 |  69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20    69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79  | ithout.even.the.implied.warranty | 
| 8df00 |  20 6f 66 0a 20 20 20 20 4d 45 52 43 48 41 4e 54    41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45  | .of.....MERCHANTABILITY.or.FITNE | 
| 8df20 |  53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55    4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65  | SS.FOR.A.PARTICULAR.PURPOSE...Se | 
| 8df40 |  65 20 74 68 65 0a 20 20 20 20 47 4e 55 20 47 65    6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63  | e.the.....GNU.General.Public.Lic | 
| 8df60 |  65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65    74 61 69 6c 73 2e 0a 0a 20 20 20 20 59 6f 75 20  | ense.for.more.details.......You. | 
| 8df80 |  73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65    69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74  | should.have.received.a.copy.of.t | 
| 8dfa0 |  68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50    75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 20  | he.GNU.General.Public.License... | 
| 8dfc0 |  20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69    73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e  | ..along.with.this.program...If.n | 
| 8dfe0 |  6f 74 2c 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f    77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65  | ot,.see.<http://www.gnu.org/lice | 
| 8e000 |  6e 73 65 73 2f 3e 2e 0a 0a 41 6c 73 6f 20 61 64    64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e  | nses/>...Also.add.information.on | 
| 8e020 |  20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20    79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f 6e 69  | .how.to.contact.you.by.electroni | 
| 8e040 |  63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c    2e 0a 0a 20 20 49 66 20 74 68 65 20 70 72 6f 67  | c.and.paper.mail.....If.the.prog | 
| 8e060 |  72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61    6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c 20 6d  | ram.does.terminal.interaction,.m | 
| 8e080 |  61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20    73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c 69 6b  | ake.it.output.a.short.notice.lik | 
| 8e0a0 |  65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73    74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e 74 65  | e.this.when.it.starts.in.an.inte | 
| 8e0c0 |  72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20    20 20 20 3c 70 72 6f 67 72 61 6d 3e 20 20 43 6f  | ractive.mode:......<program>..Co | 
| 8e0e0 |  70 79 72 69 67 68 74 20 28 43 29 20 3c 79 65 61    72 3e 20 20 3c 6e 61 6d 65 20 6f 66 20 61 75 74  | pyright.(C).<year>..<name.of.aut | 
| 8e100 |  68 6f 72 3e 0a 20 20 20 20 54 68 69 73 20 70 72    6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 68  | hor>.....This.program.comes.with | 
| 8e120 |  20 41 42 53 4f 4c 55 54 45 4c 59 20 4e 4f 20 57    41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 74  | .ABSOLUTELY.NO.WARRANTY;.for.det | 
| 8e140 |  61 69 6c 73 20 74 79 70 65 20 60 73 68 6f 77 20    77 27 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20  | ails.type.`show.w'......This.is. | 
| 8e160 |  66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 61    6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c 63 6f  | free.software,.and.you.are.welco | 
| 8e180 |  6d 65 20 74 6f 20 72 65 64 69 73 74 72 69 62 75    74 65 20 69 74 0a 20 20 20 20 75 6e 64 65 72 20  | me.to.redistribute.it.....under. | 
| 8e1a0 |  63 65 72 74 61 69 6e 20 63 6f 6e 64 69 74 69 6f    6e 73 3b 20 74 79 70 65 20 60 73 68 6f 77 20 63  | certain.conditions;.type.`show.c | 
| 8e1c0 |  27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a    54 68 65 20 68 79 70 6f 74 68 65 74 69 63 61 6c  | '.for.details...The.hypothetical | 
| 8e1e0 |  20 63 6f 6d 6d 61 6e 64 73 20 60 73 68 6f 77 20    77 27 20 61 6e 64 20 60 73 68 6f 77 20 63 27 20  | .commands.`show.w'.and.`show.c'. | 
| 8e200 |  73 68 6f 75 6c 64 20 73 68 6f 77 20 74 68 65 20    61 70 70 72 6f 70 72 69 61 74 65 0a 70 61 72 74  | should.show.the.appropriate.part | 
| 8e220 |  73 20 6f 66 20 74 68 65 20 47 65 6e 65 72 61 6c    20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e  | s.of.the.General.Public.License. | 
| 8e240 |  20 20 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75    72 20 70 72 6f 67 72 61 6d 27 73 20 63 6f 6d 6d  | ..Of.course,.your.program's.comm | 
| 8e260 |  61 6e 64 73 0a 6d 69 67 68 74 20 62 65 20 64 69    66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 20 47  | ands.might.be.different;.for.a.G | 
| 8e280 |  55 49 20 69 6e 74 65 72 66 61 63 65 2c 20 79 6f    75 20 77 6f 75 6c 64 20 75 73 65 20 61 6e 20 22  | UI.interface,.you.would.use.an." | 
| 8e2a0 |  61 62 6f 75 74 20 62 6f 78 22 2e 0a 0a 20 20 59    6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 67  | about.box".....You.should.also.g | 
| 8e2c0 |  65 74 20 79 6f 75 72 20 65 6d 70 6c 6f 79 65 72    20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 61 73  | et.your.employer.(if.you.work.as | 
| 8e2e0 |  20 61 20 70 72 6f 67 72 61 6d 6d 65 72 29 20 6f    72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 6e 79  | .a.programmer).or.school,.if.any | 
| 8e300 |  2c 20 74 6f 20 73 69 67 6e 20 61 20 22 63 6f 70    79 72 69 67 68 74 20 64 69 73 63 6c 61 69 6d 65  | ,.to.sign.a."copyright.disclaime | 
| 8e320 |  72 22 20 66 6f 72 20 74 68 65 20 70 72 6f 67 72    61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 72 79  | r".for.the.program,.if.necessary | 
| 8e340 |  2e 0a 46 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72    6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 2c 20  | ..For.more.information.on.this,. | 
| 8e360 |  61 6e 64 20 68 6f 77 20 74 6f 20 61 70 70 6c 79    20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20  | and.how.to.apply.and.follow.the. | 
| 8e380 |  47 4e 55 20 47 50 4c 2c 20 73 65 65 0a 3c 68 74    74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67  | GNU.GPL,.see.<http://www.gnu.org | 
| 8e3a0 |  2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20    54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20  | /licenses/>.....The.GNU.General. | 
| 8e3c0 |  50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 64    6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 74 20 69  | Public.License.does.not.permit.i | 
| 8e3e0 |  6e 63 6f 72 70 6f 72 61 74 69 6e 67 20 79 6f 75    72 20 70 72 6f 67 72 61 6d 0a 69 6e 74 6f 20 70  | ncorporating.your.program.into.p | 
| 8e400 |  72 6f 70 72 69 65 74 61 72 79 20 70 72 6f 67 72    61 6d 73 2e 20 20 49 66 20 79 6f 75 72 20 70 72  | roprietary.programs...If.your.pr | 
| 8e420 |  6f 67 72 61 6d 20 69 73 20 61 20 73 75 62 72 6f    75 74 69 6e 65 20 6c 69 62 72 61 72 79 2c 20 79  | ogram.is.a.subroutine.library,.y | 
| 8e440 |  6f 75 0a 6d 61 79 20 63 6f 6e 73 69 64 65 72 20    69 74 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 74  | ou.may.consider.it.more.useful.t | 
| 8e460 |  6f 20 70 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67    20 70 72 6f 70 72 69 65 74 61 72 79 20 61 70 70  | o.permit.linking.proprietary.app | 
| 8e480 |  6c 69 63 61 74 69 6f 6e 73 20 77 69 74 68 0a 74    68 65 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20  | lications.with.the.library...If. | 
| 8e4a0 |  74 68 69 73 20 69 73 20 77 68 61 74 20 79 6f 75    20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 75 73 65  | this.is.what.you.want.to.do,.use | 
| 8e4c0 |  20 74 68 65 20 47 4e 55 20 4c 65 73 73 65 72 20    47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 20 4c  | .the.GNU.Lesser.General.Public.L | 
| 8e4e0 |  69 63 65 6e 73 65 20 69 6e 73 74 65 61 64 20 6f    66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20  | icense.instead.of.this.License.. | 
| 8e500 |  20 42 75 74 20 66 69 72 73 74 2c 20 70 6c 65 61    73 65 20 72 65 61 64 0a 3c 68 74 74 70 3a 2f 2f  | .But.first,.please.read.<http:// | 
| 8e520 |  77 77 77 2e 67 6e 75 2e 6f 72 67 2f 70 68 69 6c    6f 73 6f 70 68 79 2f 77 68 79 2d 6e 6f 74 2d 6c  | www.gnu.org/philosophy/why-not-l | 
| 8e540 |  67 70 6c 2e 68 74 6d 6c 3e 2e 0a 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | gpl.html>....................... | 
| 8e560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e5a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e5c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e5e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e600 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74  | js2-mode-20231224/js2-old-indent | 
| 8e620 |  2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .el............................. | 
| 8e640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e660 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 8e680 |  30 30 36 35 35 36 33 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 35 31 32 34 00 20 30 00 00 00  | 0065563.00000000000.015124..0... | 
| 8e6a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e6c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e6e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e700 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 8e720 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 8e740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e7a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e7c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e7e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 8e800 |  3b 3b 3b 20 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65    6e 74 2e 65 6c 20 2d 2d 2d 20 49 6e 64 65 6e 74  | ;;;.js2-old-indent.el.---.Indent | 
| 8e820 |  61 74 69 6f 6e 20 63 6f 64 65 20 6b 65 70 74 20    66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74  | ation.code.kept.for.compatibilit | 
| 8e840 |  79 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62    69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a  | y..-*-.lexical-binding:.t;.-*-.. | 
| 8e860 |  3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29    20 32 30 31 35 20 20 46 72 65 65 20 53 6f 66 74  | ;;.Copyright.(C).2015..Free.Soft | 
| 8e880 |  77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c    20 49 6e 63 2e 0a 0a 3b 3b 20 54 68 69 73 20 66  | ware.Foundation,.Inc...;;.This.f | 
| 8e8a0 |  69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 47    4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 47 4e  | ile.is.part.of.GNU.Emacs...;;.GN | 
| 8e8c0 |  55 20 45 6d 61 63 73 20 69 73 20 66 72 65 65 20    73 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61  | U.Emacs.is.free.software:.you.ca | 
| 8e8e0 |  6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69    74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a  | n.redistribute.it.and/or.modify. | 
| 8e900 |  3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20    74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55  | ;;.it.under.the.terms.of.the.GNU | 
| 8e920 |  20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20    4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69  | .General.Public.License.as.publi | 
| 8e940 |  73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46    72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75  | shed.by.;;.the.Free.Software.Fou | 
| 8e960 |  6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20    76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65  | ndation,.either.version.3.of.the | 
| 8e980 |  20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20    28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29  | .License,.or.;;.(at.your.option) | 
| 8e9a0 |  20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69    6f 6e 2e 0a 0a 3b 3b 20 47 4e 55 20 45 6d 61 63  | .any.later.version...;;.GNU.Emac | 
| 8e9c0 |  73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64    20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61  | s.is.distributed.in.the.hope.tha | 
| 8e9e0 |  74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65    66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48  | t.it.will.be.useful,.;;.but.WITH | 
| 8ea00 |  4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59    3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74  | OUT.ANY.WARRANTY;.without.even.t | 
| 8ea20 |  68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61    6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41  | he.implied.warranty.of.;;.MERCHA | 
| 8ea40 |  4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54    4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49  | NTABILITY.or.FITNESS.FOR.A.PARTI | 
| 8ea60 |  43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20    53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47  | CULAR.PURPOSE...See.the.;;.GNU.G | 
| 8ea80 |  65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69    63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64  | eneral.Public.License.for.more.d | 
| 8eaa0 |  65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20    73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65  | etails...;;.You.should.have.rece | 
| 8eac0 |  69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74    68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50  | ived.a.copy.of.the.GNU.General.P | 
| 8eae0 |  75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b    20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20  | ublic.License.;;.along.with.GNU. | 
| 8eb00 |  45 6d 61 63 73 2e 20 20 49 66 20 6e 6f 74 2c 20    73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e  | Emacs...If.not,.see.<http://www. | 
| 8eb20 |  67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73    2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74  | gnu.org/licenses/>...;;;.Comment | 
| 8eb40 |  61 72 79 3a 0a 0a 3b 3b 20 41 6c 6c 20 66 65 61    74 75 72 65 73 20 6f 66 20 74 68 69 73 20 69 6e  | ary:..;;.All.features.of.this.in | 
| 8eb60 |  64 65 6e 74 61 74 69 6f 6e 20 63 6f 64 65 20 68    61 76 65 20 62 65 65 6e 20 70 6f 72 74 65 64 20  | dentation.code.have.been.ported. | 
| 8eb80 |  74 6f 20 45 6d 61 63 73 27 73 0a 3b 3b 20 62 75    69 6c 74 2d 69 6e 20 60 6a 73 2d 6d 6f 64 65 27  | to.Emacs's.;;.built-in.`js-mode' | 
| 8eba0 |  20 62 79 20 6e 6f 77 2c 20 73 6f 20 77 65 20 64    65 72 69 76 65 20 66 72 6f 6d 20 69 74 2e 20 20  | .by.now,.so.we.derive.from.it... | 
| 8ebc0 |  41 6e 20 6f 6c 64 65 72 0a 3b 3b 20 63 6f 6d 6d    65 6e 74 61 72 79 20 66 6f 6c 6c 6f 77 73 2e 0a  | An.older.;;.commentary.follows.. | 
| 8ebe0 |  0a 3b 3b 20 54 68 69 73 20 63 6f 64 65 20 69 73    20 6b 65 70 74 20 66 6f 72 20 45 6d 61 63 73 20  | .;;.This.code.is.kept.for.Emacs. | 
| 8ec00 |  32 34 2e 35 20 61 6e 64 20 65 61 6c 69 65 72 2e    0a 0a 3b 3b 20 54 68 69 73 20 69 6e 64 65 6e 74  | 24.5.and.ealier...;;.This.indent | 
| 8ec20 |  65 72 20 69 73 20 62 61 73 65 64 20 6f 6e 20 4b    61 72 6c 20 4c 61 6e 64 73 74 72 c3 b6 6d 27 73  | er.is.based.on.Karl.Landstr..m's | 
| 8ec40 |  20 22 6a 61 76 61 73 63 72 69 70 74 2e 65 6c 22    20 69 6e 64 65 6e 74 65 72 2e 0a 3b 3b 20 4b 61  | ."javascript.el".indenter..;;.Ka | 
| 8ec60 |  72 6c 20 63 6c 65 76 65 72 6c 79 20 64 65 64 75    63 65 73 20 74 68 61 74 20 74 68 65 20 64 65 73  | rl.cleverly.deduces.that.the.des | 
| 8ec80 |  69 72 65 64 20 69 6e 64 65 6e 74 61 74 69 6f 6e    20 6c 65 76 65 6c 20 69 73 20 6f 66 74 65 6e 20  | ired.indentation.level.is.often. | 
| 8eca0 |  61 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 6f 66    20 70 61 72 65 6e 2f 62 72 61 63 6b 65 74 2f 62  | a.;;.function.of.paren/bracket/b | 
| 8ecc0 |  72 61 63 65 20 6e 65 73 74 69 6e 67 20 64 65 70    74 68 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65  | race.nesting.depth,.which.can.be | 
| 8ece0 |  20 64 65 74 65 72 6d 69 6e 65 64 0a 3b 3b 20 71    75 69 63 6b 6c 79 20 76 69 61 20 74 68 65 20 62  | .determined.;;.quickly.via.the.b | 
| 8ed00 |  75 69 6c 74 2d 69 6e 20 60 70 61 72 73 65 2d 70    61 72 74 69 61 6c 2d 73 65 78 70 27 20 66 75 6e  | uilt-in.`parse-partial-sexp'.fun | 
| 8ed20 |  63 74 69 6f 6e 2e 20 20 48 69 73 20 69 6e 64 65    6e 74 65 72 0a 3b 3b 20 74 68 65 6e 20 64 6f 65  | ction...His.indenter.;;.then.doe | 
| 8ed40 |  73 20 73 6f 6d 65 20 65 71 75 61 6c 6c 79 20 63    6c 65 76 65 72 20 63 68 65 63 6b 73 20 74 6f 20  | s.some.equally.clever.checks.to. | 
| 8ed60 |  73 65 65 20 69 66 20 77 65 27 72 65 20 69 6e 20    74 68 65 20 63 6f 6e 74 65 78 74 20 6f 66 20 61  | see.if.we're.in.the.context.of.a | 
| 8ed80 |  0a 3b 3b 20 73 75 62 73 74 61 74 65 6d 65 6e 74    20 6f 66 20 61 20 70 6f 73 73 69 62 6c 79 20 62  | .;;.substatement.of.a.possibly.b | 
| 8eda0 |  72 61 63 65 6c 65 73 73 20 73 74 61 74 65 6d 65    6e 74 20 6b 65 79 77 6f 72 64 20 73 75 63 68 20  | raceless.statement.keyword.such. | 
| 8edc0 |  61 73 20 69 66 2c 20 77 68 69 6c 65 2c 0a 3b 3b    20 6f 72 20 66 69 6e 61 6c 6c 79 2e 20 20 54 68  | as.if,.while,.;;.or.finally...Th | 
| 8ede0 |  69 73 20 61 70 70 72 6f 61 63 68 20 79 69 65 6c    64 73 20 70 72 65 74 74 79 20 67 6f 6f 64 20 72  | is.approach.yields.pretty.good.r | 
| 8ee00 |  65 73 75 6c 74 73 2e 0a 0a 3b 3b 20 54 68 65 20    69 6e 64 65 6e 74 65 72 20 69 73 20 6f 66 74 65  | esults...;;.The.indenter.is.ofte | 
| 8ee20 |  6e 20 22 77 72 6f 6e 67 22 2c 20 68 6f 77 65 76    65 72 2c 20 61 6e 64 20 6e 65 65 64 73 20 74 6f  | n."wrong",.however,.and.needs.to | 
| 8ee40 |  20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a    3b 3b 20 54 68 65 20 72 69 67 68 74 20 6c 6f 6e  | .be.overridden..;;.The.right.lon | 
| 8ee60 |  67 2d 74 65 72 6d 20 73 6f 6c 75 74 69 6f 6e 20    69 73 20 70 72 6f 62 61 62 6c 79 20 74 6f 20 65  | g-term.solution.is.probably.to.e | 
| 8ee80 |  6d 75 6c 61 74 65 20 28 6f 72 20 69 6e 74 65 67    72 61 74 65 0a 3b 3b 20 77 69 74 68 29 20 63 63  | mulate.(or.integrate.;;.with).cc | 
| 8eea0 |  2d 65 6e 67 69 6e 65 2c 20 62 75 74 20 69 74 27    73 20 61 20 6e 6f 6e 74 72 69 76 69 61 6c 20 61  | -engine,.but.it's.a.nontrivial.a | 
| 8eec0 |  6d 6f 75 6e 74 20 6f 66 20 63 6f 64 69 6e 67 2e    20 20 45 76 65 6e 20 77 68 65 6e 20 61 0a 3b 3b  | mount.of.coding...Even.when.a.;; | 
| 8eee0 |  20 70 61 72 73 65 20 74 72 65 65 20 66 72 6f 6d    20 60 6a 73 32 2d 70 61 72 73 65 27 20 69 73 20  | .parse.tree.from.`js2-parse'.is. | 
| 8ef00 |  70 72 65 73 65 6e 74 2c 20 77 68 69 63 68 20 69    73 20 6e 6f 74 20 74 72 75 65 20 61 74 20 74 68  | present,.which.is.not.true.at.th | 
| 8ef20 |  65 0a 3b 3b 20 6d 6f 6d 65 6e 74 20 74 68 65 20    75 73 65 72 20 69 73 20 74 79 70 69 6e 67 2c 20  | e.;;.moment.the.user.is.typing,. | 
| 8ef40 |  63 6f 6d 70 75 74 69 6e 67 20 69 6e 64 65 6e 74    61 74 69 6f 6e 20 69 73 20 73 74 69 6c 6c 20 74  | computing.indentation.is.still.t | 
| 8ef60 |  68 6f 75 73 61 6e 64 73 0a 3b 3b 20 6f 66 20 6c    69 6e 65 73 20 6f 66 20 63 6f 64 65 20 74 6f 20  | housands.;;.of.lines.of.code.to. | 
| 8ef80 |  68 61 6e 64 6c 65 20 65 76 65 72 79 20 70 6f 73    73 69 62 6c 65 20 73 79 6e 74 61 63 74 69 63 20  | handle.every.possible.syntactic. | 
| 8efa0 |  65 64 67 65 20 63 61 73 65 2e 0a 0a 3b 3b 20 49    6e 20 74 68 65 20 6d 65 61 6e 74 69 6d 65 2c 20  | edge.case...;;.In.the.meantime,. | 
| 8efc0 |  74 68 65 20 63 6f 6d 70 72 6f 6d 69 73 65 20 73    6f 6c 75 74 69 6f 6e 20 69 73 20 74 68 61 74 20  | the.compromise.solution.is.that. | 
| 8efe0 |  77 65 20 6f 66 66 65 72 20 61 20 22 62 6f 75 6e    63 65 0a 3b 3b 20 69 6e 64 65 6e 74 65 72 22 2c  | we.offer.a."bounce.;;.indenter", | 
| 8f000 |  20 63 6f 6e 66 69 67 75 72 65 64 20 77 69 74 68    20 60 6a 73 32 2d 62 6f 75 6e 63 65 2d 69 6e 64  | .configured.with.`js2-bounce-ind | 
| 8f020 |  65 6e 74 2d 70 27 2c 20 77 68 69 63 68 20 63 79    63 6c 65 73 20 74 68 65 0a 3b 3b 20 63 75 72 72  | ent-p',.which.cycles.the.;;.curr | 
| 8f040 |  65 6e 74 20 6c 69 6e 65 20 69 6e 64 65 6e 74 20    61 6d 6f 6e 67 20 76 61 72 69 6f 75 73 20 6c 69  | ent.line.indent.among.various.li | 
| 8f060 |  6b 65 6c 79 20 67 75 65 73 73 20 70 6f 69 6e 74    73 2e 20 20 54 68 69 73 20 61 70 70 72 6f 61 63  | kely.guess.points...This.approac | 
| 8f080 |  68 0a 3b 3b 20 69 73 20 66 61 72 20 66 72 6f 6d    20 70 65 72 66 65 63 74 2c 20 62 75 74 20 73 68  | h.;;.is.far.from.perfect,.but.sh | 
| 8f0a0 |  6f 75 6c 64 20 61 74 20 6c 65 61 73 74 20 6d 61    6b 65 20 69 74 20 73 6c 69 67 68 74 6c 79 20 65  | ould.at.least.make.it.slightly.e | 
| 8f0c0 |  61 73 69 65 72 20 74 6f 0a 3b 3b 20 6d 6f 76 65    20 74 68 65 20 6c 69 6e 65 20 74 6f 77 61 72 64  | asier.to.;;.move.the.line.toward | 
| 8f0e0 |  73 20 69 74 73 20 64 65 73 69 72 65 64 20 69 6e    64 65 6e 74 61 74 69 6f 6e 20 77 68 65 6e 20 6d  | s.its.desired.indentation.when.m | 
| 8f100 |  61 6e 75 61 6c 6c 79 0a 3b 3b 20 6f 76 65 72 72    69 64 69 6e 67 20 4b 61 72 6c 27 73 20 68 65 75  | anually.;;.overriding.Karl's.heu | 
| 8f120 |  72 69 73 74 69 63 20 6e 65 73 74 69 6e 67 20 67    75 65 73 73 65 72 2e 0a 0a 3b 3b 20 49 27 76 65  | ristic.nesting.guesser...;;.I've | 
| 8f140 |  20 6d 61 64 65 20 6d 69 73 63 65 6c 6c 61 6e 65    6f 75 73 20 74 77 65 61 6b 73 20 74 6f 20 4b 61  | .made.miscellaneous.tweaks.to.Ka | 
| 8f160 |  72 6c 27 73 20 63 6f 64 65 20 74 6f 20 68 61 6e    64 6c 65 20 73 6f 6d 65 20 45 63 6d 61 0a 3b 3b  | rl's.code.to.handle.some.Ecma.;; | 
| 8f180 |  20 65 78 74 65 6e 73 69 6f 6e 73 20 73 75 63 68    20 61 73 20 60 6c 65 74 27 20 61 6e 64 20 41 72  | .extensions.such.as.`let'.and.Ar | 
| 8f1a0 |  72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f    6e 73 2e 20 20 4d 61 6a 6f 72 20 6b 75 64 6f 73  | ray.comprehensions...Major.kudos | 
| 8f1c0 |  20 74 6f 0a 3b 3b 20 4b 61 72 6c 20 66 6f 72 20    63 6f 6d 69 6e 67 20 75 70 20 77 69 74 68 20 74  | .to.;;.Karl.for.coming.up.with.t | 
| 8f1e0 |  68 65 20 69 6e 69 74 69 61 6c 20 61 70 70 72 6f    61 63 68 2c 20 77 68 69 63 68 20 70 61 63 6b 73  | he.initial.approach,.which.packs | 
| 8f200 |  20 61 20 6c 6f 74 20 6f 66 0a 3b 3b 20 70 75 6e    63 68 20 66 6f 72 20 73 6f 20 6c 69 74 74 6c 65  | .a.lot.of.;;.punch.for.so.little | 
| 8f220 |  20 63 6f 64 65 2e 20 2d 2d 20 53 74 65 76 65 0a    0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71  | .code..--.Steve..;;;.Code:..(req | 
| 8f240 |  75 69 72 65 20 27 73 67 6d 6c 2d 6d 6f 64 65 29    0a 0a 28 64 65 66 76 61 72 20 6a 73 32 2d 6c 61  | uire.'sgml-mode)..(defvar.js2-la | 
| 8f260 |  6e 67 75 61 67 65 2d 76 65 72 73 69 6f 6e 29 0a    0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69  | nguage-version)..(declare-functi | 
| 8f280 |  6f 6e 20 6a 73 32 2d 62 61 63 6b 77 61 72 64 2d    73 77 73 20 22 6a 73 32 2d 6d 6f 64 65 22 29 0a  | on.js2-backward-sws."js2-mode"). | 
| 8f2a0 |  28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f    6e 20 6a 73 32 2d 66 6f 72 77 61 72 64 2d 73 77  | (declare-function.js2-forward-sw | 
| 8f2c0 |  73 20 22 6a 73 32 2d 6d 6f 64 65 22 29 0a 28 64    65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20  | s."js2-mode").(declare-function. | 
| 8f2e0 |  6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 22 6a    73 32 2d 6d 6f 64 65 22 29 0a 0a 28 64 65 66 63  | js2-same-line."js2-mode")..(defc | 
| 8f300 |  75 73 74 6f 6d 20 6a 73 32 2d 62 61 73 69 63 2d    6f 66 66 73 65 74 20 28 69 66 20 28 61 6e 64 20  | ustom.js2-basic-offset.(if.(and. | 
| 8f320 |  28 62 6f 75 6e 64 70 20 27 63 2d 62 61 73 69 63    2d 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20  | (boundp.'c-basic-offset)........ | 
| 8f340 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e  | ..............................(n | 
| 8f360 |  75 6d 62 65 72 70 20 63 2d 62 61 73 69 63 2d 6f    66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20  | umberp.c-basic-offset))......... | 
| 8f380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 63 2d 62 61 73 69 63 2d  | ........................c-basic- | 
| 8f3a0 |  6f 66 66 73 65 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | offset.......................... | 
| 8f3c0 |  20 20 20 20 20 34 29 0a 20 20 22 4e 75 6d 62 65    72 20 6f 66 20 73 70 61 63 65 73 20 74 6f 20 69  | .....4)..."Number.of.spaces.to.i | 
| 8f3e0 |  6e 64 65 6e 74 20 6e 65 73 74 65 64 20 73 74 61    74 65 6d 65 6e 74 73 2e 0a 53 69 6d 69 6c 61 72  | ndent.nested.statements..Similar | 
| 8f400 |  20 74 6f 20 60 63 2d 62 61 73 69 63 2d 6f 66 66    73 65 74 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20  | .to.`c-basic-offset'."...:group. | 
| 8f420 |  27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a 73 61 66    65 20 27 69 6e 74 65 67 65 72 70 0a 20 20 3a 74  | 'js2-mode...:safe.'integerp...:t | 
| 8f440 |  79 70 65 20 27 69 6e 74 65 67 65 72 29 0a 0a 28    64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d 70 72  | ype.'integer)..(defcustom.js2-pr | 
| 8f460 |  65 74 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64    65 63 6c 61 72 61 74 69 6f 6e 73 20 74 0a 20 20  | etty-multiline-declarations.t... | 
| 8f480 |  22 4e 6f 6e 2d 6e 69 6c 20 74 6f 20 6c 69 6e 65    20 75 70 20 6d 75 6c 74 69 6c 69 6e 65 20 64 65  | "Non-nil.to.line.up.multiline.de | 
| 8f4a0 |  63 6c 61 72 61 74 69 6f 6e 73 20 76 65 72 74 69    63 61 6c 6c 79 3a 0a 0a 20 20 76 61 72 20 61 20  | clarations.vertically:....var.a. | 
| 8f4c0 |  3d 20 31 30 2c 0a 20 20 20 20 20 20 62 20 3d 20    32 30 2c 0a 20 20 20 20 20 20 63 20 3d 20 33 30  | =.10,.......b.=.20,.......c.=.30 | 
| 8f4e0 |  3b 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20    69 73 20 74 2c 20 61 6e 64 20 74 68 65 20 66 69  | ;..If.the.value.is.t,.and.the.fi | 
| 8f500 |  72 73 74 20 61 73 73 69 67 6e 65 64 20 76 61 6c    75 65 20 69 6e 20 74 68 65 0a 64 65 63 6c 61 72  | rst.assigned.value.in.the.declar | 
| 8f520 |  61 74 69 6f 6e 20 69 73 20 61 20 66 75 6e 63 74    69 6f 6e 2f 61 72 72 61 79 2f 6f 62 6a 65 63 74  | ation.is.a.function/array/object | 
| 8f540 |  20 6c 69 74 65 72 61 6c 20 73 70 61 6e 6e 69 6e    67 20 73 65 76 65 72 61 6c 0a 6c 69 6e 65 73 2c  | .literal.spanning.several.lines, | 
| 8f560 |  20 69 74 20 77 6f 6e 27 74 20 62 65 20 69 6e 64    65 6e 74 65 64 20 61 64 64 69 74 69 6f 6e 61 6c  | .it.won't.be.indented.additional | 
| 8f580 |  6c 79 3a 0a 0a 20 20 76 61 72 20 6f 20 3d 20 7b    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ly:....var.o.=.{................ | 
| 8f5a0 |  20 20 20 76 61 72 20 62 61 72 20 3d 20 32 2c 0a    20 20 20 20 66 6f 6f 3a 20 33 20 20 20 20 20 20  | ...var.bar.=.2,.....foo:.3...... | 
| 8f5c0 |  20 20 20 20 76 73 2e 20 20 20 20 20 20 20 20 20    20 20 6f 20 3d 20 7b 0a 20 20 7d 2c 20 20 20 20  | ....vs............o.=.{...},.... | 
| 8f5e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 66 6f 6f 3a  | ............................foo: | 
| 8f600 |  20 33 0a 20 20 20 20 20 20 62 61 72 20 3d 20 32    3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .3.......bar.=.2;............... | 
| 8f620 |  20 20 20 20 20 7d 3b 0a 0a 49 66 20 74 68 65 20    76 61 6c 75 65 20 69 73 20 60 61 6c 6c 27 2c 20  | .....};..If.the.value.is.`all',. | 
| 8f640 |  69 74 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 62    65 20 69 6e 64 65 6e 74 65 64 20 61 64 64 69 74  | it.will.always.be.indented.addit | 
| 8f660 |  69 6f 6e 61 6c 6c 79 3a 0a 0a 20 20 76 61 72 20    6f 20 3d 20 7b 0a 20 20 20 20 20 20 20 20 66 6f  | ionally:....var.o.=.{.........fo | 
| 8f680 |  6f 3a 20 33 0a 20 20 20 20 20 20 7d 3b 0a 0a 20    20 76 61 72 20 6f 20 3d 20 7b 0a 20 20 20 20 20  | o:.3.......};....var.o.=.{...... | 
| 8f6a0 |  20 20 20 66 6f 6f 3a 20 33 0a 20 20 20 20 20 20    7d 2c 0a 20 20 20 20 20 20 62 61 72 20 3d 20 32  | ...foo:.3.......},.......bar.=.2 | 
| 8f6c0 |  3b 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20    69 73 20 60 64 79 6e 61 6d 69 63 27 2c 20 69 74  | ;..If.the.value.is.`dynamic',.it | 
| 8f6e0 |  20 77 69 6c 6c 20 62 65 20 69 6e 64 65 6e 74 65    64 20 61 64 64 69 74 69 6f 6e 61 6c 6c 79 20 6f  | .will.be.indented.additionally.o | 
| 8f700 |  6e 6c 79 0a 69 66 20 74 68 65 20 64 65 63 6c 61    72 61 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 20  | nly.if.the.declaration.contains. | 
| 8f720 |  6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 76 61    72 69 61 62 6c 65 3a 0a 0a 20 20 76 61 72 20 6f  | more.than.one.variable:....var.o | 
| 8f740 |  20 3d 20 7b 0a 20 20 20 20 66 6f 6f 3a 20 33 0a    20 20 7d 3b 0a 0a 20 20 76 61 72 20 6f 20 3d 20  | .=.{.....foo:.3...};....var.o.=. | 
| 8f760 |  7b 0a 20 20 20 20 20 20 20 20 66 6f 6f 3a 20 33    0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20  | {.........foo:.3.......},....... | 
| 8f780 |  62 61 72 20 3d 20 32 3b 22 0a 20 20 3a 67 72 6f    75 70 20 27 6a 73 32 2d 6d 6f 64 65 0a 20 20 3a  | bar.=.2;"...:group.'js2-mode...: | 
| 8f7a0 |  73 61 66 65 20 20 27 73 79 6d 62 6f 6c 70 0a 20    20 3a 74 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a  | safe..'symbolp...:type.'symbol). | 
| 8f7c0 |  0a 28 64 65 66 63 75 73 74 6f 6d 20 6a 73 32 2d    69 6e 64 65 6e 74 2d 73 77 69 74 63 68 2d 62 6f  | .(defcustom.js2-indent-switch-bo | 
| 8f7e0 |  64 79 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e    69 6c 2c 20 63 61 73 65 20 6c 61 62 65 6c 73 20  | dy.nil..."When.nil,.case.labels. | 
| 8f800 |  61 72 65 20 69 6e 64 65 6e 74 65 64 20 6f 6e 20    74 68 65 20 73 61 6d 65 20 6c 65 76 65 6c 20 61  | are.indented.on.the.same.level.a | 
| 8f820 |  73 20 74 68 65 0a 63 6f 6e 74 61 69 6e 69 6e 67    20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e  | s.the.containing.switch.statemen | 
| 8f840 |  74 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 61    6c 6c 20 6c 69 6e 65 73 20 69 6e 73 69 64 65 0a  | t...Otherwise,.all.lines.inside. | 
| 8f860 |  73 77 69 74 63 68 20 73 74 61 74 65 6d 65 6e 74    20 62 6f 64 79 20 61 72 65 20 69 6e 64 65 6e 74  | switch.statement.body.are.indent | 
| 8f880 |  65 64 20 6f 6e 65 20 61 64 64 69 74 69 6f 6e 61    6c 20 6c 65 76 65 6c 2e 22 0a 20 20 3a 74 79 70  | ed.one.additional.level."...:typ | 
| 8f8a0 |  65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 73 61    66 65 20 27 62 6f 6f 6c 65 61 6e 70 0a 20 20 3a  | e.'boolean...:safe.'booleanp...: | 
| 8f8c0 |  67 72 6f 75 70 20 27 6a 73 32 2d 6d 6f 64 65 29    0a 0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d  | group.'js2-mode)..(defconst.js2- | 
| 8f8e0 |  70 6f 73 73 69 62 6c 79 2d 62 72 61 63 65 6c 65    73 73 2d 6b 65 79 77 6f 72 64 73 2d 72 65 0a 20  | possibly-braceless-keywords-re.. | 
| 8f900 |  20 28 63 6f 6e 63 61 74 20 22 65 6c 73 65 5b 20    5c 74 5d 2b 69 66 5c 5c 7c 66 6f 72 5b 20 5c 74  | .(concat."else[.\t]+if\\|for[.\t | 
| 8f920 |  5d 2b 65 61 63 68 5c 5c 7c 22 0a 20 20 20 20 20    20 20 20 20 20 28 72 65 67 65 78 70 2d 6f 70 74  | ]+each\\|"...........(regexp-opt | 
| 8f940 |  20 27 28 22 63 61 74 63 68 22 20 22 64 6f 22 20    22 65 6c 73 65 22 20 22 66 69 6e 61 6c 6c 79 22  | .'("catch"."do"."else"."finally" | 
| 8f960 |  20 22 66 6f 72 22 20 22 69 66 22 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ."for"."if"..................... | 
| 8f980 |  20 20 20 20 22 74 72 79 22 20 22 77 68 69 6c 65    22 20 22 77 69 74 68 22 20 22 6c 65 74 22 29 29  | ...."try"."while"."with"."let")) | 
| 8f9a0 |  29 0a 20 20 22 52 65 67 75 6c 61 72 20 65 78 70    72 65 73 73 69 6f 6e 20 6d 61 74 63 68 69 6e 67  | )..."Regular.expression.matching | 
| 8f9c0 |  20 6b 65 79 77 6f 72 64 73 20 74 68 61 74 20 61    72 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 0a 66 6f  | .keywords.that.are.optionally.fo | 
| 8f9e0 |  6c 6c 6f 77 65 64 20 62 79 20 61 6e 20 6f 70 65    6e 69 6e 67 20 62 72 61 63 65 2e 22 29 0a 0a 28  | llowed.by.an.opening.brace.")..( | 
| 8fa00 |  64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 69 6e 64    65 6e 74 2d 6f 70 65 72 61 74 6f 72 2d 72 65 0a  | defconst.js2-indent-operator-re. | 
| 8fa20 |  20 20 28 63 6f 6e 63 61 74 20 22 5b 2d 2b 2a 2f    25 3c 3e 26 5e 7c 3f 3a 2e 5d 5c 5c 28 5b 5e 2d  | ..(concat."[-+*/%<>&^|?:.]\\([^- | 
| 8fa40 |  2b 2a 2f 2e 5d 5c 5c 7c 24 5c 5c 29 5c 5c 7c 21    3f 3d 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20  | +*/.]\\|$\\)\\|!?=\\|".......... | 
| 8fa60 |  20 28 72 65 67 65 78 70 2d 6f 70 74 20 27 28 22    69 6e 22 20 22 69 6e 73 74 61 6e 63 65 6f 66 22  | .(regexp-opt.'("in"."instanceof" | 
| 8fa80 |  29 20 27 73 79 6d 62 6f 6c 73 29 29 0a 20 20 22    52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69  | ).'symbols))..."Regular.expressi | 
| 8faa0 |  6f 6e 20 6d 61 74 63 68 69 6e 67 20 6f 70 65 72    61 74 6f 72 73 20 74 68 61 74 20 61 66 66 65 63  | on.matching.operators.that.affec | 
| 8fac0 |  74 20 69 6e 64 65 6e 74 61 74 69 6f 6e 0a 6f 66    20 63 6f 6e 74 69 6e 75 65 64 20 65 78 70 72 65  | t.indentation.of.continued.expre | 
| 8fae0 |  73 73 69 6f 6e 73 2e 22 29 0a 0a 28 64 65 66 63    6f 6e 73 74 20 6a 73 32 2d 64 65 63 6c 61 72 61  | ssions.")..(defconst.js2-declara | 
| 8fb00 |  74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65 0a    20 20 28 72 65 67 65 78 70 2d 6f 70 74 20 27 28  | tion-keyword-re...(regexp-opt.'( | 
| 8fb20 |  22 76 61 72 22 20 22 6c 65 74 22 20 22 63 6f 6e    73 74 22 29 20 27 73 79 6d 62 6f 6c 73 29 0a 20  | "var"."let"."const").'symbols).. | 
| 8fb40 |  20 22 52 65 67 75 6c 61 72 20 65 78 70 72 65 73    73 69 6f 6e 20 6d 61 74 63 68 69 6e 67 20 76 61  | ."Regular.expression.matching.va | 
| 8fb60 |  72 69 61 62 6c 65 20 64 65 63 6c 61 72 61 74 69    6f 6e 20 6b 65 79 77 6f 72 64 73 2e 22 29 0a 0a  | riable.declaration.keywords.").. | 
| 8fb80 |  28 64 65 66 75 6e 20 6a 73 32 2d 72 65 2d 73 65    61 72 63 68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e  | (defun.js2-re-search-forward-inn | 
| 8fba0 |  65 72 20 28 72 65 67 65 78 70 20 26 6f 70 74 69    6f 6e 61 6c 20 62 6f 75 6e 64 20 63 6f 75 6e 74  | er.(regexp.&optional.bound.count | 
| 8fbc0 |  29 0a 20 20 22 41 75 78 69 6c 69 61 72 79 20 66    75 6e 63 74 69 6f 6e 20 66 6f 72 20 60 6a 73 32  | )..."Auxiliary.function.for.`js2 | 
| 8fbe0 |  2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61    72 64 27 2e 22 0a 20 20 28 6c 65 74 20 28 70 61  | -re-search-forward'."...(let.(pa | 
| 8fc00 |  72 73 65 20 73 61 76 65 64 2d 70 6f 69 6e 74 29    0a 20 20 20 20 28 77 68 69 6c 65 20 28 3e 20 63  | rse.saved-point).....(while.(>.c | 
| 8fc20 |  6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 28 72    65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64  | ount.0).......(re-search-forward | 
| 8fc40 |  20 72 65 67 65 78 70 20 62 6f 75 6e 64 29 0a 20    20 20 20 20 20 28 73 65 74 71 20 70 61 72 73 65  | .regexp.bound).......(setq.parse | 
| 8fc60 |  20 28 69 66 20 73 61 76 65 64 2d 70 6f 69 6e 74    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(if.saved-point................ | 
| 8fc80 |  20 20 20 20 20 20 20 28 70 61 72 73 65 2d 70 61    72 74 69 61 6c 2d 73 65 78 70 20 73 61 76 65 64  | .......(parse-partial-sexp.saved | 
| 8fca0 |  2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -point.(point))................. | 
| 8fcc0 |  20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73 73    20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20  | ....(syntax-ppss.(point))))..... | 
| 8fce0 |  20 20 28 63 6f 6e 64 20 28 28 6e 74 68 20 33 20    70 61 72 73 65 29 0a 20 20 20 20 20 20 20 20 20  | ..(cond.((nth.3.parse).......... | 
| 8fd00 |  20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66    6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20  | ....(re-search-forward.......... | 
| 8fd20 |  20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c    28 5c 5c 3d 5c 5c 7c 5b 5e 5c 5c 5d 5c 5c 7c 5e  | .....(concat."\\(\\=\\|[^\\]\\|^ | 
| 8fd40 |  5c 5c 29 22 20 28 73 74 72 69 6e 67 20 28 6e 74    68 20 33 20 70 61 72 73 65 29 29 29 0a 20 20 20  | \\)".(string.(nth.3.parse))).... | 
| 8fd60 |  20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65    2d 65 78 63 75 72 73 69 6f 6e 20 28 65 6e 64 2d  | ...........(save-excursion.(end- | 
| 8fd80 |  6f 66 2d 6c 69 6e 65 29 20 28 70 6f 69 6e 74 29    29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20  | of-line).(point)).t))........... | 
| 8fda0 |  20 20 28 28 6e 74 68 20 37 20 70 61 72 73 65 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66  | ..((nth.7.parse)..............(f | 
| 8fdc0 |  6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28  | orward-line)).............((or.( | 
| 8fde0 |  6e 74 68 20 34 20 70 61 72 73 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61  | nth.4.parse)..................(a | 
| 8fe00 |  6e 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66    6f 72 65 29 20 3f 5c 2f 29 20 28 65 71 20 28 63  | nd.(eq.(char-before).?\/).(eq.(c | 
| 8fe20 |  68 61 72 2d 61 66 74 65 72 29 20 3f 5c 2a 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | har-after).?\*)))..............( | 
| 8fe40 |  72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72    64 20 22 5c 5c 2a 2f 22 29 29 0a 20 20 20 20 20  | re-search-forward."\\*/"))...... | 
| 8fe60 |  20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75  | .......(t..............(setq.cou | 
| 8fe80 |  6e 74 20 28 31 2d 20 63 6f 75 6e 74 29 29 29 29    0a 20 20 20 20 20 20 28 73 65 74 71 20 73 61 76  | nt.(1-.count)))).......(setq.sav | 
| 8fea0 |  65 64 2d 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29    29 29 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a  | ed-point.(point))))...(point)).. | 
| 8fec0 |  28 64 65 66 75 6e 20 6a 73 32 2d 72 65 2d 73 65    61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 72 65  | (defun.js2-re-search-forward.(re | 
| 8fee0 |  67 65 78 70 20 26 6f 70 74 69 6f 6e 61 6c 20 62    6f 75 6e 64 20 6e 6f 65 72 72 6f 72 20 63 6f 75  | gexp.&optional.bound.noerror.cou | 
| 8ff00 |  6e 74 29 0a 20 20 22 53 65 61 72 63 68 20 66 6f    72 77 61 72 64 20 62 75 74 20 69 67 6e 6f 72 65  | nt)..."Search.forward.but.ignore | 
| 8ff20 |  20 73 74 72 69 6e 67 73 20 61 6e 64 20 63 6f 6d    6d 65 6e 74 73 2e 0a 49 6e 76 6f 6b 65 73 20 60  | .strings.and.comments..Invokes.` | 
| 8ff40 |  72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72    64 27 20 62 75 74 20 74 72 65 61 74 73 20 74 68  | re-search-forward'.but.treats.th | 
| 8ff60 |  65 20 62 75 66 66 65 72 20 61 73 20 69 66 20 73    74 72 69 6e 67 73 0a 61 6e 64 20 63 6f 6d 6d 65  | e.buffer.as.if.strings.and.comme | 
| 8ff80 |  6e 74 73 20 68 61 76 65 20 62 65 65 6e 20 72 65    6d 6f 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28  | nts.have.been.removed."...(let.( | 
| 8ffa0 |  28 73 61 76 65 64 2d 70 6f 69 6e 74 20 28 70 6f    69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64  | (saved-point.(point))).....(cond | 
| 8ffc0 |  69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20    20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e  | ition-case.err.........(cond.((n | 
| 8ffe0 |  75 6c 6c 20 63 6f 75 6e 74 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72  | ull.count)................(js2-r | 
| 90000 |  65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64    2d 69 6e 6e 65 72 20 72 65 67 65 78 70 20 62 6f  | e-search-forward-inner.regexp.bo | 
| 90020 |  75 6e 64 20 31 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20  | und.1))...............((<.count. | 
| 90040 |  30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68  | 0)................(js2-re-search | 
| 90060 |  2d 62 61 63 6b 77 61 72 64 2d 69 6e 6e 65 72 20    72 65 67 65 78 70 20 62 6f 75 6e 64 20 28 2d 20  | -backward-inner.regexp.bound.(-. | 
| 90080 |  63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 28 3e 20 63 6f 75 6e 74  | count)))...............((>.count | 
| 900a0 |  20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63  | .0)................(js2-re-searc | 
| 900c0 |  68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e 65 72 20    72 65 67 65 78 70 20 62 6f 75 6e 64 20 63 6f 75  | h-forward-inner.regexp.bound.cou | 
| 900e0 |  6e 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 61    72 63 68 2d 66 61 69 6c 65 64 0a 20 20 20 20 20  | nt))).......(search-failed...... | 
| 90100 |  20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 61 76    65 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20  | ..(goto-char.saved-point)....... | 
| 90120 |  20 28 75 6e 6c 65 73 73 20 6e 6f 65 72 72 6f 72    0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72  | .(unless.noerror..........(error | 
| 90140 |  20 28 65 72 72 6f 72 2d 6d 65 73 73 61 67 65 2d    73 74 72 69 6e 67 20 65 72 72 29 29 29 29 29 29  | .(error-message-string.err)))))) | 
| 90160 |  29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 72 65    2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64  | )..(defun.js2-re-search-backward | 
| 90180 |  2d 69 6e 6e 65 72 20 28 72 65 67 65 78 70 20 26    6f 70 74 69 6f 6e 61 6c 20 62 6f 75 6e 64 20 63  | -inner.(regexp.&optional.bound.c | 
| 901a0 |  6f 75 6e 74 29 0a 20 20 22 41 75 78 69 6c 69 61    72 79 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20  | ount)..."Auxiliary.function.for. | 
| 901c0 |  60 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62    61 63 6b 77 61 72 64 27 2e 22 0a 20 20 28 6c 65  | `js2-re-search-backward'."...(le | 
| 901e0 |  74 20 28 70 61 72 73 65 29 0a 20 20 20 20 28 77    68 69 6c 65 20 28 3e 20 63 6f 75 6e 74 20 30 29  | t.(parse).....(while.(>.count.0) | 
| 90200 |  0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63    68 2d 62 61 63 6b 77 61 72 64 20 72 65 67 65 78  | .......(re-search-backward.regex | 
| 90220 |  70 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 28    73 65 74 71 20 70 61 72 73 65 20 28 73 79 6e 74  | p.bound).......(setq.parse.(synt | 
| 90240 |  61 78 2d 70 70 73 73 20 28 70 6f 69 6e 74 29 29    29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28  | ax-ppss.(point))).......(cond.(( | 
| 90260 |  6e 74 68 20 33 20 70 61 72 73 65 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65  | nth.3.parse)..............(re-se | 
| 90280 |  61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e  | arch-backward...............(con | 
| 902a0 |  63 61 74 20 22 5c 5c 28 5b 5e 5c 5c 5d 5c 5c 7c    5e 5c 5c 29 22 20 28 73 74 72 69 6e 67 20 28 6e  | cat."\\([^\\]\\|^\\)".(string.(n | 
| 902c0 |  74 68 20 33 20 70 61 72 73 65 29 29 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e  | th.3.parse)))...............(lin | 
| 902e0 |  65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69    74 69 6f 6e 29 20 74 29 29 0a 20 20 20 20 20 20  | e-beginning-position).t))....... | 
| 90300 |  20 20 20 20 20 20 28 28 6e 74 68 20 37 20 70 61    72 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ......((nth.7.parse)............ | 
| 90320 |  20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e 74    68 20 38 20 70 61 72 73 65 29 29 29 0a 20 20 20  | ..(goto-char.(nth.8.parse))).... | 
| 90340 |  20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 6e    74 68 20 34 20 70 61 72 73 65 29 0a 20 20 20 20  | .........((or.(nth.4.parse)..... | 
| 90360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e    64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f  | .............(and.(eq.(char-befo | 
| 90380 |  72 65 29 20 3f 2f 29 20 28 65 71 20 28 63 68 61    72 2d 61 66 74 65 72 29 20 3f 2a 29 29 29 0a 20  | re).?/).(eq.(char-after).?*))).. | 
| 903a0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d    73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20  | ............(re-search-backward. | 
| 903c0 |  22 2f 5c 5c 2a 22 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20  | "/\\*")).............(t......... | 
| 903e0 |  20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74    20 28 31 2d 20 63 6f 75 6e 74 29 29 29 29 29 29  | .....(setq.count.(1-.count)))))) | 
| 90400 |  0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a 28 64 65    66 75 6e 20 6a 73 32 2d 72 65 2d 73 65 61 72 63  | ...(point))..(defun.js2-re-searc | 
| 90420 |  68 2d 62 61 63 6b 77 61 72 64 20 28 72 65 67 65    78 70 20 26 6f 70 74 69 6f 6e 61 6c 20 62 6f 75  | h-backward.(regexp.&optional.bou | 
| 90440 |  6e 64 20 6e 6f 65 72 72 6f 72 20 63 6f 75 6e 74    29 0a 20 20 22 53 65 61 72 63 68 20 62 61 63 6b  | nd.noerror.count)..."Search.back | 
| 90460 |  77 61 72 64 20 62 75 74 20 69 67 6e 6f 72 65 20    73 74 72 69 6e 67 73 20 61 6e 64 20 63 6f 6d 6d  | ward.but.ignore.strings.and.comm | 
| 90480 |  65 6e 74 73 2e 0a 49 6e 76 6f 6b 65 73 20 60 72    65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72  | ents..Invokes.`re-search-backwar | 
| 904a0 |  64 27 20 62 75 74 20 74 72 65 61 74 73 20 74 68    65 20 62 75 66 66 65 72 20 61 73 20 69 66 20 73  | d'.but.treats.the.buffer.as.if.s | 
| 904c0 |  74 72 69 6e 67 73 0a 61 6e 64 20 63 6f 6d 6d 65    6e 74 73 20 68 61 76 65 20 62 65 65 6e 20 72 65  | trings.and.comments.have.been.re | 
| 904e0 |  6d 6f 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28    28 73 61 76 65 64 2d 70 6f 69 6e 74 20 28 70 6f  | moved."...(let.((saved-point.(po | 
| 90500 |  69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64    69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a 20  | int))).....(condition-case.err.. | 
| 90520 |  20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e    75 6c 6c 20 63 6f 75 6e 74 29 0a 20 20 20 20 20  | .......(cond.((null.count)...... | 
| 90540 |  20 20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 72    65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72  | ..........(js2-re-search-backwar | 
| 90560 |  64 2d 69 6e 6e 65 72 20 72 65 67 65 78 70 20 62    6f 75 6e 64 20 31 29 29 0a 20 20 20 20 20 20 20  | d-inner.regexp.bound.1))........ | 
| 90580 |  20 20 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74    20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .......((<.count.0)............. | 
| 905a0 |  20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63    68 2d 66 6f 72 77 61 72 64 2d 69 6e 6e 65 72 20  | ...(js2-re-search-forward-inner. | 
| 905c0 |  72 65 67 65 78 70 20 62 6f 75 6e 64 20 28 2d 20    63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 20  | regexp.bound.(-.count)))........ | 
| 905e0 |  20 20 20 20 20 20 20 28 28 3e 20 63 6f 75 6e 74    20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .......((>.count.0)............. | 
| 90600 |  20 20 20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63    68 2d 62 61 63 6b 77 61 72 64 2d 69 6e 6e 65 72  | ...(js2-re-search-backward-inner | 
| 90620 |  20 72 65 67 65 78 70 20 62 6f 75 6e 64 20 63 6f    75 6e 74 29 29 29 0a 20 20 20 20 20 20 28 73 65  | .regexp.bound.count))).......(se | 
| 90640 |  61 72 63 68 2d 66 61 69 6c 65 64 0a 20 20 20 20    20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 61  | arch-failed........(goto-char.sa | 
| 90660 |  76 65 64 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20    20 20 28 75 6e 6c 65 73 73 20 6e 6f 65 72 72 6f  | ved-point)........(unless.noerro | 
| 90680 |  72 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f    72 20 28 65 72 72 6f 72 2d 6d 65 73 73 61 67 65  | r..........(error.(error-message | 
| 906a0 |  2d 73 74 72 69 6e 67 20 65 72 72 29 29 29 29 29    29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d 6c  | -string.err)))))))..(defun.js2-l | 
| 906c0 |  6f 6f 6b 69 6e 67 2d 61 74 2d 6f 70 65 72 61 74    6f 72 2d 70 20 28 29 0a 20 20 22 52 65 74 75 72  | ooking-at-operator-p.()..."Retur | 
| 906e0 |  6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 74 65 78    74 20 61 66 74 65 72 20 70 6f 69 6e 74 20 69 73  | n.non-nil.if.text.after.point.is | 
| 90700 |  20 61 20 6e 6f 6e 2d 63 6f 6d 6d 61 20 6f 70 65    72 61 74 6f 72 2e 22 0a 20 20 28 64 65 66 76 61  | .a.non-comma.operator."...(defva | 
| 90720 |  72 20 6a 73 32 2d 6d 6f 64 65 2d 69 64 65 6e 74    69 66 69 65 72 2d 72 65 29 0a 20 20 28 61 6e 64  | r.js2-mode-identifier-re)...(and | 
| 90740 |  20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32    2d 69 6e 64 65 6e 74 2d 6f 70 65 72 61 74 6f 72  | .(looking-at.js2-indent-operator | 
| 90760 |  2d 72 65 29 0a 20 20 20 20 20 20 20 28 6f 72 20    28 6e 6f 74 20 28 65 71 20 28 63 68 61 72 2d 61  | -re)........(or.(not.(eq.(char-a | 
| 90780 |  66 74 65 72 29 20 3f 3a 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75  | fter).?:))............(save-excu | 
| 907a0 |  72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 28 61 6e 64 20 28 6a 73 32 2d 72 65 2d  | rsion..............(and.(js2-re- | 
| 907c0 |  73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20    22 5b 3f 3a 7b 5d 5c 5c 7c 5c 5c 5f 3c 63 61 73  | search-backward."[?:{]\\|\\_<cas | 
| 907e0 |  65 5c 5c 5f 3e 22 20 6e 69 6c 20 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e\\_>".nil.t)................... | 
| 90800 |  28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29    20 3f 3f 29 29 29 29 0a 20 20 20 20 20 20 20 28  | (eq.(char-after).??))))........( | 
| 90820 |  6e 6f 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d  | not.(and..............(eq.(char- | 
| 90840 |  61 66 74 65 72 29 20 3f 2f 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78  | after).?/)..............(save-ex | 
| 90860 |  63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 65 71 20 28 6e 74 68 20  | cursion................(eq.(nth. | 
| 90880 |  33 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29    20 3f 2f 29 29 29 29 0a 20 20 20 20 20 20 20 28  | 3.(syntax-ppss)).?/))))........( | 
| 908a0 |  6e 6f 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d  | not.(and..............(eq.(char- | 
| 908c0 |  61 66 74 65 72 29 20 3f 2a 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 47 65 6e 65 72  | after).?*)..............;;.Gener | 
| 908e0 |  61 74 6f 72 20 6d 65 74 68 6f 64 20 28 70 6f 73    73 69 62 6c 79 20 75 73 69 6e 67 20 63 6f 6d 70  | ator.method.(possibly.using.comp | 
| 90900 |  75 74 65 64 20 70 72 6f 70 65 72 74 79 29 2e 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f  | uted.property)...............(lo | 
| 90920 |  6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 61 74    20 22 5c 5c 2a 20 2a 5c 5c 28 3f 3a 5c 5c 5b 5c  | oking-at.(concat."\\*.*\\(?:\\[\ | 
| 90940 |  5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | \|"............................. | 
| 90960 |  20 20 20 20 20 6a 73 32 2d 6d 6f 64 65 2d 69 64    65 6e 74 69 66 69 65 72 2d 72 65 0a 20 20 20 20  | .....js2-mode-identifier-re..... | 
| 90980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2a  | .............................".* | 
| 909a0 |  28 5c 5c 29 22 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72  | (\\)"))..............(save-excur | 
| 909c0 |  73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77 61 72  | sion................(js2-backwar | 
| 909e0 |  64 2d 73 77 73 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 57 65 20 6d 69 67 68  | d-sws)................;;.We.migh | 
| 90a00 |  74 20 6d 69 73 69 6e 64 65 6e 74 20 73 6f 6d 65    20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 68 61  | t.misindent.some.expressions.tha | 
| 90a20 |  74 20 77 6f 75 6c 64 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 3b 3b 20 72 65 74 75 72 6e  | t.would................;;.return | 
| 90a40 |  20 4e 61 4e 20 61 6e 79 77 61 79 2e 20 20 53 68    6f 75 6c 64 6e 27 74 20 62 65 20 61 20 70 72 6f  | .NaN.anyway...Shouldn't.be.a.pro | 
| 90a60 |  62 6c 65 6d 2e 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 6d 65 6d 71 20 28 63 68 61 72  | blem.................(memq.(char | 
| 90a80 |  2d 62 65 66 6f 72 65 29 20 27 28 3f 2c 20 3f 7d    20 3f 7b 29 29 29 29 29 29 29 0a 0a 28 64 65 66  | -before).'(?,.?}.?{)))))))..(def | 
| 90aa0 |  75 6e 20 6a 73 32 2d 63 6f 6e 74 69 6e 75 65 64    2d 65 78 70 72 65 73 73 69 6f 6e 2d 70 20 28 29  | un.js2-continued-expression-p.() | 
| 90ac0 |  0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e    69 6c 20 69 66 20 74 68 65 20 63 75 72 72 65 6e  | ..."Return.non-nil.if.the.curren | 
| 90ae0 |  74 20 6c 69 6e 65 20 63 6f 6e 74 69 6e 75 65 73    20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 22  | t.line.continues.an.expression." | 
| 90b00 |  0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69    6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d  | ...(save-excursion.....(back-to- | 
| 90b20 |  69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20    20 28 69 66 20 28 6a 73 32 2d 6c 6f 6f 6b 69 6e  | indentation).....(if.(js2-lookin | 
| 90b40 |  67 2d 61 74 2d 6f 70 65 72 61 74 6f 72 2d 70 29    0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f  | g-at-operator-p).........(or.(no | 
| 90b60 |  74 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 61 66    74 65 72 29 20 27 28 3f 2d 20 3f 2b 29 29 29 0a  | t.(memq.(char-after).'(?-.?+))). | 
| 90b80 |  20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f    67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ............(progn.............. | 
| 90ba0 |  20 28 66 6f 72 77 61 72 64 2d 63 6f 6d 6d 65 6e    74 20 28 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20  | .(forward-comment.(-.(point))).. | 
| 90bc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f    74 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 62 65  | .............(not.(memq.(char-be | 
| 90be0 |  66 6f 72 65 29 20 27 28 3f 2c 20 3f 5c 5b 20 3f    5c 28 29 29 29 29 29 0a 20 20 20 20 20 20 28 66  | fore).'(?,.?\[.?\())))).......(f | 
| 90c00 |  6f 72 77 61 72 64 2d 63 6f 6d 6d 65 6e 74 20 28    2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20  | orward-comment.(-.(point)))..... | 
| 90c20 |  20 20 28 6f 72 20 28 62 6f 62 70 29 20 28 62 61    63 6b 77 61 72 64 2d 63 68 61 72 29 29 0a 20 20  | ..(or.(bobp).(backward-char))... | 
| 90c40 |  20 20 20 20 28 77 68 65 6e 20 28 6a 73 32 2d 6c    6f 6f 6b 69 6e 67 2d 61 74 2d 6f 70 65 72 61 74  | ....(when.(js2-looking-at-operat | 
| 90c60 |  6f 72 2d 70 29 0a 20 20 20 20 20 20 20 20 28 62    61 63 6b 77 61 72 64 2d 63 68 61 72 29 0a 20 20  | or-p).........(backward-char)... | 
| 90c80 |  20 20 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b    69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 7c 5c 5c  | ......(not.(looking-at."\\*\\|\\ | 
| 90ca0 |  2b 5c 5c 2b 5c 5c 7c 2d 2d 5c 5c 7c 2f 5b 2f 2a    5d 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e  | +\\+\\|--\\|/[/*]"))))))..(defun | 
| 90cc0 |  20 6a 73 32 2d 65 6e 64 2d 6f 66 2d 64 6f 2d 77    68 69 6c 65 2d 6c 6f 6f 70 2d 70 20 28 29 0a 20  | .js2-end-of-do-while-loop-p.().. | 
| 90ce0 |  20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c    20 69 66 20 77 6f 72 64 20 61 66 74 65 72 20 70  | ."Return.non-nil.if.word.after.p | 
| 90d00 |  6f 69 6e 74 20 69 73 20 60 77 68 69 6c 65 27 20    6f 66 20 61 20 64 6f 2d 77 68 69 6c 65 0a 73 74  | oint.is.`while'.of.a.do-while.st | 
| 90d20 |  61 74 65 6d 65 6e 74 2c 20 65 6c 73 65 20 72 65    74 75 72 6e 73 20 6e 69 6c 2e 20 41 20 62 72 61  | atement,.else.returns.nil..A.bra | 
| 90d40 |  63 65 6c 65 73 73 20 64 6f 2d 77 68 69 6c 65 20    73 74 61 74 65 6d 65 6e 74 0a 73 70 61 6e 6e 69  | celess.do-while.statement.spanni | 
| 90d60 |  6e 67 20 73 65 76 65 72 61 6c 20 6c 69 6e 65 73    20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 74  | ng.several.lines.requires.that.t | 
| 90d80 |  68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20    6c 6f 6f 70 20 69 73 0a 69 6e 64 65 6e 74 65 64  | he.start.of.the.loop.is.indented | 
| 90da0 |  20 74 6f 20 74 68 65 20 73 61 6d 65 20 63 6f 6c    75 6d 6e 20 61 73 20 74 68 65 20 63 75 72 72 65  | .to.the.same.column.as.the.curre | 
| 90dc0 |  6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e 74    65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76  | nt.line."...(interactive)...(sav | 
| 90de0 |  65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20    28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61  | e-excursion.....(when.(looking-a | 
| 90e00 |  74 20 22 5c 5c 73 2d 2a 5c 5c 5f 3c 77 68 69 6c    65 5c 5c 5f 3e 22 29 0a 20 20 20 20 20 20 28 69  | t."\\s-*\\_<while\\_>").......(i | 
| 90e20 |  66 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | f.(save-excursion.............(s | 
| 90e40 |  6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61    72 64 20 22 5b 20 5c 74 5c 6e 5d 2a 7d 22 29 0a  | kip-chars-backward."[.\t\n]*}"). | 
| 90e60 |  20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f    6b 69 6e 67 2d 61 74 20 22 5b 20 5c 74 5c 6e 5d  | ............(looking-at."[.\t\n] | 
| 90e80 |  2a 7d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20    28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a  | *}"))...........(save-excursion. | 
| 90ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63    6b 77 61 72 64 2d 6c 69 73 74 29 20 28 62 61 63  | ............(backward-list).(bac | 
| 90ec0 |  6b 77 61 72 64 2d 77 6f 72 64 20 31 29 20 28 6c    6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5f 3c 64  | kward-word.1).(looking-at."\\_<d | 
| 90ee0 |  6f 5c 5c 5f 3e 22 29 29 0a 20 20 20 20 20 20 20    20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d  | o\\_>")).........(js2-re-search- | 
| 90f00 |  62 61 63 6b 77 61 72 64 20 22 5c 5c 5f 3c 64 6f    5c 5c 5f 3e 22 20 28 70 6f 69 6e 74 2d 61 74 2d  | backward."\\_<do\\_>".(point-at- | 
| 90f20 |  62 6f 6c 29 20 74 29 0a 20 20 20 20 20 20 20 20    28 6f 72 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20  | bol).t).........(or.(looking-at. | 
| 90f40 |  22 5c 5c 5f 3c 64 6f 5c 5c 5f 3e 22 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28  | "\\_<do\\_>").............(let.( | 
| 90f60 |  28 73 61 76 65 64 2d 69 6e 64 65 6e 74 20 28 63    75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69  | (saved-indent.(current-indentati | 
| 90f80 |  6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20  | on)))...............(while.(and. | 
| 90fa0 |  28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d 62    61 63 6b 77 61 72 64 20 22 5e 5b 20 5c 74 5d 2a  | (js2-re-search-backward."^[.\t]* | 
| 90fc0 |  5c 5c 5f 3c 22 20 6e 69 6c 20 74 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | \\_<".nil.t).................... | 
| 90fe0 |  20 20 20 20 20 20 20 28 2f 3d 20 28 63 75 72 72    65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29  | .......(/=.(current-indentation) | 
| 91000 |  20 73 61 76 65 64 2d 69 6e 64 65 6e 74 29 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .saved-indent)))...............( | 
| 91020 |  61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20    22 5b 20 5c 74 5d 2a 5c 5c 5f 3c 64 6f 5c 5c 5f  | and.(looking-at."[.\t]*\\_<do\\_ | 
| 91040 |  3e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6e 6f 74 20 28 6a 73 32  | >")....................(not.(js2 | 
| 91060 |  2d 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61    72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | -re-search-forward.............. | 
| 91080 |  20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5f    3c 77 68 69 6c 65 5c 5c 5f 3e 22 20 28 70 6f 69  | ............"\\_<while\\_>".(poi | 
| 910a0 |  6e 74 2d 61 74 2d 65 6f 6c 29 20 74 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | nt-at-eol).t)).................. | 
| 910c0 |  20 20 28 3d 20 28 63 75 72 72 65 6e 74 2d 69 6e    64 65 6e 74 61 74 69 6f 6e 29 20 73 61 76 65 64  | ..(=.(current-indentation).saved | 
| 910e0 |  2d 69 6e 64 65 6e 74 29 29 29 29 29 29 29 29 0a    0a 28 64 65 66 75 6e 20 6a 73 32 2d 6d 75 6c 74  | -indent))))))))..(defun.js2-mult | 
| 91100 |  69 6c 69 6e 65 2d 64 65 63 6c 2d 69 6e 64 65 6e    74 61 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 74  | iline-decl-indentation.()..."Ret | 
| 91120 |  75 72 6e 20 74 68 65 20 64 65 63 6c 61 72 61 74    69 6f 6e 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20  | urn.the.declaration.indentation. | 
| 91140 |  63 6f 6c 75 6d 6e 20 69 66 20 74 68 65 20 63 75    72 72 65 6e 74 20 6c 69 6e 65 20 62 65 6c 6f 6e  | column.if.the.current.line.belon | 
| 91160 |  67 73 0a 74 6f 20 61 20 6d 75 6c 74 69 6c 69 6e    65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 73 74  | gs.to.a.multiline.declaration.st | 
| 91180 |  61 74 65 6d 65 6e 74 2e 20 20 53 65 65 20 60 6a    73 32 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c  | atement...See.`js2-pretty-multil | 
| 911a0 |  69 6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73    27 2e 22 0a 20 20 28 6c 65 74 20 28 66 6f 72 77  | ine-declarations'."...(let.(forw | 
| 911c0 |  61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f    6e 20 3b 20 75 73 65 20 4c 69 73 70 20 76 65 72  | ard-sexp-function.;.use.Lisp.ver | 
| 911e0 |  73 69 6f 6e 0a 20 20 20 20 20 20 20 20 61 74 2d    6f 70 65 6e 69 6e 67 2d 62 72 61 63 6b 65 74 29  | sion.........at-opening-bracket) | 
| 91200 |  0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72    73 69 6f 6e 0a 20 20 20 20 20 20 28 62 61 63 6b  | .....(save-excursion.......(back | 
| 91220 |  2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29    0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f  | -to-indentation).......(when.(no | 
| 91240 |  74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73    32 2d 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65  | t.(looking-at.js2-declaration-ke | 
| 91260 |  79 77 6f 72 64 2d 72 65 29 29 0a 20 20 20 20 20    20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e  | yword-re)).........(when.(lookin | 
| 91280 |  67 2d 61 74 20 6a 73 32 2d 69 6e 64 65 6e 74 2d    6f 70 65 72 61 74 6f 72 2d 72 65 29 0a 20 20 20  | g-at.js2-indent-operator-re).... | 
| 912a0 |  20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61    72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29  | .......(goto-char.(match-end.0)) | 
| 912c0 |  29 20 3b 20 63 6f 6e 74 69 6e 75 65 64 20 65 78    70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 6f 6b  | ).;.continued.expressions.are.ok | 
| 912e0 |  0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20    28 61 6e 64 20 28 6e 6f 74 20 61 74 2d 6f 70 65  | .........(while.(and.(not.at-ope | 
| 91300 |  6e 69 6e 67 2d 62 72 61 63 6b 65 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ning-bracket)................... | 
| 91320 |  20 20 28 6e 6f 74 20 28 62 6f 62 70 29 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ..(not.(bobp)).................. | 
| 91340 |  20 20 20 28 6c 65 74 20 28 28 70 6f 73 20 28 70    6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20  | ...(let.((pos.(point)))......... | 
| 91360 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73    61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20  | ..............(save-excursion... | 
| 91380 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 6a 73 32 2d 62 61 63 6b 77  | ......................(js2-backw | 
| 913a0 |  61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ard-sws)........................ | 
| 913c0 |  20 28 6f 72 20 28 65 71 20 28 63 68 61 72 2d 62    65 66 6f 72 65 29 20 3f 2c 29 0a 20 20 20 20 20  | .(or.(eq.(char-before).?,)...... | 
| 913e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74  | .......................(and.(not | 
| 91400 |  20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72    65 29 20 3f 5c 3b 29 29 0a 20 20 20 20 20 20 20  | .(eq.(char-before).?\;))........ | 
| 91420 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 32  | ..........................(prog2 | 
| 91440 |  20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 62 61    63 6b 77 61 72 64 20 22 2e 22 29 0a 20 20 20 20  | .(skip-syntax-backward.".")..... | 
| 91460 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 91480 |  20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32    2d 69 6e 64 65 6e 74 2d 6f 70 65 72 61 74 6f 72  | .(looking-at.js2-indent-operator | 
| 914a0 |  2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -re)............................ | 
| 914c0 |  20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61 63    6b 77 61 72 64 2d 73 77 73 29 29 0a 20 20 20 20  | ........(js2-backward-sws))..... | 
| 914e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f  | .............................(no | 
| 91500 |  74 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f    72 65 29 20 3f 5c 3b 29 29 29 0a 20 20 20 20 20  | t.(eq.(char-before).?\;)))...... | 
| 91520 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 73 61 6d 65  | .......................(js2-same | 
| 91540 |  2d 6c 69 6e 65 20 70 6f 73 29 29 29 29 29 0a 20    20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74  | -line.pos)))))...........(condit | 
| 91560 |  69 6f 6e 2d 63 61 73 65 20 5f 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61  | ion-case._...............(backwa | 
| 91580 |  72 64 2d 73 65 78 70 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 73 63 61 6e 2d 65 72 72 6f 72  | rd-sexp).............(scan-error | 
| 915a0 |  20 28 73 65 74 71 20 61 74 2d 6f 70 65 6e 69 6e    67 2d 62 72 61 63 6b 65 74 20 74 29 29 29 29 0a  | .(setq.at-opening-bracket.t)))). | 
| 915c0 |  20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c    6f 6f 6b 69 6e 67 2d 61 74 20 6a 73 32 2d 64 65  | ........(when.(looking-at.js2-de | 
| 915e0 |  63 6c 61 72 61 74 69 6f 6e 2d 6b 65 79 77 6f 72    64 2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20  | claration-keyword-re)........... | 
| 91600 |  28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63    68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20  | (goto-char.(match-end.0))....... | 
| 91620 |  20 20 20 20 28 31 2b 20 28 63 75 72 72 65 6e 74    2d 63 6f 6c 75 6d 6e 29 29 29 29 29 29 29 0a 0a  | ....(1+.(current-column))))))).. | 
| 91640 |  28 64 65 66 75 6e 20 6a 73 32 2d 63 74 72 6c 2d    73 74 61 74 65 6d 65 6e 74 2d 69 6e 64 65 6e 74  | (defun.js2-ctrl-statement-indent | 
| 91660 |  61 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 74 75    72 6e 20 74 68 65 20 70 72 6f 70 65 72 20 69 6e  | ation.()..."Return.the.proper.in | 
| 91680 |  64 65 6e 74 61 74 69 6f 6e 20 6f 66 20 63 75 72    72 65 6e 74 20 6c 69 6e 65 20 69 66 20 69 74 20  | dentation.of.current.line.if.it. | 
| 916a0 |  69 73 20 61 20 63 6f 6e 74 72 6f 6c 20 73 74 61    74 65 6d 65 6e 74 2e 0a 52 65 74 75 72 6e 73 20  | is.a.control.statement..Returns. | 
| 916c0 |  61 6e 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 69    66 20 74 68 69 73 20 6c 69 6e 65 20 73 74 61 72  | an.indentation.if.this.line.star | 
| 916e0 |  74 73 20 74 68 65 20 62 6f 64 79 20 6f 66 20 61    20 63 6f 6e 74 72 6f 6c 0a 73 74 61 74 65 6d 65  | ts.the.body.of.a.control.stateme | 
| 91700 |  6e 74 20 77 69 74 68 6f 75 74 20 62 72 61 63 65    73 2c 20 65 6c 73 65 20 72 65 74 75 72 6e 73 20  | nt.without.braces,.else.returns. | 
| 91720 |  6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 66 6f    72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74  | nil."...(let.(forward-sexp-funct | 
| 91740 |  69 6f 6e 29 0a 20 20 20 20 28 73 61 76 65 2d 65    78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28  | ion).....(save-excursion.......( | 
| 91760 |  62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74    69 6f 6e 29 0a 20 20 20 20 20 20 28 77 68 65 6e  | back-to-indentation).......(when | 
| 91780 |  20 28 61 6e 64 20 28 6e 6f 74 20 28 6a 73 32 2d    73 61 6d 65 2d 6c 69 6e 65 20 28 70 6f 69 6e 74  | .(and.(not.(js2-same-line.(point | 
| 917a0 |  2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6c  | -min)))..................(not.(l | 
| 917c0 |  6f 6f 6b 69 6e 67 2d 61 74 20 22 7b 22 29 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ooking-at."{"))................. | 
| 917e0 |  20 28 6a 73 32 2d 72 65 2d 73 65 61 72 63 68 2d    62 61 63 6b 77 61 72 64 20 22 5b 5b 3a 67 72 61  | .(js2-re-search-backward."[[:gra | 
| 91800 |  70 68 3a 5d 5d 22 20 6e 69 6c 20 74 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ph:]]".nil.t)..................( | 
| 91820 |  6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20    22 5b 7b 28 5b 5d 22 29 29 0a 20 20 20 20 20 20  | not.(looking-at."[{([]"))....... | 
| 91840 |  20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67    6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ...........(progn............... | 
| 91860 |  20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68    61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | .....(forward-char)............. | 
| 91880 |  20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20    28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 5c  | .......(when.(=.(char-before).?\ | 
| 918a0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 73 63 61 6e 2d  | ))......................;;.scan- | 
| 918c0 |  73 65 78 70 73 20 73 6f 6d 65 74 69 6d 65 73 20    74 68 72 6f 77 73 20 61 6e 20 65 72 72 6f 72 0a  | sexps.sometimes.throws.an.error. | 
| 918e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72  | .....................(ignore-err | 
| 91900 |  6f 72 73 20 28 62 61 63 6b 77 61 72 64 2d 73 65    78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  | ors.(backward-sexp))............ | 
| 91920 |  20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d    63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22  | ..........(skip-chars-backward." | 
| 91940 |  20 5c 74 22 20 28 70 6f 69 6e 74 2d 61 74 2d 62    6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .\t".(point-at-bol)))........... | 
| 91960 |  20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28    70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20  | .........(let.((pt.(point))).... | 
| 91980 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e  | ..................(back-to-inden | 
| 919a0 |  74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68  | tation)......................(wh | 
| 919c0 |  65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22    7d 5b 20 5c 74 5d 2a 22 29 0a 20 20 20 20 20 20  | en.(looking-at."}[.\t]*")....... | 
| 919e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74  | .................(goto-char.(mat | 
| 91a00 |  63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ch-end.0)))..................... | 
| 91a20 |  20 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61    74 20 6a 73 32 2d 70 6f 73 73 69 62 6c 79 2d 62  | .(and.(looking-at.js2-possibly-b | 
| 91a40 |  72 61 63 65 6c 65 73 73 2d 6b 65 79 77 6f 72 64    73 2d 72 65 29 0a 20 20 20 20 20 20 20 20 20 20  | raceless-keywords-re)........... | 
| 91a60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    28 3d 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29  | ................(=.(match-end.0) | 
| 91a80 |  20 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | .pt)...........................( | 
| 91aa0 |  6e 6f 74 20 28 6a 73 32 2d 65 6e 64 2d 6f 66 2d    64 6f 2d 77 68 69 6c 65 2d 6c 6f 6f 70 2d 70 29  | not.(js2-end-of-do-while-loop-p) | 
| 91ac0 |  29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 2b    20 28 63 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74  | ))))).........(+.(current-indent | 
| 91ae0 |  61 74 69 6f 6e 29 20 6a 73 32 2d 62 61 73 69 63    2d 6f 66 66 73 65 74 29 29 29 29 29 0a 0a 28 64  | ation).js2-basic-offset)))))..(d | 
| 91b00 |  65 66 75 6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d    69 6e 2d 61 72 72 61 79 2d 63 6f 6d 70 20 28 70  | efun.js2-indent-in-array-comp.(p | 
| 91b20 |  61 72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 22    52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69  | arse-status)..."Return.non-nil.i | 
| 91b40 |  66 20 77 65 20 74 68 69 6e 6b 20 77 65 27 72 65    20 69 6e 20 61 6e 20 61 72 72 61 79 20 63 6f 6d  | f.we.think.we're.in.an.array.com | 
| 91b60 |  70 72 65 68 65 6e 73 69 6f 6e 2e 0a 49 6e 20 70    61 72 74 69 63 75 6c 61 72 2c 20 72 65 74 75 72  | prehension..In.particular,.retur | 
| 91b80 |  6e 20 74 68 65 20 62 75 66 66 65 72 20 70 6f 73    69 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 72  | n.the.buffer.position.of.the.fir | 
| 91ba0 |  73 74 20 60 66 6f 72 27 20 6b 77 64 2e 22 0a 20    20 28 6c 65 74 20 28 28 62 72 61 63 6b 65 74 20  | st.`for'.kwd."...(let.((bracket. | 
| 91bc0 |  28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 61    74 75 73 29 29 0a 20 20 20 20 20 20 20 20 28 65  | (nth.1.parse-status)).........(e | 
| 91be0 |  6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20    20 28 77 68 65 6e 20 62 72 61 63 6b 65 74 0a 20  | nd.(point))).....(when.bracket.. | 
| 91c00 |  20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72    73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f  | .....(save-excursion.........(go | 
| 91c20 |  74 6f 2d 63 68 61 72 20 62 72 61 63 6b 65 74 29    0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28  | to-char.bracket).........(when.( | 
| 91c40 |  6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 5b 22    29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72  | looking-at."\\[")...........(for | 
| 91c60 |  77 61 72 64 2d 63 68 61 72 20 31 29 0a 20 20 20    20 20 20 20 20 20 20 28 6a 73 32 2d 66 6f 72 77  | ward-char.1)...........(js2-forw | 
| 91c80 |  61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20    20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d  | ard-sws)...........(if.(looking- | 
| 91ca0 |  61 74 20 22 5b 5b 7b 5d 22 29 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 66  | at."[[{]")...............(let.(f | 
| 91cc0 |  6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63    74 69 6f 6e 29 20 3b 20 75 73 65 20 4c 69 73 70  | orward-sexp-function).;.use.Lisp | 
| 91ce0 |  20 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72  | .version.................(forwar | 
| 91d00 |  64 2d 73 65 78 70 29 20 20 20 20 20 20 20 20 20    20 20 20 20 3b 20 73 6b 69 70 20 64 65 73 74 72  | d-sexp).............;.skip.destr | 
| 91d20 |  75 63 74 75 72 69 6e 67 20 66 6f 72 6d 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ucturing.form.................(j | 
| 91d40 |  73 32 2d 66 6f 72 77 61 72 64 2d 73 77 73 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | s2-forward-sws)................. | 
| 91d60 |  28 69 66 20 28 61 6e 64 20 28 2f 3d 20 28 63 68    61 72 2d 61 66 74 65 72 29 20 3f 2c 29 20 3b 20  | (if.(and.(/=.(char-after).?,).;. | 
| 91d80 |  72 65 67 75 6c 61 72 20 61 72 72 61 79 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | regular.array................... | 
| 91da0 |  20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d    61 74 20 22 66 6f 72 22 29 29 0a 20 20 20 20 20  | .......(looking-at."for"))...... | 
| 91dc0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20  | ...............(match-beginning. | 
| 91de0 |  30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 3b 3b 20 74 6f 20 73 6b 69 70 20 61 72 62 69  | 0))).............;;.to.skip.arbi | 
| 91e00 |  74 72 61 72 79 20 65 78 70 72 65 73 73 69 6f 6e    73 20 77 65 20 6e 65 65 64 20 74 68 65 20 70 61  | trary.expressions.we.need.the.pa | 
| 91e20 |  72 73 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20    20 20 3b 3b 20 73 6f 20 77 65 27 6c 6c 20 6a 75  | rser,.............;;.so.we'll.ju | 
| 91e40 |  73 74 20 67 75 65 73 73 20 61 74 20 69 74 2e 0a    20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20  | st.guess.at.it..............(if. | 
| 91e60 |  28 61 6e 64 20 28 3e 20 65 6e 64 20 28 70 6f 69    6e 74 29 29 20 3b 20 6e 6f 74 20 65 6d 70 74 79  | (and.(>.end.(point)).;.not.empty | 
| 91e80 |  20 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72  | .literal......................(r | 
| 91ea0 |  65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64    20 22 5b 5e 2c 5d 5d 2a 20 5c 5c 28 66 6f 72 5c  | e-search-forward."[^,]]*.\\(for\ | 
| 91ec0 |  5c 29 20 22 20 65 6e 64 20 74 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | \).".end.t)..................... | 
| 91ee0 |  20 3b 3b 20 6e 6f 74 20 69 6e 73 69 64 65 20 63    6f 6d 6d 65 6e 74 20 6f 72 20 73 74 72 69 6e 67  | .;;.not.inside.comment.or.string | 
| 91f00 |  20 6c 69 74 65 72 61 6c 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c  | .literal......................(l | 
| 91f20 |  65 74 20 28 28 73 74 61 74 65 20 28 70 61 72 73    65 2d 70 61 72 74 69 61 6c 2d 73 65 78 70 20 62  | et.((state.(parse-partial-sexp.b | 
| 91f40 |  72 61 63 6b 65 74 20 28 70 6f 69 6e 74 29 29 29    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | racket.(point))))............... | 
| 91f60 |  20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d    20 31 20 28 63 61 72 20 73 74 61 74 65 29 29 0a  | .........(and.(=.1.(car.state)). | 
| 91f80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74  | ............................(not | 
| 91fa0 |  20 28 6e 74 68 20 38 20 73 74 61 74 65 29 29 29    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(nth.8.state))))).............. | 
| 91fc0 |  20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e    69 6e 67 20 31 29 29 29 29 29 29 29 29 0a 0a 28  | ...(match-beginning.1))))))))..( | 
| 91fe0 |  64 65 66 75 6e 20 6a 73 32 2d 61 72 72 61 79 2d    63 6f 6d 70 2d 69 6e 64 65 6e 74 61 74 69 6f 6e  | defun.js2-array-comp-indentation | 
| 92000 |  20 28 70 61 72 73 65 2d 73 74 61 74 75 73 20 66    6f 72 2d 6b 77 64 29 0a 20 20 28 69 66 20 28 6a  | .(parse-status.for-kwd)...(if.(j | 
| 92020 |  73 32 2d 73 61 6d 65 2d 6c 69 6e 65 20 66 6f 72    2d 6b 77 64 29 0a 20 20 20 20 20 20 3b 3b 20 66  | s2-same-line.for-kwd).......;;.f | 
| 92040 |  69 72 73 74 20 63 6f 6e 74 69 6e 75 61 74 69 6f    6e 20 6c 69 6e 65 0a 20 20 20 20 20 20 28 73 61  | irst.continuation.line.......(sa | 
| 92060 |  76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20    20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20  | ve-excursion.........(goto-char. | 
| 92080 |  28 6e 74 68 20 31 20 70 61 72 73 65 2d 73 74 61    74 75 73 29 29 0a 20 20 20 20 20 20 20 20 28 66  | (nth.1.parse-status)).........(f | 
| 920a0 |  6f 72 77 61 72 64 2d 63 68 61 72 20 31 29 0a 20    20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61  | orward-char.1).........(skip-cha | 
| 920c0 |  72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22    29 0a 20 20 20 20 20 20 20 20 28 63 75 72 72 65  | rs-forward.".\t").........(curre | 
| 920e0 |  6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20    28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a  | nt-column)).....(save-excursion. | 
| 92100 |  20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72    20 66 6f 72 2d 6b 77 64 29 0a 20 20 20 20 20 20  | ......(goto-char.for-kwd)....... | 
| 92120 |  28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29    29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73 32 2d  | (current-column))))..(defun.js2- | 
| 92140 |  6d 61 79 62 65 2d 67 6f 74 6f 2d 64 65 63 6c 61    72 61 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 65  | maybe-goto-declaration-keyword-e | 
| 92160 |  6e 64 20 28 62 72 61 63 6b 65 74 29 0a 20 20 22    48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20  | nd.(bracket)..."Helper.function. | 
| 92180 |  66 6f 72 20 60 6a 73 32 2d 70 72 6f 70 65 72 2d    69 6e 64 65 6e 74 61 74 69 6f 6e 27 2e 0a 44 65  | for.`js2-proper-indentation'..De | 
| 921a0 |  70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 76    61 6c 75 65 20 6f 66 20 60 6a 73 32 2d 70 72 65  | pending.on.the.value.of.`js2-pre | 
| 921c0 |  74 74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65    63 6c 61 72 61 74 69 6f 6e 73 27 2c 0a 6d 6f 76  | tty-multiline-declarations',.mov | 
| 921e0 |  65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 65    6e 64 20 6f 66 20 61 20 76 61 72 69 61 62 6c 65  | e.point.to.the.end.of.a.variable | 
| 92200 |  20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6b 65 79    77 6f 72 64 20 73 6f 20 74 68 61 74 0a 69 6e 64  | .declaration.keyword.so.that.ind | 
| 92220 |  65 6e 74 61 74 69 6f 6e 20 69 73 20 61 6c 69 67    6e 65 64 20 74 6f 20 74 68 61 74 20 63 6f 6c 75  | entation.is.aligned.to.that.colu | 
| 92240 |  6d 6e 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20    28 28 65 71 20 6a 73 32 2d 70 72 65 74 74 79 2d  | mn."...(cond....((eq.js2-pretty- | 
| 92260 |  6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63 6c 61 72    61 74 69 6f 6e 73 20 27 61 6c 6c 29 0a 20 20 20  | multiline-declarations.'all).... | 
| 92280 |  20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d    61 74 20 6a 73 32 2d 64 65 63 6c 61 72 61 74 69  | .(when.(looking-at.js2-declarati | 
| 922a0 |  6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65 29 0a 20    20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20  | on-keyword-re).......(goto-char. | 
| 922c0 |  28 31 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30    29 29 29 29 29 0a 20 20 20 28 28 65 71 20 6a 73  | (1+.(match-end.0)))))....((eq.js | 
| 922e0 |  32 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c 69    6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 20  | 2-pretty-multiline-declarations. | 
| 92300 |  27 64 79 6e 61 6d 69 63 29 0a 20 20 20 20 28 6c    65 74 20 28 64 65 63 6c 61 72 61 74 69 6f 6e 2d  | 'dynamic).....(let.(declaration- | 
| 92320 |  6b 65 79 77 6f 72 64 2d 65 6e 64 0a 20 20 20 20    20 20 20 20 20 20 61 74 2d 63 6c 6f 73 69 6e 67  | keyword-end...........at-closing | 
| 92340 |  2d 62 72 61 63 6b 65 74 2d 70 0a 20 20 20 20 20    20 20 20 20 20 63 6f 6d 6d 61 2d 70 29 0a 20 20  | -bracket-p...........comma-p)... | 
| 92360 |  20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69    6e 67 2d 61 74 20 6a 73 32 2d 64 65 63 6c 61 72  | ....(when.(looking-at.js2-declar | 
| 92380 |  61 74 69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 72 65    29 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 72 65  | ation-keyword-re).........;;.Pre | 
| 923a0 |  73 65 72 76 65 20 74 68 65 20 6d 61 74 63 68 20    64 61 74 61 20 6c 65 73 74 20 69 74 20 73 6f 6d  | serve.the.match.data.lest.it.som | 
| 923c0 |  65 68 6f 77 20 62 65 20 6f 76 65 72 72 69 64 64    65 6e 2e 0a 20 20 20 20 20 20 20 20 28 73 65 74  | ehow.be.overridden..........(set | 
| 923e0 |  71 20 64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65    79 77 6f 72 64 2d 65 6e 64 20 28 6d 61 74 63 68  | q.declaration-keyword-end.(match | 
| 92400 |  2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20    20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e  | -end.0)).........(save-excursion | 
| 92420 |  0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f    2d 63 68 61 72 20 62 72 61 63 6b 65 74 29 0a 20  | ...........(goto-char.bracket).. | 
| 92440 |  20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61    74 2d 63 6c 6f 73 69 6e 67 2d 62 72 61 63 6b 65  | .........(setq.at-closing-bracke | 
| 92460 |  74 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 73 63  | t-p.................;;.Handle.sc | 
| 92480 |  61 6e 20 65 72 72 6f 72 73 20 67 72 61 63 65 66    75 6c 6c 79 2e 0a 20 20 20 20 20 20 20 20 20 20  | an.errors.gracefully............ | 
| 924a0 |  20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e    2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20  | ......(condition-case.nil....... | 
| 924c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70    72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20  | ..............(progn............ | 
| 924e0 |  20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73    65 20 74 68 65 20 72 65 67 75 6c 61 72 20 60 66  | ...........;;.Use.the.regular.`f | 
| 92500 |  6f 72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63    74 69 6f 6e 27 20 62 65 63 61 75 73 65 20 74 68  | orward-sexp-function'.because.th | 
| 92520 |  65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 72 6d 61  | e.......................;;.norma | 
| 92540 |  6c 20 6f 6e 65 20 66 6f 72 20 74 68 69 73 20 6d    6f 64 65 20 75 73 65 73 20 74 68 65 20 41 53 54  | l.one.for.this.mode.uses.the.AST | 
| 92560 |  2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6c 65 74 20 28 66 6f  | ........................(let.(fo | 
| 92580 |  72 77 61 72 64 2d 73 65 78 70 2d 66 75 6e 63 74    69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20  | rward-sexp-function)............ | 
| 925a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f    72 77 61 72 64 2d 73 65 78 70 29 29 0a 20 20 20  | .............(forward-sexp)).... | 
| 925c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 74 29 0a 20 20 20 20 20 20 20 20 20 20  | ...................t)........... | 
| 925e0 |  20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e    69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ........(error.nil)))........... | 
| 92600 |  28 77 68 65 6e 20 61 74 2d 63 6c 6f 73 69 6e 67    2d 62 72 61 63 6b 65 74 2d 70 0a 20 20 20 20 20  | (when.at-closing-bracket-p...... | 
| 92620 |  20 20 20 20 20 20 20 28 6a 73 32 2d 66 6f 72 77    61 72 64 2d 73 77 73 29 0a 20 20 20 20 20 20 20  | .......(js2-forward-sws)........ | 
| 92640 |  20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61    2d 70 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70  | .....(setq.comma-p.(looking-at-p | 
| 92660 |  20 22 2c 22 29 29 29 29 0a 20 20 20 20 20 20 20    20 28 77 68 65 6e 20 63 6f 6d 6d 61 2d 70 0a 20  | .",")))).........(when.comma-p.. | 
| 92680 |  20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63    68 61 72 20 28 31 2b 20 64 65 63 6c 61 72 61 74  | .........(goto-char.(1+.declarat | 
| 926a0 |  69 6f 6e 2d 6b 65 79 77 6f 72 64 2d 65 6e 64 29    29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66  | ion-keyword-end))))))))..(cl-def | 
| 926c0 |  75 6e 20 6a 73 32 2d 70 72 6f 70 65 72 2d 69 6e    64 65 6e 74 61 74 69 6f 6e 20 28 70 61 72 73 65  | un.js2-proper-indentation.(parse | 
| 926e0 |  2d 73 74 61 74 75 73 29 0a 20 20 22 52 65 74 75    72 6e 20 74 68 65 20 70 72 6f 70 65 72 20 69 6e  | -status)..."Return.the.proper.in | 
| 92700 |  64 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68    65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22  | dentation.for.the.current.line." | 
| 92720 |  0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69    6f 6e 0a 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d  | ...(save-excursion.....(back-to- | 
| 92740 |  69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20    20 28 77 68 65 6e 20 28 6e 74 68 20 34 20 70 61  | indentation).....(when.(nth.4.pa | 
| 92760 |  72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20    20 20 28 63 6c 2d 72 65 74 75 72 6e 2d 66 72 6f  | rse-status).......(cl-return-fro | 
| 92780 |  6d 20 6a 73 32 2d 70 72 6f 70 65 72 2d 69 6e 64    65 6e 74 61 74 69 6f 6e 20 28 6a 73 32 2d 2d 63  | m.js2-proper-indentation.(js2--c | 
| 927a0 |  6f 6d 6d 65 6e 74 2d 69 6e 64 65 6e 74 20 70 61    72 73 65 2d 73 74 61 74 75 73 29 29 29 0a 20 20  | omment-indent.parse-status)))... | 
| 927c0 |  20 20 28 6c 65 74 2a 20 28 28 61 74 2d 63 6c 6f    73 69 6e 67 2d 62 72 61 63 6b 65 74 20 28 6c 6f  | ..(let*.((at-closing-bracket.(lo | 
| 927e0 |  6f 6b 69 6e 67 2d 61 74 20 22 5b 5d 7d 29 5d 22    29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73  | oking-at."[]})]"))............(s | 
| 92800 |  61 6d 65 2d 69 6e 64 65 6e 74 2d 70 20 28 6f 72    20 61 74 2d 63 6c 6f 73 69 6e 67 2d 62 72 61 63  | ame-indent-p.(or.at-closing-brac | 
| 92820 |  6b 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ket............................. | 
| 92840 |  20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c    5c 5f 3c 63 61 73 65 5c 5c 5f 3e 5b 5e 3a 5d 22  | ..(looking-at."\\_<case\\_>[^:]" | 
| 92860 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | )............................... | 
| 92880 |  28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74    20 22 5c 5c 5f 3c 64 65 66 61 75 6c 74 3a 22 29  | (and.(looking-at."\\_<default:") | 
| 928a0 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ................................ | 
| 928c0 |  20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73    69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ....(save-excursion............. | 
| 928e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 6a 73 32 2d 62 61  | .........................(js2-ba | 
| 92900 |  63 6b 77 61 72 64 2d 73 77 73 29 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ckward-sws)..................... | 
| 92920 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 6e 6f 74 20 28 6d 65 6d 71 20 28 63 68 61  | .................(not.(memq.(cha | 
| 92940 |  72 2d 62 65 66 6f 72 65 29 20 27 28 3f 2c 20 3f    7b 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20  | r-before).'(?,.?{)))))))........ | 
| 92960 |  20 20 20 20 28 63 6f 6e 74 69 6e 75 65 64 2d 65    78 70 72 2d 70 20 28 6a 73 32 2d 63 6f 6e 74 69  | ....(continued-expr-p.(js2-conti | 
| 92980 |  6e 75 65 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d    70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28  | nued-expression-p))............( | 
| 929a0 |  64 65 63 6c 61 72 61 74 69 6f 6e 2d 69 6e 64 65    6e 74 20 28 61 6e 64 20 6a 73 32 2d 70 72 65 74  | declaration-indent.(and.js2-pret | 
| 929c0 |  74 79 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63    6c 61 72 61 74 69 6f 6e 73 0a 20 20 20 20 20 20  | ty-multiline-declarations....... | 
| 929e0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a  | ..............................(j | 
| 92a00 |  73 32 2d 6d 75 6c 74 69 6c 69 6e 65 2d 64 65 63    6c 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 29 29  | s2-multiline-decl-indentation))) | 
| 92a20 |  0a 20 20 20 20 20 20 20 20 20 20 20 28 62 72 61    63 6b 65 74 20 28 6e 74 68 20 31 20 70 61 72 73  | ............(bracket.(nth.1.pars | 
| 92a40 |  65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20    20 20 20 20 20 20 62 65 67 20 69 6e 64 65 6e 74  | e-status))............beg.indent | 
| 92a60 |  29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20    20 20 20 20 20 3b 3b 20 69 6e 64 65 6e 74 20 61  | ).......(cond........;;.indent.a | 
| 92a80 |  72 72 61 79 20 63 6f 6d 70 72 65 68 65 6e 73 69    6f 6e 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20  | rray.comprehension.continuation. | 
| 92aa0 |  6c 69 6e 65 73 20 73 70 65 63 69 61 6c 6c 79 0a    20 20 20 20 20 20 20 28 28 61 6e 64 20 62 72 61  | lines.specially........((and.bra | 
| 92ac0 |  63 6b 65 74 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3e 3d 20 6a 73 32 2d 6c 61 6e 67 75 61  | cket..............(>=.js2-langua | 
| 92ae0 |  67 65 2d 76 65 72 73 69 6f 6e 20 31 37 30 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f  | ge-version.170)..............(no | 
| 92b00 |  74 20 28 6a 73 32 2d 73 61 6d 65 2d 6c 69 6e 65    20 62 72 61 63 6b 65 74 29 29 0a 20 20 20 20 20  | t.(js2-same-line.bracket))...... | 
| 92b20 |  20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65    67 20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 69 6e  | ........(setq.beg.(js2-indent-in | 
| 92b40 |  2d 61 72 72 61 79 2d 63 6f 6d 70 20 70 61 72 73    65 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20  | -array-comp.parse-status))...... | 
| 92b60 |  20 20 20 20 20 20 20 20 28 3e 3d 20 28 70 6f 69    6e 74 29 20 28 73 61 76 65 2d 65 78 63 75 72 73  | ........(>=.(point).(save-excurs | 
| 92b80 |  69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | ion............................( | 
| 92ba0 |  67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | goto-char.beg).................. | 
| 92bc0 |  20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74    2d 61 74 2d 62 6f 6c 29 29 29 29 20 3b 20 61 74  | ..........(point-at-bol)))).;.at | 
| 92be0 |  20 6f 72 20 61 66 74 65 72 20 66 69 72 73 74 20    6c 6f 6f 70 3f 0a 20 20 20 20 20 20 20 20 28 6a  | .or.after.first.loop?.........(j | 
| 92c00 |  73 32 2d 61 72 72 61 79 2d 63 6f 6d 70 2d 69 6e    64 65 6e 74 61 74 69 6f 6e 20 70 61 72 73 65 2d  | s2-array-comp-indentation.parse- | 
| 92c20 |  73 74 61 74 75 73 20 62 65 67 29 29 0a 0a 20 20    20 20 20 20 20 28 28 6a 73 32 2d 63 74 72 6c 2d  | status.beg)).........((js2-ctrl- | 
| 92c40 |  73 74 61 74 65 6d 65 6e 74 2d 69 6e 64 65 6e 74    61 74 69 6f 6e 29 29 0a 0a 20 20 20 20 20 20 20  | statement-indentation))......... | 
| 92c60 |  28 28 61 6e 64 20 64 65 63 6c 61 72 61 74 69 6f    6e 2d 69 6e 64 65 6e 74 20 63 6f 6e 74 69 6e 75  | ((and.declaration-indent.continu | 
| 92c80 |  65 64 2d 65 78 70 72 2d 70 29 0a 20 20 20 20 20    20 20 20 28 2b 20 64 65 63 6c 61 72 61 74 69 6f  | ed-expr-p).........(+.declaratio | 
| 92ca0 |  6e 2d 69 6e 64 65 6e 74 20 6a 73 32 2d 62 61 73    69 63 2d 6f 66 66 73 65 74 29 29 0a 0a 20 20 20  | n-indent.js2-basic-offset))..... | 
| 92cc0 |  20 20 20 20 28 64 65 63 6c 61 72 61 74 69 6f 6e    2d 69 6e 64 65 6e 74 29 0a 0a 20 20 20 20 20 20  | ....(declaration-indent)........ | 
| 92ce0 |  20 28 62 72 61 63 6b 65 74 0a 20 20 20 20 20 20    20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 72 61  | .(bracket.........(goto-char.bra | 
| 92d00 |  63 6b 65 74 29 0a 20 20 20 20 20 20 20 20 28 63    6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 6c  | cket).........(cond..........((l | 
| 92d20 |  6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 28 7b 5b 5d    5b 20 5c 74 5d 2a 5c 5c 28 2f 5b 2f 2a 5d 5c 5c  | ooking-at."[({[][.\t]*\\(/[/*]\\ | 
| 92d40 |  7c 24 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20    20 20 28 77 68 65 6e 20 28 73 61 76 65 2d 65 78  | |$\\)")...........(when.(save-ex | 
| 92d60 |  63 75 72 73 69 6f 6e 20 28 73 6b 69 70 2d 63 68    61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c  | cursion.(skip-chars-backward.".\ | 
| 92d80 |  74 5c 6e 29 22 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | t\n)").......................... | 
| 92da0 |  20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d    61 74 20 22 29 22 29 29 0a 20 20 20 20 20 20 20  | .......(looking-at.")"))........ | 
| 92dc0 |  20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 6c    69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20  | .....(backward-list))........... | 
| 92de0 |  28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61    74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20  | (back-to-indentation)........... | 
| 92e00 |  28 6a 73 32 2d 6d 61 79 62 65 2d 67 6f 74 6f 2d    64 65 63 6c 61 72 61 74 69 6f 6e 2d 6b 65 79 77  | (js2-maybe-goto-declaration-keyw | 
| 92e20 |  6f 72 64 2d 65 6e 64 20 62 72 61 63 6b 65 74 29    0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71  | ord-end.bracket)...........(setq | 
| 92e40 |  20 69 6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 73  | .indent.................(cond.(s | 
| 92e60 |  61 6d 65 2d 69 6e 64 65 6e 74 2d 70 0a 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | ame-indent-p.................... | 
| 92e80 |  20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c    75 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20  | ....(current-column))........... | 
| 92ea0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e    74 69 6e 75 65 64 2d 65 78 70 72 2d 70 0a 20 20  | ............(continued-expr-p... | 
| 92ec0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 2b 20 28 63 75 72 72 65 6e 74  | .....................(+.(current | 
| 92ee0 |  2d 63 6f 6c 75 6d 6e 29 20 28 2a 20 32 20 6a 73    32 2d 62 61 73 69 63 2d 6f 66 66 73 65 74 29 29  | -column).(*.2.js2-basic-offset)) | 
| 92f00 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20  | ).......................(t...... | 
| 92f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 2b 20 28 63 75 72 72 65 6e 74 2d 63 6f  | ..................(+.(current-co | 
| 92f40 |  6c 75 6d 6e 29 20 6a 73 32 2d 62 61 73 69 63 2d    6f 66 66 73 65 74 29 29 29 29 0a 20 20 20 20 20  | lumn).js2-basic-offset))))...... | 
| 92f60 |  20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6a 73    32 2d 69 6e 64 65 6e 74 2d 73 77 69 74 63 68 2d  | .....(if.(and.js2-indent-switch- | 
| 92f80 |  62 6f 64 79 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 28 6e 6f 74 20 61 74 2d  | body....................(not.at- | 
| 92fa0 |  63 6c 6f 73 69 6e 67 2d 62 72 61 63 6b 65 74 29    0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | closing-bracket)................ | 
| 92fc0 |  20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20    22 5c 5c 5f 3c 73 77 69 74 63 68 5c 5c 5f 3e 22  | ....(looking-at."\\_<switch\\_>" | 
| 92fe0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 28 2b 20 69 6e 64 65 6e 74 20 6a 73 32 2d 62  | ))...............(+.indent.js2-b | 
| 93000 |  61 73 69 63 2d 6f 66 66 73 65 74 29 0a 20 20 20    20 20 20 20 20 20 20 20 20 69 6e 64 65 6e 74 29  | asic-offset).............indent) | 
| 93020 |  29 0a 20 20 20 20 20 20 20 20 20 28 74 0a 20 20    20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20  | )..........(t...........(unless. | 
| 93040 |  73 61 6d 65 2d 69 6e 64 65 6e 74 2d 70 0a 20 20    20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61  | same-indent-p.............(forwa | 
| 93060 |  72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73  | rd-char).............(skip-chars | 
| 93080 |  2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 29    0a 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72  | -forward.".\t"))...........(curr | 
| 930a0 |  65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 0a    20 20 20 20 20 20 20 28 63 6f 6e 74 69 6e 75 65  | ent-column)))).........(continue | 
| 930c0 |  64 2d 65 78 70 72 2d 70 20 6a 73 32 2d 62 61 73    69 63 2d 6f 66 66 73 65 74 29 0a 0a 20 20 20 20  | d-expr-p.js2-basic-offset)...... | 
| 930e0 |  20 20 20 28 74 20 30 29 29 29 29 29 0a 0a 28 64    65 66 75 6e 20 6a 73 32 2d 2d 63 6f 6d 6d 65 6e  | ...(t.0)))))..(defun.js2--commen | 
| 93100 |  74 2d 69 6e 64 65 6e 74 20 28 70 61 72 73 65 2d    73 74 61 74 75 73 29 0a 20 20 22 49 6e 64 65 6e  | t-indent.(parse-status)..."Inden | 
| 93120 |  74 61 74 69 6f 6e 20 69 6e 73 69 64 65 20 61 20    6d 75 6c 74 69 2d 6c 69 6e 65 20 62 6c 6f 63 6b  | tation.inside.a.multi-line.block | 
| 93140 |  20 63 6f 6d 6d 65 6e 74 20 63 6f 6e 74 69 6e 75    61 74 69 6f 6e 20 6c 69 6e 65 2e 22 0a 20 20 28  | .comment.continuation.line."...( | 
| 93160 |  73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20    20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6e  | save-excursion.....(goto-char.(n | 
| 93180 |  74 68 20 38 20 70 61 72 73 65 2d 73 74 61 74 75    73 29 29 0a 20 20 20 20 28 69 66 20 28 6c 6f 6f  | th.8.parse-status)).....(if.(loo | 
| 931a0 |  6b 69 6e 67 2d 61 74 20 22 2f 5c 5c 2a 22 29 0a    20 20 20 20 20 20 20 20 28 2b 20 31 20 28 63 75  | king-at."/\\*").........(+.1.(cu | 
| 931c0 |  72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20    20 20 20 20 20 30 29 29 29 0a 0a 28 64 65 66 75  | rrent-column)).......0)))..(defu | 
| 931e0 |  6e 20 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 69 6e    65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 62 6f  | n.js2-indent-line.(&optional._bo | 
| 93200 |  75 6e 63 65 2d 62 61 63 6b 77 61 72 64 73 29 0a    20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 75  | unce-backwards)..."Indent.the.cu | 
| 93220 |  72 72 65 6e 74 20 6c 69 6e 65 20 61 73 20 4a 61    76 61 53 63 72 69 70 74 20 73 6f 75 72 63 65 20  | rrent.line.as.JavaScript.source. | 
| 93240 |  74 65 78 74 2e 22 0a 20 20 28 69 6e 74 65 72 61    63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 70  | text."...(interactive)...(let.(p | 
| 93260 |  61 72 73 65 2d 73 74 61 74 75 73 20 6f 66 66 73    65 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 44 6f  | arse-status.offset.........;;.Do | 
| 93280 |  6e 27 74 20 77 68 69 6e 65 20 61 62 6f 75 74 20    65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20  | n't.whine.about.errors/warnings. | 
| 932a0 |  77 68 65 6e 20 77 65 27 72 65 20 69 6e 64 65 6e    74 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 3b 3b  | when.we're.indenting..........;; | 
| 932c0 |  20 54 68 69 73 20 68 61 73 20 74 6f 20 62 65 20    73 65 74 20 62 65 66 6f 72 65 20 63 61 6c 6c 69  | .This.has.to.be.set.before.calli | 
| 932e0 |  6e 67 20 70 61 72 73 65 2d 70 61 72 74 69 61 6c    2d 73 65 78 70 20 62 65 6c 6f 77 2e 0a 20 20 20  | ng.parse-partial-sexp.below..... | 
| 93300 |  20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 70 6f    69 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b 73  | .....(inhibit-point-motion-hooks | 
| 93320 |  20 74 29 29 0a 20 20 20 20 28 73 65 74 71 20 70    61 72 73 65 2d 73 74 61 74 75 73 20 28 73 61 76  | .t)).....(setq.parse-status.(sav | 
| 93340 |  65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | e-excursion..................... | 
| 93360 |  20 20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73    73 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29  | .....(syntax-ppss.(point-at-bol) | 
| 93380 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 6f 66 66    73 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28  | ))...........offset.(-.(point).( | 
| 933a0 |  73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | save-excursion.................. | 
| 933c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61    63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f  | .............(back-to-indentatio | 
| 933e0 |  6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | n).............................. | 
| 93400 |  20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20    3b 3b 20 44 6f 6e 27 74 20 74 6f 75 63 68 20 6d  | .(point)))).....;;.Don't.touch.m | 
| 93420 |  75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 73    2e 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6e  | ultiline.strings......(unless.(n | 
| 93440 |  74 68 20 33 20 70 61 72 73 65 2d 73 74 61 74 75    73 29 0a 20 20 20 20 20 20 28 69 6e 64 65 6e 74  | th.3.parse-status).......(indent | 
| 93460 |  2d 6c 69 6e 65 2d 74 6f 20 28 6a 73 32 2d 70 72    6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f 6e  | -line-to.(js2-proper-indentation | 
| 93480 |  20 70 61 72 73 65 2d 73 74 61 74 75 73 29 29 0a    20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d  | .parse-status)).......(when.(cl- | 
| 934a0 |  70 6c 75 73 70 20 6f 66 66 73 65 74 29 0a 20 20    20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63  | plusp.offset).........(forward-c | 
| 934c0 |  68 61 72 20 6f 66 66 73 65 74 29 29 29 29 29 0a    0a 3b 3b 3b 20 4a 53 58 20 49 6e 64 65 6e 74 61  | har.offset)))))..;;;.JSX.Indenta | 
| 934e0 |  74 69 6f 6e 0a 0a 3b 3b 20 54 68 65 20 66 6f 6c    6c 6f 77 69 6e 67 20 4a 53 58 20 69 6e 64 65 6e  | tion..;;.The.following.JSX.inden | 
| 93500 |  74 61 74 69 6f 6e 20 63 6f 64 65 20 69 73 20 63    6f 70 69 65 64 20 62 61 73 69 63 61 6c 6c 79 20  | tation.code.is.copied.basically. | 
| 93520 |  76 65 72 62 61 74 69 6d 20 66 72 6f 6d 20 6a 73    2e 65 6c 20 61 74 0a 3b 3b 20 39 35 38 64 61 37  | verbatim.from.js.el.at.;;.958da7 | 
| 93540 |  66 2c 20 65 78 63 65 70 74 20 74 68 61 74 20 74    68 65 20 70 72 65 66 69 78 65 73 20 6f 6e 20 74  | f,.except.that.the.prefixes.on.t | 
| 93560 |  68 65 20 66 75 6e 63 74 69 6f 6e 73 2f 76 61 72    69 61 62 6c 65 73 20 61 72 65 20 63 68 61 6e 67  | he.functions/variables.are.chang | 
| 93580 |  65 64 2e 0a 0a 28 64 65 66 73 75 62 73 74 20 6a    73 32 2d 2d 6a 73 78 2d 66 69 6e 64 2d 62 65 66  | ed...(defsubst.js2--jsx-find-bef | 
| 935a0 |  6f 72 65 2d 74 61 67 20 28 29 0a 20 20 22 46 69    6e 64 20 77 68 65 72 65 20 4a 53 58 20 73 74 61  | ore-tag.()..."Find.where.JSX.sta | 
| 935c0 |  72 74 73 2e 0a 0a 41 73 73 75 6d 65 20 4a 53 58    20 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20  | rts...Assume.JSX.appears.in.the. | 
| 935e0 |  66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 73 74 61 6e    63 65 73 3a 0a 2d 20 49 6e 73 69 64 65 20 70 61  | following.instances:.-.Inside.pa | 
| 93600 |  72 65 6e 74 68 65 73 65 73 2c 20 77 68 65 6e 20    72 65 74 75 72 6e 65 64 20 6f 72 20 61 73 20 74  | rentheses,.when.returned.or.as.t | 
| 93620 |  68 65 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e    74 0a 20 20 74 6f 20 61 20 66 75 6e 63 74 69 6f  | he.first.argument...to.a.functio | 
| 93640 |  6e 2c 20 61 6e 64 20 61 66 74 65 72 20 61 20 6e    65 77 6c 69 6e 65 0a 2d 20 57 68 65 6e 20 61 73  | n,.and.after.a.newline.-.When.as | 
| 93660 |  73 69 67 6e 65 64 20 74 6f 20 76 61 72 69 61 62    6c 65 73 20 6f 72 20 6f 62 6a 65 63 74 20 70 72  | signed.to.variables.or.object.pr | 
| 93680 |  6f 70 65 72 74 69 65 73 2c 20 62 75 74 20 6f 6e    6c 79 0a 20 20 6f 6e 20 61 20 73 69 6e 67 6c 65  | operties,.but.only...on.a.single | 
| 936a0 |  20 6c 69 6e 65 0a 2d 20 41 73 20 74 68 65 20 4e    2b 31 74 68 20 61 72 67 75 6d 65 6e 74 20 74 6f  | .line.-.As.the.N+1th.argument.to | 
| 936c0 |  20 61 20 66 75 6e 63 74 69 6f 6e 0a 0a 54 68 69    73 20 69 73 20 61 6e 20 6f 70 74 69 6d 69 7a 65  | .a.function..This.is.an.optimize | 
| 936e0 |  64 20 76 65 72 73 69 6f 6e 20 6f 66 20 28 72 65    2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64  | d.version.of.(re-search-backward | 
| 93700 |  20 5c 22 5b 28 2c 5d 5c 6e 5c 22 0a 6e 69 6c 20    74 29 2c 20 65 78 63 65 70 74 20 73 65 74 20 70  | .\"[(,]\n\".nil.t),.except.set.p | 
| 93720 |  6f 69 6e 74 20 74 6f 20 74 68 65 20 65 6e 64 20    6f 66 20 74 68 65 20 6d 61 74 63 68 2e 20 20 54  | oint.to.the.end.of.the.match...T | 
| 93740 |  68 69 73 20 6c 6f 67 69 63 0a 65 78 65 63 75 74    65 73 20 75 70 20 74 6f 20 74 68 65 20 6e 75 6d  | his.logic.executes.up.to.the.num | 
| 93760 |  62 65 72 20 6f 66 20 6c 69 6e 65 73 20 69 6e 20    74 68 65 20 66 69 6c 65 2c 20 73 6f 20 69 74 20  | ber.of.lines.in.the.file,.so.it. | 
| 93780 |  73 68 6f 75 6c 64 20 62 65 0a 72 65 61 6c 6c 79    20 66 61 73 74 20 74 6f 20 72 65 64 75 63 65 20  | should.be.really.fast.to.reduce. | 
| 937a0 |  74 68 61 74 20 69 6d 70 61 63 74 2e 22 0a 20 20    28 6c 65 74 20 28 70 6f 73 29 0a 20 20 20 20 28  | that.impact."...(let.(pos).....( | 
| 937c0 |  77 68 69 6c 65 20 28 61 6e 64 20 28 3e 20 28 70    6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 69 6e  | while.(and.(>.(point).(point-min | 
| 937e0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 28 6e 6f 74 20 28 70 72 6f 67 6e 0a 20  | )).................(not.(progn.. | 
| 93800 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69  | ......................(end-of-li | 
| 93820 |  6e 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68  | ne.0)........................(wh | 
| 93840 |  65 6e 20 28 6f 72 20 28 65 71 20 28 63 68 61 72    2d 62 65 66 6f 72 65 29 20 34 30 29 20 20 20 3b  | en.(or.(eq.(char-before).40)...; | 
| 93860 |  20 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | .(.............................. | 
| 93880 |  20 20 20 20 28 65 71 20 28 63 68 61 72 2d 62 65    66 6f 72 65 29 20 34 34 29 29 20 20 3b 20 2c 0a  | ....(eq.(char-before).44))..;.,. | 
| 938a0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70  | .........................(setq.p | 
| 938c0 |  6f 73 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29    29 29 29 29 29 0a 20 20 20 20 70 6f 73 29 29 0a  | os.(1-.(point)))))))).....pos)). | 
| 938e0 |  0a 28 64 65 66 63 6f 6e 73 74 20 6a 73 32 2d 2d    6a 73 78 2d 65 6e 64 2d 74 61 67 2d 72 65 0a 20  | .(defconst.js2--jsx-end-tag-re.. | 
| 93900 |  20 28 63 6f 6e 63 61 74 20 22 3c 2f 22 20 73 67    6d 6c 2d 6e 61 6d 65 2d 72 65 20 22 3e 5c 5c 7c  | .(concat."</".sgml-name-re.">\\| | 
| 93920 |  2f 3e 22 29 0a 20 20 22 46 69 6e 64 20 74 68 65    20 65 6e 64 20 6f 66 20 61 20 4a 53 58 20 65 6c  | />")..."Find.the.end.of.a.JSX.el | 
| 93940 |  65 6d 65 6e 74 2e 22 29 0a 0a 28 64 65 66 63 6f    6e 73 74 20 6a 73 32 2d 2d 6a 73 78 2d 61 66 74  | ement.")..(defconst.js2--jsx-aft | 
| 93960 |  65 72 2d 74 61 67 2d 72 65 20 22 5b 29 2c 5d 22    0a 20 20 22 46 69 6e 64 20 77 68 65 72 65 20 4a  | er-tag-re."[),]"..."Find.where.J | 
| 93980 |  53 58 20 65 6e 64 73 2e 0a 54 68 69 73 20 63 6f    6d 70 6c 65 6d 65 6e 74 73 20 74 68 65 20 61 73  | SX.ends..This.complements.the.as | 
| 939a0 |  73 75 6d 70 74 69 6f 6e 20 6f 66 20 77 68 65 72    65 20 4a 53 58 20 61 70 70 65 61 72 73 20 66 72  | sumption.of.where.JSX.appears.fr | 
| 939c0 |  6f 6d 0a 60 6a 73 2d 2d 6a 73 78 2d 62 65 66 6f    72 65 2d 74 61 67 2d 72 65 27 2c 20 77 68 69 63  | om.`js--jsx-before-tag-re',.whic | 
| 939e0 |  68 20 73 65 65 2e 22 29 0a 0a 28 64 65 66 75 6e    20 6a 73 32 2d 2d 6a 73 78 2d 69 6e 64 65 6e 74  | h.see.")..(defun.js2--jsx-indent | 
| 93a00 |  65 64 2d 65 6c 65 6d 65 6e 74 2d 70 20 28 29 0a    20 20 22 44 65 74 65 72 6d 69 6e 65 20 69 66 2f  | ed-element-p.()..."Determine.if/ | 
| 93a20 |  68 6f 77 20 74 68 65 20 63 75 72 72 65 6e 74 20    6c 69 6e 65 20 73 68 6f 75 6c 64 20 62 65 20 69  | how.the.current.line.should.be.i | 
| 93a40 |  6e 64 65 6e 74 65 64 20 61 73 20 4a 53 58 2e 0a    0a 52 65 74 75 72 6e 20 60 66 69 72 73 74 27 20  | ndented.as.JSX...Return.`first'. | 
| 93a60 |  66 6f 72 20 74 68 65 20 66 69 72 73 74 20 4a 53    58 45 6c 65 6d 65 6e 74 20 6f 6e 20 69 74 73 20  | for.the.first.JSXElement.on.its. | 
| 93a80 |  6f 77 6e 20 6c 69 6e 65 2e 0a 52 65 74 75 72 6e    20 60 6e 74 68 27 20 66 6f 72 20 73 75 62 73 65  | own.line..Return.`nth'.for.subse | 
| 93aa0 |  71 75 65 6e 74 20 6c 69 6e 65 73 20 6f 66 20 74    68 65 20 66 69 72 73 74 20 4a 53 58 45 6c 65 6d  | quent.lines.of.the.first.JSXElem | 
| 93ac0 |  65 6e 74 2e 0a 52 65 74 75 72 6e 20 60 65 78 70    72 65 73 73 69 6f 6e 27 20 66 6f 72 20 61 6e 20  | ent..Return.`expression'.for.an. | 
| 93ae0 |  65 6d 62 65 64 64 65 64 20 4a 53 20 65 78 70 72    65 73 73 69 6f 6e 2e 0a 52 65 74 75 72 6e 20 60  | embedded.JS.expression..Return.` | 
| 93b00 |  61 66 74 65 72 27 20 66 6f 72 20 61 6e 79 74 68    69 6e 67 20 61 66 74 65 72 20 74 68 65 20 6c 61  | after'.for.anything.after.the.la | 
| 93b20 |  73 74 20 4a 53 58 45 6c 65 6d 65 6e 74 2e 0a 52    65 74 75 72 6e 20 6e 69 6c 20 66 6f 72 20 6e 6f  | st.JSXElement..Return.nil.for.no | 
| 93b40 |  6e 2d 4a 53 58 20 6c 69 6e 65 73 2e 0a 0a 43 75    72 72 65 6e 74 6c 79 2c 20 4a 53 58 20 69 6e 64  | n-JSX.lines...Currently,.JSX.ind | 
| 93b60 |  65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6f 72 74    73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  | entation.supports.the.following. | 
| 93b80 |  73 74 79 6c 65 73 3a 0a 0a 2d 20 53 69 6e 67 6c    65 2d 6c 69 6e 65 20 65 6c 65 6d 65 6e 74 73 20  | styles:..-.Single-line.elements. | 
| 93ba0 |  28 69 6e 64 65 6e 74 65 64 20 6c 69 6b 65 20 6e    6f 72 6d 61 6c 20 4a 53 29 3a 0a 0a 20 20 76 61  | (indented.like.normal.JS):....va | 
| 93bc0 |  72 20 65 6c 65 6d 65 6e 74 20 3d 20 3c 64 69 76    3e 3c 2f 64 69 76 3e 3b 0a 0a 2d 20 4d 75 6c 74  | r.element.=.<div></div>;..-.Mult | 
| 93be0 |  69 2d 6c 69 6e 65 20 65 6c 65 6d 65 6e 74 73 20    28 65 6e 63 6c 6f 73 65 64 20 69 6e 20 70 61 72  | i-line.elements.(enclosed.in.par | 
| 93c00 |  65 6e 74 68 65 73 65 73 29 3a 0a 0a 20 20 66 75    6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20 20  | entheses):....function.().{..... | 
| 93c20 |  72 65 74 75 72 6e 20 28 0a 20 20 20 20 20 20 3c    64 69 76 3e 0a 20 20 20 20 20 20 20 20 3c 64 69  | return.(.......<div>.........<di | 
| 93c40 |  76 3e 3c 2f 64 69 76 3e 0a 20 20 20 20 20 20 3c    2f 64 69 76 3e 0a 20 20 20 20 29 3b 0a 20 7d 0a  | v></div>.......</div>.....);..}. | 
| 93c60 |  0a 2d 20 46 75 6e 63 74 69 6f 6e 20 61 72 67 75    6d 65 6e 74 73 3a 0a 0a 20 20 52 65 61 63 74 2e  | .-.Function.arguments:....React. | 
| 93c80 |  72 65 6e 64 65 72 28 0a 20 20 20 20 3c 64 69 76    3e 3c 2f 64 69 76 3e 2c 0a 20 20 20 20 64 6f 63  | render(.....<div></div>,.....doc | 
| 93ca0 |  75 6d 65 6e 74 2e 71 75 65 72 79 53 65 6c 65 63    74 6f 72 28 5c 5c 3d 27 2e 72 6f 6f 74 5c 5c 3d  | ument.querySelector(\\='.root\\= | 
| 93cc0 |  27 29 0a 20 20 29 3b 22 0a 20 20 28 6c 65 74 20    28 28 63 75 72 72 65 6e 74 2d 70 6f 73 20 28 70  | ')...);"...(let.((current-pos.(p | 
| 93ce0 |  6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28    63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 28 6c 69  | oint)).........(current-line.(li | 
| 93d00 |  6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73    29 29 0a 20 20 20 20 20 20 20 20 6c 61 73 74 2d  | ne-number-at-pos)).........last- | 
| 93d20 |  70 6f 73 0a 20 20 20 20 20 20 20 20 62 65 66 6f    72 65 2d 74 61 67 2d 70 6f 73 20 62 65 66 6f 72  | pos.........before-tag-pos.befor | 
| 93d40 |  65 2d 74 61 67 2d 6c 69 6e 65 0a 20 20 20 20 20    20 20 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73  | e-tag-line.........tag-start-pos | 
| 93d60 |  20 74 61 67 2d 73 74 61 72 74 2d 6c 69 6e 65 0a    20 20 20 20 20 20 20 20 74 61 67 2d 65 6e 64 2d  | .tag-start-line.........tag-end- | 
| 93d80 |  70 6f 73 20 74 61 67 2d 65 6e 64 2d 6c 69 6e 65    0a 20 20 20 20 20 20 20 20 61 66 74 65 72 2d 74  | pos.tag-end-line.........after-t | 
| 93da0 |  61 67 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20    70 61 72 65 6e 73 20 70 61 72 65 6e 20 74 79 70  | ag-line.........parens.paren.typ | 
| 93dc0 |  65 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63    75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 61 6e  | e).....(save-excursion.......(an | 
| 93de0 |  64 0a 20 20 20 20 20 20 20 3b 3b 20 44 65 74 65    72 6d 69 6e 65 20 69 66 20 77 65 27 72 65 20 69  | d........;;.Determine.if.we're.i | 
| 93e00 |  6e 73 69 64 65 20 61 20 6a 73 78 20 65 6c 65 6d    65 6e 74 0a 20 20 20 20 20 20 20 28 70 72 6f 67  | nside.a.jsx.element........(prog | 
| 93e20 |  6e 0a 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d    6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20  | n..........(end-of-line)........ | 
| 93e40 |  20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6e    6f 74 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73  | ..(while.(and.(not.tag-start-pos | 
| 93e60 |  29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 73 65 74 71 20 6c 61 73  | )......................(setq.las | 
| 93e80 |  74 2d 70 6f 73 20 28 6a 73 32 2d 2d 6a 73 78 2d    66 69 6e 64 2d 62 65 66 6f 72 65 2d 74 61 67 29  | t-pos.(js2--jsx-find-before-tag) | 
| 93ea0 |  29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77    68 69 6c 65 20 28 66 6f 72 77 61 72 64 2d 63 6f  | ))............(while.(forward-co | 
| 93ec0 |  6d 6d 65 6e 74 20 31 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 63  | mment.1))............(when.(=.(c | 
| 93ee0 |  68 61 72 2d 61 66 74 65 72 29 20 36 30 29 20 3b    20 3c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | har-after).60).;.<.............. | 
| 93f00 |  28 73 65 74 71 20 62 65 66 6f 72 65 2d 74 61 67    2d 70 6f 73 20 6c 61 73 74 2d 70 6f 73 0a 20 20  | (setq.before-tag-pos.last-pos... | 
| 93f20 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73 20 28  | .................tag-start-pos.( | 
| 93f40 |  70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6c  | point)))............(goto-char.l | 
| 93f60 |  61 73 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20    20 20 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73  | ast-pos))..........tag-start-pos | 
| 93f80 |  29 0a 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a    20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62  | )........(progn..........(setq.b | 
| 93fa0 |  65 66 6f 72 65 2d 74 61 67 2d 6c 69 6e 65 20 28    6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70  | efore-tag-line.(line-number-at-p | 
| 93fc0 |  6f 73 20 62 65 66 6f 72 65 2d 74 61 67 2d 70 6f    73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | os.before-tag-pos).............. | 
| 93fe0 |  20 20 74 61 67 2d 73 74 61 72 74 2d 6c 69 6e 65    20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74  | ..tag-start-line.(line-number-at | 
| 94000 |  2d 70 6f 73 20 74 61 67 2d 73 74 61 72 74 2d 70    6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 61  | -pos.tag-start-pos))..........(a | 
| 94020 |  6e 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20    41 20 22 62 65 66 6f 72 65 22 20 6c 69 6e 65 20  | nd...........;;.A."before".line. | 
| 94040 |  77 68 69 63 68 20 61 6c 73 6f 20 73 74 61 72 74    73 20 61 6e 20 65 6c 65 6d 65 6e 74 20 62 65 67  | which.also.starts.an.element.beg | 
| 94060 |  69 6e 73 20 77 69 74 68 20 6a 73 2c 20 73 6f 0a    20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64  | ins.with.js,.so...........;;.ind | 
| 94080 |  65 6e 74 20 69 74 20 6c 69 6b 65 20 6a 73 0a 20    20 20 20 20 20 20 20 20 20 28 3e 20 63 75 72 72  | ent.it.like.js...........(>.curr | 
| 940a0 |  65 6e 74 2d 6c 69 6e 65 20 62 65 66 6f 72 65 2d    74 61 67 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20  | ent-line.before-tag-line)....... | 
| 940c0 |  20 20 20 20 3b 3b 20 4f 6e 6c 79 20 69 6e 64 65    6e 74 20 74 68 65 20 6a 73 78 20 6c 69 6e 65 73  | ....;;.Only.indent.the.jsx.lines | 
| 940e0 |  20 6c 69 6b 65 20 6a 73 78 0a 20 20 20 20 20 20    20 20 20 20 28 3e 3d 20 63 75 72 72 65 6e 74 2d  | .like.jsx...........(>=.current- | 
| 94100 |  6c 69 6e 65 20 74 61 67 2d 73 74 61 72 74 2d 6c    69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 28 63  | line.tag-start-line)))........(c | 
| 94120 |  6f 6e 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 41    6e 61 6c 79 7a 65 20 62 6f 75 6e 64 73 20 69 66  | ond.........;;.Analyze.bounds.if | 
| 94140 |  20 74 68 65 72 65 20 61 72 65 20 61 6e 79 0a 20    20 20 20 20 20 20 20 28 28 70 72 6f 67 6e 0a 20  | .there.are.any.........((progn.. | 
| 94160 |  20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65    20 28 61 6e 64 20 28 6e 6f 74 20 74 61 67 2d 65  | ..........(while.(and.(not.tag-e | 
| 94180 |  6e 64 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28  | nd-pos)........................( | 
| 941a0 |  73 65 74 71 20 6c 61 73 74 2d 70 6f 73 20 28 72    65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64  | setq.last-pos.(re-search-forward | 
| 941c0 |  20 6a 73 32 2d 2d 6a 73 78 2d 65 6e 64 2d 74 61    67 2d 72 65 20 6e 69 6c 20 74 29 29 29 0a 20 20  | .js2--jsx-end-tag-re.nil.t)))... | 
| 941e0 |  20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c    65 20 28 66 6f 72 77 61 72 64 2d 63 6f 6d 6d 65  | ...........(while.(forward-comme | 
| 94200 |  6e 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69  | nt.1))..............(when.(looki | 
| 94220 |  6e 67 2d 61 74 20 6a 73 32 2d 2d 6a 73 78 2d 61    66 74 65 72 2d 74 61 67 2d 72 65 29 0a 20 20 20  | ng-at.js2--jsx-after-tag-re).... | 
| 94240 |  20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74    71 20 74 61 67 2d 65 6e 64 2d 70 6f 73 20 6c 61  | ............(setq.tag-end-pos.la | 
| 94260 |  73 74 2d 70 6f 73 29 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 74 61 67 2d 65 6e 64 2d 70 6f 73  | st-pos)))............tag-end-pos | 
| 94280 |  29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71    20 74 61 67 2d 65 6e 64 2d 6c 69 6e 65 20 28 6c  | )..........(setq.tag-end-line.(l | 
| 942a0 |  69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f    73 20 74 61 67 2d 65 6e 64 2d 70 6f 73 29 0a 20  | ine-number-at-pos.tag-end-pos).. | 
| 942c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 66    74 65 72 2d 74 61 67 2d 6c 69 6e 65 20 28 6c 69  | ..............after-tag-line.(li | 
| 942e0 |  6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73    20 61 66 74 65 72 2d 74 61 67 2d 6c 69 6e 65 29  | ne-number-at-pos.after-tag-line) | 
| 94300 |  29 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28    61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20  | )..........(or.(and............. | 
| 94320 |  20 20 3b 3b 20 45 6e 73 75 72 65 20 77 65 27 72    65 20 61 63 74 75 61 6c 6c 79 20 77 69 74 68 69  | ..;;.Ensure.we're.actually.withi | 
| 94340 |  6e 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20    74 68 65 20 6a 73 78 0a 20 20 20 20 20 20 20 20  | n.the.bounds.of.the.jsx......... | 
| 94360 |  20 20 20 20 20 20 28 3c 3d 20 63 75 72 72 65 6e    74 2d 6c 69 6e 65 20 74 61 67 2d 65 6e 64 2d 6c  | ......(<=.current-line.tag-end-l | 
| 94380 |  69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20    20 20 20 3b 3b 20 41 6e 20 22 61 66 74 65 72 22  | ine)...............;;.An."after" | 
| 943a0 |  20 6c 69 6e 65 20 77 68 69 63 68 20 64 6f 65 73    20 6e 6f 74 20 65 6e 64 20 61 6e 20 65 6c 65 6d  | .line.which.does.not.end.an.elem | 
| 943c0 |  65 6e 74 20 62 65 67 69 6e 73 20 77 69 74 68 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b  | ent.begins.with...............;; | 
| 943e0 |  20 6a 73 2c 20 73 6f 20 69 6e 64 65 6e 74 20 69    74 20 6c 69 6b 65 20 6a 73 0a 20 20 20 20 20 20  | .js,.so.indent.it.like.js....... | 
| 94400 |  20 20 20 20 20 20 20 20 28 3c 3d 20 63 75 72 72    65 6e 74 2d 6c 69 6e 65 20 61 66 74 65 72 2d 74  | ........(<=.current-line.after-t | 
| 94420 |  61 67 2d 6c 69 6e 65 29 29 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20  | ag-line))..............(and..... | 
| 94440 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e    64 6c 65 20 61 6e 6f 74 68 65 72 20 63 61 73 65  | ..........;;.Handle.another.case | 
| 94460 |  20 77 68 65 72 65 20 74 68 65 72 65 20 63 6f 75    6c 64 20 62 65 20 65 2e 67 2e 20 63 6f 6d 6d 65  | .where.there.could.be.e.g..comme | 
| 94480 |  6e 74 73 20 61 66 74 65 72 0a 20 20 20 20 20 20    20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 65  | nts.after...............;;.the.e | 
| 944a0 |  6c 65 6d 65 6e 74 0a 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3e 20 63 75 72 72 65 6e 74 2d  | lement...............(>.current- | 
| 944c0 |  6c 69 6e 65 20 74 61 67 2d 65 6e 64 2d 6c 69 6e    65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | line.tag-end-line).............. | 
| 944e0 |  20 28 3c 20 63 75 72 72 65 6e 74 2d 6c 69 6e 65    20 61 66 74 65 72 2d 74 61 67 2d 6c 69 6e 65 29  | .(<.current-line.after-tag-line) | 
| 94500 |  0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28    73 65 74 71 20 74 79 70 65 20 27 61 66 74 65 72  | ...............(setq.type.'after | 
| 94520 |  29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20    54 68 65 79 20 6d 61 79 20 6e 6f 74 20 62 65 20  | )))).........;;.They.may.not.be. | 
| 94540 |  61 6e 79 20 62 6f 75 6e 64 73 20 28 79 65 74 29    0a 20 20 20 20 20 20 20 20 28 74 29 29 0a 20 20  | any.bounds.(yet).........(t))... | 
| 94560 |  20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66    20 77 65 27 72 65 20 69 6e 73 69 64 65 20 61 6e  | .....;;.Check.if.we're.inside.an | 
| 94580 |  20 65 6d 62 65 64 64 65 64 20 6d 75 6c 74 69 2d    6c 69 6e 65 20 6a 73 20 65 78 70 72 65 73 73 69  | .embedded.multi-line.js.expressi | 
| 945a0 |  6f 6e 0a 20 20 20 20 20 20 20 28 63 6f 6e 64 0a    20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 74 79  | on........(cond.........((not.ty | 
| 945c0 |  70 65 29 0a 20 20 20 20 20 20 20 20 20 28 67 6f    74 6f 2d 63 68 61 72 20 63 75 72 72 65 6e 74 2d  | pe)..........(goto-char.current- | 
| 945e0 |  70 6f 73 29 0a 20 20 20 20 20 20 20 20 20 28 65    6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20  | pos)..........(end-of-line)..... | 
| 94600 |  20 20 20 20 20 28 73 65 74 71 20 70 61 72 65 6e    73 20 28 6e 74 68 20 39 20 28 73 79 6e 74 61 78  | .....(setq.parens.(nth.9.(syntax | 
| 94620 |  2d 70 70 73 73 29 29 29 0a 20 20 20 20 20 20 20    20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 70 61  | -ppss)))..........(while.(and.pa | 
| 94640 |  72 65 6e 73 20 28 6e 6f 74 20 74 79 70 65 29 29    0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74  | rens.(not.type))............(set | 
| 94660 |  71 20 70 61 72 65 6e 20 28 63 61 72 20 70 61 72    65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20  | q.paren.(car.parens))........... | 
| 94680 |  20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20    20 20 20 28 28 61 6e 64 20 28 3e 3d 20 70 61 72  | .(cond.............((and.(>=.par | 
| 946a0 |  65 6e 20 74 61 67 2d 73 74 61 72 74 2d 70 6f 73    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | en.tag-start-pos)............... | 
| 946c0 |  20 20 20 20 3b 3b 20 43 75 72 6c 79 20 62 72 61    63 6b 65 74 20 69 6e 64 69 63 61 74 65 73 20 74  | ....;;.Curly.bracket.indicates.t | 
| 946e0 |  68 65 20 73 74 61 72 74 20 6f 66 20 61 6e 20 65    6d 62 65 64 64 65 64 20 65 78 70 72 65 73 73 69  | he.start.of.an.embedded.expressi | 
| 94700 |  6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 3d 20 28 63 68 61 72 2d 61 66  | on...................(=.(char-af | 
| 94720 |  74 65 72 20 70 61 72 65 6e 29 20 31 32 33 29 20    3b 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ter.paren).123).;.{............. | 
| 94740 |  20 20 20 20 20 20 3b 3b 20 54 68 65 20 66 69 72    73 74 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 65  | ......;;.The.first.line.of.the.e | 
| 94760 |  78 70 72 65 73 73 69 6f 6e 20 69 73 20 69 6e 64    65 6e 74 65 64 20 6c 69 6b 65 20 73 67 6d 6c 0a  | xpression.is.indented.like.sgml. | 
| 94780 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 28 3e 20 63 75 72 72 65 6e 74 2d 6c 69 6e  | ..................(>.current-lin | 
| 947a0 |  65 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61    74 2d 70 6f 73 20 70 61 72 65 6e 29 29 0a 20 20  | e.(line-number-at-pos.paren))... | 
| 947c0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3b 3b 20 43 68 65 63 6b 20 69 66 20 77 69 74 68  | ................;;.Check.if.with | 
| 947e0 |  69 6e 20 61 20 63 6c 6f 73 69 6e 67 20 63 75 72    6c 79 20 62 72 61 63 6b 65 74 20 28 69 66 20 61  | in.a.closing.curly.bracket.(if.a | 
| 94800 |  6e 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 3b 3b 20 28 65 78 63 6c 75 73  | ny)...................;;.(exclus | 
| 94820 |  69 76 65 2c 20 61 73 20 74 68 65 20 63 6c 6f 73    69 6e 67 20 62 72 61 63 6b 65 74 20 69 73 20 69  | ive,.as.the.closing.bracket.is.i | 
| 94840 |  6e 64 65 6e 74 65 64 20 6c 69 6b 65 20 73 67 6d    6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  | ndented.like.sgml).............. | 
| 94860 |  20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28  | .....(cond....................(( | 
| 94880 |  70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74  | progn.......................(got | 
| 948a0 |  6f 2d 63 68 61 72 20 70 61 72 65 6e 29 0a 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | o-char.paren)................... | 
| 948c0 |  20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f    72 73 20 28 6c 65 74 20 28 66 6f 72 77 61 72 64  | ....(ignore-errors.(let.(forward | 
| 948e0 |  2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e 29 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | -sexp-function)................. | 
| 94900 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d  | .......................(forward- | 
| 94920 |  73 65 78 70 29 29 29 29 0a 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20  | sexp)))).....................(<. | 
| 94940 |  63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 28 6c 69    6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73  | current-line.(line-number-at-pos | 
| 94960 |  29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 28 74 29 29 29 0a 20 20 20  | )))....................(t))).... | 
| 94980 |  20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 64    69 63 61 74 65 20 74 68 69 73 20 67 75 79 20 77  | ..........;;.Indicate.this.guy.w | 
| 949a0 |  69 6c 6c 20 62 65 20 69 6e 64 65 6e 74 65 64 20    73 70 65 63 69 61 6c 6c 79 0a 20 20 20 20 20 20  | ill.be.indented.specially....... | 
| 949c0 |  20 20 20 20 20 20 20 28 73 65 74 71 20 74 79 70    65 20 27 65 78 70 72 65 73 73 69 6f 6e 29 29 0a  | .......(setq.type.'expression)). | 
| 949e0 |  20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28    73 65 74 71 20 70 61 72 65 6e 73 20 28 63 64 72  | ............(t.(setq.parens.(cdr | 
| 94a00 |  20 70 61 72 65 6e 73 29 29 29 29 29 0a 20 20 20    20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20  | .parens)))))..........t)........ | 
| 94a20 |  20 28 74 29 29 0a 20 20 20 20 20 20 20 28 63 6f    6e 64 0a 20 20 20 20 20 20 20 20 28 74 79 70 65  | .(t))........(cond.........(type | 
| 94a40 |  29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 64    65 6e 74 20 74 68 65 20 66 69 72 73 74 20 6a 73  | ).........;;.Indent.the.first.js | 
| 94a60 |  78 20 74 68 69 6e 67 20 6c 69 6b 65 20 6a 73 20    73 6f 20 77 65 20 63 61 6e 20 69 6e 64 65 6e 74  | x.thing.like.js.so.we.can.indent | 
| 94a80 |  20 66 75 74 75 72 65 20 6a 73 78 20 74 68 69 6e    67 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 6c 69  | .future.jsx.things.........;;.li | 
| 94aa0 |  6b 65 20 73 67 6d 6c 20 72 65 6c 61 74 69 76 65    20 74 6f 20 74 68 65 20 66 69 72 73 74 20 74 68  | ke.sgml.relative.to.the.first.th | 
| 94ac0 |  69 6e 67 0a 20 20 20 20 20 20 20 20 28 28 3d 20    63 75 72 72 65 6e 74 2d 6c 69 6e 65 20 74 61 67  | ing.........((=.current-line.tag | 
| 94ae0 |  2d 73 74 61 72 74 2d 6c 69 6e 65 29 20 27 66 69    72 73 74 29 0a 20 20 20 20 20 20 20 20 28 27 6e  | -start-line).'first).........('n | 
| 94b00 |  74 68 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61    63 72 6f 20 6a 73 32 2d 2d 61 73 2d 73 67 6d 6c  | th))))))..(defmacro.js2--as-sgml | 
| 94b20 |  20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20    22 45 78 65 63 75 74 65 20 42 4f 44 59 20 61 73  | .(&rest.body)..."Execute.BODY.as | 
| 94b40 |  20 69 66 20 69 6e 20 73 67 6d 6c 2d 6d 6f 64 65    2e 22 0a 20 20 60 28 77 69 74 68 2d 73 79 6e 74  | .if.in.sgml-mode."...`(with-synt | 
| 94b60 |  61 78 2d 74 61 62 6c 65 20 73 67 6d 6c 2d 6d 6f    64 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 0a  | ax-table.sgml-mode-syntax-table. | 
| 94b80 |  20 20 20 20 20 28 6c 65 74 20 28 66 6f 72 77 61    72 64 2d 73 65 78 70 2d 66 75 6e 63 74 69 6f 6e  | .....(let.(forward-sexp-function | 
| 94ba0 |  0a 20 20 20 20 20 20 20 20 20 20 20 70 61 72 73    65 2d 73 65 78 70 2d 6c 6f 6f 6b 75 70 2d 70 72  | ............parse-sexp-lookup-pr | 
| 94bc0 |  6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 20 20    20 2c 40 62 6f 64 79 29 29 29 0a 0a 28 64 65 66  | operties)........,@body)))..(def | 
| 94be0 |  75 6e 20 6a 73 32 2d 2d 65 78 70 72 65 73 73 69    6f 6e 2d 69 6e 2d 73 67 6d 6c 2d 69 6e 64 65 6e  | un.js2--expression-in-sgml-inden | 
| 94c00 |  74 2d 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 64    65 6e 74 20 74 68 65 20 63 75 72 72 65 6e 74 20  | t-line.()..."Indent.the.current. | 
| 94c20 |  6c 69 6e 65 20 61 73 20 4a 61 76 61 53 63 72 69    70 74 20 6f 72 20 53 47 4d 4c 20 28 77 68 69 63  | line.as.JavaScript.or.SGML.(whic | 
| 94c40 |  68 65 76 65 72 20 69 73 20 66 61 72 74 68 65 72    29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 69 6e 64  | hever.is.farther)."...(let*.(ind | 
| 94c60 |  65 6e 74 2d 63 6f 6c 0a 20 20 20 20 20 20 20 20    20 28 73 61 76 65 70 20 28 70 6f 69 6e 74 29 29  | ent-col..........(savep.(point)) | 
| 94c80 |  0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 6f 6e    27 74 20 77 68 69 6e 65 20 61 62 6f 75 74 20 65  | ..........;;.Don't.whine.about.e | 
| 94ca0 |  72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77    68 65 6e 20 77 65 27 72 65 20 69 6e 64 65 6e 74  | rrors/warnings.when.we're.indent | 
| 94cc0 |  69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 3b 3b    20 54 68 69 73 20 68 61 73 20 74 6f 20 62 65 20  | ing...........;;.This.has.to.be. | 
| 94ce0 |  73 65 74 20 62 65 66 6f 72 65 20 63 61 6c 6c 69    6e 67 20 70 61 72 73 65 2d 70 61 72 74 69 61 6c  | set.before.calling.parse-partial | 
| 94d00 |  2d 73 65 78 70 20 62 65 6c 6f 77 2e 0a 20 20 20    20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 70  | -sexp.below...........(inhibit-p | 
| 94d20 |  6f 69 6e 74 2d 6d 6f 74 69 6f 6e 2d 68 6f 6f 6b    73 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 70  | oint-motion-hooks.t)..........(p | 
| 94d40 |  61 72 73 65 2d 73 74 61 74 75 73 20 28 73 61 76    65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20  | arse-status.(save-excursion..... | 
| 94d60 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 28 73 79 6e 74 61 78 2d 70 70 73  | .....................(syntax-pps | 
| 94d80 |  73 20 28 70 6f 69 6e 74 2d 61 74 2d 62 6f 6c 29    29 29 29 29 0a 20 20 20 20 3b 3b 20 44 6f 6e 27  | s.(point-at-bol))))).....;;.Don' | 
| 94da0 |  74 20 74 6f 75 63 68 20 6d 75 6c 74 69 6c 69 6e    65 20 73 74 72 69 6e 67 73 2e 0a 20 20 20 20 28  | t.touch.multiline.strings......( | 
| 94dc0 |  75 6e 6c 65 73 73 20 28 6e 74 68 20 33 20 70 61    72 73 65 2d 73 74 61 74 75 73 29 0a 20 20 20 20  | unless.(nth.3.parse-status)..... | 
| 94de0 |  20 20 28 73 65 74 71 20 69 6e 64 65 6e 74 2d 63    6f 6c 20 28 73 61 76 65 2d 65 78 63 75 72 73 69  | ..(setq.indent-col.(save-excursi | 
| 94e00 |  6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63  | on..........................(bac | 
| 94e20 |  6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e    29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  | k-to-indentation)............... | 
| 94e40 |  20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28    3e 3d 20 28 70 6f 69 6e 74 29 20 73 61 76 65 70  | ...........(if.(>=.(point).savep | 
| 94e60 |  29 20 28 73 65 74 71 20 73 61 76 65 70 20 6e 69    6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  | ).(setq.savep.nil))............. | 
| 94e80 |  20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73    32 2d 2d 61 73 2d 73 67 6d 6c 20 28 73 67 6d 6c  | .............(js2--as-sgml.(sgml | 
| 94ea0 |  2d 63 61 6c 63 75 6c 61 74 65 2d 69 6e 64 65 6e    74 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20  | -calculate-indent)))).......(if. | 
| 94ec0 |  28 6e 75 6c 6c 20 69 6e 64 65 6e 74 2d 63 6f 6c    29 0a 20 20 20 20 20 20 20 20 20 20 27 6e 6f 69  | (null.indent-col)...........'noi | 
| 94ee0 |  6e 64 65 6e 74 0a 20 20 20 20 20 20 20 20 3b 3b    20 55 73 65 20 77 68 69 63 68 65 76 65 72 20 69  | ndent.........;;.Use.whichever.i | 
| 94f00 |  6e 64 65 6e 74 61 74 69 6f 6e 20 63 6f 6c 75 6d    6e 20 69 73 20 67 72 65 61 74 65 72 2c 20 73 75  | ndentation.column.is.greater,.su | 
| 94f20 |  63 68 20 74 68 61 74 20 74 68 65 20 73 67 6d 6c    0a 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6c 75  | ch.that.the.sgml.........;;.colu | 
| 94f40 |  6d 6e 20 69 73 20 65 66 66 65 63 74 69 76 65 6c    79 20 61 20 6d 69 6e 69 6d 75 6d 0a 20 20 20 20  | mn.is.effectively.a.minimum..... | 
| 94f60 |  20 20 20 20 28 73 65 74 71 20 69 6e 64 65 6e 74    2d 63 6f 6c 20 28 6d 61 78 20 28 6a 73 32 2d 70  | ....(setq.indent-col.(max.(js2-p | 
| 94f80 |  72 6f 70 65 72 2d 69 6e 64 65 6e 74 61 74 69 6f    6e 20 70 61 72 73 65 2d 73 74 61 74 75 73 29 0a  | roper-indentation.parse-status). | 
| 94fa0 |  20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b  | ..............................(+ | 
| 94fc0 |  20 69 6e 64 65 6e 74 2d 63 6f 6c 20 6a 73 32 2d    62 61 73 69 63 2d 6f 66 66 73 65 74 29 29 29 0a  | .indent-col.js2-basic-offset))). | 
| 94fe0 |  20 20 20 20 20 20 20 20 28 69 66 20 73 61 76 65    70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73  | ........(if.savep.............(s | 
| 95000 |  61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 69    6e 64 65 6e 74 2d 6c 69 6e 65 2d 74 6f 20 69 6e  | ave-excursion.(indent-line-to.in | 
| 95020 |  64 65 6e 74 2d 63 6f 6c 29 29 0a 20 20 20 20 20    20 20 20 20 20 28 69 6e 64 65 6e 74 2d 6c 69 6e  | dent-col))...........(indent-lin | 
| 95040 |  65 2d 74 6f 20 69 6e 64 65 6e 74 2d 63 6f 6c 29    29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6a 73  | e-to.indent-col))))))..(defun.js | 
| 95060 |  32 2d 6a 73 78 2d 69 6e 64 65 6e 74 2d 6c 69 6e    65 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74  | 2-jsx-indent-line.()..."Indent.t | 
| 95080 |  68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20    61 73 20 4a 53 58 20 28 77 69 74 68 20 53 47 4d  | he.current.line.as.JSX.(with.SGM | 
| 950a0 |  4c 20 6f 66 66 73 65 74 73 29 2e 0a 69 2e 65 2e    2c 20 63 75 73 74 6f 6d 69 7a 65 20 4a 53 58 20  | L.offsets)..i.e.,.customize.JSX. | 
| 950c0 |  65 6c 65 6d 65 6e 74 20 69 6e 64 65 6e 74 61 74    69 6f 6e 20 77 69 74 68 20 60 73 67 6d 6c 2d 62  | element.indentation.with.`sgml-b | 
| 950e0 |  61 73 69 63 2d 6f 66 66 73 65 74 27 0a 65 74 20    61 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74  | asic-offset'.et.al."...(interact | 
| 95100 |  69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e    64 65 6e 74 61 74 69 6f 6e 2d 74 79 70 65 20 28  | ive)...(let.((indentation-type.( | 
| 95120 |  6a 73 32 2d 2d 6a 73 78 2d 69 6e 64 65 6e 74 65    64 2d 65 6c 65 6d 65 6e 74 2d 70 29 29 29 0a 20  | js2--jsx-indented-element-p))).. | 
| 95140 |  20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28    65 71 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 74  | ...(cond......((eq.indentation-t | 
| 95160 |  79 70 65 20 27 65 78 70 72 65 73 73 69 6f 6e 29    0a 20 20 20 20 20 20 28 6a 73 32 2d 2d 65 78 70  | ype.'expression).......(js2--exp | 
| 95180 |  72 65 73 73 69 6f 6e 2d 69 6e 2d 73 67 6d 6c 2d    69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 0a 20 20  | ression-in-sgml-indent-line))... | 
| 951a0 |  20 20 20 28 28 6f 72 20 28 65 71 20 69 6e 64 65    6e 74 61 74 69 6f 6e 2d 74 79 70 65 20 27 66 69  | ...((or.(eq.indentation-type.'fi | 
| 951c0 |  72 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28    65 71 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2d 74  | rst)...........(eq.indentation-t | 
| 951e0 |  79 70 65 20 27 61 66 74 65 72 29 29 0a 20 20 20    20 20 20 3b 3b 20 44 6f 6e 27 74 20 74 72 65 61  | ype.'after)).......;;.Don't.trea | 
| 95200 |  74 20 74 68 69 73 20 66 69 72 73 74 20 74 68 69    6e 67 20 61 73 20 61 20 63 6f 6e 74 69 6e 75 65  | t.this.first.thing.as.a.continue | 
| 95220 |  64 20 65 78 70 72 65 73 73 69 6f 6e 20 28 6f 66    74 65 6e 20 61 20 22 3c 22 20 6f 72 0a 20 20 20  | d.expression.(often.a."<".or.... | 
| 95240 |  20 20 20 3b 3b 20 22 3e 22 20 63 61 75 73 65 73    20 74 68 69 73 20 6d 69 73 69 6e 74 65 72 70 72  | ...;;.">".causes.this.misinterpr | 
| 95260 |  65 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 28    63 6c 2d 6c 65 74 66 20 28 28 28 73 79 6d 62 6f  | etation).......(cl-letf.(((symbo | 
| 95280 |  6c 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6a 73 32    2d 63 6f 6e 74 69 6e 75 65 64 2d 65 78 70 72 65  | l-function.#'js2-continued-expre | 
| 952a0 |  73 73 69 6f 6e 2d 70 29 20 27 69 67 6e 6f 72 65    29 29 0a 20 20 20 20 20 20 20 20 28 6a 73 32 2d  | ssion-p).'ignore)).........(js2- | 
| 952c0 |  69 6e 64 65 6e 74 2d 6c 69 6e 65 29 29 29 0a 20    20 20 20 20 28 28 65 71 20 69 6e 64 65 6e 74 61  | indent-line)))......((eq.indenta | 
| 952e0 |  74 69 6f 6e 2d 74 79 70 65 20 27 6e 74 68 29 0a    20 20 20 20 20 20 28 6a 73 32 2d 2d 61 73 2d 73  | tion-type.'nth).......(js2--as-s | 
| 95300 |  67 6d 6c 20 28 73 67 6d 6c 2d 69 6e 64 65 6e 74    2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 28 74  | gml.(sgml-indent-line)))......(t | 
| 95320 |  20 28 6a 73 32 2d 69 6e 64 65 6e 74 2d 6c 69 6e    65 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65  | .(js2-indent-line)))))..(provide | 
| 95340 |  20 27 6a 73 32 2d 6f 6c 64 2d 69 6e 64 65 6e 74    29 0a 0a 3b 3b 3b 20 6a 73 32 2d 6f 6c 64 2d 69  | .'js2-old-indent)..;;;.js2-old-i | 
| 95360 |  6e 64 65 6e 74 2e 65 6c 20 65 6e 64 73 20 68 65    72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00  | ndent.el.ends.here.............. | 
| 95380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 953a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 953c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 953e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95400 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 4e 45 57 53 2e 6d 64 00 00 00 00 00 00 00  | js2-mode-20231224/NEWS.md....... | 
| 95420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95460 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 95480 |  30 30 32 33 34 31 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 31 33 34 00 20 30 00 00 00  | 0023414.00000000000.013134..0... | 
| 954a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 954c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 954e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95500 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 95520 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 95540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 955a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 955c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 955e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 95600 |  23 20 48 69 73 74 6f 72 79 20 6f 66 20 75 73 65    72 2d 76 69 73 69 62 6c 65 20 63 68 61 6e 67 65  | #.History.of.user-visible.change | 
| 95620 |  73 0a 0a 23 23 20 32 30 32 33 2d 31 32 2d 32 34    0a 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20  | s..##.2023-12-24..*.Support.for. | 
| 95640 |  61 73 79 6e 63 20 67 65 6e 65 72 61 74 6f 72 73    20 69 6e 20 6d 65 74 68 6f 64 20 6e 6f 74 61 74  | async.generators.in.method.notat | 
| 95660 |  69 6f 6e 0a 20 20 28 5b 23 35 39 38 5d 28 68 74    74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d  | ion...([#598](https://github.com | 
| 95680 |  2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69    73 73 75 65 73 2f 35 39 38 29 29 2e 0a 2a 20 53  | /mooz/js2-mode/issues/598))..*.S | 
| 956a0 |  75 70 70 6f 72 74 20 66 6f 72 20 73 74 61 74 69    63 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e  | upport.for.static.initialization | 
| 956c0 |  20 62 6c 6f 63 6b 73 0a 20 20 28 5b 23 35 39 34    5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62  | .blocks...([#594](https://github | 
| 956e0 |  2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f    64 65 2f 69 73 73 75 65 73 2f 35 39 34 29 29 2e  | .com/mooz/js2-mode/issues/594)). | 
| 95700 |  0a 0a 23 23 20 32 30 32 33 2d 30 34 2d 30 38 0a    0a 2a 20 53 75 70 70 6f 72 74 20 74 6f 70 2d 6c  | ..##.2023-04-08..*.Support.top-l | 
| 95720 |  65 76 65 6c 20 61 77 61 69 74 0a 20 20 28 5b 23    35 39 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74  | evel.await...([#593](https://git | 
| 95740 |  68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32    2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f 35 39 33  | hub.com/mooz/js2-mode/issues/593 | 
| 95760 |  29 29 2e 0a 2a 20 46 69 78 20 66 6f 72 20 65 73    63 61 70 69 6e 67 20 69 6e 73 69 64 65 20 74 65  | ))..*.Fix.for.escaping.inside.te | 
| 95780 |  6d 70 6c 61 74 65 20 6c 69 74 65 72 61 6c 0a 20    20 28 5b 23 35 39 32 5d 28 68 74 74 70 73 3a 2f  | mplate.literal...([#592](https:/ | 
| 957a0 |  2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a    2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73  | /github.com/mooz/js2-mode/issues | 
| 957c0 |  2f 35 39 32 29 29 2e 0a 0a 23 23 20 32 30 32 32    2d 30 37 2d 31 30 0a 0a 2a 20 46 69 78 20 66 6f  | /592))...##.2022-07-10..*.Fix.fo | 
| 957e0 |  72 20 6e 6f 64 65 20 70 6f 73 69 74 69 6f 6e 20    6f 66 20 60 6a 73 32 2d 6e 65 77 2d 6e 6f 64 65  | r.node.position.of.`js2-new-node | 
| 95800 |  60 0a 20 20 28 5b 23 35 39 31 5d 28 68 74 74 70    73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d  | `...([#591](https://github.com/m | 
| 95820 |  6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73    75 65 73 2f 35 39 31 29 29 2e 0a 2a 20 53 75 70  | ooz/js2-mode/issues/591))..*.Sup | 
| 95840 |  70 6f 72 74 20 74 68 65 20 64 20 28 68 61 73 49    6e 64 69 63 65 73 29 20 61 6e 64 20 73 20 28 64  | port.the.d.(hasIndices).and.s.(d | 
| 95860 |  6f 74 41 6c 6c 29 20 72 65 67 65 78 70 20 66 6c    61 67 73 0a 20 20 28 5b 23 35 39 30 5d 28 68 74  | otAll).regexp.flags...([#590](ht | 
| 95880 |  74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d    2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70  | tps://github.com/mooz/js2-mode/p | 
| 958a0 |  75 6c 6c 2f 35 39 30 29 29 2e 0a 2a 20 53 75 70    70 6f 72 74 20 66 6f 72 20 60 5f 60 20 73 65 70  | ull/590))..*.Support.for.`_`.sep | 
| 958c0 |  61 72 61 74 6f 72 20 69 6e 20 6e 75 6d 62 65 72    73 20 28 69 2e 65 2e 2c 20 6e 75 6d 65 72 69 63  | arator.in.numbers.(i.e.,.numeric | 
| 958e0 |  20 73 65 70 61 72 61 74 6f 72 29 0a 20 20 28 5b    23 35 38 34 5d 28 68 74 74 70 73 3a 2f 2f 67 69  | .separator)...([#584](https://gi | 
| 95900 |  74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73    32 2d 6d 6f 64 65 2f 70 75 6c 6c 2f 35 38 34 29  | thub.com/mooz/js2-mode/pull/584) | 
| 95920 |  29 2e 0a 0a 23 23 20 32 30 32 31 2d 31 32 2d 32    39 0a 0a 2a 20 49 6d 65 6e 75 20 73 75 70 70 6f  | )...##.2021-12-29..*.Imenu.suppo | 
| 95940 |  72 74 20 66 6f 72 20 6d 6f 63 68 61 2d 6c 69 6b    65 20 28 69 6e 63 6c 75 64 65 73 20 4a 61 73 6d  | rt.for.mocha-like.(includes.Jasm | 
| 95960 |  69 6e 65 20 61 6e 64 20 43 79 70 72 65 73 73 29    20 74 65 73 74 0a 20 20 66 69 6c 65 73 3a 20 69  | ine.and.Cypress).test...files:.i | 
| 95980 |  2e 65 2e 2c 20 60 4d 2d 78 20 69 6d 65 6e 75 60    20 77 69 6c 6c 20 6e 6f 77 20 6c 69 73 74 20 74  | .e.,.`M-x.imenu`.will.now.list.t | 
| 959a0 |  65 73 74 20 62 6c 6f 63 6b 73 20 64 65 66 69 6e    65 64 20 77 69 74 68 0a 20 20 60 64 65 73 63 72  | est.blocks.defined.with...`descr | 
| 959c0 |  69 62 65 28 29 60 20 61 6e 64 20 60 69 74 28 29    60 0a 20 20 28 5b 23 35 37 36 5d 28 68 74 74 70  | ibe()`.and.`it()`...([#576](http | 
| 959e0 |  73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d    6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 75 6c  | s://github.com/mooz/js2-mode/pul | 
| 95a00 |  6c 2f 35 37 36 29 29 2e 0a 2a 20 4d 69 6e 6f 72    20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 69 6e  | l/576))..*.Minor.improvements.in | 
| 95a20 |  20 60 6a 73 32 2d 6a 75 6d 70 2d 74 6f 2d 64 65    66 69 6e 69 74 69 6f 6e 60 0a 20 20 28 5b 23 34  | .`js2-jump-to-definition`...([#4 | 
| 95a40 |  32 33 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 68    75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d  | 23](https://github.com/mooz/js2- | 
| 95a60 |  6d 6f 64 65 2f 69 73 73 75 65 73 2f 34 32 33 29    29 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72  | mode/issues/423))..*.Support.for | 
| 95a80 |  20 70 72 69 76 61 74 65 20 63 6c 61 73 73 20 6d    65 6d 62 65 72 73 0a 20 20 28 5b 23 35 33 37 5d  | .private.class.members...([#537] | 
| 95aa0 |  28 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e    63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64  | (https://github.com/mooz/js2-mod | 
| 95ac0 |  65 2f 69 73 73 75 65 73 2f 35 33 37 29 29 2e 0a    2a 20 53 75 70 70 6f 72 74 20 66 6f 72 20 64 79  | e/issues/537))..*.Support.for.dy | 
| 95ae0 |  6e 61 6d 69 63 20 69 6d 70 6f 72 74 73 20 61 6e    64 20 60 69 6d 70 6f 72 74 2e 6d 65 74 61 60 0a  | namic.imports.and.`import.meta`. | 
| 95b00 |  20 20 28 5b 23 35 34 37 5d 28 68 74 74 70 73 3a    2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f  | ..([#547](https://github.com/moo | 
| 95b20 |  7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65    73 2f 35 34 37 29 29 2e 0a 2a 20 53 75 70 70 6f  | z/js2-mode/issues/547))..*.Suppo | 
| 95b40 |  72 74 20 66 6f 72 20 74 72 61 69 6c 69 6e 67 20    63 6f 6d 6d 61 20 69 6e 20 61 72 72 6f 77 20 66  | rt.for.trailing.comma.in.arrow.f | 
| 95b60 |  75 6e 63 74 69 6f 6e 20 70 61 72 61 6d 65 74 65    72 73 0a 20 20 28 5b 23 34 38 30 5d 28 68 74 74  | unction.parameters...([#480](htt | 
| 95b80 |  70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f    6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73  | ps://github.com/mooz/js2-mode/is | 
| 95ba0 |  73 75 65 73 2f 34 38 30 29 29 2e 0a 2a 20 53 75    70 70 6f 72 74 20 66 6f 72 20 60 66 6f 72 20 61  | sues/480))..*.Support.for.`for.a | 
| 95bc0 |  77 61 69 74 20 6f 66 60 20 73 79 6e 74 61 78 20    28 5b 23 35 34 33 5d 28 68 74 74 70 73 3a 2f 2f  | wait.of`.syntax.([#543](https:// | 
| 95be0 |  67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f    6a 73 32 2d 6d 6f 64 65 2f 70 75 6c 6c 2f 35 34  | github.com/mooz/js2-mode/pull/54 | 
| 95c00 |  33 29 29 2e 0a 0a 23 23 20 32 30 32 30 2d 31 32    2d 32 30 0a 0a 2a 20 53 75 70 70 6f 72 74 20 66  | 3))...##.2020-12-20..*.Support.f | 
| 95c20 |  6f 72 20 6c 6f 67 69 63 61 6c 20 61 73 73 69 67    6e 6d 65 6e 74 20 6f 70 65 72 61 74 6f 72 73 20  | or.logical.assignment.operators. | 
| 95c40 |  28 5b 23 35 36 34 5d 28 68 74 74 70 73 3a 2f 2f    67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f  | ([#564](https://github.com/mooz/ | 
| 95c60 |  6a 73 32 2d 6d 6f 64 65 2f 69 73 73 75 65 73 2f    35 36 34 29 29 2e 0a 2a 20 53 75 70 70 6f 72 74  | js2-mode/issues/564))..*.Support | 
| 95c80 |  20 66 6f 72 20 74 68 65 20 6e 75 6c 6c 69 73 68    20 63 6f 61 6c 65 73 63 69 6e 67 20 6f 70 65 72  | .for.the.nullish.coalescing.oper | 
| 95ca0 |  61 74 6f 72 20 28 5b 23 35 36 31 5d 28 68 74 74    70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f  | ator.([#561](https://github.com/ | 
| 95cc0 |  6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 70 75    6c 6c 2f 35 36 31 29 29 2e 0a 2a 20 45 6d 61 63  | mooz/js2-mode/pull/561))..*.Emac | 
| 95ce0 |  73 20 32 37 20 6e 6f 77 20 70 72 6f 76 69 64 65    73 20 69 6d 70 72 6f 76 65 64 20 4a 53 58 20 69  | s.27.now.provides.improved.JSX.i | 
| 95d00 |  6e 64 65 6e 74 61 74 69 6f 6e 20 73 75 70 70 6f    72 74 2c 20 61 6c 6f 6e 67 20 77 69 74 68 0a 20  | ndentation.support,.along.with.. | 
| 95d20 |  20 6e 65 77 20 4a 53 58 20 68 69 67 68 6c 69 67    68 74 69 6e 67 20 61 6e 64 20 64 65 74 65 63 74  | .new.JSX.highlighting.and.detect | 
| 95d40 |  69 6f 6e 20 73 75 70 70 6f 72 74 2e 20 49 6e 73    74 61 6c 6c 20 45 6d 61 63 73 20 32 37 20 61 6e  | ion.support..Install.Emacs.27.an | 
| 95d60 |  64 20 75 73 65 0a 20 20 60 6a 73 2d 6d 6f 64 65    60 20 77 69 74 68 20 60 6a 73 32 2d 6d 69 6e 6f  | d.use...`js-mode`.with.`js2-mino | 
| 95d80 |  72 2d 6d 6f 64 65 60 20 28 73 65 65 20 52 45 41    44 4d 45 29 2c 20 72 61 74 68 65 72 20 74 68 61  | r-mode`.(see.README),.rather.tha | 
| 95da0 |  6e 0a 20 20 60 6a 73 32 2d 6a 73 78 2d 6d 6f 64    65 60 2e 0a 2a 20 55 73 69 6e 67 20 60 6a 73 32  | n...`js2-jsx-mode`..*.Using.`js2 | 
| 95dc0 |  2d 6a 73 78 2d 6d 6f 64 65 60 20 77 69 6c 6c 20    6e 6f 77 20 74 72 69 67 67 65 72 20 61 20 77 61  | -jsx-mode`.will.now.trigger.a.wa | 
| 95de0 |  72 6e 69 6e 67 20 69 6e 20 45 6d 61 63 73 20 32    37 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66 6f 72  | rning.in.Emacs.27..*.Support.for | 
| 95e00 |  20 6f 70 74 69 6f 6e 61 6c 2d 63 68 61 69 6e 69    6e 67 20 6f 70 65 72 61 74 6f 72 20 60 3f 2e 60  | .optional-chaining.operator.`?.` | 
| 95e20 |  0a 0a 23 23 20 32 30 31 39 2d 30 32 2d 31 39 0a    0a 2a 20 43 68 61 6e 67 65 64 20 74 68 65 20 64  | ..##.2019-02-19..*.Changed.the.d | 
| 95e40 |  65 66 61 75 6c 74 20 6f 66 20 60 6a 73 32 2d 73    74 72 69 63 74 2d 74 72 61 69 6c 69 6e 67 2d 63  | efault.of.`js2-strict-trailing-c | 
| 95e60 |  6f 6d 6d 61 2d 77 61 72 6e 69 6e 67 60 20 74 6f    20 6e 69 6c 2e 0a 0a 23 23 20 32 30 31 38 2d 30  | omma-warning`.to.nil...##.2018-0 | 
| 95e80 |  33 2d 30 31 0a 0a 2a 20 53 75 70 70 6f 72 74 20    73 69 6e 67 6c 65 2d 6c 69 6e 65 20 4a 53 44 6f  | 3-01..*.Support.single-line.JSDo | 
| 95ea0 |  63 73 2e 0a 2a 20 4e 65 77 20 66 61 63 65 20 60    6a 73 32 2d 6f 62 6a 65 63 74 2d 70 72 6f 70 65  | cs..*.New.face.`js2-object-prope | 
| 95ec0 |  72 74 79 2d 61 63 63 65 73 73 60 2e 0a 2a 20 53    75 70 70 6f 72 74 20 66 6f 72 20 74 72 61 69 6c  | rty-access`..*.Support.for.trail | 
| 95ee0 |  69 6e 67 20 63 6f 6d 6d 61 20 69 6e 20 66 75 6e    63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 0a  | ing.comma.in.function.arguments. | 
| 95f00 |  2a 20 4a 53 44 6f 63 20 68 69 67 68 6c 69 67 68    74 69 6e 67 20 66 6f 72 20 60 40 79 69 65 6c 64  | *.JSDoc.highlighting.for.`@yield | 
| 95f20 |  60 2c 20 60 40 79 69 65 6c 64 73 60 2c 20 60 40    61 62 73 74 72 61 63 74 60 2c 20 60 40 76 69 72  | `,.`@yields`,.`@abstract`,.`@vir | 
| 95f40 |  74 75 61 6c 60 20 61 6e 64 20 60 40 74 79 70 65    64 65 66 60 2e 0a 2a 20 53 75 70 70 6f 72 74 20  | tual`.and.`@typedef`..*.Support. | 
| 95f60 |  66 6f 72 20 61 6e 6f 6e 79 6d 6f 75 73 20 63 6c    61 73 73 20 65 78 70 6f 72 74 73 2e 0a 0a 23 23  | for.anonymous.class.exports...## | 
| 95f80 |  20 32 30 31 37 2d 30 37 2d 32 31 0a 0a 2a 20 53    75 70 70 6f 72 74 20 66 6f 72 20 61 73 79 6e 63  | .2017-07-21..*.Support.for.async | 
| 95fa0 |  20 61 72 72 6f 77 20 66 75 6e 63 74 69 6f 6e 20    77 69 74 68 6f 75 74 20 70 61 72 65 6e 74 68 65  | .arrow.function.without.parenthe | 
| 95fc0 |  73 65 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66    6f 72 20 60 2f 2a 6a 73 6c 69 6e 74 60 20 64 65  | ses..*.Support.for.`/*jslint`.de | 
| 95fe0 |  63 6c 61 72 61 74 69 6f 6e 73 2e 0a 2a 20 55 73    65 72 20 6f 70 74 69 6f 6e 20 60 6a 73 32 2d 67  | clarations..*.User.option.`js2-g | 
| 96000 |  65 74 70 72 6f 70 2d 68 61 73 2d 73 69 64 65 2d    65 66 66 65 63 74 73 60 2e 0a 2a 20 53 75 70 70  | etprop-has-side-effects`..*.Supp | 
| 96020 |  6f 72 74 20 66 6f 72 20 74 72 61 69 6c 69 6e 67    20 63 6f 6d 6d 61 73 20 69 6e 20 66 75 6e 63 74  | ort.for.trailing.commas.in.funct | 
| 96040 |  69 6f 6e 20 70 61 72 61 6d 65 74 65 72 20 6c 69    73 74 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66  | ion.parameter.lists..*.Support.f | 
| 96060 |  6f 72 20 45 53 37 20 70 75 62 6c 69 63 20 63 6c    61 73 73 20 66 69 65 6c 64 73 2e 0a 2a 20 4e 65  | or.ES7.public.class.fields..*.Ne | 
| 96080 |  77 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 60 6a    73 32 2d 69 67 6e 6f 72 65 64 2d 77 61 72 6e 69  | w.user.option.`js2-ignored-warni | 
| 960a0 |  6e 67 73 60 2e 0a 0a 23 23 20 32 30 31 37 2d 30    31 2d 31 36 0a 0a 2a 20 60 6a 73 32 2d 69 6e 63  | ngs`...##.2017-01-16..*.`js2-inc | 
| 960c0 |  6c 75 64 65 2d 2a 2d 65 78 74 65 72 6e 73 60 20    61 72 65 20 6e 6f 77 20 65 76 61 6c 75 61 74 65  | lude-*-externs`.are.now.evaluate | 
| 960e0 |  64 20 6f 6e 20 64 65 6d 61 6e 64 2e 20 20 41 73    20 61 20 72 65 73 75 6c 74 2c 0a 20 20 74 68 65  | d.on.demand...As.a.result,...the | 
| 96100 |  79 20 63 61 6e 20 6e 6f 77 20 62 65 20 65 66 66    65 63 74 69 76 65 6c 79 20 75 73 65 64 20 61 73  | y.can.now.be.effectively.used.as | 
| 96120 |  20 66 69 6c 65 2d 20 6f 72 20 64 69 72 65 63 74    6f 72 79 2d 6c 6f 63 61 6c 0a 20 20 76 61 72 69  | .file-.or.directory-local...vari | 
| 96140 |  61 62 6c 65 73 2e 0a 2a 20 53 75 70 70 6f 72 74    20 66 6f 72 20 45 53 37 20 65 78 70 6f 6e 65 6e  | ables..*.Support.for.ES7.exponen | 
| 96160 |  74 69 61 74 69 6f 6e 20 6f 70 65 72 61 74 6f 72    2e 0a 0a 23 23 20 32 30 31 36 2d 30 36 2d 32 33  | tiation.operator...##.2016-06-23 | 
| 96180 |  0a 0a 2a 20 4e 65 77 20 76 61 72 69 61 62 6c 65    20 60 6a 73 32 2d 6d 6f 64 65 2d 61 73 73 75 6d  | ..*.New.variable.`js2-mode-assum | 
| 961a0 |  65 2d 73 74 72 69 63 74 60 2c 20 66 6f 72 20 75    73 65 20 77 69 74 68 20 45 53 36 20 6d 6f 64 75  | e-strict`,.for.use.with.ES6.modu | 
| 961c0 |  6c 65 73 2e 0a 2a 20 53 75 70 70 6f 72 74 20 66    6f 72 20 4a 53 44 6f 63 20 40 63 61 6c 6c 62 61  | les..*.Support.for.JSDoc.@callba | 
| 961e0 |  63 6b 2c 20 40 66 75 6e 63 20 61 6e 64 20 40 6d    65 74 68 6f 64 20 74 61 67 73 2e 0a 2a 20 4f 62  | ck,.@func.and.@method.tags..*.Ob | 
| 96200 |  6a 65 63 74 20 70 72 6f 70 65 72 74 69 65 73 20    61 72 65 20 68 69 67 68 6c 69 67 68 74 65 64 20  | ject.properties.are.highlighted. | 
| 96220 |  75 73 69 6e 67 20 61 20 64 69 66 66 65 72 65 6e    74 20 66 61 63 65 3a 0a 20 20 60 6a 73 32 2d 6f  | using.a.different.face:...`js2-o | 
| 96240 |  62 6a 65 63 74 2d 70 72 6f 70 65 72 74 79 60 2c    20 77 68 69 63 68 20 68 61 73 20 6e 6f 20 63 6f  | bject-property`,.which.has.no.co | 
| 96260 |  6c 6f 72 20 62 79 20 64 65 66 61 75 6c 74 2e 0a    2a 20 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 73  | lor.by.default..*.Experimental.s | 
| 96280 |  75 70 70 6f 72 74 20 66 6f 72 20 6f 62 6a 65 63    74 20 72 65 73 74 2f 73 70 72 65 61 64 20 45 43  | upport.for.object.rest/spread.EC | 
| 962a0 |  4d 41 53 63 72 69 70 74 20 70 72 6f 70 6f 73 61    6c 2e 0a 2a 20 60 6a 73 32 2d 67 65 74 74 65 72  | MAScript.proposal..*.`js2-getter | 
| 962c0 |  2d 73 65 74 74 65 72 2d 6e 6f 64 65 60 20 69 73    20 72 65 6e 61 6d 65 64 20 74 6f 20 60 6a 73 32  | -setter-node`.is.renamed.to.`js2 | 
| 962e0 |  2d 6d 65 74 68 6f 64 2d 6e 6f 64 65 60 2c 20 74    6f 67 65 74 68 65 72 20 77 69 74 68 0a 20 20 69  | -method-node`,.together.with...i | 
| 96300 |  74 73 20 72 65 6c 61 74 65 64 20 66 75 6e 63 74    69 6f 6e 73 2e 20 20 49 74 20 61 6c 72 65 61 64  | ts.related.functions...It.alread | 
| 96320 |  79 20 68 61 6e 64 6c 65 73 20 67 65 6e 65 72 61    74 6f 72 20 6d 65 74 68 6f 64 73 2c 20 61 6e 64  | y.handles.generator.methods,.and | 
| 96340 |  20 77 65 0a 20 20 61 64 64 65 64 20 73 75 70 70    6f 72 74 20 66 6f 72 20 61 73 79 6e 63 20 6d 65  | .we...added.support.for.async.me | 
| 96360 |  74 68 6f 64 73 20 28 73 65 65 20 62 65 6c 6f 77    29 2c 20 73 6f 20 74 68 65 20 6f 6c 64 20 6e 61  | thods.(see.below),.so.the.old.na | 
| 96380 |  6d 65 20 77 6f 75 6c 64 20 67 65 74 0a 20 20 6d    6f 72 65 20 63 6f 6e 66 75 73 69 6e 67 2e 0a 2a  | me.would.get...more.confusing..* | 
| 963a0 |  20 53 75 70 70 6f 72 74 20 66 6f 72 20 64 65 66    61 75 6c 74 20 70 61 72 61 6d 65 74 65 72 73 20  | .Support.for.default.parameters. | 
| 963c0 |  69 6e 20 64 65 73 74 72 75 63 74 75 72 69 6e 67    2e 20 20 49 74 20 73 68 6f 75 6c 64 20 77 6f 72  | in.destructuring...It.should.wor | 
| 963e0 |  6b 20 66 6f 72 20 62 6f 74 68 0a 20 20 6f 62 6a    65 63 74 73 20 61 6e 64 20 61 72 72 61 79 73 2c  | k.for.both...objects.and.arrays, | 
| 96400 |  20 69 6e 20 62 6f 74 68 20 6c 69 74 65 72 61 6c    73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 20 61  | .in.both.literals.and.function.a | 
| 96420 |  72 67 75 6d 65 6e 74 73 2e 0a 2a 20 4e 65 77 20    6d 6f 64 65 3a 20 60 6a 73 32 2d 6a 73 78 2d 6d  | rguments..*.New.mode:.`js2-jsx-m | 
| 96440 |  6f 64 65 60 2c 20 64 65 72 69 76 69 6e 67 20 66    72 6f 6d 20 60 6a 73 32 2d 6d 6f 64 65 60 2e 20  | ode`,.deriving.from.`js2-mode`.. | 
| 96460 |  20 53 75 70 70 6f 72 74 73 20 69 6e 64 65 6e 74    61 74 69 6f 6e 20 6f 66 0a 20 20 4a 53 58 45 6c  | .Supports.indentation.of...JSXEl | 
| 96480 |  65 6d 65 6e 74 20 65 78 70 72 65 73 73 69 6f 6e    73 20 77 72 61 70 70 65 64 20 77 69 74 68 69 6e  | ement.expressions.wrapped.within | 
| 964a0 |  20 70 61 72 65 6e 74 68 65 73 65 73 20 6f 72 20    61 73 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75  | .parentheses.or.as.function.argu | 
| 964c0 |  6d 65 6e 74 73 2e 0a 20 20 49 6e 64 65 6e 74 61    74 69 6f 6e 20 69 73 20 63 75 73 74 6f 6d 69 7a  | ments....Indentation.is.customiz | 
| 964e0 |  61 62 6c 65 20 76 69 61 20 60 73 67 6d 6c 2d 61    74 74 72 69 62 75 74 65 2d 6f 66 66 73 65 74 60  | able.via.`sgml-attribute-offset` | 
| 96500 |  2e 0a 2a 20 45 78 70 65 72 69 6d 65 6e 74 61 6c    20 73 75 70 70 6f 72 74 20 66 6f 72 20 61 73 79  | ..*.Experimental.support.for.asy | 
| 96520 |  6e 63 2f 61 77 61 69 74 20 45 43 4d 41 53 63 72    69 70 74 20 70 72 6f 70 6f 73 61 6c 2e 0a 0a 23  | nc/await.ECMAScript.proposal...# | 
| 96540 |  23 20 32 30 31 35 30 39 30 39 0a 0a 2a 20 60 6a    73 32 2d 6d 6f 64 65 60 20 6e 6f 77 20 64 65 72  | #.20150909..*.`js2-mode`.now.der | 
| 96560 |  69 76 65 73 20 66 72 6f 6d 20 60 6a 73 2d 6d 6f    64 65 60 2e 20 54 68 61 74 20 6d 65 61 6e 73 20  | ives.from.`js-mode`..That.means. | 
| 96580 |  74 68 65 20 66 6f 72 6d 65 72 0a 20 20 66 75 6e    63 74 69 6f 6e 20 77 69 6c 6c 20 72 75 6e 20 60  | the.former...function.will.run.` | 
| 965a0 |  6a 73 2d 6d 6f 64 65 2d 68 6f 6f 6b 60 2c 20 61    73 20 77 65 6c 6c 20 61 73 20 60 6a 73 32 2d 6d  | js-mode-hook`,.as.well.as.`js2-m | 
| 965c0 |  6f 64 65 2d 68 6f 6f 6b 60 2e 20 54 68 65 0a 20    20 6b 65 79 20 62 69 6e 64 69 6e 67 73 20 77 69  | ode-hook`..The...key.bindings.wi | 
| 965e0 |  6c 6c 20 64 65 66 61 75 6c 74 20 74 6f 20 60 6a    73 2d 6d 6f 64 65 2d 6d 61 70 60 20 77 68 65 72  | ll.default.to.`js-mode-map`.wher | 
| 96600 |  65 20 74 68 65 79 27 72 65 20 6e 6f 74 20 73 65    74 20 69 6e 0a 20 20 60 6a 73 32 2d 6d 6f 64 65  | e.they're.not.set.in...`js2-mode | 
| 96620 |  2d 6d 61 70 60 2e 20 41 6e 64 20 69 6e 20 45 6d    61 63 73 20 32 35 20 6f 72 20 6c 61 74 65 72 20  | -map`..And.in.Emacs.25.or.later. | 
| 96640 |  28 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 73    6e 61 70 73 68 6f 74 0a 20 20 62 75 69 6c 64 73  | (including.the.snapshot...builds | 
| 96660 |  29 2c 20 60 6a 73 32 2d 6d 6f 64 65 60 20 75 73    65 73 20 74 68 65 20 69 6e 64 65 6e 74 61 74 69  | ),.`js2-mode`.uses.the.indentati | 
| 96680 |  6f 6e 20 63 6f 64 65 20 66 72 6f 6d 20 60 6a 73    2d 6d 6f 64 65 60 2e 20 20 57 68 65 72 65 0a 20  | on.code.from.`js-mode`...Where.. | 
| 966a0 |  20 66 65 61 73 69 62 6c 65 2c 20 74 68 65 20 75    73 65 72 20 6f 70 74 69 6f 6e 73 20 28 61 6e 64  | .feasible,.the.user.options.(and | 
| 966c0 |  20 66 75 6e 63 74 69 6f 6e 73 29 20 6e 6f 77 20    68 61 76 65 20 61 6c 69 61 73 65 73 2c 20 62 75  | .functions).now.have.aliases,.bu | 
| 966e0 |  74 20 69 66 0a 20 20 79 6f 75 27 72 65 20 75 73    69 6e 67 20 45 6d 61 63 73 20 32 35 20 61 6e 64  | t.if...you're.using.Emacs.25.and | 
| 96700 |  20 79 6f 75 20 73 65 65 20 61 6e 20 69 6e 64 65    6e 74 61 74 69 6f 6e 2d 72 65 6c 61 74 65 64 20  | .you.see.an.indentation-related. | 
| 96720 |  73 65 74 74 69 6e 67 0a 20 20 74 68 61 74 20 73    74 6f 70 70 65 64 20 77 6f 72 6b 69 6e 67 2c 20  | setting...that.stopped.working,. | 
| 96740 |  74 72 79 20 6c 6f 6f 6b 69 6e 67 20 66 6f 72 20    61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  | try.looking.for.a.corresponding. | 
| 96760 |  6f 6e 65 20 69 6e 20 74 68 65 0a 20 20 60 6a 73    60 20 67 72 6f 75 70 3a 20 60 4d 2d 78 20 63 75  | one.in.the...`js`.group:.`M-x.cu | 
| 96780 |  73 74 6f 6d 69 7a 65 2d 67 72 6f 75 70 20 52 45    54 20 6a 73 20 52 45 54 60 2e 0a 0a 2a 20 4e 65  | stomize-group.RET.js.RET`...*.Ne | 
| 967a0 |  77 20 63 6f 6d 6d 61 6e 64 3a 20 60 6a 73 32 2d    6a 75 6d 70 2d 74 6f 2d 64 65 66 69 6e 69 74 69  | w.command:.`js2-jump-to-definiti | 
| 967c0 |  6f 6e 60 2e 20 49 74 27 73 20 62 6f 75 6e 64 20    74 6f 20 60 4d 2d 2e 60 20 62 79 0a 20 20 64 65  | on`..It's.bound.to.`M-.`.by...de | 
| 967e0 |  66 61 75 6c 74 2c 20 76 69 61 20 72 65 6d 61 70    70 69 6e 67 20 60 6a 73 2d 66 69 6e 64 2d 73 79  | fault,.via.remapping.`js-find-sy | 
| 96800 |  6d 62 6f 6c 60 2e 20 54 6f 20 67 65 74 20 62 61    63 6b 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c  | mbol`..To.get.back.to.the.defaul | 
| 96820 |  74 0a 20 20 60 4d 2d 2e 60 20 62 69 6e 64 69 6e    67 20 28 65 2e 67 2e 20 60 66 69 6e 64 2d 74 61  | t...`M-.`.binding.(e.g..`find-ta | 
| 96840 |  67 60 29 2c 20 70 75 74 20 74 68 69 73 20 69 6e    20 79 6f 75 72 20 69 6e 69 74 20 66 69 6c 65 3a  | g`),.put.this.in.your.init.file: | 
| 96860 |  0a 0a 20 20 20 20 20 20 28 65 76 61 6c 2d 61 66    74 65 72 2d 6c 6f 61 64 20 27 6a 73 20 28 64 65  | ........(eval-after-load.'js.(de | 
| 96880 |  66 69 6e 65 2d 6b 65 79 20 6a 73 2d 6d 6f 64 65    2d 6d 61 70 20 28 6b 62 64 20 22 4d 2d 2e 22 29  | fine-key.js-mode-map.(kbd."M-.") | 
| 968a0 |  20 6e 69 6c 29 29 0a 0a 23 23 20 32 30 31 35 30    37 31 33 0a 0a 2a 20 4d 6f 72 65 20 63 6f 6d 70  | .nil))..##.20150713..*.More.comp | 
| 968c0 |  72 65 68 65 6e 73 69 76 65 20 73 74 72 69 63 74    20 6d 6f 64 65 20 77 61 72 6e 69 6e 67 73 20 61  | rehensive.strict.mode.warnings.a | 
| 968e0 |  6e 64 20 73 79 6e 74 61 78 20 65 72 72 6f 72 73    2e 0a 2a 20 4e 65 77 20 6d 69 6e 6f 72 20 6d 6f  | nd.syntax.errors..*.New.minor.mo | 
| 96900 |  64 65 3a 20 60 6a 73 32 2d 68 69 67 68 6c 69 67    68 74 2d 75 6e 75 73 65 64 2d 76 61 72 69 61 62  | de:.`js2-highlight-unused-variab | 
| 96920 |  6c 65 73 2d 6d 6f 64 65 60 2e 0a 2a 20 60 6a 73    32 2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c 69  | les-mode`..*.`js2-pretty-multili | 
| 96940 |  6e 65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 60    20 63 61 6e 20 74 61 6b 65 20 74 68 65 20 76 61  | ne-declarations`.can.take.the.va | 
| 96960 |  6c 75 65 20 60 64 79 6e 61 6d 69 63 60 20 6e 6f    77 2e 0a 0a 23 23 20 32 30 31 35 30 32 30 32 0a  | lue.`dynamic`.now...##.20150202. | 
| 96980 |  0a 53 75 70 70 6f 72 74 20 66 6f 72 3a 0a 0a 2a    20 5b 45 53 36 20 6d 6f 64 75 6c 65 73 5d 28 68  | .Support.for:..*.[ES6.modules](h | 
| 969a0 |  74 74 70 3a 2f 2f 77 77 77 2e 32 61 6c 69 74 79    2e 63 6f 6d 2f 32 30 31 34 2f 30 39 2f 65 73 36  | ttp://www.2ality.com/2014/09/es6 | 
| 969c0 |  2d 6d 6f 64 75 6c 65 73 2d 66 69 6e 61 6c 2e 68    74 6d 6c 29 2e 0a 2a 20 5b 53 68 6f 72 74 2d 68  | -modules-final.html)..*.[Short-h | 
| 969e0 |  61 6e 64 20 6f 62 6a 65 63 74 20 6c 69 74 65 72    61 6c 73 5d 28 68 74 74 70 3a 2f 2f 61 72 69 79  | and.object.literals](http://ariy | 
| 96a00 |  61 2e 6f 66 69 6c 61 62 73 2e 63 6f 6d 2f 32 30    31 33 2f 30 32 2f 65 73 36 2d 61 6e 64 2d 6f 62  | a.ofilabs.com/2013/02/es6-and-ob | 
| 96a20 |  6a 65 63 74 2d 6c 69 74 65 72 61 6c 2d 70 72 6f    70 65 72 74 79 2d 76 61 6c 75 65 2d 73 68 6f 72  | ject-literal-property-value-shor | 
| 96a40 |  74 68 61 6e 64 2e 68 74 6d 6c 29 2e 0a 2a 20 5b    4d 65 74 68 6f 64 20 64 65 66 69 6e 69 74 69 6f  | thand.html)..*.[Method.definitio | 
| 96a60 |  6e 73 5d 28 68 74 74 70 3a 2f 2f 61 72 69 79 61    2e 6f 66 69 6c 61 62 73 2e 63 6f 6d 2f 32 30 31  | ns](http://ariya.ofilabs.com/201 | 
| 96a80 |  33 2f 30 33 2f 65 73 36 2d 61 6e 64 2d 6d 65 74    68 6f 64 2d 64 65 66 69 6e 69 74 69 6f 6e 73 2e  | 3/03/es6-and-method-definitions. | 
| 96aa0 |  68 74 6d 6c 29 2e 0a 2a 20 5b 27 75 27 20 61 6e    64 20 27 79 27 20 52 65 67 45 78 70 20 66 6c 61  | html)..*.['u'.and.'y'.RegExp.fla | 
| 96ac0 |  67 73 5d 28 68 74 74 70 73 3a 2f 2f 6d 61 74 68    69 61 73 62 79 6e 65 6e 73 2e 62 65 2f 6e 6f 74  | gs](https://mathiasbynens.be/not | 
| 96ae0 |  65 73 2f 65 73 36 2d 75 6e 69 63 6f 64 65 2d 72    65 67 65 78 29 2e 0a 2a 20 5b 43 6f 6d 70 75 74  | es/es6-unicode-regex)..*.[Comput | 
| 96b00 |  65 64 20 70 72 6f 70 65 72 74 79 20 6e 61 6d 65    73 5d 28 68 74 74 70 3a 2f 2f 70 65 6f 70 6c 65  | ed.property.names](http://people | 
| 96b20 |  2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 7e 6a 6f    72 65 6e 64 6f 72 66 66 2f 65 73 36 2d 64 72 61  | .mozilla.org/~jorendorff/es6-dra | 
| 96b40 |  66 74 2e 68 74 6d 6c 23 73 65 63 2d 6f 62 6a 65    63 74 2d 69 6e 69 74 69 61 6c 69 7a 65 72 29 2e  | ft.html#sec-object-initializer). | 
| 96b60 |  0a 2a 20 5b 43 6c 61 73 73 20 73 74 61 74 65 6d    65 6e 74 73 20 61 6e 64 20 65 78 70 72 65 73 73  | .*.[Class.statements.and.express | 
| 96b80 |  69 6f 6e 73 5d 28 68 74 74 70 73 3a 2f 2f 67 69    74 68 75 62 2e 63 6f 6d 2f 6c 75 6b 65 68 6f 62  | ions](https://github.com/lukehob | 
| 96ba0 |  61 6e 2f 65 73 36 66 65 61 74 75 72 65 73 23 63    6c 61 73 73 65 73 29 2e 0a 2a 20 5b 54 65 6d 70  | an/es6features#classes)..*.[Temp | 
| 96bc0 |  6c 61 74 65 20 73 74 72 69 6e 67 73 5d 28 68 74    74 70 3a 2f 2f 74 63 33 39 77 69 6b 69 2e 63 61  | late.strings](http://tc39wiki.ca | 
| 96be0 |  6c 63 75 6c 69 73 74 2e 6f 72 67 2f 65 73 36 2f    74 65 6d 70 6c 61 74 65 2d 73 74 72 69 6e 67 73  | lculist.org/es6/template-strings | 
| 96c00 |  2f 29 2c 20 69 6e 63 6c 75 64 69 6e 67 20 74 61    67 67 65 64 20 6f 6e 65 73 2e 0a 0a 54 68 65 20  | /),.including.tagged.ones...The. | 
| 96c20 |  76 61 72 69 61 62 6c 65 20 60 6a 73 32 2d 61 6c    6c 6f 77 2d 6b 65 79 77 6f 72 64 73 2d 61 73 2d  | variable.`js2-allow-keywords-as- | 
| 96c40 |  70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 73 60 20    68 61 73 20 62 65 65 6e 0a 72 65 6d 6f 76 65 64  | property-names`.has.been.removed | 
| 96c60 |  2e 20 49 6e 73 74 65 61 64 20 77 65 20 63 68 65    63 6b 20 69 66 20 60 6a 73 32 2d 6c 61 6e 67 75  | ..Instead.we.check.if.`js2-langu | 
| 96c80 |  61 67 65 2d 76 65 72 73 69 6f 6e 60 20 69 73 20    31 38 30 20 6f 72 20 68 69 67 68 74 65 72 2e 0a  | age-version`.is.180.or.highter.. | 
| 96ca0 |  0a 23 23 20 32 30 31 34 31 31 31 35 0a 0a 53 75    70 70 6f 72 74 20 66 6f 72 3a 0a 0a 2a 20 55 6e  | .##.20141115..Support.for:..*.Un | 
| 96cc0 |  69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 73    20 69 6e 20 69 64 65 6e 74 69 66 69 65 72 73 20  | icode.characters.in.identifiers. | 
| 96ce0 |  28 69 6d 70 72 6f 76 65 64 29 2e 0a 2a 20 5b 44    65 6c 65 67 61 74 69 6e 67 20 79 69 65 6c 64 5d  | (improved)..*.[Delegating.yield] | 
| 96d00 |  28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63 6d    61 73 63 72 69 70 74 2e 6f 72 67 2f 64 6f 6b 75  | (http://wiki.ecmascript.org/doku | 
| 96d20 |  2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79 3a    67 65 6e 65 72 61 74 6f 72 73 23 64 65 6c 65 67  | .php?id=harmony:generators#deleg | 
| 96d40 |  61 74 69 6e 67 5f 79 69 65 6c 64 29 2e 0a 2a 20    5b 45 53 36 20 6e 75 6d 65 72 69 63 20 6c 69 74  | ating_yield)..*.[ES6.numeric.lit | 
| 96d60 |  65 72 61 6c 73 5d 28 68 74 74 70 73 3a 2f 2f 70    65 6f 70 6c 65 2e 6d 6f 7a 69 6c 6c 61 2e 6f 72  | erals](https://people.mozilla.or | 
| 96d80 |  67 2f 7e 6a 6f 72 65 6e 64 6f 72 66 66 2f 65 73    36 2d 64 72 61 66 74 2e 68 74 6d 6c 23 73 65 63  | g/~jorendorff/es6-draft.html#sec | 
| 96da0 |  2d 6c 69 74 65 72 61 6c 73 2d 6e 75 6d 65 72 69    63 2d 6c 69 74 65 72 61 6c 73 29 20 28 6f 63 74  | -literals-numeric-literals).(oct | 
| 96dc0 |  61 6c 2c 20 62 69 6e 61 72 79 29 2e 0a 2a 20 48    61 72 6d 6f 6e 79 20 5b 61 72 72 61 79 20 61 6e  | al,.binary)..*.Harmony.[array.an | 
| 96de0 |  64 20 67 65 6e 65 72 61 74 6f 72 20 63 6f 6d 70    72 65 68 65 6e 73 69 6f 6e 73 5d 28 68 74 74 70  | d.generator.comprehensions](http | 
| 96e00 |  3a 2f 2f 77 69 6e 67 6f 6c 6f 67 2e 6f 72 67 2f    61 72 63 68 69 76 65 73 2f 32 30 31 34 2f 30 33  | ://wingolog.org/archives/2014/03 | 
| 96e20 |  2f 30 37 2f 65 73 36 2d 67 65 6e 65 72 61 74 6f    72 2d 61 6e 64 2d 61 72 72 61 79 2d 63 6f 6d 70  | /07/es6-generator-and-array-comp | 
| 96e40 |  72 65 68 65 6e 73 69 6f 6e 73 2d 69 6e 2d 73 70    69 64 65 72 6d 6f 6e 6b 65 79 29 2e 0a 0a 23 23  | rehensions-in-spidermonkey)...## | 
| 96e60 |  20 32 30 31 33 31 31 30 36 0a 0a 53 75 70 70 6f    72 74 20 66 6f 72 3a 0a 0a 2a 20 5b 41 72 72 6f  | .20131106..Support.for:..*.[Arro | 
| 96e80 |  77 20 66 75 6e 63 74 69 6f 6e 73 5d 28 68 74 74    70 3a 2f 2f 77 69 6b 69 2e 65 63 6d 61 73 63 72  | w.functions](http://wiki.ecmascr | 
| 96ea0 |  69 70 74 2e 6f 72 67 2f 64 6f 6b 75 2e 70 68 70    3f 69 64 3d 68 61 72 6d 6f 6e 79 3a 61 72 72 6f  | ipt.org/doku.php?id=harmony:arro | 
| 96ec0 |  77 5f 66 75 6e 63 74 69 6f 6e 5f 73 79 6e 74 61    78 29 0a 2a 20 5b 47 65 6e 65 72 61 74 6f 72 73  | w_function_syntax).*.[Generators | 
| 96ee0 |  5d 28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63    6d 61 73 63 72 69 70 74 2e 6f 72 67 2f 64 6f 6b  | ](http://wiki.ecmascript.org/dok | 
| 96f00 |  75 2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79    3a 67 65 6e 65 72 61 74 6f 72 73 29 0a 2a 20 5b  | u.php?id=harmony:generators).*.[ | 
| 96f20 |  53 70 72 65 61 64 20 6f 70 65 72 61 74 6f 72 5d    28 68 74 74 70 3a 2f 2f 77 69 6b 69 2e 65 63 6d  | Spread.operator](http://wiki.ecm | 
| 96f40 |  61 73 63 72 69 70 74 2e 6f 72 67 2f 64 6f 6b 75    2e 70 68 70 3f 69 64 3d 68 61 72 6d 6f 6e 79 3a  | ascript.org/doku.php?id=harmony: | 
| 96f60 |  73 70 72 65 61 64 29 0a 0a 23 23 20 32 30 31 33    30 35 31 30 0a 0a 23 23 23 20 53 75 70 70 6f 72  | spread)..##.20130510..###.Suppor | 
| 96f80 |  74 20 66 6f 72 20 4a 53 4c 69 6e 74 20 67 6c 6f    62 61 6c 20 64 65 63 6c 61 72 61 74 69 6f 6e 0a  | t.for.JSLint.global.declaration. | 
| 96fa0 |  0a 53 65 65 20 74 68 65 20 64 6f 63 73 74 72 69    6e 67 20 66 6f 72 20 60 6a 73 32 2d 69 6e 63 6c  | .See.the.docstring.for.`js2-incl | 
| 96fc0 |  75 64 65 2d 6a 73 6c 69 6e 74 2d 67 6c 6f 62 61    6c 73 60 2e 0a 0a 23 23 20 32 30 31 33 30 32 31  | ude-jslint-globals`...##.2013021 | 
| 96fe0 |  36 0a 0a 23 23 23 20 57 65 20 64 6f 6e 27 74 20    72 65 62 69 6e 64 20 60 52 45 54 60 20 61 6e 79  | 6..###.We.don't.rebind.`RET`.any | 
| 97000 |  6d 6f 72 65 0a 0a 42 65 63 61 75 73 65 20 77 65    6c 6c 2d 62 65 68 61 76 69 6e 67 20 6d 61 6a 6f  | more..Because.well-behaving.majo | 
| 97020 |  72 20 6d 6f 64 65 73 20 61 72 65 6e 27 74 20 73    75 70 70 6f 73 65 64 20 74 6f 20 64 6f 20 74 68  | r.modes.aren't.supposed.to.do.th | 
| 97040 |  61 74 2e 0a 0a 53 6f 20 70 72 65 73 73 69 6e 67    20 69 74 20 77 6f 6e 27 74 20 63 6f 6e 74 69 6e  | at...So.pressing.it.won't.contin | 
| 97060 |  75 65 20 61 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65    6e 74 2c 20 6f 72 20 74 75 72 6e 20 61 20 73 74  | ue.a.block.comment,.or.turn.a.st | 
| 97080 |  72 69 6e 67 20 69 6e 74 6f 20 61 20 63 6f 6e 63    61 74 65 6e 61 74 69 6f 6e 2e 0a 50 72 65 73 73  | ring.into.a.concatenation..Press | 
| 970a0 |  69 6e 67 20 60 4d 2d 6a 60 2c 20 68 6f 77 65 76    65 72 2c 20 77 69 6c 6c 2e 0a 0a 54 68 65 20 6f  | ing.`M-j`,.however,.will...The.o | 
| 970c0 |  70 74 69 6f 6e 73 20 60 6a 73 32 2d 69 6e 64 65    6e 74 2d 6f 6e 2d 65 6e 74 65 72 2d 6b 65 79 60  | ptions.`js2-indent-on-enter-key` | 
| 970e0 |  20 61 6e 64 20 60 6a 73 32 2d 65 6e 74 65 72 2d    69 6e 64 65 6e 74 73 2d 6e 65 77 6c 69 6e 65 60  | .and.`js2-enter-indents-newline` | 
| 97100 |  20 77 65 72 65 20 61 6c 73 6f 20 72 65 6d 6f 76    65 64 2e 0a 0a 54 6f 20 62 72 69 6e 67 20 62 61  | .were.also.removed...To.bring.ba | 
| 97120 |  63 6b 20 74 68 65 20 70 72 65 76 69 6f 75 73 20    62 65 68 61 76 69 6f 72 2c 20 70 75 74 20 74 68  | ck.the.previous.behavior,.put.th | 
| 97140 |  69 73 20 69 6e 20 79 6f 75 72 20 69 6e 69 74 20    66 69 6c 65 3a 0a 0a 60 60 60 6a 73 0a 28 65 76  | is.in.your.init.file:..```js.(ev | 
| 97160 |  61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 20 27 6a    73 32 2d 6d 6f 64 65 0a 20 20 27 28 64 65 66 69  | al-after-load.'js2-mode...'(defi | 
| 97180 |  6e 65 2d 6b 65 79 20 6a 73 32 2d 6d 6f 64 65 2d    6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 20  | ne-key.js2-mode-map.(kbd."RET"). | 
| 971a0 |  27 6a 73 32 2d 6c 69 6e 65 2d 62 72 65 61 6b 29    29 0a 60 60 60 0a 0a 23 23 20 32 30 31 32 30 36  | 'js2-line-break)).```..##.201206 | 
| 971c0 |  31 37 0a 0a 23 23 23 20 53 75 70 70 6f 72 74 20    66 6f 72 20 5b 64 65 66 61 75 6c 74 5d 28 68 74  | 17..###.Support.for.[default](ht | 
| 971e0 |  74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e    6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d 55  | tps://developer.mozilla.org/en-U | 
| 97200 |  53 2f 64 6f 63 73 2f 57 65 62 2f 4a 61 76 61 53    63 72 69 70 74 2f 52 65 66 65 72 65 6e 63 65 2f  | S/docs/Web/JavaScript/Reference/ | 
| 97220 |  64 65 66 61 75 6c 74 5f 70 61 72 61 6d 65 74 65    72 73 29 20 61 6e 64 20 5b 72 65 73 74 5d 28 68  | default_parameters).and.[rest](h | 
| 97240 |  74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72    2e 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d  | ttps://developer.mozilla.org/en- | 
| 97260 |  55 53 2f 64 6f 63 73 2f 57 65 62 2f 4a 61 76 61    53 63 72 69 70 74 2f 52 65 66 65 72 65 6e 63 65  | US/docs/Web/JavaScript/Reference | 
| 97280 |  2f 72 65 73 74 5f 70 61 72 61 6d 65 74 65 72 73    29 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 23 23  | /rest_parameters).parameters..## | 
| 972a0 |  20 32 30 31 32 30 36 31 34 0a 0a 23 23 23 20 53    75 70 70 6f 72 74 20 66 6f 72 20 5b 66 6f 72 2e  | .20120614..###.Support.for.[for. | 
| 972c0 |  2e 6f 66 20 6c 6f 6f 70 73 5d 28 68 74 74 70 73    3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 6d 6f 7a  | .of.loops](https://developer.moz | 
| 972e0 |  69 6c 6c 61 2e 6f 72 67 2f 65 6e 2d 55 53 2f 64    6f 63 73 2f 57 65 62 2f 4a 61 76 61 53 63 72 69  | illa.org/en-US/docs/Web/JavaScri | 
| 97300 |  70 74 2f 52 65 66 65 72 65 6e 63 65 2f 53 74 61    74 65 6d 65 6e 74 73 2f 66 6f 72 2e 2e 2e 6f 66  | pt/Reference/Statements/for...of | 
| 97320 |  29 0a 0a 23 23 20 4f 6c 64 65 72 20 63 68 61 6e    67 65 73 0a 0a 23 23 23 20 50 6f 70 75 6c 61 72  | )..##.Older.changes..###.Popular | 
| 97340 |  20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 73 74 79    6c 65 0a 0a 60 60 60 6a 73 0a 5b 66 6f 6f 2c 20  | .indentation.style..```js.[foo,. | 
| 97360 |  62 61 72 2c 20 62 61 7a 5d 2e 66 6f 72 45 61 63    68 28 66 75 6e 63 74 69 6f 6e 20 28 76 29 20 7b  | bar,.baz].forEach(function.(v).{ | 
| 97380 |  0a 20 20 20 20 69 66 20 28 76 61 6c 69 64 61 74    65 28 76 29 29 0a 20 20 20 20 20 20 20 20 70 72  | .....if.(validate(v)).........pr | 
| 973a0 |  6f 63 65 73 73 28 76 29 3b 0a 7d 29 3b 0a 0a 5b    61 2c 20 62 2c 20 63 5d 2e 73 6f 6d 65 28 66 75  | ocess(v);.});..[a,.b,.c].some(fu | 
| 973c0 |  6e 63 74 69 6f 6e 20 28 76 29 20 7b 0a 20 20 20    20 72 65 74 75 72 6e 20 76 61 6c 69 64 61 74 65  | nction.(v).{.....return.validate | 
| 973e0 |  28 76 29 3b 0a 7d 29 3b 0a 60 60 60 0a 0a 23 23    23 20 50 72 65 74 74 79 20 6d 75 6c 74 69 6c 69  | (v);.});.```..###.Pretty.multili | 
| 97400 |  6e 65 20 76 61 72 69 61 62 6c 65 20 64 65 63 6c    61 72 61 74 69 6f 6e 0a 0a 49 6e 20 74 68 65 20  | ne.variable.declaration..In.the. | 
| 97420 |  6f 72 69 67 69 6e 61 6c 20 6d 6f 64 65 2c 0a 0a    60 60 60 6a 73 0a 76 61 72 20 66 6f 6f 20 3d 20  | original.mode,..```js.var.foo.=. | 
| 97440 |  31 30 2c 0a 62 61 72 20 3d 20 32 30 2c 0a 62 61    7a 20 3d 20 33 30 3b 0a 60 60 60 0a 0a 49 6e 20  | 10,.bar.=.20,.baz.=.30;.```..In. | 
| 97460 |  74 68 69 73 20 6d 6f 64 65 20 77 68 65 6e 20 74    68 65 20 76 61 6c 75 65 20 6f 66 20 60 6a 73 32  | this.mode.when.the.value.of.`js2 | 
| 97480 |  2d 70 72 65 74 74 79 2d 6d 75 6c 74 69 6c 69 6e    65 2d 64 65 63 6c 61 72 61 74 69 6f 6e 73 60 20  | -pretty-multiline-declarations`. | 
| 974a0 |  69 73 20 6e 6f 6e 2d 6e 69 6c 2c 0a 0a 60 60 60    6a 73 0a 76 61 72 20 66 6f 6f 20 3d 20 31 30 2c  | is.non-nil,..```js.var.foo.=.10, | 
| 974c0 |  0a 20 20 20 20 62 61 72 20 3d 20 32 30 2c 0a 20    20 20 20 62 61 7a 20 3d 20 33 30 3b 0a 60 60 60  | .....bar.=.20,.....baz.=.30;.``` | 
| 974e0 |  0a 0a 23 23 23 20 41 62 62 72 65 76 69 61 74 65    64 20 64 65 73 74 72 75 63 74 75 72 69 6e 67 20  | ..###.Abbreviated.destructuring. | 
| 97500 |  61 73 73 69 67 6e 6d 65 6e 74 73 0a 0a 60 60 60    6a 73 0a 6c 65 74 20 7b 61 2c 20 62 7d 20 20 20  | assignments..```js.let.{a,.b}... | 
| 97520 |  20 20 20 20 3d 20 7b 61 3a 20 31 30 2c 20 62 3a    20 32 30 7d 3b 20 2f 2f 20 41 62 62 72 65 76 69  | ....=.{a:.10,.b:.20};.//.Abbrevi | 
| 97540 |  61 74 65 64 20 20 20 28 4e 6f 74 20 73 75 70 70    6f 72 74 65 64 20 69 6e 20 74 68 65 20 6f 72 69  | ated...(Not.supported.in.the.ori | 
| 97560 |  67 69 6e 61 6c 20 6d 6f 64 65 29 0a 6c 65 74 20    7b 61 3a 20 61 2c 20 62 3a 20 62 7d 20 3d 20 7b  | ginal.mode).let.{a:.a,.b:.b}.=.{ | 
| 97580 |  61 3a 20 31 30 2c 20 62 3a 20 32 30 7d 3b 20 2f    2f 20 53 61 6d 65 20 61 73 20 61 62 6f 76 65 20  | a:.10,.b:.20};.//.Same.as.above. | 
| 975a0 |  28 53 75 70 70 6f 72 74 65 64 20 69 6e 20 74 68    65 20 6f 72 69 67 69 6e 61 6c 20 6d 6f 64 65 29  | (Supported.in.the.original.mode) | 
| 975c0 |  0a 0a 28 66 75 6e 63 74 69 6f 6e 20 28 7b 72 65    73 70 6f 6e 73 65 54 65 78 74 7d 29 20 7b 20 2f  | ..(function.({responseText}).{./ | 
| 975e0 |  2a 20 2a 2f 20 7d 29 28 78 68 72 29 3b 20 2f 2f    20 41 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74  | *.*/.})(xhr);.//.As.the.argument | 
| 97600 |  20 6f 66 20 66 75 6e 63 74 69 6f 6e 0a 0a 66 6f    72 20 28 6c 65 74 20 5b 6b 2c 20 7b 20 6e 61 6d  | .of.function..for.(let.[k,.{.nam | 
| 97620 |  65 2c 20 61 67 65 20 7d 5d 20 69 6e 20 49 74 65    72 61 74 6f 72 28 6f 62 6a 29 29 20 2f 2f 20 6e  | e,.age.}].in.Iterator(obj)).//.n | 
| 97640 |  65 73 74 65 64 0a 20 20 20 20 70 72 69 6e 74 28    6b 2c 20 6e 61 6d 65 2c 20 61 67 65 29 3b 0a 60  | ested.....print(k,.name,.age);.` | 
| 97660 |  60 60 0a 0a 23 23 23 20 45 78 70 72 65 73 73 69    6f 6e 20 63 6c 6f 73 75 72 65 20 69 6e 20 70 72  | ``..###.Expression.closure.in.pr | 
| 97680 |  6f 70 65 72 74 79 20 76 61 6c 75 65 0a 0a 60 60    60 6a 73 0a 6c 65 74 20 77 6f 72 6b 65 72 20 3d  | operty.value..```js.let.worker.= | 
| 976a0 |  20 7b 0a 20 20 20 20 67 65 74 20 61 67 65 28 29    20 32 30 2c 0a 20 20 20 20 67 65 74 20 73 65 78  | .{.....get.age().20,.....get.sex | 
| 976c0 |  28 29 20 22 6d 61 6c 65 22 2c 0a 20 20 20 20 66    69 72 65 3a 20 66 75 6e 63 74 69 6f 6e 20 28 29  | ()."male",.....fire:.function.() | 
| 976e0 |  20 5f 66 69 72 65 28 29 0a 7d 3b 0a 60 60 60 0a    0a 23 23 23 20 46 69 78 20 66 6f 72 20 6f 64 64  | ._fire().};.```..###.Fix.for.odd | 
| 97700 |  20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 6f 66 20    22 65 6c 73 65 20 69 66 22 20 77 69 74 68 20 6e  | .indentation.of."else.if".with.n | 
| 97720 |  6f 20 62 72 61 63 65 73 0a 0a 49 6e 20 74 68 65    20 6f 72 69 67 69 6e 61 6c 20 6d 6f 64 65 2c 0a  | o.braces..In.the.original.mode,. | 
| 97740 |  0a 60 60 60 6a 73 0a 69 66 20 28 66 6f 6f 29 0a    20 20 20 20 72 65 74 75 72 6e 20 66 6f 6f 3b 0a  | .```js.if.(foo).....return.foo;. | 
| 97760 |  65 6c 73 65 20 69 66 20 28 62 61 72 29 0a 72 65    74 75 72 6e 20 62 61 72 3b 20 20 20 20 20 20 2f  | else.if.(bar).return.bar;....../ | 
| 97780 |  2f 20 68 65 72 65 0a 60 60 60 0a 0a 49 6e 20 74    68 69 73 20 6d 6f 64 65 2c 0a 0a 60 60 60 6a 73  | /.here.```..In.this.mode,..```js | 
| 977a0 |  0a 69 66 20 28 66 6f 6f 29 0a 20 20 20 20 72 65    74 75 72 6e 20 66 6f 6f 3b 0a 65 6c 73 65 20 69  | .if.(foo).....return.foo;.else.i | 
| 977c0 |  66 20 28 62 61 72 29 0a 20 20 20 20 72 65 74 75    72 6e 20 62 61 72 3b 20 20 2f 2f 20 66 69 78 65  | f.(bar).....return.bar;..//.fixe | 
| 977e0 |  64 0a 60 60 60 0a 0a 23 23 23 20 49 6d 65 6e 75    20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 75 6e  | d.```..###.Imenu.support.for.fun | 
| 97800 |  63 74 69 6f 6e 20 6e 65 73 74 69 6e 67 0a 0a 53    75 70 70 6f 72 74 73 20 66 75 6e 63 74 69 6f 6e  | ction.nesting..Supports.function | 
| 97820 |  20 6e 65 73 74 69 6e 67 20 61 6e 64 20 61 6e 6f    6e 79 6d 6f 75 73 20 77 72 61 70 70 65 72 73 3a  | .nesting.and.anonymous.wrappers: | 
| 97840 |  0a 0a 60 60 60 6a 73 0a 28 66 75 6e 63 74 69 6f    6e 28 29 20 7b 0a 20 20 76 61 72 20 66 6f 6f 20  | ..```js.(function().{...var.foo. | 
| 97860 |  3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20    20 20 20 66 75 6e 63 74 69 6f 6e 20 62 61 72 28  | =.function().{.....function.bar( | 
| 97880 |  29 20 7b 20 2f 2f 20 73 68 6f 77 6e 20 61 73 20    66 6f 6f 2e 62 61 72 2e 3c 64 65 66 69 6e 69 74  | ).{.//.shown.as.foo.bar.<definit | 
| 978a0 |  69 6f 6e 2d 31 3e 0a 20 20 20 20 20 20 66 75 6e    63 74 69 6f 6e 20 62 61 7a 28 29 20 7b 7d 20 2f  | ion-1>.......function.baz().{}./ | 
| 978c0 |  2f 20 66 6f 6f 2e 62 61 72 2e 62 61 7a 0a 20 20    20 20 20 20 76 61 72 20 71 75 78 20 3d 20 66 75  | /.foo.bar.baz.......var.qux.=.fu | 
| 978e0 |  6e 63 74 69 6f 6e 28 29 20 7b 7d 3b 20 2f 2f 20    66 6f 6f 2e 62 61 72 2e 71 75 75 78 0a 20 20 20  | nction().{};.//.foo.bar.quux.... | 
| 97900 |  20 7d 0a 20 20 7d 3b 0a 7d 29 3b 0a 60 60 60 0a    0a 45 78 61 6d 70 6c 65 73 20 6f 66 20 6f 75 74  | .}...};.});.```..Examples.of.out | 
| 97920 |  70 75 74 3a 0a 0a 2a 20 5b 6a 51 75 65 72 79 20    31 2e 35 5d 28 68 74 74 70 73 3a 2f 2f 67 69 73  | put:..*.[jQuery.1.5](https://gis | 
| 97940 |  74 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 38 34 35    34 34 39 29 0a 2a 20 5b 55 6e 64 65 72 73 63 6f  | t.github.com/845449).*.[Undersco | 
| 97960 |  72 65 2e 6a 73 5d 28 68 74 74 70 73 3a 2f 2f 67    69 73 74 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 38  | re.js](https://gist.github.com/8 | 
| 97980 |  32 34 32 36 32 29 0a 2a 20 5b 42 61 63 6b 62 6f    6e 65 2e 6a 73 5d 28 68 74 74 70 73 3a 2f 2f 67  | 24262).*.[Backbone.js](https://g | 
| 979a0 |  69 73 74 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 38    32 34 32 36 30 29 0a 0a 46 6f 72 20 6c 69 62 72  | ist.github.com/824260)..For.libr | 
| 979c0 |  61 72 79 2d 73 70 65 63 69 66 69 63 20 65 78 74    65 6e 73 69 6f 6e 20 6d 65 74 68 6f 64 73 20 6c  | ary-specific.extension.methods.l | 
| 979e0 |  69 6b 65 20 60 24 2e 65 78 74 65 6e 64 60 20 61    6e 64 20 60 64 6f 6a 6f 2e 64 65 63 6c 61 72 65  | ike.`$.extend`.and.`dojo.declare | 
| 97a00 |  60 2c 20 73 65 65 20 5b 6a 73 32 2d 69 6d 65 6e    75 2d 65 78 74 72 61 73 5d 28 2f 6d 6f 6f 7a 2f  | `,.see.[js2-imenu-extras](/mooz/ | 
| 97a20 |  6a 73 32 2d 6d 6f 64 65 2f 62 6c 6f 62 2f 6d 61    73 74 65 72 2f 6a 73 32 2d 69 6d 65 6e 75 2d 65  | js2-mode/blob/master/js2-imenu-e | 
| 97a40 |  78 74 72 61 73 2e 65 6c 29 2e 0a 0a 23 23 23 20    55 6e 64 65 63 6c 61 72 65 64 2f 65 78 74 65 72  | xtras.el)...###.Undeclared/exter | 
| 97a60 |  6e 61 6c 20 76 61 72 69 61 62 6c 65 73 20 68 69    67 68 6c 69 67 68 74 69 6e 67 0a 0a 4f 72 69 67  | nal.variables.highlighting..Orig | 
| 97a80 |  69 6e 61 6c 20 6d 6f 64 65 20 68 69 67 68 6c 69    67 68 74 73 20 74 68 65 6d 20 6f 6e 6c 79 20 6f  | inal.mode.highlights.them.only.o | 
| 97aa0 |  6e 20 74 68 65 20 6c 65 66 74 20 73 69 64 65 20    6f 66 20 61 73 73 69 67 6e 6d 65 6e 74 73 3a 0a  | n.the.left.side.of.assignments:. | 
| 97ac0 |  0a 60 60 60 6a 73 0a 76 61 72 20 68 6f 75 73 65    3b 0a 68 6f 73 65 20 3d 20 6e 65 77 20 48 6f 75  | .```js.var.house;.hose.=.new.Hou | 
| 97ae0 |  73 65 28 29 3b 20 2f 2f 20 68 69 67 68 6c 69 67    68 74 73 20 22 68 6f 73 65 22 0a 60 60 60 0a 0a  | se();.//.highlights."hose".```.. | 
| 97b00 |  48 65 72 65 20 74 68 65 79 20 61 72 65 20 68 69    67 68 6c 69 67 68 74 65 64 20 69 6e 20 61 6c 6c  | Here.they.are.highlighted.in.all | 
| 97b20 |  20 65 78 70 72 65 73 73 69 6f 6e 73 3a 0a 0a 60    60 60 6a 73 0a 66 75 6e 63 74 69 6f 6e 20 66 65  | .expressions:..```js.function.fe | 
| 97b40 |  65 64 28 66 69 73 68 65 73 2c 20 66 6f 6f 64 29    20 7b 0a 20 20 20 20 66 6f 72 20 65 61 63 68 20  | ed(fishes,.food).{.....for.each. | 
| 97b60 |  28 76 61 72 20 66 69 73 68 20 69 6e 20 66 73 68    65 73 29 20 7b 20 2f 2f 20 68 69 67 68 6c 69 67  | (var.fish.in.fshes).{.//.highlig | 
| 97b80 |  68 74 73 20 22 66 73 68 65 73 22 0a 20 20 20 20    20 20 20 20 66 6f 6f 64 2e 66 65 65 64 28 66 73  | hts."fshes".........food.feed(fs | 
| 97ba0 |  68 29 3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74    73 20 22 66 73 68 22 0a 20 20 20 20 7d 0a 20 20  | h);.//.highlights."fsh".....}... | 
| 97bc0 |  20 20 68 6f 6f 64 2e 64 69 73 63 61 72 64 28 29    3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20  | ..hood.discard();.//.highlights. | 
| 97be0 |  22 68 6f 6f 64 22 0a 7d 0a 60 60 60 0a 0a 44 65    73 74 72 75 63 74 75 72 69 6e 67 20 61 73 73 69  | "hood".}.```..Destructuring.assi | 
| 97c00 |  67 6e 6d 65 6e 74 73 20 61 6e 64 20 61 72 72 61    79 20 63 6f 6d 70 72 65 68 65 6e 73 69 6f 6e 73  | gnments.and.array.comprehensions | 
| 97c20 |  20 28 4a 53 20 31 2e 37 29 20 61 72 65 20 73 75    70 70 6f 72 74 65 64 3a 0a 0a 60 60 60 6a 73 0a  | .(JS.1.7).are.supported:..```js. | 
| 97c40 |  6c 65 74 20 74 68 72 65 65 2c 20 5b 6f 6e 65 2c    20 74 77 6f 5d 20 3d 20 5b 31 2c 20 32 5d 3b 0a  | let.three,.[one,.two].=.[1,.2];. | 
| 97c60 |  74 68 65 65 20 3d 20 6f 6e 65 20 2b 20 74 77 6f    3b 20 2f 2f 20 68 69 67 68 6c 69 67 68 74 73 20  | thee.=.one.+.two;.//.highlights. | 
| 97c80 |  22 74 68 65 65 22 0a 0a 66 75 6e 63 74 69 6f 6e    20 72 65 76 65 6e 75 65 28 67 6f 6f 64 73 29 20  | "thee"..function.revenue(goods). | 
| 97ca0 |  7b 0a 20 20 20 20 2f 2f 20 68 69 67 68 6c 69 67    68 74 73 20 22 63 6f 61 73 74 22 0a 20 20 20 20  | {.....//.highlights."coast"..... | 
| 97cc0 |  72 65 74 75 72 6e 20 5b 70 72 69 63 65 20 2d 20    63 6f 61 73 74 20 66 6f 72 20 65 61 63 68 20 28  | return.[price.-.coast.for.each.( | 
| 97ce0 |  7b 70 72 69 63 65 2c 20 63 6f 73 74 7d 20 69 6e    20 67 6f 6f 64 73 29 5d 2e 72 65 64 75 63 65 28  | {price,.cost}.in.goods)].reduce( | 
| 97d00 |  61 64 64 29 3b 0a 7d 0a 60 60 60 0a 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | add);.}.```..................... | 
| 97d20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97e00 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 52 45 41 44 4d 45 2e 6d 64 00 00 00 00 00  | js2-mode-20231224/README.md..... | 
| 97e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97e60 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 97e80 |  30 30 30 35 35 34 30 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 33 33 31 35 00 20 30 00 00 00  | 0005540.00000000000.013315..0... | 
| 97ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97f00 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 97f20 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 97f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 97fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98000 |  41 62 6f 75 74 20 5b 21 5b 42 75 69 6c 64 20 53    74 61 74 75 73 5d 28 68 74 74 70 73 3a 2f 2f 67  | About.[](h | 
| 98060 |  74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f    6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f  | ttps://github.com/mooz/js2-mode/ | 
| 98080 |  61 63 74 69 6f 6e 73 2f 77 6f 72 6b 66 6c 6f 77    73 2f 74 65 73 74 2e 79 6d 6c 29 20 5b 21 5b 47  | actions/workflows/test.yml).[](https://el | 
| 980e0 |  70 61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61    67 65 73 2f 6a 73 32 2d 6d 6f 64 65 2e 68 74 6d  | pa.gnu.org/packages/js2-mode.htm | 
| 98100 |  6c 29 20 5b 21 5b 4d 45 4c 50 41 5d 28 68 74 74    70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 70  | l).[](htt | 
| 98140 |  70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23    2f 6a 73 32 2d 6d 6f 64 65 29 0a 3d 3d 3d 3d 3d  | ps://melpa.org/#/js2-mode).===== | 
| 98160 |  3d 0a 0a 49 6d 70 72 6f 76 65 64 20 4a 61 76 61    53 63 72 69 70 74 20 65 64 69 74 69 6e 67 20 6d  | =..Improved.JavaScript.editing.m | 
| 98180 |  6f 64 65 20 66 6f 72 20 47 4e 55 20 45 6d 61 63    73 20 28 5b 64 65 73 63 72 69 70 74 69 6f 6e 20  | ode.for.GNU.Emacs.([description. | 
| 981a0 |  68 65 72 65 5d 28 68 74 74 70 3a 2f 2f 65 6c 70    61 2e 67 6e 75 2e 6f 72 67 2f 70 61 63 6b 61 67  | here](http://elpa.gnu.org/packag | 
| 981c0 |  65 73 2f 6a 73 32 2d 6d 6f 64 65 2e 68 74 6d 6c    29 29 2e 0a 0a 46 6f 72 20 73 6f 6d 65 20 6f 66  | es/js2-mode.html))...For.some.of | 
| 981e0 |  20 74 68 65 20 6c 61 74 65 73 74 20 63 68 61 6e    67 65 73 2c 20 73 65 65 20 5b 6c 61 74 65 73 74  | .the.latest.changes,.see.[latest | 
| 98200 |  20 75 73 65 72 2d 76 69 73 69 62 6c 65 20 63 68    61 6e 67 65 73 5d 28 68 74 74 70 73 3a 2f 2f 67  | .user-visible.changes](https://g | 
| 98220 |  69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a    73 32 2d 6d 6f 64 65 2f 62 6c 6f 62 2f 6d 61 73  | ithub.com/mooz/js2-mode/blob/mas | 
| 98240 |  74 65 72 2f 4e 45 57 53 2e 6d 64 29 2e 0a 0a 49    6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 3d 3d 3d 3d  | ter/NEWS.md)...Installation.==== | 
| 98260 |  3d 3d 0a 0a 54 68 65 20 73 74 61 62 6c 65 20 76    65 72 73 69 6f 6e 73 20 61 72 65 20 68 6f 73 74  | ==..The.stable.versions.are.host | 
| 98280 |  65 64 20 61 74 20 5b 47 4e 55 20 45 4c 50 41 5d    28 68 74 74 70 3a 2f 2f 65 6c 70 61 2e 67 6e 75  | ed.at.[GNU.ELPA](http://elpa.gnu | 
| 982a0 |  2e 6f 72 67 2f 29 0a 28 3c 6b 62 64 3e 4d 2d 78    20 6c 69 73 74 2d 70 61 63 6b 61 67 65 73 3c 2f  | .org/).(<kbd>M-x.list-packages</ | 
| 982c0 |  6b 62 64 3e 29 2e 0a 0a 59 6f 75 20 63 61 6e 20    61 6c 73 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65  | kbd>)...You.can.also.install.the | 
| 982e0 |  20 6c 61 74 65 73 74 20 64 65 76 65 6c 6f 70 6d    65 6e 74 20 76 65 72 73 69 6f 6e 20 66 72 6f 6d  | .latest.development.version.from | 
| 98300 |  0a 5b 4d 45 4c 50 41 5d 28 68 74 74 70 73 3a 2f    2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 67 65 74  | .[MELPA](https://melpa.org/#/get | 
| 98320 |  74 69 6e 67 2d 73 74 61 72 74 65 64 29 2e 0a 0a    52 65 71 75 69 72 65 6d 65 6e 74 73 0a 3d 3d 3d  | ting-started)...Requirements.=== | 
| 98340 |  3d 3d 3d 0a 0a 45 6d 61 63 73 20 32 34 2e 31 2b    20 61 6e 64 20 60 63 6c 2d 6c 69 62 60 20 28 65  | ===..Emacs.24.1+.and.`cl-lib`.(e | 
| 98360 |  69 74 68 65 72 20 62 75 69 6c 74 2d 69 6e 20 6f    72 20 69 6e 73 74 61 6c 6c 65 64 20 66 72 6f 6d  | ither.built-in.or.installed.from | 
| 98380 |  20 47 4e 55 20 45 4c 50 41 29 2e 0a 0a 52 65 61    63 74 20 61 6e 64 20 4a 53 58 0a 3d 3d 3d 3d 3d  | .GNU.ELPA)...React.and.JSX.===== | 
| 983a0 |  3d 0a 0a 54 68 65 20 63 75 72 72 65 6e 74 6c 79    20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 73 6f 6c  | =..The.currently.recommended.sol | 
| 983c0 |  75 74 69 6f 6e 20 69 73 20 74 6f 20 69 6e 73 74    61 6c 6c 20 45 6d 61 63 73 20 32 37 20 28 79 6f  | ution.is.to.install.Emacs.27.(yo | 
| 983e0 |  75 20 63 61 6e 20 5b 62 75 69 6c 64 20 66 72 6f    6d 0a 73 6f 75 72 63 65 5d 28 68 74 74 70 3a 2f  | u.can.[build.from.source](http:/ | 
| 98400 |  2f 67 69 74 2e 73 61 76 61 6e 6e 61 68 2e 67 6e    75 2e 6f 72 67 2f 63 67 69 74 2f 65 6d 61 63 73  | /git.savannah.gnu.org/cgit/emacs | 
| 98420 |  2e 67 69 74 2f 74 72 65 65 2f 49 4e 53 54 41 4c    4c 2e 52 45 50 4f 29 0a 6f 72 20 65 2e 67 2e 20  | .git/tree/INSTALL.REPO).or.e.g.. | 
| 98440 |  69 6e 73 74 61 6c 6c 20 61 20 73 6e 61 70 73 68    6f 74 20 66 72 6f 6d 20 61 0a 5b 50 50 41 5d 28  | install.a.snapshot.from.a.[PPA]( | 
| 98460 |  68 74 74 70 73 3a 2f 2f 6c 61 75 6e 63 68 70 61    64 2e 6e 65 74 2f 7e 75 62 75 6e 74 75 2d 65 6c  | https://launchpad.net/~ubuntu-el | 
| 98480 |  69 73 70 2f 2b 61 72 63 68 69 76 65 2f 75 62 75    6e 74 75 2f 70 70 61 29 29 20 61 6e 64 0a 75 73  | isp/+archive/ubuntu/ppa)).and.us | 
| 984a0 |  65 20 60 6a 73 2d 6d 6f 64 65 60 20 61 73 20 74    68 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 2e 20 54  | e.`js-mode`.as.the.major.mode..T | 
| 984c0 |  6f 20 6d 61 6b 65 20 75 73 65 20 6f 66 20 74 68    65 20 4a 53 32 20 41 53 54 20 61 6e 64 20 74 68  | o.make.use.of.the.JS2.AST.and.th | 
| 984e0 |  65 0a 70 61 63 6b 61 67 65 73 20 74 68 61 74 20    69 6e 74 65 67 72 61 74 65 20 77 69 74 68 20 69  | e.packages.that.integrate.with.i | 
| 98500 |  74 2c 20 77 65 20 72 65 63 6f 6d 6d 65 6e 64 20    60 6a 73 32 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 60  | t,.we.recommend.`js2-minor-mode` | 
| 98520 |  2e 20 53 65 65 0a 74 68 65 20 63 6f 72 72 65 73    70 6f 6e 64 69 6e 67 20 5b 69 6e 73 74 72 75 63  | ..See.the.corresponding.[instruc | 
| 98540 |  74 69 6f 6e 73 20 69 6e 20 74 68 65 0a 43 6f 6d    6d 65 6e 74 61 72 79 5d 28 68 74 74 70 73 3a 2f  | tions.in.the.Commentary](https:/ | 
| 98560 |  2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a    2f 6a 73 32 2d 6d 6f 64 65 2f 62 6c 6f 62 2f 62  | /github.com/mooz/js2-mode/blob/b | 
| 98580 |  62 37 33 34 36 31 63 32 63 37 30 34 38 64 38 31    31 62 33 38 65 36 62 35 33 33 61 33 30 66 62 35  | b73461c2c7048d811b38e6b533a30fb5 | 
| 985a0 |  66 64 63 65 61 39 33 2f 6a 73 32 2d 6d 6f 64 65    2e 65 6c 23 4c 35 37 29 2e 0a 0a 60 6a 73 2d 6d  | fdcea93/js2-mode.el#L57)...`js-m | 
| 985c0 |  6f 64 65 60 20 69 6e 20 45 6d 61 63 73 20 32 37    20 69 6e 63 6c 75 64 65 73 20 66 75 6c 6c 20 73  | ode`.in.Emacs.27.includes.full.s | 
| 985e0 |  75 70 70 6f 72 74 20 66 6f 72 20 73 79 6e 74 61    78 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 61  | upport.for.syntax.highlighting.a | 
| 98600 |  6e 64 20 69 6e 64 65 6e 74 69 6e 67 20 6f 66 20    4a 53 58 20 73 79 6e 74 61 78 2e 0a 0a 5b 72 6a  | nd.indenting.of.JSX.syntax...[rj | 
| 98620 |  73 78 2d 6d 6f 64 65 5d 28 68 74 74 70 73 3a 2f    2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 65 6c 69  | sx-mode](https://github.com/feli | 
| 98640 |  70 65 6f 63 68 6f 61 2f 72 6a 73 78 2d 6d 6f 64    65 2f 29 20 69 73 20 61 6e 0a 61 6c 74 65 72 6e  | peochoa/rjsx-mode/).is.an.altern | 
| 98660 |  61 74 69 76 65 20 6f 70 74 69 6f 6e 20 77 68 69    63 68 20 63 6f 6d 65 73 20 77 69 74 68 20 63 65  | ative.option.which.comes.with.ce | 
| 98680 |  72 74 61 69 6e 20 74 72 61 64 65 6f 66 66 73 2e    0a 0a 42 75 67 73 0a 3d 3d 3d 3d 0a 0a 2a 20 53  | rtain.tradeoffs...Bugs.====..*.S | 
| 986a0 |  65 65 20 62 72 6f 6b 65 6e 20 73 79 6e 74 61 78    20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 61 6e  | ee.broken.syntax.highlighting.an | 
| 986c0 |  64 20 74 69 6d 65 72 20 65 72 72 6f 72 73 3f 20    52 65 63 65 6e 74 6c 79 20 75 70 67 72 61 64 65  | d.timer.errors?.Recently.upgrade | 
| 986e0 |  64 0a 45 6d 61 63 73 20 66 72 6f 6d 20 76 65 72    73 69 6f 6e 20 32 34 2e 32 20 6f 72 20 65 61 72  | d.Emacs.from.version.24.2.or.ear | 
| 98700 |  6c 69 65 72 3f 20 54 72 79 0a 5b 72 65 69 6e 73    74 61 6c 6c 69 6e 67 20 6f 72 20 62 79 74 65 2d  | lier?.Try.[reinstalling.or.byte- | 
| 98720 |  72 65 63 6f 6d 70 69 6c 69 6e 67 5d 28 68 74 74    70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f  | recompiling](https://github.com/ | 
| 98740 |  6d 6f 6f 7a 2f 6a 73 32 2d 6d 6f 64 65 2f 69 73    73 75 65 73 2f 37 32 29 0a 74 68 65 20 70 61 63  | mooz/js2-mode/issues/72).the.pac | 
| 98760 |  6b 61 67 65 2e 0a 0a 2a 20 41 6e 79 20 69 6e 64    65 6e 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d  | kage...*.Any.indentation.problem | 
| 98780 |  73 20 73 68 6f 75 6c 64 20 62 65 20 72 65 70 6f    72 74 65 64 20 77 69 74 68 20 60 4d 2d 78 20 72  | s.should.be.reported.with.`M-x.r | 
| 987a0 |  65 70 6f 72 74 2d 65 6d 61 63 73 2d 62 75 67 60    0a 28 70 6c 65 61 73 65 20 74 72 79 20 72 65 70  | eport-emacs-bug`.(please.try.rep | 
| 987c0 |  72 6f 64 75 63 69 6e 67 20 74 68 65 6d 20 77 69    74 68 20 60 6a 73 2d 6d 6f 64 65 60 20 66 69 72  | roducing.them.with.`js-mode`.fir | 
| 987e0 |  73 74 2c 20 66 6f 72 20 63 6c 61 72 69 74 79 29    2e 0a 53 74 61 72 74 69 6e 67 20 77 69 74 68 20  | st,.for.clarity)..Starting.with. | 
| 98800 |  45 6d 61 63 73 20 32 35 2c 20 60 6a 73 32 2d 6d    6f 64 65 60 20 64 65 6c 65 67 61 74 65 73 20 69  | Emacs.25,.`js2-mode`.delegates.i | 
| 98820 |  6e 64 65 6e 74 61 74 69 6f 6e 20 74 6f 0a 74 68    65 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 65 6e  | ndentation.to.the.indentation.en | 
| 98840 |  67 69 6e 65 20 6f 66 20 60 6a 73 2d 6d 6f 64 65    60 2e 0a 0a 50 6c 65 61 73 65 20 72 65 70 6f 72  | gine.of.`js-mode`...Please.repor | 
| 98860 |  74 20 6f 74 68 65 72 20 70 72 6f 62 6c 65 6d 73    20 61 74 20 3c 68 74 74 70 3a 2f 2f 67 69 74 68  | t.other.problems.at.<http://gith | 
| 98880 |  75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f 6a 73 32 2d    6d 6f 64 65 2f 69 73 73 75 65 73 3e 2e 0a 0a 43  | ub.com/mooz/js2-mode/issues>...C | 
| 988a0 |  6f 6e 74 72 69 62 75 74 69 6e 67 0a 3d 3d 3d 3d    3d 3d 0a 0a 60 6a 73 32 2d 6d 6f 64 65 60 20 69  | ontributing.======..`js2-mode`.i | 
| 988c0 |  73 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65    20 73 61 6d 65 0a 5b 63 6f 70 79 72 69 67 68 74  | s.subject.to.the.same.[copyright | 
| 988e0 |  20 61 73 73 69 67 6e 6d 65 6e 74 5d 28 68 74 74    70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f  | .assignment](http://www.gnu.org/ | 
| 98900 |  70 72 65 70 2f 6d 61 69 6e 74 61 69 6e 2f 68 74    6d 6c 5f 6e 6f 64 65 2f 43 6f 70 79 72 69 67 68  | prep/maintain/html_node/Copyrigh | 
| 98920 |  74 2d 50 61 70 65 72 73 2e 68 74 6d 6c 29 0a 70    6f 6c 69 63 79 20 61 73 20 45 6d 61 63 73 20 69  | t-Papers.html).policy.as.Emacs.i | 
| 98940 |  74 73 65 6c 66 2c 20 60 6f 72 67 2d 6d 6f 64 65    60 2c 20 60 43 45 44 45 54 60 20 61 6e 64 20 6f  | tself,.`org-mode`,.`CEDET`.and.o | 
| 98960 |  74 68 65 72 20 70 61 63 6b 61 67 65 73 20 69 6e    0a 5b 47 4e 55 20 45 4c 50 41 5d 28 68 74 74 70  | ther.packages.in.[GNU.ELPA](http | 
| 98980 |  3a 2f 2f 65 6c 70 61 2e 67 6e 75 2e 6f 72 67 2f    70 61 63 6b 61 67 65 73 2f 29 2e 0a 0a 41 6e 79  | ://elpa.gnu.org/packages/)...Any | 
| 989a0 |  0a 5b 6c 65 67 61 6c 6c 79 20 73 69 67 6e 69 66    69 63 61 6e 74 5d 28 68 74 74 70 3a 2f 2f 77 77  | .[legally.significant](http://ww | 
| 989c0 |  77 2e 67 6e 75 2e 6f 72 67 2f 70 72 65 70 2f 6d    61 69 6e 74 61 69 6e 2f 68 74 6d 6c 5f 6e 6f 64  | w.gnu.org/prep/maintain/html_nod | 
| 989e0 |  65 2f 4c 65 67 61 6c 6c 79 2d 53 69 67 6e 69 66    69 63 61 6e 74 2e 68 74 6d 6c 23 4c 65 67 61 6c  | e/Legally-Significant.html#Legal | 
| 98a00 |  6c 79 2d 53 69 67 6e 69 66 69 63 61 6e 74 29 0a    63 6f 6e 74 72 69 62 75 74 69 6f 6e 73 20 63 61  | ly-Significant).contributions.ca | 
| 98a20 |  6e 20 6f 6e 6c 79 20 62 65 20 61 63 63 65 70 74    65 64 20 61 66 74 65 72 20 74 68 65 20 61 75 74  | n.only.be.accepted.after.the.aut | 
| 98a40 |  68 6f 72 20 68 61 73 20 63 6f 6d 70 6c 65 74 65    64 20 74 68 65 69 72 0a 70 61 70 65 72 77 6f 72  | hor.has.completed.their.paperwor | 
| 98a60 |  6b 2e 20 50 6c 65 61 73 65 20 61 73 6b 20 66 6f    72 20 74 68 65 20 72 65 71 75 65 73 74 20 66 6f  | k..Please.ask.for.the.request.fo | 
| 98a80 |  72 6d 2c 20 61 6e 64 20 77 65 27 6c 6c 20 73 65    6e 64 20 69 74 20 74 6f 20 79 6f 75 2e 0a 0a 53  | rm,.and.we'll.send.it.to.you...S | 
| 98aa0 |  65 65 20 41 6c 73 6f 0a 3d 3d 3d 3d 3d 3d 0a 0a    53 6f 6d 65 20 74 68 69 72 64 2d 70 61 72 74 79  | ee.Also.======..Some.third-party | 
| 98ac0 |  20 6d 6f 64 65 73 20 74 68 61 74 20 75 73 65 20    74 68 65 20 67 65 6e 65 72 61 74 65 64 20 73 79  | .modes.that.use.the.generated.sy | 
| 98ae0 |  6e 74 61 78 20 74 72 65 65 3a 0a 0a 2a 20 5b 6a    73 32 2d 72 65 66 61 63 74 6f 72 5d 28 68 74 74  | ntax.tree:..*.[js2-refactor](htt | 
| 98b00 |  70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f    6d 61 67 6e 61 72 73 2f 6a 73 32 2d 72 65 66 61  | ps://github.com/magnars/js2-refa | 
| 98b20 |  63 74 6f 72 2e 65 6c 29 0a 2a 20 5b 73 6b 65 77    65 72 2d 6d 6f 64 65 5d 28 68 74 74 70 73 3a 2f  | ctor.el).*.[skewer-mode](https:/ | 
| 98b40 |  2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 6b 65 65    74 6f 2f 73 6b 65 77 65 72 2d 6d 6f 64 65 29 0a  | /github.com/skeeto/skewer-mode). | 
| 98b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98c00 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 6a 73 32 2d 6d 6f 64 65 2d 70 6b 67 2e 65  | js2-mode-20231224/js2-mode-pkg.e | 
| 98c20 |  6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | l............................... | 
| 98c40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98c60 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 98c80 |  30 30 30 31 30 37 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 35 35 35 00 20 30 00 00 00  | 0001074.00000000000.014555..0... | 
| 98ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98d00 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 98d20 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 98d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 98e00 |  3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63    6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e  | ;;.Generated.package.description | 
| 98e20 |  20 66 72 6f 6d 20 6a 73 32 2d 6d 6f 64 65 2e 65    6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63  | .from.js2-mode.el..-*-.no-byte-c | 
| 98e40 |  6f 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64    65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 6a  | ompile:.t.-*-.(define-package."j | 
| 98e60 |  73 32 2d 6d 6f 64 65 22 20 22 32 30 32 33 31 32    32 34 22 20 22 49 6d 70 72 6f 76 65 64 20 4a 61  | s2-mode"."20231224"."Improved.Ja | 
| 98e80 |  76 61 53 63 72 69 70 74 20 65 64 69 74 69 6e 67    20 6d 6f 64 65 22 20 27 28 28 65 6d 61 63 73 20  | vaScript.editing.mode".'((emacs. | 
| 98ea0 |  22 32 34 2e 31 22 29 20 28 63 6c 2d 6c 69 62 20    22 30 2e 35 22 29 29 20 3a 63 6f 6d 6d 69 74 20  | "24.1").(cl-lib."0.5")).:commit. | 
| 98ec0 |  22 30 31 30 61 35 33 36 64 61 36 64 66 33 34 35    61 30 62 39 61 35 35 62 62 64 38 39 32 66 35 66  | "010a536da6df345a0b9a55bbd892f5f | 
| 98ee0 |  34 64 30 64 39 66 64 66 63 22 20 3a 61 75 74 68    6f 72 73 20 27 28 28 22 53 74 65 76 65 20 59 65  | 4d0d9fdfc".:authors.'(("Steve.Ye | 
| 98f00 |  67 67 65 22 20 2e 20 22 73 74 65 76 65 2e 79 65    67 67 65 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 20  | gge"..."steve.yegge@gmail.com"). | 
| 98f20 |  28 22 6d 6f 6f 7a 22 20 2e 20 22 73 74 69 6c 6c    70 65 64 61 6e 74 40 67 6d 61 69 6c 2e 63 6f 6d  | ("mooz"..."stillpedant@gmail.com | 
| 98f40 |  22 29 20 28 22 44 6d 69 74 72 79 20 47 75 74 6f    76 22 20 2e 20 22 64 67 75 74 6f 76 40 79 61 6e  | ").("Dmitry.Gutov"..."dgutov@yan | 
| 98f60 |  64 65 78 2e 72 75 22 29 29 20 3a 6d 61 69 6e 74    61 69 6e 65 72 20 27 28 28 22 53 74 65 76 65 20  | dex.ru")).:maintainer.'(("Steve. | 
| 98f80 |  59 65 67 67 65 22 20 2e 20 22 73 74 65 76 65 2e    79 65 67 67 65 40 67 6d 61 69 6c 2e 63 6f 6d 22  | Yegge"..."steve.yegge@gmail.com" | 
| 98fa0 |  29 20 28 22 6d 6f 6f 7a 22 20 2e 20 22 73 74 69    6c 6c 70 65 64 61 6e 74 40 67 6d 61 69 6c 2e 63  | ).("mooz"..."stillpedant@gmail.c | 
| 98fc0 |  6f 6d 22 29 20 28 22 44 6d 69 74 72 79 20 47 75    74 6f 76 22 20 2e 20 22 64 67 75 74 6f 76 40 79  | om").("Dmitry.Gutov"..."dgutov@y | 
| 98fe0 |  61 6e 64 65 78 2e 72 75 22 29 29 20 3a 6b 65 79    77 6f 72 64 73 20 27 28 22 6c 61 6e 67 75 61 67  | andex.ru")).:keywords.'("languag | 
| 99000 |  65 73 22 20 22 6a 61 76 61 73 63 72 69 70 74 22    29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f  | es"."javascript").:url."https:// | 
| 99020 |  67 69 74 68 75 62 2e 63 6f 6d 2f 6d 6f 6f 7a 2f    6a 73 32 2d 6d 6f 64 65 2f 22 29 0a 00 00 00 00  | github.com/mooz/js2-mode/")..... | 
| 99040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 990a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 990c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 990e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 991a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 991c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 991e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99200 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c  | js2-mode-20231224/.dir-locals.el | 
| 99220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99260 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 99280 |  30 30 30 30 30 35 34 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 34 36 32 00 20 30 00 00 00  | 0000054.00000000000.014462..0... | 
| 992a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 992c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 992e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99300 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 99320 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 99340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 993a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 993c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 993e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99400 |  28 28 6e 69 6c 20 2e 20 28 28 73 65 6e 74 65 6e    63 65 2d 65 6e 64 2d 64 6f 75 62 6c 65 2d 73 70  | ((nil...((sentence-end-double-sp | 
| 99420 |  61 63 65 20 2e 20 74 29 29 29 29 0a 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ace...t))))..................... | 
| 99440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 994a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 994c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 994e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 995a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 995c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 995e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99600 |  6a 73 32 2d 6d 6f 64 65 2d 32 30 32 33 31 32 32    34 2f 2e 65 6c 70 61 69 67 6e 6f 72 65 00 00 00  | js2-mode-20231224/.elpaignore... | 
| 99620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99660 |  00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30    30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  | ....0000644.0000000.0000000.0000 | 
| 99680 |  30 30 30 30 30 34 36 00 30 30 30 30 30 30 30 30    30 30 30 00 30 31 34 31 36 30 00 20 30 00 00 00  | 0000046.00000000000.014160..0... | 
| 996a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 996c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 996e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99700 |  00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .ustar...root................... | 
| 99720 |  00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | .........root................... | 
| 99740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 997a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 997c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 997e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99800 |  2e 74 72 61 76 69 73 2e 79 6d 6c 0a 2e 67 69 74    69 67 6e 6f 72 65 0a 4d 61 6b 65 66 69 6c 65 0a  | .travis.yml..gitignore.Makefile. | 
| 99820 |  74 65 73 74 73 0a 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | tests........................... | 
| 99840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 998a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 998c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 998e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 999a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 999c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 999e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99a00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99a20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99a40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99a60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99a80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99aa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99b00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99b20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99b40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99b60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99b80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99bc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99be0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99c00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99c20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99c40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99c60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99c80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99cc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ce0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99d00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99d20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99d40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99d60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99d80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99da0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99dc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99de0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99e00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99e20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99e40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99e60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99e80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99ee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99f00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99f20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99f40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99f60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99f80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99fa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99fc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 99fe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a000 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a020 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a040 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a060 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a080 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a0a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a0c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a0e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a100 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a120 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a140 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a160 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a180 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a1a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a1c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a1e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a200 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a220 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a240 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a260 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a280 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a2a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a2c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a2e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a300 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a320 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a340 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a360 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a380 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a3a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a3c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a3e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a400 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a420 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a440 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a460 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a480 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a4a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a4c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a4e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a500 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a520 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a540 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a560 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a580 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a5a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a5c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a5e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a600 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a620 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a640 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a660 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a680 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a6a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a6c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a6e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a700 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a720 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a740 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a760 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a780 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a7a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a7c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a7e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a800 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a820 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a840 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a860 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a880 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a8a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a8c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a8e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a900 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a920 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a940 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a960 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a980 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a9a0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a9c0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9a9e0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aa00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aa20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aa40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aa60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aa80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aaa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aac0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aae0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ab00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ab20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ab40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ab60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ab80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aba0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9abc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9abe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ac00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ac20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ac40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ac60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ac80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aca0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9acc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ace0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ad00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ad20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ad40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ad60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ad80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ada0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9adc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ade0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ae00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ae20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ae40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ae60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9ae80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aea0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aec0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9aee0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9af00 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9af20 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9af40 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9af60 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9af80 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9afa0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9afc0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ | 
| 9afe0 |  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  | ................................ |