0000: 2f 2a 20 52 69 6f 74 20 76 33 2e 31 33 2e 32 2c /* Riot v3.13.2,
0010: 20 40 6c 69 63 65 6e 73 65 20 4d 49 54 20 2a 2f @license MIT */
0020: 0a 28 66 75 6e 63 74 69 6f 6e 20 28 67 6c 6f 62 .(function (glob
0030: 61 6c 2c 20 66 61 63 74 6f 72 79 29 20 7b 0a 20 al, factory) {.
0040: 20 74 79 70 65 6f 66 20 65 78 70 6f 72 74 73 20 typeof exports
0050: 3d 3d 3d 20 27 6f 62 6a 65 63 74 27 20 26 26 20 === 'object' &&
0060: 74 79 70 65 6f 66 20 6d 6f 64 75 6c 65 20 21 3d typeof module !=
0070: 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f 20 = 'undefined' ?
0080: 66 61 63 74 6f 72 79 28 65 78 70 6f 72 74 73 29 factory(exports)
0090: 20 3a 0a 20 20 74 79 70 65 6f 66 20 64 65 66 69 :. typeof defi
00a0: 6e 65 20 3d 3d 3d 20 27 66 75 6e 63 74 69 6f 6e ne === 'function
00b0: 27 20 26 26 20 64 65 66 69 6e 65 2e 61 6d 64 20 ' && define.amd
00c0: 3f 20 64 65 66 69 6e 65 28 5b 27 65 78 70 6f 72 ? define(['expor
00d0: 74 73 27 5d 2c 20 66 61 63 74 6f 72 79 29 20 3a ts'], factory) :
00e0: 0a 20 20 28 66 61 63 74 6f 72 79 28 28 67 6c 6f . (factory((glo
00f0: 62 61 6c 2e 72 69 6f 74 20 3d 20 7b 7d 29 29 29 bal.riot = {})))
0100: 3b 0a 7d 28 74 68 69 73 2c 20 28 66 75 6e 63 74 ;.}(this, (funct
0110: 69 6f 6e 20 28 65 78 70 6f 72 74 73 29 20 7b 20 ion (exports) {
0120: 27 75 73 65 20 73 74 72 69 63 74 27 3b 0a 0a 20 'use strict';..
0130: 20 2f 2a 2a 0a 20 20 20 2a 20 53 68 6f 72 74 65 /**. * Shorte
0140: 72 20 61 6e 64 20 66 61 73 74 20 77 61 79 20 74 r and fast way t
0150: 6f 20 73 65 6c 65 63 74 20 61 20 73 69 6e 67 6c o select a singl
0160: 65 20 6e 6f 64 65 20 69 6e 20 74 68 65 20 44 4f e node in the DO
0170: 4d 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 M. * @param
0180: 7b 20 53 74 72 69 6e 67 20 7d 20 73 65 6c 65 63 { String } selec
0190: 74 6f 72 20 2d 20 75 6e 69 71 75 65 20 64 6f 6d tor - unique dom
01a0: 20 73 65 6c 65 63 74 6f 72 0a 20 20 20 2a 20 40 selector. * @
01b0: 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 param { Object
01c0: 20 7d 20 63 74 78 20 2d 20 44 4f 4d 20 6e 6f 64 } ctx - DOM nod
01d0: 65 20 77 68 65 72 65 20 74 68 65 20 74 61 72 67 e where the targ
01e0: 65 74 20 6f 66 20 6f 75 72 20 73 65 61 72 63 68 et of our search
01f0: 20 77 69 6c 6c 20 69 73 20 6c 6f 63 61 74 65 64 will is located
0200: 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b . * @returns {
0210: 20 4f 62 6a 65 63 74 20 7d 20 64 6f 6d 20 6e 6f Object } dom no
0220: 64 65 20 66 6f 75 6e 64 0a 20 20 20 2a 2f 0a 20 de found. */.
0230: 20 66 75 6e 63 74 69 6f 6e 20 24 28 73 65 6c 65 function $(sele
0240: 63 74 6f 72 2c 20 63 74 78 29 20 7b 0a 20 20 20 ctor, ctx) {.
0250: 20 72 65 74 75 72 6e 20 28 63 74 78 20 7c 7c 20 return (ctx ||
0260: 64 6f 63 75 6d 65 6e 74 29 2e 71 75 65 72 79 53 document).queryS
0270: 65 6c 65 63 74 6f 72 28 73 65 6c 65 63 74 6f 72 elector(selector
0280: 29 0a 20 20 7d 0a 0a 20 20 76 61 72 0a 20 20 20 ). }.. var.
0290: 20 2f 2f 20 62 65 20 61 77 61 72 65 2c 20 69 6e // be aware, in
02a0: 74 65 72 6e 61 6c 20 75 73 61 67 65 0a 20 20 20 ternal usage.
02b0: 20 2f 2f 20 41 54 54 45 4e 54 49 4f 4e 3a 20 70 // ATTENTION: p
02c0: 72 65 66 69 78 20 74 68 65 20 67 6c 6f 62 61 6c refix the global
02d0: 20 64 79 6e 61 6d 69 63 20 76 61 72 69 61 62 6c dynamic variabl
02e0: 65 73 20 77 69 74 68 20 60 5f 5f 60 0a 20 20 20 es with `__`.
02f0: 20 2f 2f 20 74 61 67 73 20 69 6e 73 74 61 6e 63 // tags instanc
0300: 65 73 20 63 61 63 68 65 0a 20 20 20 20 5f 5f 54 es cache. __T
0310: 41 47 53 5f 43 41 43 48 45 20 3d 20 5b 5d 2c 0a AGS_CACHE = [],.
0320: 20 20 20 20 2f 2f 20 74 61 67 73 20 69 6d 70 6c // tags impl
0330: 65 6d 65 6e 74 61 74 69 6f 6e 20 63 61 63 68 65 ementation cache
0340: 0a 20 20 20 20 5f 5f 54 41 47 5f 49 4d 50 4c 20 . __TAG_IMPL
0350: 3d 20 7b 7d 2c 0a 20 20 20 20 59 49 45 4c 44 5f = {},. YIELD_
0360: 54 41 47 20 3d 20 27 79 69 65 6c 64 27 2c 0a 0a TAG = 'yield',..
0370: 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 /**. * C
0380: 6f 6e 73 74 0a 20 20 20 20 20 2a 2f 0a 20 20 20 onst. */.
0390: 20 47 4c 4f 42 41 4c 5f 4d 49 58 49 4e 20 3d 20 GLOBAL_MIXIN =
03a0: 27 5f 5f 67 6c 6f 62 61 6c 5f 6d 69 78 69 6e 27 '__global_mixin'
03b0: 2c 0a 0a 20 20 20 20 2f 2f 20 72 69 6f 74 20 73 ,.. // riot s
03c0: 70 65 63 69 66 69 63 20 70 72 65 66 69 78 65 73 pecific prefixes
03d0: 20 6f 72 20 61 74 74 72 69 62 75 74 65 73 0a 20 or attributes.
03e0: 20 20 20 41 54 54 52 53 5f 50 52 45 46 49 58 20 ATTRS_PREFIX
03f0: 3d 20 27 72 69 6f 74 2d 27 2c 0a 0a 20 20 20 20 = 'riot-',..
0400: 2f 2f 20 52 69 6f 74 20 44 69 72 65 63 74 69 76 // Riot Directiv
0410: 65 73 0a 20 20 20 20 52 45 46 5f 44 49 52 45 43 es. REF_DIREC
0420: 54 49 56 45 53 20 3d 20 5b 27 72 65 66 27 2c 20 TIVES = ['ref',
0430: 27 64 61 74 61 2d 72 65 66 27 5d 2c 0a 20 20 20 'data-ref'],.
0440: 20 49 53 5f 44 49 52 45 43 54 49 56 45 20 3d 20 IS_DIRECTIVE =
0450: 27 64 61 74 61 2d 69 73 27 2c 0a 20 20 20 20 43 'data-is',. C
0460: 4f 4e 44 49 54 49 4f 4e 41 4c 5f 44 49 52 45 43 ONDITIONAL_DIREC
0470: 54 49 56 45 20 3d 20 27 69 66 27 2c 0a 20 20 20 TIVE = 'if',.
0480: 20 4c 4f 4f 50 5f 44 49 52 45 43 54 49 56 45 20 LOOP_DIRECTIVE
0490: 3d 20 27 65 61 63 68 27 2c 0a 20 20 20 20 4c 4f = 'each',. LO
04a0: 4f 50 5f 4e 4f 5f 52 45 4f 52 44 45 52 5f 44 49 OP_NO_REORDER_DI
04b0: 52 45 43 54 49 56 45 20 3d 20 27 6e 6f 2d 72 65 RECTIVE = 'no-re
04c0: 6f 72 64 65 72 27 2c 0a 20 20 20 20 53 48 4f 57 order',. SHOW
04d0: 5f 44 49 52 45 43 54 49 56 45 20 3d 20 27 73 68 _DIRECTIVE = 'sh
04e0: 6f 77 27 2c 0a 20 20 20 20 48 49 44 45 5f 44 49 ow',. HIDE_DI
04f0: 52 45 43 54 49 56 45 20 3d 20 27 68 69 64 65 27 RECTIVE = 'hide'
0500: 2c 0a 20 20 20 20 4b 45 59 5f 44 49 52 45 43 54 ,. KEY_DIRECT
0510: 49 56 45 20 3d 20 27 6b 65 79 27 2c 0a 20 20 20 IVE = 'key',.
0520: 20 52 49 4f 54 5f 45 56 45 4e 54 53 5f 4b 45 59 RIOT_EVENTS_KEY
0530: 20 3d 20 27 5f 5f 72 69 6f 74 2d 65 76 65 6e 74 = '__riot-event
0540: 73 5f 5f 27 2c 0a 0a 20 20 20 20 2f 2f 20 66 6f s__',.. // fo
0550: 72 20 74 79 70 65 6f 66 20 3d 3d 20 27 27 20 63 r typeof == '' c
0560: 6f 6d 70 61 72 69 73 6f 6e 73 0a 20 20 20 20 54 omparisons. T
0570: 5f 53 54 52 49 4e 47 20 3d 20 27 73 74 72 69 6e _STRING = 'strin
0580: 67 27 2c 0a 20 20 20 20 54 5f 4f 42 4a 45 43 54 g',. T_OBJECT
0590: 20 3d 20 27 6f 62 6a 65 63 74 27 2c 0a 20 20 20 = 'object',.
05a0: 20 54 5f 55 4e 44 45 46 20 20 3d 20 27 75 6e 64 T_UNDEF = 'und
05b0: 65 66 69 6e 65 64 27 2c 0a 20 20 20 20 54 5f 46 efined',. T_F
05c0: 55 4e 43 54 49 4f 4e 20 3d 20 27 66 75 6e 63 74 UNCTION = 'funct
05d0: 69 6f 6e 27 2c 0a 0a 20 20 20 20 58 4c 49 4e 4b ion',.. XLINK
05e0: 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 77 77 _NS = 'http://ww
05f0: 77 2e 77 33 2e 6f 72 67 2f 31 39 39 39 2f 78 6c w.w3.org/1999/xl
0600: 69 6e 6b 27 2c 0a 20 20 20 20 53 56 47 5f 4e 53 ink',. SVG_NS
0610: 20 3d 20 27 68 74 74 70 3a 2f 2f 77 77 77 2e 77 = 'http://www.w
0620: 33 2e 6f 72 67 2f 32 30 30 30 2f 73 76 67 27 2c 3.org/2000/svg',
0630: 0a 20 20 20 20 58 4c 49 4e 4b 5f 52 45 47 45 58 . XLINK_REGEX
0640: 20 3d 20 2f 5e 78 6c 69 6e 6b 3a 28 5c 77 2b 29 = /^xlink:(\w+)
0650: 2f 2c 0a 0a 20 20 20 20 57 49 4e 20 3d 20 74 79 /,.. WIN = ty
0660: 70 65 6f 66 20 77 69 6e 64 6f 77 20 3d 3d 3d 20 peof window ===
0670: 54 5f 55 4e 44 45 46 20 3f 20 2f 2a 20 69 73 74 T_UNDEF ? /* ist
0680: 61 6e 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 78 anbul ignore nex
0690: 74 20 2a 2f 20 75 6e 64 65 66 69 6e 65 64 20 3a t */ undefined :
06a0: 20 77 69 6e 64 6f 77 2c 0a 0a 20 20 20 20 2f 2f window,.. //
06b0: 20 73 70 65 63 69 61 6c 20 6e 61 74 69 76 65 20 special native
06c0: 74 61 67 73 20 74 68 61 74 20 63 61 6e 6e 6f 74 tags that cannot
06d0: 20 62 65 20 74 72 65 61 74 65 64 20 6c 69 6b 65 be treated like
06e0: 20 74 68 65 20 6f 74 68 65 72 73 0a 20 20 20 20 the others.
06f0: 52 45 5f 53 50 45 43 49 41 4c 5f 54 41 47 53 20 RE_SPECIAL_TAGS
0700: 3d 20 2f 5e 28 3f 3a 74 28 3f 3a 62 6f 64 79 7c = /^(?:t(?:body|
0710: 68 65 61 64 7c 66 6f 6f 74 7c 5b 72 68 64 5d 29 head|foot|[rhd])
0720: 7c 63 61 70 74 69 6f 6e 7c 63 6f 6c 28 3f 3a 67 |caption|col(?:g
0730: 72 6f 75 70 29 3f 7c 6f 70 74 28 3f 3a 69 6f 6e roup)?|opt(?:ion
0740: 7c 67 72 6f 75 70 29 29 24 2f 2c 0a 20 20 20 20 |group))$/,.
0750: 52 45 5f 53 50 45 43 49 41 4c 5f 54 41 47 53 5f RE_SPECIAL_TAGS_
0760: 4e 4f 5f 4f 50 54 49 4f 4e 20 3d 20 2f 5e 28 3f NO_OPTION = /^(?
0770: 3a 74 28 3f 3a 62 6f 64 79 7c 68 65 61 64 7c 66 :t(?:body|head|f
0780: 6f 6f 74 7c 5b 72 68 64 5d 29 7c 63 61 70 74 69 oot|[rhd])|capti
0790: 6f 6e 7c 63 6f 6c 28 3f 3a 67 72 6f 75 70 29 3f on|col(?:group)?
07a0: 29 24 2f 2c 0a 20 20 20 20 52 45 5f 45 56 45 4e )$/,. RE_EVEN
07b0: 54 53 5f 50 52 45 46 49 58 20 3d 20 2f 5e 6f 6e TS_PREFIX = /^on
07c0: 2f 2c 0a 20 20 20 20 52 45 5f 48 54 4d 4c 5f 41 /,. RE_HTML_A
07d0: 54 54 52 53 20 3d 20 2f 28 5b 2d 5c 77 5d 2b 29 TTRS = /([-\w]+)
07e0: 20 3f 3d 20 3f 28 3f 3a 22 28 5b 5e 22 5d 2a 29 ?= ?(?:"([^"]*)
07f0: 7c 27 28 5b 5e 27 5d 2a 29 7c 28 7b 5b 5e 7d 5d |'([^']*)|({[^}]
0800: 2a 7d 29 29 2f 67 2c 0a 20 20 20 20 2f 2f 20 73 *}))/g,. // s
0810: 6f 6d 65 20 44 4f 4d 20 61 74 74 72 69 62 75 74 ome DOM attribut
0820: 65 73 20 6d 75 73 74 20 62 65 20 6e 6f 72 6d 61 es must be norma
0830: 6c 69 7a 65 64 0a 20 20 20 20 43 41 53 45 5f 53 lized. CASE_S
0840: 45 4e 53 49 54 49 56 45 5f 41 54 54 52 49 42 55 ENSITIVE_ATTRIBU
0850: 54 45 53 20 3d 20 7b 0a 20 20 20 20 20 20 27 76 TES = {. 'v
0860: 69 65 77 62 6f 78 27 3a 20 27 76 69 65 77 42 6f iewbox': 'viewBo
0870: 78 27 2c 0a 20 20 20 20 20 20 27 70 72 65 73 65 x',. 'prese
0880: 72 76 65 61 73 70 65 63 74 72 61 74 69 6f 27 3a rveaspectratio':
0890: 20 27 70 72 65 73 65 72 76 65 41 73 70 65 63 74 'preserveAspect
08a0: 52 61 74 69 6f 27 0a 20 20 20 20 7d 2c 0a 20 20 Ratio'. },.
08b0: 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 4d 61 74 /**. * Mat
08c0: 63 68 65 73 20 62 6f 6f 6c 65 61 6e 20 48 54 4d ches boolean HTM
08d0: 4c 20 61 74 74 72 69 62 75 74 65 73 20 69 6e 20 L attributes in
08e0: 74 68 65 20 72 69 6f 74 20 74 61 67 20 64 65 66 the riot tag def
08f0: 69 6e 69 74 69 6f 6e 2e 0a 20 20 20 20 20 2a 20 inition.. *
0900: 57 69 74 68 20 61 20 6c 6f 6e 67 20 6c 69 73 74 With a long list
0910: 20 6c 69 6b 65 20 74 68 69 73 2c 20 61 20 72 65 like this, a re
0920: 67 65 78 20 69 73 20 66 61 73 74 65 72 20 74 68 gex is faster th
0930: 61 6e 20 60 5b 5d 2e 69 6e 64 65 78 4f 66 60 20 an `[].indexOf`
0940: 69 6e 20 6d 6f 73 74 20 62 72 6f 77 73 65 72 73 in most browsers
0950: 2e 0a 20 20 20 20 20 2a 20 40 63 6f 6e 73 74 20 .. * @const
0960: 7b 52 65 67 45 78 70 7d 0a 20 20 20 20 20 2a 20 {RegExp}. *
0970: 40 73 65 65 20 5b 61 74 74 72 69 62 75 74 65 73 @see [attributes
0980: 2e 6d 64 5d 28 68 74 74 70 73 3a 2f 2f 67 69 74 .md](https://git
0990: 68 75 62 2e 63 6f 6d 2f 72 69 6f 74 2f 63 6f 6d hub.com/riot/com
09a0: 70 69 6c 65 72 2f 62 6c 6f 62 2f 64 65 76 2f 64 piler/blob/dev/d
09b0: 6f 63 2f 61 74 74 72 69 62 75 74 65 73 2e 6d 64 oc/attributes.md
09c0: 29 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 52 45 ). */. RE
09d0: 5f 42 4f 4f 4c 5f 41 54 54 52 53 20 3d 20 2f 5e _BOOL_ATTRS = /^
09e0: 28 3f 3a 64 69 73 61 62 6c 65 64 7c 63 68 65 63 (?:disabled|chec
09f0: 6b 65 64 7c 72 65 61 64 6f 6e 6c 79 7c 72 65 71 ked|readonly|req
0a00: 75 69 72 65 64 7c 61 6c 6c 6f 77 66 75 6c 6c 73 uired|allowfulls
0a10: 63 72 65 65 6e 7c 61 75 74 6f 28 3f 3a 66 6f 63 creen|auto(?:foc
0a20: 75 73 7c 70 6c 61 79 29 7c 63 6f 6d 70 61 63 74 us|play)|compact
0a30: 7c 63 6f 6e 74 72 6f 6c 73 7c 64 65 66 61 75 6c |controls|defaul
0a40: 74 7c 66 6f 72 6d 6e 6f 76 61 6c 69 64 61 74 65 t|formnovalidate
0a50: 7c 68 69 64 64 65 6e 7c 69 73 6d 61 70 7c 69 74 |hidden|ismap|it
0a60: 65 6d 73 63 6f 70 65 7c 6c 6f 6f 70 7c 6d 75 6c emscope|loop|mul
0a70: 74 69 70 6c 65 7c 6d 75 74 65 64 7c 6e 6f 28 3f tiple|muted|no(?
0a80: 3a 72 65 73 69 7a 65 7c 73 68 61 64 65 7c 76 61 :resize|shade|va
0a90: 6c 69 64 61 74 65 7c 77 72 61 70 29 3f 7c 6f 70 lidate|wrap)?|op
0aa0: 65 6e 7c 72 65 76 65 72 73 65 64 7c 73 65 61 6d en|reversed|seam
0ab0: 6c 65 73 73 7c 73 65 6c 65 63 74 65 64 7c 73 6f less|selected|so
0ac0: 72 74 61 62 6c 65 7c 74 72 75 65 73 70 65 65 64 rtable|truespeed
0ad0: 7c 74 79 70 65 6d 75 73 74 6d 61 74 63 68 29 24 |typemustmatch)$
0ae0: 2f 2c 0a 20 20 20 20 2f 2f 20 76 65 72 73 69 6f /,. // versio
0af0: 6e 23 20 66 6f 72 20 49 45 20 38 2d 31 31 2c 20 n# for IE 8-11,
0b00: 30 20 66 6f 72 20 6f 74 68 65 72 73 0a 20 20 20 0 for others.
0b10: 20 49 45 5f 56 45 52 53 49 4f 4e 20 3d 20 28 57 IE_VERSION = (W
0b20: 49 4e 20 26 26 20 57 49 4e 2e 64 6f 63 75 6d 65 IN && WIN.docume
0b30: 6e 74 20 7c 7c 20 2f 2a 20 69 73 74 61 6e 62 75 nt || /* istanbu
0b40: 6c 20 69 67 6e 6f 72 65 20 6e 65 78 74 20 2a 2f l ignore next */
0b50: 20 7b 7d 29 2e 64 6f 63 75 6d 65 6e 74 4d 6f 64 {}).documentMod
0b60: 65 20 7c 20 30 3b 0a 0a 20 20 2f 2a 2a 0a 20 20 e | 0;.. /**.
0b70: 20 2a 20 43 72 65 61 74 65 20 61 20 67 65 6e 65 * Create a gene
0b80: 72 69 63 20 44 4f 4d 20 6e 6f 64 65 0a 20 20 20 ric DOM node.
0b90: 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
0ba0: 69 6e 67 20 7d 20 6e 61 6d 65 20 2d 20 6e 61 6d ing } name - nam
0bb0: 65 20 6f 66 20 74 68 65 20 44 4f 4d 20 6e 6f 64 e of the DOM nod
0bc0: 65 20 77 65 20 77 61 6e 74 20 74 6f 20 63 72 65 e we want to cre
0bd0: 61 74 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e ate. * @return
0be0: 73 20 7b 20 4f 62 6a 65 63 74 20 7d 20 44 4f 4d s { Object } DOM
0bf0: 20 6e 6f 64 65 20 6a 75 73 74 20 63 72 65 61 74 node just creat
0c00: 65 64 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 ed. */. funct
0c10: 69 6f 6e 20 6d 61 6b 65 45 6c 65 6d 65 6e 74 28 ion makeElement(
0c20: 6e 61 6d 65 29 20 7b 0a 20 20 20 20 72 65 74 75 name) {. retu
0c30: 72 6e 20 6e 61 6d 65 20 3d 3d 3d 20 27 73 76 67 rn name === 'svg
0c40: 27 20 3f 20 64 6f 63 75 6d 65 6e 74 2e 63 72 65 ' ? document.cre
0c50: 61 74 65 45 6c 65 6d 65 6e 74 4e 53 28 53 56 47 ateElementNS(SVG
0c60: 5f 4e 53 2c 20 6e 61 6d 65 29 20 3a 20 64 6f 63 _NS, name) : doc
0c70: 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c 65 6d ument.createElem
0c80: 65 6e 74 28 6e 61 6d 65 29 0a 20 20 7d 0a 0a 20 ent(name). }..
0c90: 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 61 6e /**. * Set an
0ca0: 79 20 44 4f 4d 20 61 74 74 72 69 62 75 74 65 0a y DOM attribute.
0cb0: 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 4f 62 * @param { Ob
0cc0: 6a 65 63 74 20 7d 20 64 6f 6d 20 2d 20 44 4f 4d ject } dom - DOM
0cd0: 20 6e 6f 64 65 20 77 65 20 77 61 6e 74 20 74 6f node we want to
0ce0: 20 75 70 64 61 74 65 0a 20 20 20 2a 20 40 70 61 update. * @pa
0cf0: 72 61 6d 20 7b 20 53 74 72 69 6e 67 20 7d 20 6e ram { String } n
0d00: 61 6d 65 20 2d 20 6e 61 6d 65 20 6f 66 20 74 68 ame - name of th
0d10: 65 20 70 72 6f 70 65 72 74 79 20 77 65 20 77 61 e property we wa
0d20: 6e 74 20 74 6f 20 73 65 74 0a 20 20 20 2a 20 40 nt to set. * @
0d30: 70 61 72 61 6d 20 7b 20 53 74 72 69 6e 67 20 7d param { String }
0d40: 20 76 61 6c 20 2d 20 76 61 6c 75 65 20 6f 66 20 val - value of
0d50: 74 68 65 20 70 72 6f 70 65 72 74 79 20 77 65 20 the property we
0d60: 77 61 6e 74 20 74 6f 20 73 65 74 0a 20 20 20 2a want to set. *
0d70: 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 /. function set
0d80: 41 74 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 6e Attribute(dom, n
0d90: 61 6d 65 2c 20 76 61 6c 29 20 7b 0a 20 20 20 20 ame, val) {.
0da0: 76 61 72 20 78 6c 69 6e 6b 20 3d 20 58 4c 49 4e var xlink = XLIN
0db0: 4b 5f 52 45 47 45 58 2e 65 78 65 63 28 6e 61 6d K_REGEX.exec(nam
0dc0: 65 29 3b 0a 20 20 20 20 69 66 20 28 78 6c 69 6e e);. if (xlin
0dd0: 6b 20 26 26 20 78 6c 69 6e 6b 5b 31 5d 29 0a 20 k && xlink[1]).
0de0: 20 20 20 20 20 7b 20 64 6f 6d 2e 73 65 74 41 74 { dom.setAt
0df0: 74 72 69 62 75 74 65 4e 53 28 58 4c 49 4e 4b 5f tributeNS(XLINK_
0e00: 4e 53 2c 20 78 6c 69 6e 6b 5b 31 5d 2c 20 76 61 NS, xlink[1], va
0e10: 6c 29 3b 20 7d 0a 20 20 20 20 65 6c 73 65 0a 20 l); }. else.
0e20: 20 20 20 20 20 7b 20 64 6f 6d 2e 73 65 74 41 74 { dom.setAt
0e30: 74 72 69 62 75 74 65 28 6e 61 6d 65 2c 20 76 61 tribute(name, va
0e40: 6c 29 3b 20 7d 0a 20 20 7d 0a 0a 20 20 76 61 72 l); }. }.. var
0e50: 20 73 74 79 6c 65 4e 6f 64 65 3b 0a 20 20 2f 2f styleNode;. //
0e60: 20 43 72 65 61 74 65 20 63 61 63 68 65 20 61 6e Create cache an
0e70: 64 20 73 68 6f 72 74 63 75 74 20 74 6f 20 74 68 d shortcut to th
0e80: 65 20 63 6f 72 72 65 63 74 20 70 72 6f 70 65 72 e correct proper
0e90: 74 79 0a 20 20 76 61 72 20 63 73 73 54 65 78 74 ty. var cssText
0ea0: 50 72 6f 70 3b 0a 20 20 76 61 72 20 62 79 4e 61 Prop;. var byNa
0eb0: 6d 65 20 3d 20 7b 7d 3b 0a 20 20 76 61 72 20 6e me = {};. var n
0ec0: 65 65 64 73 49 6e 6a 65 63 74 20 3d 20 66 61 6c eedsInject = fal
0ed0: 73 65 3b 0a 0a 20 20 2f 2f 20 73 6b 69 70 20 74 se;.. // skip t
0ee0: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 64 he following cod
0ef0: 65 20 6f 6e 20 74 68 65 20 73 65 72 76 65 72 0a e on the server.
0f00: 20 20 69 66 20 28 57 49 4e 29 20 7b 0a 20 20 20 if (WIN) {.
0f10: 20 73 74 79 6c 65 4e 6f 64 65 20 3d 20 28 28 66 styleNode = ((f
0f20: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20 unction () {.
0f30: 20 20 20 2f 2f 20 63 72 65 61 74 65 20 61 20 6e // create a n
0f40: 65 77 20 73 74 79 6c 65 20 65 6c 65 6d 65 6e 74 ew style element
0f50: 20 77 69 74 68 20 74 68 65 20 63 6f 72 72 65 63 with the correc
0f60: 74 20 74 79 70 65 0a 20 20 20 20 20 20 76 61 72 t type. var
0f70: 20 6e 65 77 4e 6f 64 65 20 3d 20 6d 61 6b 65 45 newNode = makeE
0f80: 6c 65 6d 65 6e 74 28 27 73 74 79 6c 65 27 29 3b lement('style');
0f90: 0a 20 20 20 20 20 20 2f 2f 20 72 65 70 6c 61 63 . // replac
0fa0: 65 20 61 6e 79 20 75 73 65 72 20 6e 6f 64 65 20 e any user node
0fb0: 6f 72 20 69 6e 73 65 72 74 20 74 68 65 20 6e 65 or insert the ne
0fc0: 77 20 6f 6e 65 20 69 6e 74 6f 20 74 68 65 20 68 w one into the h
0fd0: 65 61 64 0a 20 20 20 20 20 20 76 61 72 20 75 73 ead. var us
0fe0: 65 72 4e 6f 64 65 20 3d 20 24 28 27 73 74 79 6c erNode = $('styl
0ff0: 65 5b 74 79 70 65 3d 72 69 6f 74 5d 27 29 3b 0a e[type=riot]');.
1000: 0a 20 20 20 20 20 20 73 65 74 41 74 74 72 69 62 . setAttrib
1010: 75 74 65 28 6e 65 77 4e 6f 64 65 2c 20 27 74 79 ute(newNode, 'ty
1020: 70 65 27 2c 20 27 74 65 78 74 2f 63 73 73 27 29 pe', 'text/css')
1030: 3b 0a 20 20 20 20 20 20 2f 2a 20 69 73 74 61 6e ;. /* istan
1040: 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 78 74 20 bul ignore next
1050: 2a 2f 0a 20 20 20 20 20 20 69 66 20 28 75 73 65 */. if (use
1060: 72 4e 6f 64 65 29 20 7b 0a 20 20 20 20 20 20 20 rNode) {.
1070: 20 69 66 20 28 75 73 65 72 4e 6f 64 65 2e 69 64 if (userNode.id
1080: 29 20 7b 20 6e 65 77 4e 6f 64 65 2e 69 64 20 3d ) { newNode.id =
1090: 20 75 73 65 72 4e 6f 64 65 2e 69 64 3b 20 7d 0a userNode.id; }.
10a0: 20 20 20 20 20 20 20 20 75 73 65 72 4e 6f 64 65 userNode
10b0: 2e 70 61 72 65 6e 74 4e 6f 64 65 2e 72 65 70 6c .parentNode.repl
10c0: 61 63 65 43 68 69 6c 64 28 6e 65 77 4e 6f 64 65 aceChild(newNode
10d0: 2c 20 75 73 65 72 4e 6f 64 65 29 3b 0a 20 20 20 , userNode);.
10e0: 20 20 20 7d 20 65 6c 73 65 20 7b 20 64 6f 63 75 } else { docu
10f0: 6d 65 6e 74 2e 68 65 61 64 2e 61 70 70 65 6e 64 ment.head.append
1100: 43 68 69 6c 64 28 6e 65 77 4e 6f 64 65 29 3b 20 Child(newNode);
1110: 7d 0a 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 }.. return
1120: 6e 65 77 4e 6f 64 65 0a 20 20 20 20 7d 29 29 28 newNode. }))(
1130: 29 3b 0a 20 20 20 20 63 73 73 54 65 78 74 50 72 );. cssTextPr
1140: 6f 70 20 3d 20 73 74 79 6c 65 4e 6f 64 65 2e 73 op = styleNode.s
1150: 74 79 6c 65 53 68 65 65 74 3b 0a 20 20 7d 0a 0a tyleSheet;. }..
1160: 20 20 2f 2a 2a 0a 20 20 20 2a 20 4f 62 6a 65 63 /**. * Objec
1170: 74 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 75 t that will be u
1180: 73 65 64 20 74 6f 20 69 6e 6a 65 63 74 20 61 6e sed to inject an
1190: 64 20 6d 61 6e 61 67 65 20 74 68 65 20 63 73 73 d manage the css
11a0: 20 6f 66 20 65 76 65 72 79 20 74 61 67 20 69 6e of every tag in
11b0: 73 74 61 6e 63 65 0a 20 20 20 2a 2f 0a 20 20 76 stance. */. v
11c0: 61 72 20 73 74 79 6c 65 4d 61 6e 61 67 65 72 20 ar styleManager
11d0: 3d 20 7b 0a 20 20 20 20 73 74 79 6c 65 4e 6f 64 = {. styleNod
11e0: 65 3a 20 73 74 79 6c 65 4e 6f 64 65 2c 0a 20 20 e: styleNode,.
11f0: 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 61 76 /**. * Sav
1200: 65 20 61 20 74 61 67 20 73 74 79 6c 65 20 74 6f e a tag style to
1210: 20 62 65 20 6c 61 74 65 72 20 69 6e 6a 65 63 74 be later inject
1220: 65 64 20 69 6e 74 6f 20 44 4f 4d 0a 20 20 20 20 ed into DOM.
1230: 20 2a 20 40 70 61 72 61 6d 20 7b 20 53 74 72 69 * @param { Stri
1240: 6e 67 20 7d 20 63 73 73 20 2d 20 63 73 73 20 73 ng } css - css s
1250: 74 72 69 6e 67 0a 20 20 20 20 20 2a 20 40 70 61 tring. * @pa
1260: 72 61 6d 20 7b 20 53 74 72 69 6e 67 20 7d 20 6e ram { String } n
1270: 61 6d 65 20 2d 20 69 66 20 69 74 27 73 20 70 61 ame - if it's pa
1280: 73 73 65 64 20 77 65 20 77 69 6c 6c 20 6d 61 70 ssed we will map
1290: 20 74 68 65 20 63 73 73 20 74 6f 20 61 20 74 61 the css to a ta
12a0: 67 6e 61 6d 65 0a 20 20 20 20 20 2a 2f 0a 20 20 gname. */.
12b0: 20 20 61 64 64 3a 20 66 75 6e 63 74 69 6f 6e 20 add: function
12c0: 61 64 64 28 63 73 73 2c 20 6e 61 6d 65 29 20 7b add(css, name) {
12d0: 0a 20 20 20 20 20 20 62 79 4e 61 6d 65 5b 6e 61 . byName[na
12e0: 6d 65 5d 20 3d 20 63 73 73 3b 0a 20 20 20 20 20 me] = css;.
12f0: 20 6e 65 65 64 73 49 6e 6a 65 63 74 20 3d 20 74 needsInject = t
1300: 72 75 65 3b 0a 20 20 20 20 7d 2c 0a 20 20 20 20 rue;. },.
1310: 2f 2a 2a 0a 20 20 20 20 20 2a 20 49 6e 6a 65 63 /**. * Injec
1320: 74 20 61 6c 6c 20 70 72 65 76 69 6f 75 73 6c 79 t all previously
1330: 20 73 61 76 65 64 20 74 61 67 20 73 74 79 6c 65 saved tag style
1340: 73 20 69 6e 74 6f 20 44 4f 4d 0a 20 20 20 20 20 s into DOM.
1350: 2a 20 69 6e 6e 65 72 48 54 4d 4c 20 73 65 65 6d * innerHTML seem
1360: 73 20 73 6c 6f 77 3a 20 68 74 74 70 3a 2f 2f 6a s slow: http://j
1370: 73 70 65 72 66 2e 63 6f 6d 2f 72 69 6f 74 2d 69 sperf.com/riot-i
1380: 6e 73 65 72 74 2d 73 74 79 6c 65 0a 20 20 20 20 nsert-style.
1390: 20 2a 2f 0a 20 20 20 20 69 6e 6a 65 63 74 3a 20 */. inject:
13a0: 66 75 6e 63 74 69 6f 6e 20 69 6e 6a 65 63 74 28 function inject(
13b0: 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 21 57 ) {. if (!W
13c0: 49 4e 20 7c 7c 20 21 6e 65 65 64 73 49 6e 6a 65 IN || !needsInje
13d0: 63 74 29 20 7b 20 72 65 74 75 72 6e 20 7d 0a 20 ct) { return }.
13e0: 20 20 20 20 20 6e 65 65 64 73 49 6e 6a 65 63 74 needsInject
13f0: 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 = false;.
1400: 76 61 72 20 73 74 79 6c 65 20 3d 20 4f 62 6a 65 var style = Obje
1410: 63 74 2e 6b 65 79 73 28 62 79 4e 61 6d 65 29 0a ct.keys(byName).
1420: 20 20 20 20 20 20 20 20 2e 6d 61 70 28 66 75 6e .map(fun
1430: 63 74 69 6f 6e 20 28 6b 29 20 7b 20 72 65 74 75 ction (k) { retu
1440: 72 6e 20 62 79 4e 61 6d 65 5b 6b 5d 3b 20 7d 29 rn byName[k]; })
1450: 0a 20 20 20 20 20 20 20 20 2e 6a 6f 69 6e 28 27 . .join('
1460: 5c 6e 27 29 3b 0a 20 20 20 20 20 20 2f 2a 20 69 \n');. /* i
1470: 73 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 20 6e stanbul ignore n
1480: 65 78 74 20 2a 2f 0a 20 20 20 20 20 20 69 66 20 ext */. if
1490: 28 63 73 73 54 65 78 74 50 72 6f 70 29 20 7b 20 (cssTextProp) {
14a0: 63 73 73 54 65 78 74 50 72 6f 70 2e 63 73 73 54 cssTextProp.cssT
14b0: 65 78 74 20 3d 20 73 74 79 6c 65 3b 20 7d 0a 20 ext = style; }.
14c0: 20 20 20 20 20 65 6c 73 65 20 7b 20 73 74 79 6c else { styl
14d0: 65 4e 6f 64 65 2e 69 6e 6e 65 72 48 54 4d 4c 20 eNode.innerHTML
14e0: 3d 20 73 74 79 6c 65 3b 20 7d 0a 20 20 20 20 7d = style; }. }
14f0: 2c 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 ,.. /**.
1500: 2a 20 52 65 6d 6f 76 65 20 61 20 74 61 67 20 73 * Remove a tag s
1510: 74 79 6c 65 20 6f 66 20 69 6e 6a 65 63 74 65 64 tyle of injected
1520: 20 44 4f 4d 20 6c 61 74 65 72 2e 0a 20 20 20 20 DOM later..
1530: 20 2a 20 40 70 61 72 61 6d 20 7b 53 74 72 69 6e * @param {Strin
1540: 67 7d 20 6e 61 6d 65 20 61 20 72 65 67 69 73 74 g} name a regist
1550: 65 72 65 64 20 74 61 67 6e 61 6d 65 0a 20 20 20 ered tagname.
1560: 20 20 2a 2f 0a 20 20 20 20 72 65 6d 6f 76 65 3a */. remove:
1570: 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 function remove
1580: 28 6e 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 64 (name) {. d
1590: 65 6c 65 74 65 20 62 79 4e 61 6d 65 5b 6e 61 6d elete byName[nam
15a0: 65 5d 3b 0a 20 20 20 20 20 20 6e 65 65 64 73 49 e];. needsI
15b0: 6e 6a 65 63 74 20 3d 20 74 72 75 65 3b 0a 20 20 nject = true;.
15c0: 20 20 7d 0a 20 20 7d 3b 0a 0a 20 20 76 61 72 20 }. };.. var
15d0: 63 6f 6d 6d 6f 6e 6a 73 47 6c 6f 62 61 6c 20 3d commonjsGlobal =
15e0: 20 74 79 70 65 6f 66 20 77 69 6e 64 6f 77 20 21 typeof window !
15f0: 3d 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f == 'undefined' ?
1600: 20 77 69 6e 64 6f 77 20 3a 20 74 79 70 65 6f 66 window : typeof
1610: 20 67 6c 6f 62 61 6c 20 21 3d 3d 20 27 75 6e 64 global !== 'und
1620: 65 66 69 6e 65 64 27 20 3f 20 67 6c 6f 62 61 6c efined' ? global
1630: 20 3a 20 74 79 70 65 6f 66 20 73 65 6c 66 20 21 : typeof self !
1640: 3d 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f == 'undefined' ?
1650: 20 73 65 6c 66 20 3a 20 7b 7d 3b 0a 0a 20 20 66 self : {};.. f
1660: 75 6e 63 74 69 6f 6e 20 75 6e 77 72 61 70 45 78 unction unwrapEx
1670: 70 6f 72 74 73 20 28 78 29 20 7b 0a 20 20 09 72 ports (x) {. .r
1680: 65 74 75 72 6e 20 78 20 26 26 20 78 2e 5f 5f 65 eturn x && x.__e
1690: 73 4d 6f 64 75 6c 65 20 26 26 20 4f 62 6a 65 63 sModule && Objec
16a0: 74 2e 70 72 6f 74 6f 74 79 70 65 2e 68 61 73 4f t.prototype.hasO
16b0: 77 6e 50 72 6f 70 65 72 74 79 2e 63 61 6c 6c 28 wnProperty.call(
16c0: 78 2c 20 27 64 65 66 61 75 6c 74 27 29 20 3f 20 x, 'default') ?
16d0: 78 5b 27 64 65 66 61 75 6c 74 27 5d 20 3a 20 78 x['default'] : x
16e0: 3b 0a 20 20 7d 0a 0a 20 20 66 75 6e 63 74 69 6f ;. }.. functio
16f0: 6e 20 63 72 65 61 74 65 43 6f 6d 6d 6f 6e 6a 73 n createCommonjs
1700: 4d 6f 64 75 6c 65 28 66 6e 2c 20 6d 6f 64 75 6c Module(fn, modul
1710: 65 29 20 7b 0a 20 20 09 72 65 74 75 72 6e 20 6d e) {. .return m
1720: 6f 64 75 6c 65 20 3d 20 7b 20 65 78 70 6f 72 74 odule = { export
1730: 73 3a 20 7b 7d 20 7d 2c 20 66 6e 28 6d 6f 64 75 s: {} }, fn(modu
1740: 6c 65 2c 20 6d 6f 64 75 6c 65 2e 65 78 70 6f 72 le, module.expor
1750: 74 73 29 2c 20 6d 6f 64 75 6c 65 2e 65 78 70 6f ts), module.expo
1760: 72 74 73 3b 0a 20 20 7d 0a 0a 20 20 76 61 72 20 rts;. }.. var
1770: 63 73 70 5f 74 6d 70 6c 20 3d 20 63 72 65 61 74 csp_tmpl = creat
1780: 65 43 6f 6d 6d 6f 6e 6a 73 4d 6f 64 75 6c 65 28 eCommonjsModule(
1790: 66 75 6e 63 74 69 6f 6e 20 28 6d 6f 64 75 6c 65 function (module
17a0: 2c 20 65 78 70 6f 72 74 73 29 20 7b 0a 20 20 28 , exports) {. (
17b0: 66 75 6e 63 74 69 6f 6e 20 28 67 6c 6f 62 61 6c function (global
17c0: 2c 20 66 61 63 74 6f 72 79 29 20 7b 0a 20 20 09 , factory) {. .
17d0: 66 61 63 74 6f 72 79 28 65 78 70 6f 72 74 73 29 factory(exports)
17e0: 3b 0a 20 20 7d 28 63 6f 6d 6d 6f 6e 6a 73 47 6c ;. }(commonjsGl
17f0: 6f 62 61 6c 2c 20 28 66 75 6e 63 74 69 6f 6e 20 obal, (function
1800: 28 65 78 70 6f 72 74 73 29 20 7b 0a 20 20 66 75 (exports) {. fu
1810: 6e 63 74 69 6f 6e 20 49 6e 66 69 6e 69 74 65 43 nction InfiniteC
1820: 68 65 63 6b 65 72 20 28 6d 61 78 49 74 65 72 61 hecker (maxItera
1830: 74 69 6f 6e 73 29 20 7b 0a 20 20 20 20 69 66 20 tions) {. if
1840: 28 74 68 69 73 20 69 6e 73 74 61 6e 63 65 6f 66 (this instanceof
1850: 20 49 6e 66 69 6e 69 74 65 43 68 65 63 6b 65 72 InfiniteChecker
1860: 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 2e 6d ) {. this.m
1870: 61 78 49 74 65 72 61 74 69 6f 6e 73 20 3d 20 6d axIterations = m
1880: 61 78 49 74 65 72 61 74 69 6f 6e 73 3b 0a 20 20 axIterations;.
1890: 20 20 20 20 74 68 69 73 2e 63 6f 75 6e 74 20 3d this.count =
18a0: 20 30 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0;. } else {
18b0: 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 . return ne
18c0: 77 20 49 6e 66 69 6e 69 74 65 43 68 65 63 6b 65 w InfiniteChecke
18d0: 72 28 6d 61 78 49 74 65 72 61 74 69 6f 6e 73 29 r(maxIterations)
18e0: 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 49 6e . }. }.. In
18f0: 66 69 6e 69 74 65 43 68 65 63 6b 65 72 2e 70 72 finiteChecker.pr
1900: 6f 74 6f 74 79 70 65 2e 63 68 65 63 6b 20 3d 20 ototype.check =
1910: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
1920: 20 20 74 68 69 73 2e 63 6f 75 6e 74 20 2b 3d 20 this.count +=
1930: 31 3b 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e 1;. if (this.
1940: 63 6f 75 6e 74 20 3e 20 74 68 69 73 2e 6d 61 78 count > this.max
1950: 49 74 65 72 61 74 69 6f 6e 73 29 20 7b 0a 20 20 Iterations) {.
1960: 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 45 72 throw new Er
1970: 72 6f 72 28 27 49 6e 66 69 6e 69 74 65 20 6c 6f ror('Infinite lo
1980: 6f 70 20 64 65 74 65 63 74 65 64 20 2d 20 72 65 op detected - re
1990: 61 63 68 65 64 20 6d 61 78 20 69 74 65 72 61 74 ached max iterat
19a0: 69 6f 6e 73 27 29 0a 20 20 20 20 7d 0a 20 20 7d ions'). }. }
19b0: 3b 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 ;.. function ge
19c0: 74 47 6c 6f 62 61 6c 20 28 73 74 72 29 20 7b 0a tGlobal (str) {.
19d0: 20 20 20 20 76 61 72 20 63 74 78 20 3d 20 28 74 var ctx = (t
19e0: 79 70 65 6f 66 20 77 69 6e 64 6f 77 20 21 3d 3d ypeof window !==
19f0: 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f 20 77 'undefined' ? w
1a00: 69 6e 64 6f 77 20 3a 20 74 79 70 65 6f 66 20 63 indow : typeof c
1a10: 6f 6d 6d 6f 6e 6a 73 47 6c 6f 62 61 6c 20 21 3d ommonjsGlobal !=
1a20: 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f 20 = 'undefined' ?
1a30: 63 6f 6d 6d 6f 6e 6a 73 47 6c 6f 62 61 6c 20 3a commonjsGlobal :
1a40: 20 74 68 69 73 29 3b 0a 20 20 20 20 72 65 74 75 this);. retu
1a50: 72 6e 20 74 79 70 65 6f 66 20 73 74 72 20 21 3d rn typeof str !=
1a60: 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f 20 = 'undefined' ?
1a70: 63 74 78 5b 73 74 72 5d 20 3a 20 63 74 78 0a 20 ctx[str] : ctx.
1a80: 20 7d 0a 0a 20 20 76 61 72 20 6e 61 6d 65 73 20 }.. var names
1a90: 3d 20 5b 27 4f 62 6a 65 63 74 27 2c 20 27 53 74 = ['Object', 'St
1aa0: 72 69 6e 67 27 2c 20 27 42 6f 6f 6c 65 61 6e 27 ring', 'Boolean'
1ab0: 2c 20 27 4e 75 6d 62 65 72 27 2c 20 27 52 65 67 , 'Number', 'Reg
1ac0: 45 78 70 27 2c 20 27 44 61 74 65 27 2c 20 27 41 Exp', 'Date', 'A
1ad0: 72 72 61 79 27 5d 3b 0a 20 20 76 61 72 20 69 6d rray'];. var im
1ae0: 6d 75 74 61 62 6c 65 20 3d 20 7b 20 73 74 72 69 mutable = { stri
1af0: 6e 67 3a 20 27 53 74 72 69 6e 67 27 2c 20 62 6f ng: 'String', bo
1b00: 6f 6c 65 61 6e 3a 20 27 42 6f 6f 6c 65 61 6e 27 olean: 'Boolean'
1b10: 2c 20 6e 75 6d 62 65 72 3a 20 27 4e 75 6d 62 65 , number: 'Numbe
1b20: 72 27 20 7d 3b 0a 0a 20 20 76 61 72 20 70 72 69 r' };.. var pri
1b30: 6d 69 74 69 76 65 73 20 3d 20 6e 61 6d 65 73 2e mitives = names.
1b40: 6d 61 70 28 67 65 74 47 6c 6f 62 61 6c 29 3b 0a map(getGlobal);.
1b50: 20 20 76 61 72 20 70 72 6f 74 6f 73 20 3d 20 70 var protos = p
1b60: 72 69 6d 69 74 69 76 65 73 2e 6d 61 70 28 67 65 rimitives.map(ge
1b70: 74 50 72 6f 74 6f 29 3b 0a 0a 20 20 66 75 6e 63 tProto);.. func
1b80: 74 69 6f 6e 20 50 72 69 6d 69 74 69 76 65 73 20 tion Primitives
1b90: 28 63 6f 6e 74 65 78 74 29 20 7b 0a 20 20 20 20 (context) {.
1ba0: 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
1bb0: 73 3b 0a 0a 20 20 20 20 69 66 20 28 74 68 69 73 s;.. if (this
1bc0: 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 72 69 6d instanceof Prim
1bd0: 69 74 69 76 65 73 29 20 7b 0a 20 20 20 20 20 20 itives) {.
1be0: 74 68 69 73 2e 63 6f 6e 74 65 78 74 20 3d 20 63 this.context = c
1bf0: 6f 6e 74 65 78 74 3b 0a 20 20 20 20 20 20 66 6f ontext;. fo
1c00: 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 r (var i = 0; i
1c10: 3c 20 6e 61 6d 65 73 2e 6c 65 6e 67 74 68 3b 20 < names.length;
1c20: 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 69 i++) {. i
1c30: 66 20 28 21 74 68 69 73 24 31 2e 63 6f 6e 74 65 f (!this$1.conte
1c40: 78 74 5b 6e 61 6d 65 73 5b 69 5d 5d 29 20 7b 0a xt[names[i]]) {.
1c50: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
1c60: 2e 63 6f 6e 74 65 78 74 5b 6e 61 6d 65 73 5b 69 .context[names[i
1c70: 5d 5d 20 3d 20 77 72 61 70 28 70 72 69 6d 69 74 ]] = wrap(primit
1c80: 69 76 65 73 5b 69 5d 29 3b 0a 20 20 20 20 20 20 ives[i]);.
1c90: 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 }. }.
1ca0: 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 72 } else {. r
1cb0: 65 74 75 72 6e 20 6e 65 77 20 50 72 69 6d 69 74 eturn new Primit
1cc0: 69 76 65 73 28 63 6f 6e 74 65 78 74 29 0a 20 20 ives(context).
1cd0: 20 20 7d 0a 20 20 7d 0a 0a 20 20 50 72 69 6d 69 }. }.. Primi
1ce0: 74 69 76 65 73 2e 70 72 6f 74 6f 74 79 70 65 2e tives.prototype.
1cf0: 72 65 70 6c 61 63 65 20 3d 20 66 75 6e 63 74 69 replace = functi
1d00: 6f 6e 20 28 76 61 6c 75 65 29 20 7b 0a 20 20 20 on (value) {.
1d10: 20 76 61 72 20 70 72 69 6d 49 6e 64 65 78 20 3d var primIndex =
1d20: 20 70 72 69 6d 69 74 69 76 65 73 2e 69 6e 64 65 primitives.inde
1d30: 78 4f 66 28 76 61 6c 75 65 29 2c 0a 20 20 20 20 xOf(value),.
1d40: 20 20 70 72 6f 74 6f 49 6e 64 65 78 20 3d 20 70 protoIndex = p
1d50: 72 6f 74 6f 73 2e 69 6e 64 65 78 4f 66 28 76 61 rotos.indexOf(va
1d60: 6c 75 65 29 2c 0a 20 20 20 20 20 20 6e 61 6d 65 lue),. name
1d70: 3b 0a 0a 20 20 20 20 69 66 20 28 7e 70 72 69 6d ;.. if (~prim
1d80: 49 6e 64 65 78 29 20 7b 0a 20 20 20 20 20 20 6e Index) {. n
1d90: 61 6d 65 20 3d 20 6e 61 6d 65 73 5b 70 72 69 6d ame = names[prim
1da0: 49 6e 64 65 78 5d 3b 0a 20 20 20 20 20 20 72 65 Index];. re
1db0: 74 75 72 6e 20 74 68 69 73 2e 63 6f 6e 74 65 78 turn this.contex
1dc0: 74 5b 6e 61 6d 65 5d 0a 20 20 20 20 7d 20 65 6c t[name]. } el
1dd0: 73 65 20 69 66 20 28 7e 70 72 6f 74 6f 49 6e 64 se if (~protoInd
1de0: 65 78 29 20 7b 0a 20 20 20 20 20 20 6e 61 6d 65 ex) {. name
1df0: 20 3d 20 6e 61 6d 65 73 5b 70 72 6f 74 6f 49 6e = names[protoIn
1e00: 64 65 78 5d 3b 0a 20 20 20 20 20 20 72 65 74 75 dex];. retu
1e10: 72 6e 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 5b rn this.context[
1e20: 6e 61 6d 65 5d 2e 70 72 6f 74 6f 74 79 70 65 0a name].prototype.
1e30: 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 }.. retur
1e40: 6e 20 76 61 6c 75 65 0a 20 20 7d 3b 0a 0a 20 20 n value. };..
1e50: 50 72 69 6d 69 74 69 76 65 73 2e 70 72 6f 74 6f Primitives.proto
1e60: 74 79 70 65 2e 67 65 74 50 72 6f 70 65 72 74 79 type.getProperty
1e70: 4f 62 6a 65 63 74 20 3d 20 66 75 6e 63 74 69 6f Object = functio
1e80: 6e 20 28 6f 62 6a 65 63 74 2c 20 70 72 6f 70 65 n (object, prope
1e90: 72 74 79 29 20 7b 0a 20 20 20 20 69 66 20 28 69 rty) {. if (i
1ea0: 6d 6d 75 74 61 62 6c 65 5b 74 79 70 65 6f 66 20 mmutable[typeof
1eb0: 6f 62 6a 65 63 74 5d 29 20 7b 0a 20 20 20 20 20 object]) {.
1ec0: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 67 65 74 return this.get
1ed0: 50 72 6f 74 6f 74 79 70 65 4f 66 28 6f 62 6a 65 PrototypeOf(obje
1ee0: 63 74 29 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 ct). }. re
1ef0: 74 75 72 6e 20 6f 62 6a 65 63 74 0a 20 20 7d 3b turn object. };
1f00: 0a 0a 20 20 50 72 69 6d 69 74 69 76 65 73 2e 70 .. Primitives.p
1f10: 72 6f 74 6f 74 79 70 65 2e 69 73 50 72 69 6d 69 rototype.isPrimi
1f20: 74 69 76 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 tive = function
1f30: 28 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 72 65 (value) {. re
1f40: 74 75 72 6e 20 21 21 7e 70 72 69 6d 69 74 69 76 turn !!~primitiv
1f50: 65 73 2e 69 6e 64 65 78 4f 66 28 76 61 6c 75 65 es.indexOf(value
1f60: 29 20 7c 7c 20 21 21 7e 70 72 6f 74 6f 73 2e 69 ) || !!~protos.i
1f70: 6e 64 65 78 4f 66 28 76 61 6c 75 65 29 0a 20 20 ndexOf(value).
1f80: 7d 3b 0a 0a 20 20 50 72 69 6d 69 74 69 76 65 73 };.. Primitives
1f90: 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 74 50 72 .prototype.getPr
1fa0: 6f 74 6f 74 79 70 65 4f 66 20 3d 20 66 75 6e 63 ototypeOf = func
1fb0: 74 69 6f 6e 20 28 76 61 6c 75 65 29 20 7b 0a 20 tion (value) {.
1fc0: 20 20 20 69 66 20 28 76 61 6c 75 65 20 3d 3d 20 if (value ==
1fd0: 6e 75 6c 6c 29 20 7b 20 2f 2f 20 68 61 6e 64 6c null) { // handl
1fe0: 65 20 6e 75 6c 6c 20 61 6e 64 20 75 6e 64 65 66 e null and undef
1ff0: 69 6e 65 64 0a 20 20 20 20 20 20 72 65 74 75 72 ined. retur
2000: 6e 20 76 61 6c 75 65 0a 20 20 20 20 7d 0a 0a 20 n value. }..
2010: 20 20 20 76 61 72 20 69 6d 6d 75 74 61 62 6c 65 var immutable
2020: 54 79 70 65 20 3d 20 69 6d 6d 75 74 61 62 6c 65 Type = immutable
2030: 5b 74 79 70 65 6f 66 20 76 61 6c 75 65 5d 2c 0a [typeof value],.
2040: 20 20 20 20 20 20 70 72 6f 74 6f 3b 0a 0a 20 20 proto;..
2050: 20 20 69 66 20 28 69 6d 6d 75 74 61 62 6c 65 54 if (immutableT
2060: 79 70 65 29 20 7b 0a 20 20 20 20 20 20 70 72 6f ype) {. pro
2070: 74 6f 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 to = this.contex
2080: 74 5b 69 6d 6d 75 74 61 62 6c 65 54 79 70 65 5d t[immutableType]
2090: 2e 70 72 6f 74 6f 74 79 70 65 3b 0a 20 20 20 20 .prototype;.
20a0: 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 70 } else {. p
20b0: 72 6f 74 6f 20 3d 20 4f 62 6a 65 63 74 2e 67 65 roto = Object.ge
20c0: 74 50 72 6f 74 6f 74 79 70 65 4f 66 28 76 61 6c tPrototypeOf(val
20d0: 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ue);. }..
20e0: 69 66 20 28 21 70 72 6f 74 6f 20 7c 7c 20 70 72 if (!proto || pr
20f0: 6f 74 6f 20 3d 3d 3d 20 4f 62 6a 65 63 74 2e 70 oto === Object.p
2100: 72 6f 74 6f 74 79 70 65 29 20 7b 0a 20 20 20 20 rototype) {.
2110: 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 0a 20 20 return null.
2120: 20 20 7d 0a 0a 20 20 20 20 76 61 72 20 72 65 70 }.. var rep
2130: 6c 61 63 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e lacement = this.
2140: 72 65 70 6c 61 63 65 28 70 72 6f 74 6f 29 3b 0a replace(proto);.
2150: 0a 20 20 20 20 69 66 20 28 72 65 70 6c 61 63 65 . if (replace
2160: 6d 65 6e 74 20 3d 3d 3d 20 76 61 6c 75 65 29 20 ment === value)
2170: 7b 0a 20 20 20 20 20 20 72 65 70 6c 61 63 65 6d {. replacem
2180: 65 6e 74 20 3d 20 74 68 69 73 2e 72 65 70 6c 61 ent = this.repla
2190: 63 65 28 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74 ce(Object.protot
21a0: 79 70 65 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 ype);. }.
21b0: 72 65 74 75 72 6e 20 72 65 70 6c 61 63 65 6d 65 return replaceme
21c0: 6e 74 0a 0a 20 20 7d 3b 0a 0a 20 20 50 72 69 6d nt.. };.. Prim
21d0: 69 74 69 76 65 73 2e 70 72 6f 74 6f 74 79 70 65 itives.prototype
21e0: 2e 61 70 70 6c 79 4e 65 77 20 3d 20 66 75 6e 63 .applyNew = func
21f0: 74 69 6f 6e 20 28 66 75 6e 63 2c 20 61 72 67 73 tion (func, args
2200: 29 20 7b 0a 20 20 20 20 69 66 20 28 66 75 6e 63 ) {. if (func
2210: 2e 77 72 61 70 70 65 64 29 20 7b 0a 20 20 20 20 .wrapped) {.
2220: 20 20 76 61 72 20 70 72 69 6d 20 3d 20 4f 62 6a var prim = Obj
2230: 65 63 74 2e 67 65 74 50 72 6f 74 6f 74 79 70 65 ect.getPrototype
2240: 4f 66 28 66 75 6e 63 29 3b 0a 20 20 20 20 20 20 Of(func);.
2250: 76 61 72 20 69 6e 73 74 61 6e 63 65 20 3d 20 6e var instance = n
2260: 65 77 20 28 46 75 6e 63 74 69 6f 6e 2e 70 72 6f ew (Function.pro
2270: 74 6f 74 79 70 65 2e 62 69 6e 64 2e 61 70 70 6c totype.bind.appl
2280: 79 28 70 72 69 6d 2c 20 61 72 67 75 6d 65 6e 74 y(prim, argument
2290: 73 29 29 3b 0a 0a 20 20 20 20 20 20 73 65 74 50 s));.. setP
22a0: 72 6f 74 6f 28 69 6e 73 74 61 6e 63 65 2c 20 66 roto(instance, f
22b0: 75 6e 63 2e 70 72 6f 74 6f 74 79 70 65 29 3b 0a unc.prototype);.
22c0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 6e 73 return ins
22d0: 74 61 6e 63 65 0a 20 20 20 20 7d 0a 0a 20 20 20 tance. }..
22e0: 20 72 65 74 75 72 6e 20 6e 65 77 20 28 46 75 6e return new (Fun
22f0: 63 74 69 6f 6e 2e 70 72 6f 74 6f 74 79 70 65 2e ction.prototype.
2300: 62 69 6e 64 2e 61 70 70 6c 79 28 66 75 6e 63 2c bind.apply(func,
2310: 20 61 72 67 75 6d 65 6e 74 73 29 29 0a 0a 20 20 arguments))..
2320: 7d 3b 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 67 };.. function g
2330: 65 74 50 72 6f 74 6f 20 28 66 75 6e 63 29 20 7b etProto (func) {
2340: 0a 20 20 20 20 72 65 74 75 72 6e 20 66 75 6e 63 . return func
2350: 2e 70 72 6f 74 6f 74 79 70 65 0a 20 20 7d 0a 0a .prototype. }..
2360: 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 function setPr
2370: 6f 74 6f 20 28 6f 62 6a 2c 20 70 72 6f 74 6f 29 oto (obj, proto)
2380: 20 7b 0a 20 20 20 20 6f 62 6a 2e 5f 5f 70 72 6f {. obj.__pro
2390: 74 6f 5f 5f 20 3d 20 70 72 6f 74 6f 3b 20 2f 2f to__ = proto; //
23a0: 20 65 73 6c 69 6e 74 2d 64 69 73 61 62 6c 65 2d eslint-disable-
23b0: 6c 69 6e 65 0a 20 20 7d 0a 0a 20 20 66 75 6e 63 line. }.. func
23c0: 74 69 6f 6e 20 77 72 61 70 20 28 70 72 69 6d 29 tion wrap (prim)
23d0: 20 7b 0a 20 20 20 20 76 61 72 20 70 72 6f 74 6f {. var proto
23e0: 20 3d 20 4f 62 6a 65 63 74 2e 63 72 65 61 74 65 = Object.create
23f0: 28 70 72 69 6d 2e 70 72 6f 74 6f 74 79 70 65 29 (prim.prototype)
2400: 3b 0a 0a 20 20 20 20 76 61 72 20 72 65 73 75 6c ;.. var resul
2410: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 t = function ()
2420: 7b 0a 20 20 20 20 20 20 69 66 20 28 74 68 69 73 {. if (this
2430: 20 69 6e 73 74 61 6e 63 65 6f 66 20 72 65 73 75 instanceof resu
2440: 6c 74 29 20 7b 0a 20 20 20 20 20 20 20 20 70 72 lt) {. pr
2450: 69 6d 2e 61 70 70 6c 79 28 74 68 69 73 2c 20 61 im.apply(this, a
2460: 72 67 75 6d 65 6e 74 73 29 3b 0a 20 20 20 20 20 rguments);.
2470: 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 } else {.
2480: 20 20 76 61 72 20 69 6e 73 74 61 6e 63 65 20 3d var instance =
2490: 20 70 72 69 6d 2e 61 70 70 6c 79 28 6e 75 6c 6c prim.apply(null
24a0: 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0a 0a 20 , arguments);..
24b0: 20 20 20 20 20 20 20 73 65 74 50 72 6f 74 6f 28 setProto(
24c0: 69 6e 73 74 61 6e 63 65 2c 20 70 72 6f 74 6f 29 instance, proto)
24d0: 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ;. return
24e0: 20 69 6e 73 74 61 6e 63 65 0a 20 20 20 20 20 20 instance.
24f0: 7d 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 73 65 }. };.. se
2500: 74 50 72 6f 74 6f 28 72 65 73 75 6c 74 2c 20 70 tProto(result, p
2510: 72 69 6d 29 3b 0a 20 20 20 20 72 65 73 75 6c 74 rim);. result
2520: 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 70 72 6f .prototype = pro
2530: 74 6f 3b 0a 20 20 20 20 72 65 73 75 6c 74 2e 77 to;. result.w
2540: 72 61 70 70 65 64 20 3d 20 74 72 75 65 3b 0a 20 rapped = true;.
2550: 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 return result
2560: 0a 20 20 7d 0a 0a 20 20 76 61 72 20 63 6f 6d 6d . }.. var comm
2570: 6f 6e 6a 73 47 6c 6f 62 61 6c 24 24 31 20 3d 20 onjsGlobal$$1 =
2580: 74 79 70 65 6f 66 20 77 69 6e 64 6f 77 20 21 3d typeof window !=
2590: 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f 20 = 'undefined' ?
25a0: 77 69 6e 64 6f 77 20 3a 20 74 79 70 65 6f 66 20 window : typeof
25b0: 63 6f 6d 6d 6f 6e 6a 73 47 6c 6f 62 61 6c 20 21 commonjsGlobal !
25c0: 3d 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f == 'undefined' ?
25d0: 20 63 6f 6d 6d 6f 6e 6a 73 47 6c 6f 62 61 6c 20 commonjsGlobal
25e0: 3a 20 74 79 70 65 6f 66 20 73 65 6c 66 20 21 3d : typeof self !=
25f0: 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 20 3f 20 = 'undefined' ?
2600: 73 65 6c 66 20 3a 20 7b 7d 3b 0a 0a 0a 0a 0a 0a self : {};......
2610: 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 function creat
2620: 65 43 6f 6d 6d 6f 6e 6a 73 4d 6f 64 75 6c 65 24 eCommonjsModule$
2630: 24 31 28 66 6e 2c 20 6d 6f 64 75 6c 65 29 20 7b $1(fn, module) {
2640: 0a 20 20 09 72 65 74 75 72 6e 20 6d 6f 64 75 6c . .return modul
2650: 65 20 3d 20 7b 20 65 78 70 6f 72 74 73 3a 20 7b e = { exports: {
2660: 7d 20 7d 2c 20 66 6e 28 6d 6f 64 75 6c 65 2c 20 } }, fn(module,
2670: 6d 6f 64 75 6c 65 2e 65 78 70 6f 72 74 73 29 2c module.exports),
2680: 20 6d 6f 64 75 6c 65 2e 65 78 70 6f 72 74 73 3b module.exports;
2690: 0a 20 20 7d 0a 0a 20 20 76 61 72 20 65 73 70 72 . }.. var espr
26a0: 69 6d 61 20 3d 20 63 72 65 61 74 65 43 6f 6d 6d ima = createComm
26b0: 6f 6e 6a 73 4d 6f 64 75 6c 65 24 24 31 28 66 75 onjsModule$$1(fu
26c0: 6e 63 74 69 6f 6e 20 28 6d 6f 64 75 6c 65 2c 20 nction (module,
26d0: 65 78 70 6f 72 74 73 29 20 7b 0a 20 20 28 66 75 exports) {. (fu
26e0: 6e 63 74 69 6f 6e 20 77 65 62 70 61 63 6b 55 6e nction webpackUn
26f0: 69 76 65 72 73 61 6c 4d 6f 64 75 6c 65 44 65 66 iversalModuleDef
2700: 69 6e 69 74 69 6f 6e 28 72 6f 6f 74 2c 20 66 61 inition(root, fa
2710: 63 74 6f 72 79 29 20 7b 0a 20 20 2f 2a 20 69 73 ctory) {. /* is
2720: 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 tanbul ignore ne
2730: 78 74 20 2a 2f 0a 20 20 09 6d 6f 64 75 6c 65 2e xt */. .module.
2740: 65 78 70 6f 72 74 73 20 3d 20 66 61 63 74 6f 72 exports = factor
2750: 79 28 29 3b 0a 20 20 7d 29 28 63 6f 6d 6d 6f 6e y();. })(common
2760: 6a 73 47 6c 6f 62 61 6c 24 24 31 2c 20 66 75 6e jsGlobal$$1, fun
2770: 63 74 69 6f 6e 28 29 20 7b 0a 20 20 72 65 74 75 ction() {. retu
2780: 72 6e 20 2f 2a 2a 2a 2a 2a 2a 2f 20 28 66 75 6e rn /******/ (fun
2790: 63 74 69 6f 6e 28 6d 6f 64 75 6c 65 73 29 20 7b ction(modules) {
27a0: 20 2f 2f 20 77 65 62 70 61 63 6b 42 6f 6f 74 73 // webpackBoots
27b0: 74 72 61 70 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 trap. /******/
27c0: 09 2f 2f 20 54 68 65 20 6d 6f 64 75 6c 65 20 63 .// The module c
27d0: 61 63 68 65 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 ache. /******/
27e0: 09 76 61 72 20 69 6e 73 74 61 6c 6c 65 64 4d 6f .var installedMo
27f0: 64 75 6c 65 73 20 3d 20 7b 7d 3b 0a 0a 20 20 2f dules = {};.. /
2800: 2a 2a 2a 2a 2a 2a 2f 20 09 2f 2f 20 54 68 65 20 ******/ .// The
2810: 72 65 71 75 69 72 65 20 66 75 6e 63 74 69 6f 6e require function
2820: 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 66 75 6e . /******/ .fun
2830: 63 74 69 6f 6e 20 5f 5f 77 65 62 70 61 63 6b 5f ction __webpack_
2840: 72 65 71 75 69 72 65 5f 5f 28 6d 6f 64 75 6c 65 require__(module
2850: 49 64 29 20 7b 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a Id) {.. /******
2860: 2f 20 09 09 2f 2f 20 43 68 65 63 6b 20 69 66 20 / ..// Check if
2870: 6d 6f 64 75 6c 65 20 69 73 20 69 6e 20 63 61 63 module is in cac
2880: 68 65 0a 20 20 2f 2a 20 69 73 74 61 6e 62 75 6c he. /* istanbul
2890: 20 69 67 6e 6f 72 65 20 69 66 20 2a 2f 0a 20 20 ignore if */.
28a0: 2f 2a 2a 2a 2a 2a 2a 2f 20 09 09 69 66 28 69 6e /******/ ..if(in
28b0: 73 74 61 6c 6c 65 64 4d 6f 64 75 6c 65 73 5b 6d stalledModules[m
28c0: 6f 64 75 6c 65 49 64 5d 29 0a 20 20 2f 2a 2a 2a oduleId]). /***
28d0: 2a 2a 2a 2f 20 09 09 09 7b 20 72 65 74 75 72 6e ***/ ...{ return
28e0: 20 69 6e 73 74 61 6c 6c 65 64 4d 6f 64 75 6c 65 installedModule
28f0: 73 5b 6d 6f 64 75 6c 65 49 64 5d 2e 65 78 70 6f s[moduleId].expo
2900: 72 74 73 3b 20 7d 0a 0a 20 20 2f 2a 2a 2a 2a 2a rts; }.. /*****
2910: 2a 2f 20 09 09 2f 2f 20 43 72 65 61 74 65 20 61 */ ..// Create a
2920: 20 6e 65 77 20 6d 6f 64 75 6c 65 20 28 61 6e 64 new module (and
2930: 20 70 75 74 20 69 74 20 69 6e 74 6f 20 74 68 65 put it into the
2940: 20 63 61 63 68 65 29 0a 20 20 2f 2a 2a 2a 2a 2a cache). /*****
2950: 2a 2f 20 09 09 76 61 72 20 6d 6f 64 75 6c 65 20 */ ..var module
2960: 3d 20 69 6e 73 74 61 6c 6c 65 64 4d 6f 64 75 6c = installedModul
2970: 65 73 5b 6d 6f 64 75 6c 65 49 64 5d 20 3d 20 7b es[moduleId] = {
2980: 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 09 09 65 . /******/ ...e
2990: 78 70 6f 72 74 73 3a 20 7b 7d 2c 0a 20 20 2f 2a xports: {},. /*
29a0: 2a 2a 2a 2a 2a 2f 20 09 09 09 69 64 3a 20 6d 6f *****/ ...id: mo
29b0: 64 75 6c 65 49 64 2c 0a 20 20 2f 2a 2a 2a 2a 2a duleId,. /*****
29c0: 2a 2f 20 09 09 09 6c 6f 61 64 65 64 3a 20 66 61 */ ...loaded: fa
29d0: 6c 73 65 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 lse. /******/ .
29e0: 09 7d 3b 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 .};.. /******/
29f0: 09 09 2f 2f 20 45 78 65 63 75 74 65 20 74 68 65 ..// Execute the
2a00: 20 6d 6f 64 75 6c 65 20 66 75 6e 63 74 69 6f 6e module function
2a10: 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 09 6d 6f . /******/ ..mo
2a20: 64 75 6c 65 73 5b 6d 6f 64 75 6c 65 49 64 5d 2e dules[moduleId].
2a30: 63 61 6c 6c 28 6d 6f 64 75 6c 65 2e 65 78 70 6f call(module.expo
2a40: 72 74 73 2c 20 6d 6f 64 75 6c 65 2c 20 6d 6f 64 rts, module, mod
2a50: 75 6c 65 2e 65 78 70 6f 72 74 73 2c 20 5f 5f 77 ule.exports, __w
2a60: 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f ebpack_require__
2a70: 29 3b 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 );.. /******/ .
2a80: 09 2f 2f 20 46 6c 61 67 20 74 68 65 20 6d 6f 64 .// Flag the mod
2a90: 75 6c 65 20 61 73 20 6c 6f 61 64 65 64 0a 20 20 ule as loaded.
2aa0: 2f 2a 2a 2a 2a 2a 2a 2f 20 09 09 6d 6f 64 75 6c /******/ ..modul
2ab0: 65 2e 6c 6f 61 64 65 64 20 3d 20 74 72 75 65 3b e.loaded = true;
2ac0: 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 09 2f .. /******/ ../
2ad0: 2f 20 52 65 74 75 72 6e 20 74 68 65 20 65 78 70 / Return the exp
2ae0: 6f 72 74 73 20 6f 66 20 74 68 65 20 6d 6f 64 75 orts of the modu
2af0: 6c 65 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 09 le. /******/ ..
2b00: 72 65 74 75 72 6e 20 6d 6f 64 75 6c 65 2e 65 78 return module.ex
2b10: 70 6f 72 74 73 3b 0a 20 20 2f 2a 2a 2a 2a 2a 2a ports;. /******
2b20: 2f 20 09 7d 0a 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a / .}... /******
2b30: 2f 20 09 2f 2f 20 65 78 70 6f 73 65 20 74 68 65 / .// expose the
2b40: 20 6d 6f 64 75 6c 65 73 20 6f 62 6a 65 63 74 20 modules object
2b50: 28 5f 5f 77 65 62 70 61 63 6b 5f 6d 6f 64 75 6c (__webpack_modul
2b60: 65 73 5f 5f 29 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f es__). /******/
2b70: 20 09 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 .__webpack_requ
2b80: 69 72 65 5f 5f 2e 6d 20 3d 20 6d 6f 64 75 6c 65 ire__.m = module
2b90: 73 3b 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 s;.. /******/ .
2ba0: 2f 2f 20 65 78 70 6f 73 65 20 74 68 65 20 6d 6f // expose the mo
2bb0: 64 75 6c 65 20 63 61 63 68 65 0a 20 20 2f 2a 2a dule cache. /**
2bc0: 2a 2a 2a 2a 2f 20 09 5f 5f 77 65 62 70 61 63 6b ****/ .__webpack
2bd0: 5f 72 65 71 75 69 72 65 5f 5f 2e 63 20 3d 20 69 _require__.c = i
2be0: 6e 73 74 61 6c 6c 65 64 4d 6f 64 75 6c 65 73 3b nstalledModules;
2bf0: 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 2f 2f .. /******/ .//
2c00: 20 5f 5f 77 65 62 70 61 63 6b 5f 70 75 62 6c 69 __webpack_publi
2c10: 63 5f 70 61 74 68 5f 5f 0a 20 20 2f 2a 2a 2a 2a c_path__. /****
2c20: 2a 2a 2f 20 09 5f 5f 77 65 62 70 61 63 6b 5f 72 **/ .__webpack_r
2c30: 65 71 75 69 72 65 5f 5f 2e 70 20 3d 20 22 22 3b equire__.p = "";
2c40: 0a 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 09 2f 2f .. /******/ .//
2c50: 20 4c 6f 61 64 20 65 6e 74 72 79 20 6d 6f 64 75 Load entry modu
2c60: 6c 65 20 61 6e 64 20 72 65 74 75 72 6e 20 65 78 le and return ex
2c70: 70 6f 72 74 73 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f ports. /******/
2c80: 20 09 72 65 74 75 72 6e 20 5f 5f 77 65 62 70 61 .return __webpa
2c90: 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 30 29 3b ck_require__(0);
2ca0: 0a 20 20 2f 2a 2a 2a 2a 2a 2a 2f 20 7d 29 0a 20 . /******/ }).
2cb0: 20 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /**************
2cc0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
2cd0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
2ce0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
2cf0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 20 20 2f 2a **********/. /*
2d00: 2a 2a 2a 2a 2a 2f 20 28 5b 0a 20 20 2f 2a 20 30 *****/ ([. /* 0
2d10: 20 2a 2f 0a 20 20 2f 2a 2a 2a 2f 20 66 75 6e 63 */. /***/ func
2d20: 74 69 6f 6e 28 6d 6f 64 75 6c 65 2c 20 65 78 70 tion(module, exp
2d30: 6f 72 74 73 2c 20 5f 5f 77 65 62 70 61 63 6b 5f orts, __webpack_
2d40: 72 65 71 75 69 72 65 5f 5f 29 20 7b 0a 20 20 09 require__) {. .
2d50: 76 61 72 20 63 6f 6d 6d 65 6e 74 5f 68 61 6e 64 var comment_hand
2d60: 6c 65 72 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 ler_1 = __webpac
2d70: 6b 5f 72 65 71 75 69 72 65 5f 5f 28 31 29 3b 0a k_require__(1);.
2d80: 20 20 09 76 61 72 20 70 61 72 73 65 72 5f 31 20 .var parser_1
2d90: 3d 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 = __webpack_requ
2da0: 69 72 65 5f 5f 28 33 29 3b 0a 20 20 09 76 61 72 ire__(3);. .var
2db0: 20 6a 73 78 5f 70 61 72 73 65 72 5f 31 20 3d 20 jsx_parser_1 =
2dc0: 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 69 72 __webpack_requir
2dd0: 65 5f 5f 28 31 31 29 3b 0a 20 20 09 76 61 72 20 e__(11);. .var
2de0: 74 6f 6b 65 6e 69 7a 65 72 5f 31 20 3d 20 5f 5f tokenizer_1 = __
2df0: 77 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f webpack_require_
2e00: 5f 28 31 35 29 3b 0a 20 20 09 66 75 6e 63 74 69 _(15);. .functi
2e10: 6f 6e 20 70 61 72 73 65 28 63 6f 64 65 2c 20 6f on parse(code, o
2e20: 70 74 69 6f 6e 73 2c 20 64 65 6c 65 67 61 74 65 ptions, delegate
2e30: 29 20 7b 0a 20 20 09 20 20 20 20 76 61 72 20 63 ) {. . var c
2e40: 6f 6d 6d 65 6e 74 48 61 6e 64 6c 65 72 20 3d 20 ommentHandler =
2e50: 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 76 61 72 null;. . var
2e60: 20 70 72 6f 78 79 44 65 6c 65 67 61 74 65 20 3d proxyDelegate =
2e70: 20 66 75 6e 63 74 69 6f 6e 20 28 6e 6f 64 65 2c function (node,
2e80: 20 6d 65 74 61 64 61 74 61 29 20 7b 0a 20 20 09 metadata) {. .
2e90: 20 20 20 20 20 20 20 20 69 66 20 28 64 65 6c 65 if (dele
2ea0: 67 61 74 65 29 20 7b 0a 20 20 09 20 20 20 20 20 gate) {. .
2eb0: 20 20 20 20 20 20 20 64 65 6c 65 67 61 74 65 28 delegate(
2ec0: 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 29 3b node, metadata);
2ed0: 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
2ee0: 09 20 20 20 20 20 20 20 20 69 66 20 28 63 6f 6d . if (com
2ef0: 6d 65 6e 74 48 61 6e 64 6c 65 72 29 20 7b 0a 20 mentHandler) {.
2f00: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 6f . co
2f10: 6d 6d 65 6e 74 48 61 6e 64 6c 65 72 2e 76 69 73 mmentHandler.vis
2f20: 69 74 28 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 it(node, metadat
2f30: 61 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d a);. . }
2f40: 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
2f50: 20 20 76 61 72 20 70 61 72 73 65 72 44 65 6c 65 var parserDele
2f60: 67 61 74 65 20 3d 20 28 74 79 70 65 6f 66 20 64 gate = (typeof d
2f70: 65 6c 65 67 61 74 65 20 3d 3d 3d 20 27 66 75 6e elegate === 'fun
2f80: 63 74 69 6f 6e 27 29 20 3f 20 70 72 6f 78 79 44 ction') ? proxyD
2f90: 65 6c 65 67 61 74 65 20 3a 20 6e 75 6c 6c 3b 0a elegate : null;.
2fa0: 20 20 09 20 20 20 20 76 61 72 20 63 6f 6c 6c 65 . var colle
2fb0: 63 74 43 6f 6d 6d 65 6e 74 20 3d 20 66 61 6c 73 ctComment = fals
2fc0: 65 3b 0a 20 20 09 20 20 20 20 69 66 20 28 6f 70 e;. . if (op
2fd0: 74 69 6f 6e 73 29 20 7b 0a 20 20 09 20 20 20 20 tions) {. .
2fe0: 20 20 20 20 63 6f 6c 6c 65 63 74 43 6f 6d 6d 65 collectComme
2ff0: 6e 74 20 3d 20 28 74 79 70 65 6f 66 20 6f 70 74 nt = (typeof opt
3000: 69 6f 6e 73 2e 63 6f 6d 6d 65 6e 74 20 3d 3d 3d ions.comment ===
3010: 20 27 62 6f 6f 6c 65 61 6e 27 20 26 26 20 6f 70 'boolean' && op
3020: 74 69 6f 6e 73 2e 63 6f 6d 6d 65 6e 74 29 3b 0a tions.comment);.
3030: 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 61 . var a
3040: 74 74 61 63 68 43 6f 6d 6d 65 6e 74 20 3d 20 28 ttachComment = (
3050: 74 79 70 65 6f 66 20 6f 70 74 69 6f 6e 73 2e 61 typeof options.a
3060: 74 74 61 63 68 43 6f 6d 6d 65 6e 74 20 3d 3d 3d ttachComment ===
3070: 20 27 62 6f 6f 6c 65 61 6e 27 20 26 26 20 6f 70 'boolean' && op
3080: 74 69 6f 6e 73 2e 61 74 74 61 63 68 43 6f 6d 6d tions.attachComm
3090: 65 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ent);. .
30a0: 20 69 66 20 28 63 6f 6c 6c 65 63 74 43 6f 6d 6d if (collectComm
30b0: 65 6e 74 20 7c 7c 20 61 74 74 61 63 68 43 6f 6d ent || attachCom
30c0: 6d 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 ment) {. .
30d0: 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 48 61 commentHa
30e0: 6e 64 6c 65 72 20 3d 20 6e 65 77 20 63 6f 6d 6d ndler = new comm
30f0: 65 6e 74 5f 68 61 6e 64 6c 65 72 5f 31 2e 43 6f ent_handler_1.Co
3100: 6d 6d 65 6e 74 48 61 6e 64 6c 65 72 28 29 3b 0a mmentHandler();.
3110: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 . c
3120: 6f 6d 6d 65 6e 74 48 61 6e 64 6c 65 72 2e 61 74 ommentHandler.at
3130: 74 61 63 68 20 3d 20 61 74 74 61 63 68 43 6f 6d tach = attachCom
3140: 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 ment;. .
3150: 20 20 20 20 20 6f 70 74 69 6f 6e 73 2e 63 6f 6d options.com
3160: 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 20 20 09 ment = true;. .
3170: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 73 pars
3180: 65 72 44 65 6c 65 67 61 74 65 20 3d 20 70 72 6f erDelegate = pro
3190: 78 79 44 65 6c 65 67 61 74 65 3b 0a 20 20 09 20 xyDelegate;. .
31a0: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
31b0: 7d 0a 20 20 09 20 20 20 20 76 61 72 20 70 61 72 }. . var par
31c0: 73 65 72 3b 0a 20 20 09 20 20 20 20 69 66 20 28 ser;. . if (
31d0: 6f 70 74 69 6f 6e 73 20 26 26 20 74 79 70 65 6f options && typeo
31e0: 66 20 6f 70 74 69 6f 6e 73 2e 6a 73 78 20 3d 3d f options.jsx ==
31f0: 3d 20 27 62 6f 6f 6c 65 61 6e 27 20 26 26 20 6f = 'boolean' && o
3200: 70 74 69 6f 6e 73 2e 6a 73 78 29 20 7b 0a 20 20 ptions.jsx) {.
3210: 09 20 20 20 20 20 20 20 20 70 61 72 73 65 72 20 . parser
3220: 3d 20 6e 65 77 20 6a 73 78 5f 70 61 72 73 65 72 = new jsx_parser
3230: 5f 31 2e 4a 53 58 50 61 72 73 65 72 28 63 6f 64 _1.JSXParser(cod
3240: 65 2c 20 6f 70 74 69 6f 6e 73 2c 20 70 61 72 73 e, options, pars
3250: 65 72 44 65 6c 65 67 61 74 65 29 3b 0a 20 20 09 erDelegate);. .
3260: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 65 6c 73 }. . els
3270: 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 70 e {. . p
3280: 61 72 73 65 72 20 3d 20 6e 65 77 20 70 61 72 73 arser = new pars
3290: 65 72 5f 31 2e 50 61 72 73 65 72 28 63 6f 64 65 er_1.Parser(code
32a0: 2c 20 6f 70 74 69 6f 6e 73 2c 20 70 61 72 73 65 , options, parse
32b0: 72 44 65 6c 65 67 61 74 65 29 3b 0a 20 20 09 20 rDelegate);. .
32c0: 20 20 20 7d 0a 20 20 09 20 20 20 20 76 61 72 20 }. . var
32d0: 61 73 74 20 3d 20 28 70 61 72 73 65 72 2e 70 61 ast = (parser.pa
32e0: 72 73 65 50 72 6f 67 72 61 6d 28 29 29 3b 0a 20 rseProgram());.
32f0: 20 09 20 20 20 20 69 66 20 28 63 6f 6c 6c 65 63 . if (collec
3300: 74 43 6f 6d 6d 65 6e 74 29 20 7b 0a 20 20 09 20 tComment) {. .
3310: 20 20 20 20 20 20 20 61 73 74 2e 63 6f 6d 6d 65 ast.comme
3320: 6e 74 73 20 3d 20 63 6f 6d 6d 65 6e 74 48 61 6e nts = commentHan
3330: 64 6c 65 72 2e 63 6f 6d 6d 65 6e 74 73 3b 0a 20 dler.comments;.
3340: 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 69 . }. . i
3350: 66 20 28 70 61 72 73 65 72 2e 63 6f 6e 66 69 67 f (parser.config
3360: 2e 74 6f 6b 65 6e 73 29 20 7b 0a 20 20 09 20 20 .tokens) {. .
3370: 20 20 20 20 20 20 61 73 74 2e 74 6f 6b 65 6e 73 ast.tokens
3380: 20 3d 20 70 61 72 73 65 72 2e 74 6f 6b 65 6e 73 = parser.tokens
3390: 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 ;. . }. .
33a0: 20 20 69 66 20 28 70 61 72 73 65 72 2e 63 6f 6e if (parser.con
33b0: 66 69 67 2e 74 6f 6c 65 72 61 6e 74 29 20 7b 0a fig.tolerant) {.
33c0: 20 20 09 20 20 20 20 20 20 20 20 61 73 74 2e 65 . ast.e
33d0: 72 72 6f 72 73 20 3d 20 70 61 72 73 65 72 2e 65 rrors = parser.e
33e0: 72 72 6f 72 48 61 6e 64 6c 65 72 2e 65 72 72 6f rrorHandler.erro
33f0: 72 73 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 rs;. . }. .
3400: 20 20 20 20 72 65 74 75 72 6e 20 61 73 74 3b 0a return ast;.
3410: 20 20 09 7d 0a 20 20 09 65 78 70 6f 72 74 73 2e .}. .exports.
3420: 70 61 72 73 65 20 3d 20 70 61 72 73 65 3b 0a 20 parse = parse;.
3430: 20 09 66 75 6e 63 74 69 6f 6e 20 74 6f 6b 65 6e .function token
3440: 69 7a 65 28 63 6f 64 65 2c 20 6f 70 74 69 6f 6e ize(code, option
3450: 73 2c 20 64 65 6c 65 67 61 74 65 29 20 7b 0a 20 s, delegate) {.
3460: 20 09 20 20 20 20 76 61 72 20 74 6f 6b 65 6e 69 . var tokeni
3470: 7a 65 72 20 3d 20 6e 65 77 20 74 6f 6b 65 6e 69 zer = new tokeni
3480: 7a 65 72 5f 31 2e 54 6f 6b 65 6e 69 7a 65 72 28 zer_1.Tokenizer(
3490: 63 6f 64 65 2c 20 6f 70 74 69 6f 6e 73 29 3b 0a code, options);.
34a0: 20 20 09 20 20 20 20 76 61 72 20 74 6f 6b 65 6e . var token
34b0: 73 3b 0a 20 20 09 20 20 20 20 74 6f 6b 65 6e 73 s;. . tokens
34c0: 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 74 72 = [];. . tr
34d0: 79 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 77 y {. . w
34e0: 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 20 20 hile (true) {.
34f0: 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
3500: 20 74 6f 6b 65 6e 20 3d 20 74 6f 6b 65 6e 69 7a token = tokeniz
3510: 65 72 2e 67 65 74 4e 65 78 74 54 6f 6b 65 6e 28 er.getNextToken(
3520: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3530: 20 20 69 66 20 28 21 74 6f 6b 65 6e 29 20 7b 0a if (!token) {.
3540: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3550: 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
3560: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
3570: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 65 if (de
3580: 6c 65 67 61 74 65 29 20 7b 0a 20 20 09 20 20 20 legate) {. .
3590: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6b tok
35a0: 65 6e 20 3d 20 64 65 6c 65 67 61 74 65 28 74 6f en = delegate(to
35b0: 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ken);. .
35c0: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
35d0: 20 20 20 20 20 20 74 6f 6b 65 6e 73 2e 70 75 73 tokens.pus
35e0: 68 28 74 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 h(token);. .
35f0: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 7d 0a }. . }.
3600: 20 20 09 20 20 20 20 63 61 74 63 68 20 28 65 29 . catch (e)
3610: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 6f {. . to
3620: 6b 65 6e 69 7a 65 72 2e 65 72 72 6f 72 48 61 6e kenizer.errorHan
3630: 64 6c 65 72 2e 74 6f 6c 65 72 61 74 65 28 65 29 dler.tolerate(e)
3640: 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 ;. . }. .
3650: 20 20 69 66 20 28 74 6f 6b 65 6e 69 7a 65 72 2e if (tokenizer.
3660: 65 72 72 6f 72 48 61 6e 64 6c 65 72 2e 74 6f 6c errorHandler.tol
3670: 65 72 61 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 erant) {. .
3680: 20 20 20 20 74 6f 6b 65 6e 73 2e 65 72 72 6f 72 tokens.error
3690: 73 20 3d 20 74 6f 6b 65 6e 69 7a 65 72 2e 65 72 s = tokenizer.er
36a0: 72 6f 72 73 28 29 3b 0a 20 20 09 20 20 20 20 7d rors();. . }
36b0: 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 74 . . return t
36c0: 6f 6b 65 6e 73 3b 0a 20 20 09 7d 0a 20 20 09 65 okens;. .}. .e
36d0: 78 70 6f 72 74 73 2e 74 6f 6b 65 6e 69 7a 65 20 xports.tokenize
36e0: 3d 20 74 6f 6b 65 6e 69 7a 65 3b 0a 20 20 09 76 = tokenize;. .v
36f0: 61 72 20 73 79 6e 74 61 78 5f 31 20 3d 20 5f 5f ar syntax_1 = __
3700: 77 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f webpack_require_
3710: 5f 28 32 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 _(2);. .exports
3720: 2e 53 79 6e 74 61 78 20 3d 20 73 79 6e 74 61 78 .Syntax = syntax
3730: 5f 31 2e 53 79 6e 74 61 78 3b 0a 20 20 09 2f 2f _1.Syntax;. .//
3740: 20 53 79 6e 63 20 77 69 74 68 20 2a 2e 6a 73 6f Sync with *.jso
3750: 6e 20 6d 61 6e 69 66 65 73 74 73 2e 0a 20 20 09 n manifests.. .
3760: 65 78 70 6f 72 74 73 2e 76 65 72 73 69 6f 6e 20 exports.version
3770: 3d 20 27 33 2e 31 2e 33 27 3b 0a 0a 0a 20 20 2f = '3.1.3';... /
3780: 2a 2a 2a 2f 20 7d 2c 0a 20 20 2f 2a 20 31 20 2a ***/ },. /* 1 *
3790: 2f 0a 20 20 2f 2a 2a 2a 2f 20 66 75 6e 63 74 69 /. /***/ functi
37a0: 6f 6e 28 6d 6f 64 75 6c 65 2c 20 65 78 70 6f 72 on(module, expor
37b0: 74 73 2c 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 ts, __webpack_re
37c0: 71 75 69 72 65 5f 5f 29 20 7b 0a 20 20 09 76 61 quire__) {. .va
37d0: 72 20 73 79 6e 74 61 78 5f 31 20 3d 20 5f 5f 77 r syntax_1 = __w
37e0: 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f ebpack_require__
37f0: 28 32 29 3b 0a 20 20 09 76 61 72 20 43 6f 6d 6d (2);. .var Comm
3800: 65 6e 74 48 61 6e 64 6c 65 72 20 3d 20 28 66 75 entHandler = (fu
3810: 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
3820: 20 20 20 66 75 6e 63 74 69 6f 6e 20 43 6f 6d 6d function Comm
3830: 65 6e 74 48 61 6e 64 6c 65 72 28 29 20 7b 0a 20 entHandler() {.
3840: 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 61 . this.a
3850: 74 74 61 63 68 20 3d 20 66 61 6c 73 65 3b 0a 20 ttach = false;.
3860: 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 . this.c
3870: 6f 6d 6d 65 6e 74 73 20 3d 20 5b 5d 3b 0a 20 20 omments = [];.
3880: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 74 . this.st
3890: 61 63 6b 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 ack = [];. .
38a0: 20 20 20 20 20 74 68 69 73 2e 6c 65 61 64 69 6e this.leadin
38b0: 67 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 g = [];. .
38c0: 20 20 20 74 68 69 73 2e 74 72 61 69 6c 69 6e 67 this.trailing
38d0: 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 7d 0a = [];. . }.
38e0: 20 20 09 20 20 20 20 43 6f 6d 6d 65 6e 74 48 61 . CommentHa
38f0: 6e 64 6c 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e ndler.prototype.
3900: 69 6e 73 65 72 74 49 6e 6e 65 72 43 6f 6d 6d 65 insertInnerComme
3910: 6e 74 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 nts = function (
3920: 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 29 20 node, metadata)
3930: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
3940: 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a this$1 = this;.
3950: 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 20 . . //
3960: 69 6e 6e 6e 65 72 43 6f 6d 6d 65 6e 74 73 20 66 innnerComments f
3970: 6f 72 20 70 72 6f 70 65 72 74 69 65 73 20 65 6d or properties em
3980: 70 74 79 20 62 6c 6f 63 6b 0a 20 20 09 20 20 20 pty block. .
3990: 20 20 20 20 20 2f 2f 20 20 60 66 75 6e 63 74 69 // `functi
39a0: 6f 6e 20 61 28 29 20 7b 2f 2a 2a 20 63 6f 6d 6d on a() {/** comm
39b0: 65 6e 74 73 20 2a 2a 5c 2f 7d 60 0a 20 20 09 20 ents **\/}`. .
39c0: 20 20 20 20 20 20 20 69 66 20 28 6e 6f 64 65 2e if (node.
39d0: 74 79 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f type === syntax_
39e0: 31 2e 53 79 6e 74 61 78 2e 42 6c 6f 63 6b 53 74 1.Syntax.BlockSt
39f0: 61 74 65 6d 65 6e 74 20 26 26 20 6e 6f 64 65 2e atement && node.
3a00: 62 6f 64 79 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 body.length ===
3a10: 30 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 0) {. .
3a20: 20 20 20 20 76 61 72 20 69 6e 6e 65 72 43 6f 6d var innerCom
3a30: 6d 65 6e 74 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 ments = [];. .
3a40: 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 for (
3a50: 76 61 72 20 69 20 3d 20 74 68 69 73 2e 6c 65 61 var i = this.lea
3a60: 64 69 6e 67 2e 6c 65 6e 67 74 68 20 2d 20 31 3b ding.length - 1;
3a70: 20 69 20 3e 3d 20 30 3b 20 2d 2d 69 29 20 7b 0a i >= 0; --i) {.
3a80: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3a90: 20 20 20 76 61 72 20 65 6e 74 72 79 20 3d 20 74 var entry = t
3aa0: 68 69 73 24 31 2e 6c 65 61 64 69 6e 67 5b 69 5d his$1.leading[i]
3ab0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
3ac0: 20 20 20 20 20 69 66 20 28 6d 65 74 61 64 61 74 if (metadat
3ad0: 61 2e 65 6e 64 2e 6f 66 66 73 65 74 20 3e 3d 20 a.end.offset >=
3ae0: 65 6e 74 72 79 2e 73 74 61 72 74 29 20 7b 0a 20 entry.start) {.
3af0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3b00: 20 20 20 20 20 20 69 6e 6e 65 72 43 6f 6d 6d 65 innerComme
3b10: 6e 74 73 2e 75 6e 73 68 69 66 74 28 65 6e 74 72 nts.unshift(entr
3b20: 79 2e 63 6f 6d 6d 65 6e 74 29 3b 0a 20 20 09 20 y.comment);. .
3b30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3b40: 20 20 20 74 68 69 73 24 31 2e 6c 65 61 64 69 6e this$1.leadin
3b50: 67 2e 73 70 6c 69 63 65 28 69 2c 20 31 29 3b 0a g.splice(i, 1);.
3b60: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3b70: 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 74 72 this$1.tr
3b80: 61 69 6c 69 6e 67 2e 73 70 6c 69 63 65 28 69 2c ailing.splice(i,
3b90: 20 31 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 1);. .
3ba0: 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
3bb0: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
3bc0: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 6e if (in
3bd0: 6e 65 72 43 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 nerComments.leng
3be0: 74 68 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 th) {. .
3bf0: 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2e 69 6e node.in
3c00: 6e 65 72 43 6f 6d 6d 65 6e 74 73 20 3d 20 69 6e nerComments = in
3c10: 6e 65 72 43 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 nerComments;. .
3c20: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
3c30: 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
3c40: 20 20 7d 3b 0a 20 20 09 20 20 20 20 43 6f 6d 6d };. . Comm
3c50: 65 6e 74 48 61 6e 64 6c 65 72 2e 70 72 6f 74 6f entHandler.proto
3c60: 74 79 70 65 2e 66 69 6e 64 54 72 61 69 6c 69 6e type.findTrailin
3c70: 67 43 6f 6d 6d 65 6e 74 73 20 3d 20 66 75 6e 63 gComments = func
3c80: 74 69 6f 6e 20 28 6e 6f 64 65 2c 20 6d 65 74 61 tion (node, meta
3c90: 64 61 74 61 29 20 7b 0a 20 20 09 20 20 20 20 20 data) {. .
3ca0: 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 var this$1 =
3cb0: 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 this;.. .
3cc0: 20 20 76 61 72 20 74 72 61 69 6c 69 6e 67 43 6f var trailingCo
3cd0: 6d 6d 65 6e 74 73 20 3d 20 5b 5d 3b 0a 20 20 09 mments = [];. .
3ce0: 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
3cf0: 2e 74 72 61 69 6c 69 6e 67 2e 6c 65 6e 67 74 68 .trailing.length
3d00: 20 3e 20 30 29 20 7b 0a 20 20 09 20 20 20 20 20 > 0) {. .
3d10: 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 for (var
3d20: 69 20 3d 20 74 68 69 73 2e 74 72 61 69 6c 69 6e i = this.trailin
3d30: 67 2e 6c 65 6e 67 74 68 20 2d 20 31 3b 20 69 20 g.length - 1; i
3d40: 3e 3d 20 30 3b 20 2d 2d 69 29 20 7b 0a 20 20 09 >= 0; --i) {. .
3d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3d60: 76 61 72 20 65 6e 74 72 79 5f 31 20 3d 20 74 68 var entry_1 = th
3d70: 69 73 24 31 2e 74 72 61 69 6c 69 6e 67 5b 69 5d is$1.trailing[i]
3d80: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
3d90: 20 20 20 20 20 69 66 20 28 65 6e 74 72 79 5f 31 if (entry_1
3da0: 2e 73 74 61 72 74 20 3e 3d 20 6d 65 74 61 64 61 .start >= metada
3db0: 74 61 2e 65 6e 64 2e 6f 66 66 73 65 74 29 20 7b ta.end.offset) {
3dc0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3dd0: 20 20 20 20 20 20 20 20 74 72 61 69 6c 69 6e 67 trailing
3de0: 43 6f 6d 6d 65 6e 74 73 2e 75 6e 73 68 69 66 74 Comments.unshift
3df0: 28 65 6e 74 72 79 5f 31 2e 63 6f 6d 6d 65 6e 74 (entry_1.comment
3e00: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3e10: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
3e20: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
3e30: 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 72 61 this.tra
3e40: 69 6c 69 6e 67 2e 6c 65 6e 67 74 68 20 3d 20 30 iling.length = 0
3e50: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
3e60: 20 72 65 74 75 72 6e 20 74 72 61 69 6c 69 6e 67 return trailing
3e70: 43 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 Comments;. .
3e80: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
3e90: 20 20 76 61 72 20 65 6e 74 72 79 20 3d 20 74 68 var entry = th
3ea0: 69 73 2e 73 74 61 63 6b 5b 74 68 69 73 2e 73 74 is.stack[this.st
3eb0: 61 63 6b 2e 6c 65 6e 67 74 68 20 2d 20 31 5d 3b ack.length - 1];
3ec0: 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
3ed0: 65 6e 74 72 79 20 26 26 20 65 6e 74 72 79 2e 6e entry && entry.n
3ee0: 6f 64 65 2e 74 72 61 69 6c 69 6e 67 43 6f 6d 6d ode.trailingComm
3ef0: 65 6e 74 73 29 20 7b 0a 20 20 09 20 20 20 20 20 ents) {. .
3f00: 20 20 20 20 20 20 20 76 61 72 20 66 69 72 73 74 var first
3f10: 43 6f 6d 6d 65 6e 74 20 3d 20 65 6e 74 72 79 2e Comment = entry.
3f20: 6e 6f 64 65 2e 74 72 61 69 6c 69 6e 67 43 6f 6d node.trailingCom
3f30: 6d 65 6e 74 73 5b 30 5d 3b 0a 20 20 09 20 20 20 ments[0];. .
3f40: 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 72 if (fir
3f50: 73 74 43 6f 6d 6d 65 6e 74 20 26 26 20 66 69 72 stComment && fir
3f60: 73 74 43 6f 6d 6d 65 6e 74 2e 72 61 6e 67 65 5b stComment.range[
3f70: 30 5d 20 3e 3d 20 6d 65 74 61 64 61 74 61 2e 65 0] >= metadata.e
3f80: 6e 64 2e 6f 66 66 73 65 74 29 20 7b 0a 20 20 09 nd.offset) {. .
3f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3fa0: 74 72 61 69 6c 69 6e 67 43 6f 6d 6d 65 6e 74 73 trailingComments
3fb0: 20 3d 20 65 6e 74 72 79 2e 6e 6f 64 65 2e 74 72 = entry.node.tr
3fc0: 61 69 6c 69 6e 67 43 6f 6d 6d 65 6e 74 73 3b 0a ailingComments;.
3fd0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3fe0: 20 20 20 64 65 6c 65 74 65 20 65 6e 74 72 79 2e delete entry.
3ff0: 6e 6f 64 65 2e 74 72 61 69 6c 69 6e 67 43 6f 6d node.trailingCom
4000: 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 20 20 20 ments;. .
4010: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
4020: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
4030: 72 65 74 75 72 6e 20 74 72 61 69 6c 69 6e 67 43 return trailingC
4040: 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 20 omments;. .
4050: 7d 3b 0a 20 20 09 20 20 20 20 43 6f 6d 6d 65 6e };. . Commen
4060: 74 48 61 6e 64 6c 65 72 2e 70 72 6f 74 6f 74 79 tHandler.prototy
4070: 70 65 2e 66 69 6e 64 4c 65 61 64 69 6e 67 43 6f pe.findLeadingCo
4080: 6d 6d 65 6e 74 73 20 3d 20 66 75 6e 63 74 69 6f mments = functio
4090: 6e 20 28 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 n (node, metadat
40a0: 61 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 a) {. .
40b0: 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
40c0: 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 s;.. . v
40d0: 61 72 20 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e ar leadingCommen
40e0: 74 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 ts = [];. .
40f0: 20 20 20 20 76 61 72 20 74 61 72 67 65 74 3b 0a var target;.
4100: 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
4110: 20 28 74 68 69 73 2e 73 74 61 63 6b 2e 6c 65 6e (this.stack.len
4120: 67 74 68 20 3e 20 30 29 20 7b 0a 20 20 09 20 20 gth > 0) {. .
4130: 20 20 20 20 20 20 20 20 20 20 76 61 72 20 65 6e var en
4140: 74 72 79 20 3d 20 74 68 69 73 24 31 2e 73 74 61 try = this$1.sta
4150: 63 6b 5b 74 68 69 73 24 31 2e 73 74 61 63 6b 2e ck[this$1.stack.
4160: 6c 65 6e 67 74 68 20 2d 20 31 5d 3b 0a 20 20 09 length - 1];. .
4170: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
4180: 65 6e 74 72 79 20 26 26 20 65 6e 74 72 79 2e 73 entry && entry.s
4190: 74 61 72 74 20 3e 3d 20 6d 65 74 61 64 61 74 61 tart >= metadata
41a0: 2e 73 74 61 72 74 2e 6f 66 66 73 65 74 29 20 7b .start.offset) {
41b0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
41c0: 20 20 20 20 74 61 72 67 65 74 20 3d 20 74 68 69 target = thi
41d0: 73 24 31 2e 73 74 61 63 6b 2e 70 6f 70 28 29 2e s$1.stack.pop().
41e0: 6e 6f 64 65 3b 0a 20 20 09 20 20 20 20 20 20 20 node;. .
41f0: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
4200: 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 else {. .
4210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4220: 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 break;. .
4230: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
4240: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
4250: 69 66 20 28 74 61 72 67 65 74 29 20 7b 0a 20 20 if (target) {.
4260: 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
4270: 20 63 6f 75 6e 74 20 3d 20 74 61 72 67 65 74 2e count = target.
4280: 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e 74 73 20 leadingComments
4290: 3f 20 74 61 72 67 65 74 2e 6c 65 61 64 69 6e 67 ? target.leading
42a0: 43 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 20 Comments.length
42b0: 3a 20 30 3b 0a 20 20 09 20 20 20 20 20 20 20 20 : 0;. .
42c0: 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d for (var i =
42d0: 20 63 6f 75 6e 74 20 2d 20 31 3b 20 69 20 3e 3d count - 1; i >=
42e0: 20 30 3b 20 2d 2d 69 29 20 7b 0a 20 20 09 20 20 0; --i) {. .
42f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
4300: 72 20 63 6f 6d 6d 65 6e 74 20 3d 20 74 61 72 67 r comment = targ
4310: 65 74 2e 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e et.leadingCommen
4320: 74 73 5b 69 5d 3b 0a 20 20 09 20 20 20 20 20 20 ts[i];. .
4330: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 6f if (co
4340: 6d 6d 65 6e 74 2e 72 61 6e 67 65 5b 31 5d 20 3c mment.range[1] <
4350: 3d 20 6d 65 74 61 64 61 74 61 2e 73 74 61 72 74 = metadata.start
4360: 2e 6f 66 66 73 65 74 29 20 7b 0a 20 20 09 20 20 .offset) {. .
4370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4380: 20 20 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e 74 leadingComment
4390: 73 2e 75 6e 73 68 69 66 74 28 63 6f 6d 6d 65 6e s.unshift(commen
43a0: 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 t);. .
43b0: 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 targe
43c0: 74 2e 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e 74 t.leadingComment
43d0: 73 2e 73 70 6c 69 63 65 28 69 2c 20 31 29 3b 0a s.splice(i, 1);.
43e0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
43f0: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
4400: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
4410: 20 20 20 20 20 69 66 20 28 74 61 72 67 65 74 2e if (target.
4420: 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e 74 73 20 leadingComments
4430: 26 26 20 74 61 72 67 65 74 2e 6c 65 61 64 69 6e && target.leadin
4440: 67 43 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 gComments.length
4450: 20 3d 3d 3d 20 30 29 20 7b 0a 20 20 09 20 20 20 === 0) {. .
4460: 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c del
4470: 65 74 65 20 74 61 72 67 65 74 2e 6c 65 61 64 69 ete target.leadi
4480: 6e 67 43 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 ngComments;. .
4490: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
44a0: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
44b0: 72 6e 20 6c 65 61 64 69 6e 67 43 6f 6d 6d 65 6e rn leadingCommen
44c0: 74 73 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d ts;. . }
44d0: 0a 20 20 09 20 20 20 20 20 20 20 20 66 6f 72 20 . . for
44e0: 28 76 61 72 20 69 20 3d 20 74 68 69 73 2e 6c 65 (var i = this.le
44f0: 61 64 69 6e 67 2e 6c 65 6e 67 74 68 20 2d 20 31 ading.length - 1
4500: 3b 20 69 20 3e 3d 20 30 3b 20 2d 2d 69 29 20 7b ; i >= 0; --i) {
4510: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
4520: 76 61 72 20 65 6e 74 72 79 20 3d 20 74 68 69 73 var entry = this
4530: 24 31 2e 6c 65 61 64 69 6e 67 5b 69 5d 3b 0a 20 $1.leading[i];.
4540: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
4550: 20 28 65 6e 74 72 79 2e 73 74 61 72 74 20 3c 3d (entry.start <=
4560: 20 6d 65 74 61 64 61 74 61 2e 73 74 61 72 74 2e metadata.start.
4570: 6f 66 66 73 65 74 29 20 7b 0a 20 20 09 20 20 20 offset) {. .
4580: 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 61 lea
4590: 64 69 6e 67 43 6f 6d 6d 65 6e 74 73 2e 75 6e 73 dingComments.uns
45a0: 68 69 66 74 28 65 6e 74 72 79 2e 63 6f 6d 6d 65 hift(entry.comme
45b0: 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nt);. .
45c0: 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 6c this$1.l
45d0: 65 61 64 69 6e 67 2e 73 70 6c 69 63 65 28 69 2c eading.splice(i,
45e0: 20 31 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 1);. .
45f0: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
4600: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
4610: 74 75 72 6e 20 6c 65 61 64 69 6e 67 43 6f 6d 6d turn leadingComm
4620: 65 6e 74 73 3b 0a 20 20 09 20 20 20 20 7d 3b 0a ents;. . };.
4630: 20 20 09 20 20 20 20 43 6f 6d 6d 65 6e 74 48 61 . CommentHa
4640: 6e 64 6c 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e ndler.prototype.
4650: 76 69 73 69 74 4e 6f 64 65 20 3d 20 66 75 6e 63 visitNode = func
4660: 74 69 6f 6e 20 28 6e 6f 64 65 2c 20 6d 65 74 61 tion (node, meta
4670: 64 61 74 61 29 20 7b 0a 20 20 09 20 20 20 20 20 data) {. .
4680: 20 20 20 69 66 20 28 6e 6f 64 65 2e 74 79 70 65 if (node.type
4690: 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 === syntax_1.Sy
46a0: 6e 74 61 78 2e 50 72 6f 67 72 61 6d 20 26 26 20 ntax.Program &&
46b0: 6e 6f 64 65 2e 62 6f 64 79 2e 6c 65 6e 67 74 68 node.body.length
46c0: 20 3e 20 30 29 20 7b 0a 20 20 09 20 20 20 20 20 > 0) {. .
46d0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 return;.
46e0: 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
46f0: 20 20 20 20 20 20 20 74 68 69 73 2e 69 6e 73 65 this.inse
4700: 72 74 49 6e 6e 65 72 43 6f 6d 6d 65 6e 74 73 28 rtInnerComments(
4710: 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 29 3b node, metadata);
4720: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
4730: 74 72 61 69 6c 69 6e 67 43 6f 6d 6d 65 6e 74 73 trailingComments
4740: 20 3d 20 74 68 69 73 2e 66 69 6e 64 54 72 61 69 = this.findTrai
4750: 6c 69 6e 67 43 6f 6d 6d 65 6e 74 73 28 6e 6f 64 lingComments(nod
4760: 65 2c 20 6d 65 74 61 64 61 74 61 29 3b 0a 20 20 e, metadata);.
4770: 09 20 20 20 20 20 20 20 20 76 61 72 20 6c 65 61 . var lea
4780: 64 69 6e 67 43 6f 6d 6d 65 6e 74 73 20 3d 20 74 dingComments = t
4790: 68 69 73 2e 66 69 6e 64 4c 65 61 64 69 6e 67 43 his.findLeadingC
47a0: 6f 6d 6d 65 6e 74 73 28 6e 6f 64 65 2c 20 6d 65 omments(node, me
47b0: 74 61 64 61 74 61 29 3b 0a 20 20 09 20 20 20 20 tadata);. .
47c0: 20 20 20 20 69 66 20 28 6c 65 61 64 69 6e 67 43 if (leadingC
47d0: 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 20 3e omments.length >
47e0: 20 30 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 0) {. .
47f0: 20 20 20 20 20 6e 6f 64 65 2e 6c 65 61 64 69 6e node.leadin
4800: 67 43 6f 6d 6d 65 6e 74 73 20 3d 20 6c 65 61 64 gComments = lead
4810: 69 6e 67 43 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 ingComments;. .
4820: 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
4830: 20 20 20 20 20 69 66 20 28 74 72 61 69 6c 69 6e if (trailin
4840: 67 43 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 gComments.length
4850: 20 3e 20 30 29 20 7b 0a 20 20 09 20 20 20 20 20 > 0) {. .
4860: 20 20 20 20 20 20 20 6e 6f 64 65 2e 74 72 61 69 node.trai
4870: 6c 69 6e 67 43 6f 6d 6d 65 6e 74 73 20 3d 20 74 lingComments = t
4880: 72 61 69 6c 69 6e 67 43 6f 6d 6d 65 6e 74 73 3b railingComments;
4890: 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
48a0: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 74 . this.st
48b0: 61 63 6b 2e 70 75 73 68 28 7b 0a 20 20 09 20 20 ack.push({. .
48c0: 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 3a 20 node:
48d0: 6e 6f 64 65 2c 0a 20 20 09 20 20 20 20 20 20 20 node,. .
48e0: 20 20 20 20 20 73 74 61 72 74 3a 20 6d 65 74 61 start: meta
48f0: 64 61 74 61 2e 73 74 61 72 74 2e 6f 66 66 73 65 data.start.offse
4900: 74 0a 20 20 09 20 20 20 20 20 20 20 20 7d 29 3b t. . });
4910: 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
4920: 20 20 43 6f 6d 6d 65 6e 74 48 61 6e 64 6c 65 72 CommentHandler
4930: 2e 70 72 6f 74 6f 74 79 70 65 2e 76 69 73 69 74 .prototype.visit
4940: 43 6f 6d 6d 65 6e 74 20 3d 20 66 75 6e 63 74 69 Comment = functi
4950: 6f 6e 20 28 6e 6f 64 65 2c 20 6d 65 74 61 64 61 on (node, metada
4960: 74 61 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ta) {. .
4970: 20 76 61 72 20 74 79 70 65 20 3d 20 28 6e 6f 64 var type = (nod
4980: 65 2e 74 79 70 65 5b 30 5d 20 3d 3d 3d 20 27 4c e.type[0] === 'L
4990: 27 29 20 3f 20 27 4c 69 6e 65 27 20 3a 20 27 42 ') ? 'Line' : 'B
49a0: 6c 6f 63 6b 27 3b 0a 20 20 09 20 20 20 20 20 20 lock';. .
49b0: 20 20 76 61 72 20 63 6f 6d 6d 65 6e 74 20 3d 20 var comment =
49c0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
49d0: 20 74 79 70 65 3a 20 74 79 70 65 2c 0a 20 20 09 type: type,. .
49e0: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
49f0: 65 3a 20 6e 6f 64 65 2e 76 61 6c 75 65 0a 20 20 e: node.value.
4a00: 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 . };. .
4a10: 20 20 20 20 20 20 20 69 66 20 28 6e 6f 64 65 2e if (node.
4a20: 72 61 6e 67 65 29 20 7b 0a 20 20 09 20 20 20 20 range) {. .
4a30: 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 2e comment.
4a40: 72 61 6e 67 65 20 3d 20 6e 6f 64 65 2e 72 61 6e range = node.ran
4a50: 67 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d ge;. . }
4a60: 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
4a70: 6e 6f 64 65 2e 6c 6f 63 29 20 7b 0a 20 20 09 20 node.loc) {. .
4a80: 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 comme
4a90: 6e 74 2e 6c 6f 63 20 3d 20 6e 6f 64 65 2e 6c 6f nt.loc = node.lo
4aa0: 63 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a c;. . }.
4ab0: 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
4ac0: 63 6f 6d 6d 65 6e 74 73 2e 70 75 73 68 28 63 6f comments.push(co
4ad0: 6d 6d 65 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 mment);. .
4ae0: 20 20 20 69 66 20 28 74 68 69 73 2e 61 74 74 61 if (this.atta
4af0: 63 68 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ch) {. .
4b00: 20 20 20 20 20 76 61 72 20 65 6e 74 72 79 20 3d var entry =
4b10: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
4b20: 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 3a 20 7b comment: {
4b30: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
4b40: 20 20 20 20 20 20 20 20 74 79 70 65 3a 20 74 79 type: ty
4b50: 70 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 pe,. .
4b60: 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 value
4b70: 3a 20 6e 6f 64 65 2e 76 61 6c 75 65 2c 0a 20 20 : node.value,.
4b80: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
4b90: 20 20 20 20 20 72 61 6e 67 65 3a 20 5b 6d 65 74 range: [met
4ba0: 61 64 61 74 61 2e 73 74 61 72 74 2e 6f 66 66 73 adata.start.offs
4bb0: 65 74 2c 20 6d 65 74 61 64 61 74 61 2e 65 6e 64 et, metadata.end
4bc0: 2e 6f 66 66 73 65 74 5d 0a 20 20 09 20 20 20 20 .offset]. .
4bd0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 },.
4be0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
4bf0: 20 20 73 74 61 72 74 3a 20 6d 65 74 61 64 61 74 start: metadat
4c00: 61 2e 73 74 61 72 74 2e 6f 66 66 73 65 74 0a 20 a.start.offset.
4c10: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b . };
4c20: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
4c30: 69 66 20 28 6e 6f 64 65 2e 6c 6f 63 29 20 7b 0a if (node.loc) {.
4c40: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
4c50: 20 20 20 65 6e 74 72 79 2e 63 6f 6d 6d 65 6e 74 entry.comment
4c60: 2e 6c 6f 63 20 3d 20 6e 6f 64 65 2e 6c 6f 63 3b .loc = node.loc;
4c70: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
4c80: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
4c90: 20 6e 6f 64 65 2e 74 79 70 65 20 3d 20 74 79 70 node.type = typ
4ca0: 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e;. .
4cb0: 20 20 74 68 69 73 2e 6c 65 61 64 69 6e 67 2e 70 this.leading.p
4cc0: 75 73 68 28 65 6e 74 72 79 29 3b 0a 20 20 09 20 ush(entry);. .
4cd0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
4ce0: 74 72 61 69 6c 69 6e 67 2e 70 75 73 68 28 65 6e trailing.push(en
4cf0: 74 72 79 29 3b 0a 20 20 09 20 20 20 20 20 20 20 try);. .
4d00: 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 }. . };. .
4d10: 20 20 20 20 43 6f 6d 6d 65 6e 74 48 61 6e 64 6c CommentHandl
4d20: 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 76 69 73 er.prototype.vis
4d30: 69 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6e it = function (n
4d40: 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 29 20 7b ode, metadata) {
4d50: 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
4d60: 6e 6f 64 65 2e 74 79 70 65 20 3d 3d 3d 20 27 4c node.type === 'L
4d70: 69 6e 65 43 6f 6d 6d 65 6e 74 27 29 20 7b 0a 20 ineComment') {.
4d80: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
4d90: 69 73 2e 76 69 73 69 74 43 6f 6d 6d 65 6e 74 28 is.visitComment(
4da0: 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 29 3b node, metadata);
4db0: 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
4dc0: 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 . else if
4dd0: 20 28 6e 6f 64 65 2e 74 79 70 65 20 3d 3d 3d 20 (node.type ===
4de0: 27 42 6c 6f 63 6b 43 6f 6d 6d 65 6e 74 27 29 20 'BlockComment')
4df0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
4e00: 20 74 68 69 73 2e 76 69 73 69 74 43 6f 6d 6d 65 this.visitComme
4e10: 6e 74 28 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 nt(node, metadat
4e20: 61 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d a);. . }
4e30: 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 . . else
4e40: 20 69 66 20 28 74 68 69 73 2e 61 74 74 61 63 68 if (this.attach
4e50: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
4e60: 20 20 20 74 68 69 73 2e 76 69 73 69 74 4e 6f 64 this.visitNod
4e70: 65 28 6e 6f 64 65 2c 20 6d 65 74 61 64 61 74 61 e(node, metadata
4e80: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
4e90: 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
4ea0: 20 72 65 74 75 72 6e 20 43 6f 6d 6d 65 6e 74 48 return CommentH
4eb0: 61 6e 64 6c 65 72 3b 0a 20 20 09 7d 28 29 29 3b andler;. .}());
4ec0: 0a 20 20 09 65 78 70 6f 72 74 73 2e 43 6f 6d 6d . .exports.Comm
4ed0: 65 6e 74 48 61 6e 64 6c 65 72 20 3d 20 43 6f 6d entHandler = Com
4ee0: 6d 65 6e 74 48 61 6e 64 6c 65 72 3b 0a 0a 0a 20 mentHandler;...
4ef0: 20 2f 2a 2a 2a 2f 20 7d 2c 0a 20 20 2f 2a 20 32 /***/ },. /* 2
4f00: 20 2a 2f 0a 20 20 2f 2a 2a 2a 2f 20 66 75 6e 63 */. /***/ func
4f10: 74 69 6f 6e 28 6d 6f 64 75 6c 65 2c 20 65 78 70 tion(module, exp
4f20: 6f 72 74 73 29 20 7b 0a 20 20 09 65 78 70 6f 72 orts) {. .expor
4f30: 74 73 2e 53 79 6e 74 61 78 20 3d 20 7b 0a 20 20 ts.Syntax = {.
4f40: 09 20 20 20 20 41 73 73 69 67 6e 6d 65 6e 74 45 . AssignmentE
4f50: 78 70 72 65 73 73 69 6f 6e 3a 20 27 41 73 73 69 xpression: 'Assi
4f60: 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e gnmentExpression
4f70: 27 2c 0a 20 20 09 20 20 20 20 41 73 73 69 67 6e ',. . Assign
4f80: 6d 65 6e 74 50 61 74 74 65 72 6e 3a 20 27 41 73 mentPattern: 'As
4f90: 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 72 6e 27 signmentPattern'
4fa0: 2c 0a 20 20 09 20 20 20 20 41 72 72 61 79 45 78 ,. . ArrayEx
4fb0: 70 72 65 73 73 69 6f 6e 3a 20 27 41 72 72 61 79 pression: 'Array
4fc0: 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a 20 20 09 Expression',. .
4fd0: 20 20 20 20 41 72 72 61 79 50 61 74 74 65 72 6e ArrayPattern
4fe0: 3a 20 27 41 72 72 61 79 50 61 74 74 65 72 6e 27 : 'ArrayPattern'
4ff0: 2c 0a 20 20 09 20 20 20 20 41 72 72 6f 77 46 75 ,. . ArrowFu
5000: 6e 63 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e nctionExpression
5010: 3a 20 27 41 72 72 6f 77 46 75 6e 63 74 69 6f 6e : 'ArrowFunction
5020: 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a 20 20 09 Expression',. .
5030: 20 20 20 20 42 6c 6f 63 6b 53 74 61 74 65 6d 65 BlockStateme
5040: 6e 74 3a 20 27 42 6c 6f 63 6b 53 74 61 74 65 6d nt: 'BlockStatem
5050: 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 42 69 6e ent',. . Bin
5060: 61 72 79 45 78 70 72 65 73 73 69 6f 6e 3a 20 27 aryExpression: '
5070: 42 69 6e 61 72 79 45 78 70 72 65 73 73 69 6f 6e BinaryExpression
5080: 27 2c 0a 20 20 09 20 20 20 20 42 72 65 61 6b 53 ',. . BreakS
5090: 74 61 74 65 6d 65 6e 74 3a 20 27 42 72 65 61 6b tatement: 'Break
50a0: 53 74 61 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 Statement',. .
50b0: 20 20 20 43 61 6c 6c 45 78 70 72 65 73 73 69 6f CallExpressio
50c0: 6e 3a 20 27 43 61 6c 6c 45 78 70 72 65 73 73 69 n: 'CallExpressi
50d0: 6f 6e 27 2c 0a 20 20 09 20 20 20 20 43 61 74 63 on',. . Catc
50e0: 68 43 6c 61 75 73 65 3a 20 27 43 61 74 63 68 43 hClause: 'CatchC
50f0: 6c 61 75 73 65 27 2c 0a 20 20 09 20 20 20 20 43 lause',. . C
5100: 6c 61 73 73 42 6f 64 79 3a 20 27 43 6c 61 73 73 lassBody: 'Class
5110: 42 6f 64 79 27 2c 0a 20 20 09 20 20 20 20 43 6c Body',. . Cl
5120: 61 73 73 44 65 63 6c 61 72 61 74 69 6f 6e 3a 20 assDeclaration:
5130: 27 43 6c 61 73 73 44 65 63 6c 61 72 61 74 69 6f 'ClassDeclaratio
5140: 6e 27 2c 0a 20 20 09 20 20 20 20 43 6c 61 73 73 n',. . Class
5150: 45 78 70 72 65 73 73 69 6f 6e 3a 20 27 43 6c 61 Expression: 'Cla
5160: 73 73 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a 20 ssExpression',.
5170: 20 09 20 20 20 20 43 6f 6e 64 69 74 69 6f 6e 61 . Conditiona
5180: 6c 45 78 70 72 65 73 73 69 6f 6e 3a 20 27 43 6f lExpression: 'Co
5190: 6e 64 69 74 69 6f 6e 61 6c 45 78 70 72 65 73 73 nditionalExpress
51a0: 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 43 6f 6e ion',. . Con
51b0: 74 69 6e 75 65 53 74 61 74 65 6d 65 6e 74 3a 20 tinueStatement:
51c0: 27 43 6f 6e 74 69 6e 75 65 53 74 61 74 65 6d 65 'ContinueStateme
51d0: 6e 74 27 2c 0a 20 20 09 20 20 20 20 44 6f 57 68 nt',. . DoWh
51e0: 69 6c 65 53 74 61 74 65 6d 65 6e 74 3a 20 27 44 ileStatement: 'D
51f0: 6f 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 27 oWhileStatement'
5200: 2c 0a 20 20 09 20 20 20 20 44 65 62 75 67 67 65 ,. . Debugge
5210: 72 53 74 61 74 65 6d 65 6e 74 3a 20 27 44 65 62 rStatement: 'Deb
5220: 75 67 67 65 72 53 74 61 74 65 6d 65 6e 74 27 2c uggerStatement',
5230: 0a 20 20 09 20 20 20 20 45 6d 70 74 79 53 74 61 . . EmptySta
5240: 74 65 6d 65 6e 74 3a 20 27 45 6d 70 74 79 53 74 tement: 'EmptySt
5250: 61 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 atement',. .
5260: 20 45 78 70 6f 72 74 41 6c 6c 44 65 63 6c 61 72 ExportAllDeclar
5270: 61 74 69 6f 6e 3a 20 27 45 78 70 6f 72 74 41 6c ation: 'ExportAl
5280: 6c 44 65 63 6c 61 72 61 74 69 6f 6e 27 2c 0a 20 lDeclaration',.
5290: 20 09 20 20 20 20 45 78 70 6f 72 74 44 65 66 61 . ExportDefa
52a0: 75 6c 74 44 65 63 6c 61 72 61 74 69 6f 6e 3a 20 ultDeclaration:
52b0: 27 45 78 70 6f 72 74 44 65 66 61 75 6c 74 44 65 'ExportDefaultDe
52c0: 63 6c 61 72 61 74 69 6f 6e 27 2c 0a 20 20 09 20 claration',. .
52d0: 20 20 20 45 78 70 6f 72 74 4e 61 6d 65 64 44 65 ExportNamedDe
52e0: 63 6c 61 72 61 74 69 6f 6e 3a 20 27 45 78 70 6f claration: 'Expo
52f0: 72 74 4e 61 6d 65 64 44 65 63 6c 61 72 61 74 69 rtNamedDeclarati
5300: 6f 6e 27 2c 0a 20 20 09 20 20 20 20 45 78 70 6f on',. . Expo
5310: 72 74 53 70 65 63 69 66 69 65 72 3a 20 27 45 78 rtSpecifier: 'Ex
5320: 70 6f 72 74 53 70 65 63 69 66 69 65 72 27 2c 0a portSpecifier',.
5330: 20 20 09 20 20 20 20 45 78 70 72 65 73 73 69 6f . Expressio
5340: 6e 53 74 61 74 65 6d 65 6e 74 3a 20 27 45 78 70 nStatement: 'Exp
5350: 72 65 73 73 69 6f 6e 53 74 61 74 65 6d 65 6e 74 ressionStatement
5360: 27 2c 0a 20 20 09 20 20 20 20 46 6f 72 53 74 61 ',. . ForSta
5370: 74 65 6d 65 6e 74 3a 20 27 46 6f 72 53 74 61 74 tement: 'ForStat
5380: 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 46 ement',. . F
5390: 6f 72 4f 66 53 74 61 74 65 6d 65 6e 74 3a 20 27 orOfStatement: '
53a0: 46 6f 72 4f 66 53 74 61 74 65 6d 65 6e 74 27 2c ForOfStatement',
53b0: 0a 20 20 09 20 20 20 20 46 6f 72 49 6e 53 74 61 . . ForInSta
53c0: 74 65 6d 65 6e 74 3a 20 27 46 6f 72 49 6e 53 74 tement: 'ForInSt
53d0: 61 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 atement',. .
53e0: 20 46 75 6e 63 74 69 6f 6e 44 65 63 6c 61 72 61 FunctionDeclara
53f0: 74 69 6f 6e 3a 20 27 46 75 6e 63 74 69 6f 6e 44 tion: 'FunctionD
5400: 65 63 6c 61 72 61 74 69 6f 6e 27 2c 0a 20 20 09 eclaration',. .
5410: 20 20 20 20 46 75 6e 63 74 69 6f 6e 45 78 70 72 FunctionExpr
5420: 65 73 73 69 6f 6e 3a 20 27 46 75 6e 63 74 69 6f ession: 'Functio
5430: 6e 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a 20 20 nExpression',.
5440: 09 20 20 20 20 49 64 65 6e 74 69 66 69 65 72 3a . Identifier:
5450: 20 27 49 64 65 6e 74 69 66 69 65 72 27 2c 0a 20 'Identifier',.
5460: 20 09 20 20 20 20 49 66 53 74 61 74 65 6d 65 6e . IfStatemen
5470: 74 3a 20 27 49 66 53 74 61 74 65 6d 65 6e 74 27 t: 'IfStatement'
5480: 2c 0a 20 20 09 20 20 20 20 49 6d 70 6f 72 74 44 ,. . ImportD
5490: 65 63 6c 61 72 61 74 69 6f 6e 3a 20 27 49 6d 70 eclaration: 'Imp
54a0: 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e 27 2c ortDeclaration',
54b0: 0a 20 20 09 20 20 20 20 49 6d 70 6f 72 74 44 65 . . ImportDe
54c0: 66 61 75 6c 74 53 70 65 63 69 66 69 65 72 3a 20 faultSpecifier:
54d0: 27 49 6d 70 6f 72 74 44 65 66 61 75 6c 74 53 70 'ImportDefaultSp
54e0: 65 63 69 66 69 65 72 27 2c 0a 20 20 09 20 20 20 ecifier',. .
54f0: 20 49 6d 70 6f 72 74 4e 61 6d 65 73 70 61 63 65 ImportNamespace
5500: 53 70 65 63 69 66 69 65 72 3a 20 27 49 6d 70 6f Specifier: 'Impo
5510: 72 74 4e 61 6d 65 73 70 61 63 65 53 70 65 63 69 rtNamespaceSpeci
5520: 66 69 65 72 27 2c 0a 20 20 09 20 20 20 20 49 6d fier',. . Im
5530: 70 6f 72 74 53 70 65 63 69 66 69 65 72 3a 20 27 portSpecifier: '
5540: 49 6d 70 6f 72 74 53 70 65 63 69 66 69 65 72 27 ImportSpecifier'
5550: 2c 0a 20 20 09 20 20 20 20 4c 69 74 65 72 61 6c ,. . Literal
5560: 3a 20 27 4c 69 74 65 72 61 6c 27 2c 0a 20 20 09 : 'Literal',. .
5570: 20 20 20 20 4c 61 62 65 6c 65 64 53 74 61 74 65 LabeledState
5580: 6d 65 6e 74 3a 20 27 4c 61 62 65 6c 65 64 53 74 ment: 'LabeledSt
5590: 61 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 atement',. .
55a0: 20 4c 6f 67 69 63 61 6c 45 78 70 72 65 73 73 69 LogicalExpressi
55b0: 6f 6e 3a 20 27 4c 6f 67 69 63 61 6c 45 78 70 72 on: 'LogicalExpr
55c0: 65 73 73 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 ession',. .
55d0: 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f 6e MemberExpression
55e0: 3a 20 27 4d 65 6d 62 65 72 45 78 70 72 65 73 73 : 'MemberExpress
55f0: 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 4d 65 74 ion',. . Met
5600: 61 50 72 6f 70 65 72 74 79 3a 20 27 4d 65 74 61 aProperty: 'Meta
5610: 50 72 6f 70 65 72 74 79 27 2c 0a 20 20 09 20 20 Property',. .
5620: 20 20 4d 65 74 68 6f 64 44 65 66 69 6e 69 74 69 MethodDefiniti
5630: 6f 6e 3a 20 27 4d 65 74 68 6f 64 44 65 66 69 6e on: 'MethodDefin
5640: 69 74 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 4e ition',. . N
5650: 65 77 45 78 70 72 65 73 73 69 6f 6e 3a 20 27 4e ewExpression: 'N
5660: 65 77 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a 20 ewExpression',.
5670: 20 09 20 20 20 20 4f 62 6a 65 63 74 45 78 70 72 . ObjectExpr
5680: 65 73 73 69 6f 6e 3a 20 27 4f 62 6a 65 63 74 45 ession: 'ObjectE
5690: 78 70 72 65 73 73 69 6f 6e 27 2c 0a 20 20 09 20 xpression',. .
56a0: 20 20 20 4f 62 6a 65 63 74 50 61 74 74 65 72 6e ObjectPattern
56b0: 3a 20 27 4f 62 6a 65 63 74 50 61 74 74 65 72 6e : 'ObjectPattern
56c0: 27 2c 0a 20 20 09 20 20 20 20 50 72 6f 67 72 61 ',. . Progra
56d0: 6d 3a 20 27 50 72 6f 67 72 61 6d 27 2c 0a 20 20 m: 'Program',.
56e0: 09 20 20 20 20 50 72 6f 70 65 72 74 79 3a 20 27 . Property: '
56f0: 50 72 6f 70 65 72 74 79 27 2c 0a 20 20 09 20 20 Property',. .
5700: 20 20 52 65 73 74 45 6c 65 6d 65 6e 74 3a 20 27 RestElement: '
5710: 52 65 73 74 45 6c 65 6d 65 6e 74 27 2c 0a 20 20 RestElement',.
5720: 09 20 20 20 20 52 65 74 75 72 6e 53 74 61 74 65 . ReturnState
5730: 6d 65 6e 74 3a 20 27 52 65 74 75 72 6e 53 74 61 ment: 'ReturnSta
5740: 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 tement',. .
5750: 53 65 71 75 65 6e 63 65 45 78 70 72 65 73 73 69 SequenceExpressi
5760: 6f 6e 3a 20 27 53 65 71 75 65 6e 63 65 45 78 70 on: 'SequenceExp
5770: 72 65 73 73 69 6f 6e 27 2c 0a 20 20 09 20 20 20 ression',. .
5780: 20 53 70 72 65 61 64 45 6c 65 6d 65 6e 74 3a 20 SpreadElement:
5790: 27 53 70 72 65 61 64 45 6c 65 6d 65 6e 74 27 2c 'SpreadElement',
57a0: 0a 20 20 09 20 20 20 20 53 75 70 65 72 3a 20 27 . . Super: '
57b0: 53 75 70 65 72 27 2c 0a 20 20 09 20 20 20 20 53 Super',. . S
57c0: 77 69 74 63 68 43 61 73 65 3a 20 27 53 77 69 74 witchCase: 'Swit
57d0: 63 68 43 61 73 65 27 2c 0a 20 20 09 20 20 20 20 chCase',. .
57e0: 53 77 69 74 63 68 53 74 61 74 65 6d 65 6e 74 3a SwitchStatement:
57f0: 20 27 53 77 69 74 63 68 53 74 61 74 65 6d 65 6e 'SwitchStatemen
5800: 74 27 2c 0a 20 20 09 20 20 20 20 54 61 67 67 65 t',. . Tagge
5810: 64 54 65 6d 70 6c 61 74 65 45 78 70 72 65 73 73 dTemplateExpress
5820: 69 6f 6e 3a 20 27 54 61 67 67 65 64 54 65 6d 70 ion: 'TaggedTemp
5830: 6c 61 74 65 45 78 70 72 65 73 73 69 6f 6e 27 2c lateExpression',
5840: 0a 20 20 09 20 20 20 20 54 65 6d 70 6c 61 74 65 . . Template
5850: 45 6c 65 6d 65 6e 74 3a 20 27 54 65 6d 70 6c 61 Element: 'Templa
5860: 74 65 45 6c 65 6d 65 6e 74 27 2c 0a 20 20 09 20 teElement',. .
5870: 20 20 20 54 65 6d 70 6c 61 74 65 4c 69 74 65 72 TemplateLiter
5880: 61 6c 3a 20 27 54 65 6d 70 6c 61 74 65 4c 69 74 al: 'TemplateLit
5890: 65 72 61 6c 27 2c 0a 20 20 09 20 20 20 20 54 68 eral',. . Th
58a0: 69 73 45 78 70 72 65 73 73 69 6f 6e 3a 20 27 54 isExpression: 'T
58b0: 68 69 73 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a hisExpression',.
58c0: 20 20 09 20 20 20 20 54 68 72 6f 77 53 74 61 74 . ThrowStat
58d0: 65 6d 65 6e 74 3a 20 27 54 68 72 6f 77 53 74 61 ement: 'ThrowSta
58e0: 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 tement',. .
58f0: 54 72 79 53 74 61 74 65 6d 65 6e 74 3a 20 27 54 TryStatement: 'T
5900: 72 79 53 74 61 74 65 6d 65 6e 74 27 2c 0a 20 20 ryStatement',.
5910: 09 20 20 20 20 55 6e 61 72 79 45 78 70 72 65 73 . UnaryExpres
5920: 73 69 6f 6e 3a 20 27 55 6e 61 72 79 45 78 70 72 sion: 'UnaryExpr
5930: 65 73 73 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 ession',. .
5940: 55 70 64 61 74 65 45 78 70 72 65 73 73 69 6f 6e UpdateExpression
5950: 3a 20 27 55 70 64 61 74 65 45 78 70 72 65 73 73 : 'UpdateExpress
5960: 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 56 61 72 ion',. . Var
5970: 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e iableDeclaration
5980: 3a 20 27 56 61 72 69 61 62 6c 65 44 65 63 6c 61 : 'VariableDecla
5990: 72 61 74 69 6f 6e 27 2c 0a 20 20 09 20 20 20 20 ration',. .
59a0: 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 VariableDeclarat
59b0: 6f 72 3a 20 27 56 61 72 69 61 62 6c 65 44 65 63 or: 'VariableDec
59c0: 6c 61 72 61 74 6f 72 27 2c 0a 20 20 09 20 20 20 larator',. .
59d0: 20 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 3a WhileStatement:
59e0: 20 27 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 'WhileStatement
59f0: 27 2c 0a 20 20 09 20 20 20 20 57 69 74 68 53 74 ',. . WithSt
5a00: 61 74 65 6d 65 6e 74 3a 20 27 57 69 74 68 53 74 atement: 'WithSt
5a10: 61 74 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 atement',. .
5a20: 20 59 69 65 6c 64 45 78 70 72 65 73 73 69 6f 6e YieldExpression
5a30: 3a 20 27 59 69 65 6c 64 45 78 70 72 65 73 73 69 : 'YieldExpressi
5a40: 6f 6e 27 0a 20 20 09 7d 3b 0a 0a 0a 20 20 2f 2a on'. .};... /*
5a50: 2a 2a 2f 20 7d 2c 0a 20 20 2f 2a 20 33 20 2a 2f **/ },. /* 3 */
5a60: 0a 20 20 2f 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f . /***/ functio
5a70: 6e 28 6d 6f 64 75 6c 65 2c 20 65 78 70 6f 72 74 n(module, export
5a80: 73 2c 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 s, __webpack_req
5a90: 75 69 72 65 5f 5f 29 20 7b 0a 20 20 09 76 61 72 uire__) {. .var
5aa0: 20 61 73 73 65 72 74 5f 31 20 3d 20 5f 5f 77 65 assert_1 = __we
5ab0: 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 bpack_require__(
5ac0: 34 29 3b 0a 20 20 09 76 61 72 20 6d 65 73 73 61 4);. .var messa
5ad0: 67 65 73 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 ges_1 = __webpac
5ae0: 6b 5f 72 65 71 75 69 72 65 5f 5f 28 35 29 3b 0a k_require__(5);.
5af0: 20 20 09 76 61 72 20 65 72 72 6f 72 5f 68 61 6e .var error_han
5b00: 64 6c 65 72 5f 31 20 3d 20 5f 5f 77 65 62 70 61 dler_1 = __webpa
5b10: 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 36 29 3b ck_require__(6);
5b20: 0a 20 20 09 76 61 72 20 74 6f 6b 65 6e 5f 31 20 . .var token_1
5b30: 3d 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 = __webpack_requ
5b40: 69 72 65 5f 5f 28 37 29 3b 0a 20 20 09 76 61 72 ire__(7);. .var
5b50: 20 73 63 61 6e 6e 65 72 5f 31 20 3d 20 5f 5f 77 scanner_1 = __w
5b60: 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f ebpack_require__
5b70: 28 38 29 3b 0a 20 20 09 76 61 72 20 73 79 6e 74 (8);. .var synt
5b80: 61 78 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b ax_1 = __webpack
5b90: 5f 72 65 71 75 69 72 65 5f 5f 28 32 29 3b 0a 20 _require__(2);.
5ba0: 20 09 76 61 72 20 4e 6f 64 65 20 3d 20 5f 5f 77 .var Node = __w
5bb0: 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f ebpack_require__
5bc0: 28 31 30 29 3b 0a 20 20 09 76 61 72 20 41 72 72 (10);. .var Arr
5bd0: 6f 77 50 61 72 61 6d 65 74 65 72 50 6c 61 63 65 owParameterPlace
5be0: 48 6f 6c 64 65 72 20 3d 20 27 41 72 72 6f 77 50 Holder = 'ArrowP
5bf0: 61 72 61 6d 65 74 65 72 50 6c 61 63 65 48 6f 6c arameterPlaceHol
5c00: 64 65 72 27 3b 0a 20 20 09 76 61 72 20 50 61 72 der';. .var Par
5c10: 73 65 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 ser = (function
5c20: 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 () {. . func
5c30: 74 69 6f 6e 20 50 61 72 73 65 72 28 63 6f 64 65 tion Parser(code
5c40: 2c 20 6f 70 74 69 6f 6e 73 2c 20 64 65 6c 65 67 , options, deleg
5c50: 61 74 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ate) {. .
5c60: 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 20 3d 3d if (options ==
5c70: 3d 20 76 6f 69 64 20 30 29 20 7b 20 6f 70 74 69 = void 0) { opti
5c80: 6f 6e 73 20 3d 20 7b 7d 3b 20 7d 0a 20 20 09 20 ons = {}; }. .
5c90: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 66 this.conf
5ca0: 69 67 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 ig = {. .
5cb0: 20 20 20 20 20 20 72 61 6e 67 65 3a 20 28 74 79 range: (ty
5cc0: 70 65 6f 66 20 6f 70 74 69 6f 6e 73 2e 72 61 6e peof options.ran
5cd0: 67 65 20 3d 3d 3d 20 27 62 6f 6f 6c 65 61 6e 27 ge === 'boolean'
5ce0: 29 20 26 26 20 6f 70 74 69 6f 6e 73 2e 72 61 6e ) && options.ran
5cf0: 67 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 ge,. .
5d00: 20 20 20 6c 6f 63 3a 20 28 74 79 70 65 6f 66 20 loc: (typeof
5d10: 6f 70 74 69 6f 6e 73 2e 6c 6f 63 20 3d 3d 3d 20 options.loc ===
5d20: 27 62 6f 6f 6c 65 61 6e 27 29 20 26 26 20 6f 70 'boolean') && op
5d30: 74 69 6f 6e 73 2e 6c 6f 63 2c 0a 20 20 09 20 20 tions.loc,. .
5d40: 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 source
5d50: 3a 20 6e 75 6c 6c 2c 0a 20 20 09 20 20 20 20 20 : null,. .
5d60: 20 20 20 20 20 20 20 74 6f 6b 65 6e 73 3a 20 28 tokens: (
5d70: 74 79 70 65 6f 66 20 6f 70 74 69 6f 6e 73 2e 74 typeof options.t
5d80: 6f 6b 65 6e 73 20 3d 3d 3d 20 27 62 6f 6f 6c 65 okens === 'boole
5d90: 61 6e 27 29 20 26 26 20 6f 70 74 69 6f 6e 73 2e an') && options.
5da0: 74 6f 6b 65 6e 73 2c 0a 20 20 09 20 20 20 20 20 tokens,. .
5db0: 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 3a 20 comment:
5dc0: 28 74 79 70 65 6f 66 20 6f 70 74 69 6f 6e 73 2e (typeof options.
5dd0: 63 6f 6d 6d 65 6e 74 20 3d 3d 3d 20 27 62 6f 6f comment === 'boo
5de0: 6c 65 61 6e 27 29 20 26 26 20 6f 70 74 69 6f 6e lean') && option
5df0: 73 2e 63 6f 6d 6d 65 6e 74 2c 0a 20 20 09 20 20 s.comment,. .
5e00: 20 20 20 20 20 20 20 20 20 20 74 6f 6c 65 72 61 tolera
5e10: 6e 74 3a 20 28 74 79 70 65 6f 66 20 6f 70 74 69 nt: (typeof opti
5e20: 6f 6e 73 2e 74 6f 6c 65 72 61 6e 74 20 3d 3d 3d ons.tolerant ===
5e30: 20 27 62 6f 6f 6c 65 61 6e 27 29 20 26 26 20 6f 'boolean') && o
5e40: 70 74 69 6f 6e 73 2e 74 6f 6c 65 72 61 6e 74 0a ptions.tolerant.
5e50: 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 . };.
5e60: 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
5e70: 73 2e 63 6f 6e 66 69 67 2e 6c 6f 63 20 26 26 20 s.config.loc &&
5e80: 6f 70 74 69 6f 6e 73 2e 73 6f 75 72 63 65 20 26 options.source &
5e90: 26 20 6f 70 74 69 6f 6e 73 2e 73 6f 75 72 63 65 & options.source
5ea0: 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 09 !== null) {. .
5eb0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
5ec0: 2e 63 6f 6e 66 69 67 2e 73 6f 75 72 63 65 20 3d .config.source =
5ed0: 20 53 74 72 69 6e 67 28 6f 70 74 69 6f 6e 73 2e String(options.
5ee0: 73 6f 75 72 63 65 29 3b 0a 20 20 09 20 20 20 20 source);. .
5ef0: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
5f00: 20 74 68 69 73 2e 64 65 6c 65 67 61 74 65 20 3d this.delegate =
5f10: 20 64 65 6c 65 67 61 74 65 3b 0a 20 20 09 20 20 delegate;. .
5f20: 20 20 20 20 20 20 74 68 69 73 2e 65 72 72 6f 72 this.error
5f30: 48 61 6e 64 6c 65 72 20 3d 20 6e 65 77 20 65 72 Handler = new er
5f40: 72 6f 72 5f 68 61 6e 64 6c 65 72 5f 31 2e 45 72 ror_handler_1.Er
5f50: 72 6f 72 48 61 6e 64 6c 65 72 28 29 3b 0a 20 20 rorHandler();.
5f60: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 72 . this.er
5f70: 72 6f 72 48 61 6e 64 6c 65 72 2e 74 6f 6c 65 72 rorHandler.toler
5f80: 61 6e 74 20 3d 20 74 68 69 73 2e 63 6f 6e 66 69 ant = this.confi
5f90: 67 2e 74 6f 6c 65 72 61 6e 74 3b 0a 20 20 09 20 g.tolerant;. .
5fa0: 20 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 6e this.scan
5fb0: 6e 65 72 20 3d 20 6e 65 77 20 73 63 61 6e 6e 65 ner = new scanne
5fc0: 72 5f 31 2e 53 63 61 6e 6e 65 72 28 63 6f 64 65 r_1.Scanner(code
5fd0: 2c 20 74 68 69 73 2e 65 72 72 6f 72 48 61 6e 64 , this.errorHand
5fe0: 6c 65 72 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ler);. .
5ff0: 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 74 72 this.scanner.tr
6000: 61 63 6b 43 6f 6d 6d 65 6e 74 20 3d 20 74 68 69 ackComment = thi
6010: 73 2e 63 6f 6e 66 69 67 2e 63 6f 6d 6d 65 6e 74 s.config.comment
6020: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
6030: 73 2e 6f 70 65 72 61 74 6f 72 50 72 65 63 65 64 s.operatorPreced
6040: 65 6e 63 65 20 3d 20 7b 0a 20 20 09 20 20 20 20 ence = {. .
6050: 20 20 20 20 20 20 20 20 27 29 27 3a 20 30 2c 0a ')': 0,.
6060: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 27 . '
6070: 3b 27 3a 20 30 2c 0a 20 20 09 20 20 20 20 20 20 ;': 0,. .
6080: 20 20 20 20 20 20 27 2c 27 3a 20 30 2c 0a 20 20 ',': 0,.
6090: 09 20 20 20 20 20 20 20 20 20 20 20 20 27 3d 27 . '='
60a0: 3a 20 30 2c 0a 20 20 09 20 20 20 20 20 20 20 20 : 0,. .
60b0: 20 20 20 20 27 5d 27 3a 20 30 2c 0a 20 20 09 20 ']': 0,. .
60c0: 20 20 20 20 20 20 20 20 20 20 20 27 7c 7c 27 3a '||':
60d0: 20 31 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 1,. .
60e0: 20 20 20 27 26 26 27 3a 20 32 2c 0a 20 20 09 20 '&&': 2,. .
60f0: 20 20 20 20 20 20 20 20 20 20 20 27 7c 27 3a 20 '|':
6100: 33 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 3,. .
6110: 20 20 27 5e 27 3a 20 34 2c 0a 20 20 09 20 20 20 '^': 4,. .
6120: 20 20 20 20 20 20 20 20 20 27 26 27 3a 20 35 2c '&': 5,
6130: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
6140: 27 3d 3d 27 3a 20 36 2c 0a 20 20 09 20 20 20 20 '==': 6,. .
6150: 20 20 20 20 20 20 20 20 27 21 3d 27 3a 20 36 2c '!=': 6,
6160: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
6170: 27 3d 3d 3d 27 3a 20 36 2c 0a 20 20 09 20 20 20 '===': 6,. .
6180: 20 20 20 20 20 20 20 20 20 27 21 3d 3d 27 3a 20 '!==':
6190: 36 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 6,. .
61a0: 20 20 27 3c 27 3a 20 37 2c 0a 20 20 09 20 20 20 '<': 7,. .
61b0: 20 20 20 20 20 20 20 20 20 27 3e 27 3a 20 37 2c '>': 7,
61c0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
61d0: 27 3c 3d 27 3a 20 37 2c 0a 20 20 09 20 20 20 20 '<=': 7,. .
61e0: 20 20 20 20 20 20 20 20 27 3e 3d 27 3a 20 37 2c '>=': 7,
61f0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
6200: 27 3c 3c 27 3a 20 38 2c 0a 20 20 09 20 20 20 20 '<<': 8,. .
6210: 20 20 20 20 20 20 20 20 27 3e 3e 27 3a 20 38 2c '>>': 8,
6220: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
6230: 27 3e 3e 3e 27 3a 20 38 2c 0a 20 20 09 20 20 20 '>>>': 8,. .
6240: 20 20 20 20 20 20 20 20 20 27 2b 27 3a 20 39 2c '+': 9,
6250: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
6260: 27 2d 27 3a 20 39 2c 0a 20 20 09 20 20 20 20 20 '-': 9,. .
6270: 20 20 20 20 20 20 20 27 2a 27 3a 20 31 31 2c 0a '*': 11,.
6280: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 27 . '
6290: 2f 27 3a 20 31 31 2c 0a 20 20 09 20 20 20 20 20 /': 11,. .
62a0: 20 20 20 20 20 20 20 27 25 27 3a 20 31 31 0a 20 '%': 11.
62b0: 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 . };. .
62c0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 6f 75 this.sou
62d0: 72 63 65 54 79 70 65 20 3d 20 28 6f 70 74 69 6f rceType = (optio
62e0: 6e 73 20 26 26 20 6f 70 74 69 6f 6e 73 2e 73 6f ns && options.so
62f0: 75 72 63 65 54 79 70 65 20 3d 3d 3d 20 27 6d 6f urceType === 'mo
6300: 64 75 6c 65 27 29 20 3f 20 27 6d 6f 64 75 6c 65 dule') ? 'module
6310: 27 20 3a 20 27 73 63 72 69 70 74 27 3b 0a 20 20 ' : 'script';.
6320: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f . this.lo
6330: 6f 6b 61 68 65 61 64 20 3d 20 6e 75 6c 6c 3b 0a okahead = null;.
6340: 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
6350: 68 61 73 4c 69 6e 65 54 65 72 6d 69 6e 61 74 6f hasLineTerminato
6360: 72 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 r = false;. .
6370: 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 this.conte
6380: 78 74 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 xt = {. .
6390: 20 20 20 20 20 20 61 6c 6c 6f 77 49 6e 3a 20 74 allowIn: t
63a0: 72 75 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 rue,. .
63b0: 20 20 20 20 61 6c 6c 6f 77 59 69 65 6c 64 3a 20 allowYield:
63c0: 74 72 75 65 2c 0a 20 20 09 20 20 20 20 20 20 20 true,. .
63d0: 20 20 20 20 20 66 69 72 73 74 43 6f 76 65 72 49 firstCoverI
63e0: 6e 69 74 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 nitializedNameEr
63f0: 72 6f 72 3a 20 6e 75 6c 6c 2c 0a 20 20 09 20 20 ror: null,. .
6400: 20 20 20 20 20 20 20 20 20 20 69 73 41 73 73 69 isAssi
6410: 67 6e 6d 65 6e 74 54 61 72 67 65 74 3a 20 66 61 gnmentTarget: fa
6420: 6c 73 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 lse,. .
6430: 20 20 20 20 69 73 42 69 6e 64 69 6e 67 45 6c 65 isBindingEle
6440: 6d 65 6e 74 3a 20 66 61 6c 73 65 2c 0a 20 20 09 ment: false,. .
6450: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 46 75 inFu
6460: 6e 63 74 69 6f 6e 42 6f 64 79 3a 20 66 61 6c 73 nctionBody: fals
6470: 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e,. .
6480: 20 20 69 6e 49 74 65 72 61 74 69 6f 6e 3a 20 66 inIteration: f
6490: 61 6c 73 65 2c 0a 20 20 09 20 20 20 20 20 20 20 alse,. .
64a0: 20 20 20 20 20 69 6e 53 77 69 74 63 68 3a 20 66 inSwitch: f
64b0: 61 6c 73 65 2c 0a 20 20 09 20 20 20 20 20 20 20 alse,. .
64c0: 20 20 20 20 20 6c 61 62 65 6c 53 65 74 3a 20 7b labelSet: {
64d0: 7d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 },. .
64e0: 20 20 73 74 72 69 63 74 3a 20 28 74 68 69 73 2e strict: (this.
64f0: 73 6f 75 72 63 65 54 79 70 65 20 3d 3d 3d 20 27 sourceType === '
6500: 6d 6f 64 75 6c 65 27 29 0a 20 20 09 20 20 20 20 module'). .
6510: 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 };. .
6520: 20 20 74 68 69 73 2e 74 6f 6b 65 6e 73 20 3d 20 this.tokens =
6530: 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 [];. . t
6540: 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 20 his.startMarker
6550: 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 = {. .
6560: 20 20 20 69 6e 64 65 78 3a 20 30 2c 0a 20 20 09 index: 0,. .
6570: 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
6580: 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e 73 63 61 Number: this.sca
6590: 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c nner.lineNumber,
65a0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
65b0: 6c 69 6e 65 53 74 61 72 74 3a 20 30 0a 20 20 09 lineStart: 0. .
65c0: 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 };. .
65d0: 20 20 20 20 20 20 74 68 69 73 2e 6c 61 73 74 4d this.lastM
65e0: 61 72 6b 65 72 20 3d 20 7b 0a 20 20 09 20 20 20 arker = {. .
65f0: 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 3a 20 index:
6600: 30 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 0,. .
6610: 20 20 6c 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 lineNumber: th
6620: 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e is.scanner.lineN
6630: 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 umber,. .
6640: 20 20 20 20 20 20 6c 69 6e 65 53 74 61 72 74 3a lineStart:
6650: 20 30 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0. . };
6660: 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
6670: 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 .nextToken();.
6680: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 . this.la
6690: 73 74 4d 61 72 6b 65 72 20 3d 20 7b 0a 20 20 09 stMarker = {. .
66a0: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 inde
66b0: 78 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e x: this.scanner.
66c0: 69 6e 64 65 78 2c 0a 20 20 09 20 20 20 20 20 20 index,. .
66d0: 20 20 20 20 20 20 6c 69 6e 65 4e 75 6d 62 65 72 lineNumber
66e0: 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c : this.scanner.l
66f0: 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 ineNumber,. .
6700: 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 lineSt
6710: 61 72 74 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 art: this.scanne
6720: 72 2e 6c 69 6e 65 53 74 61 72 74 0a 20 20 09 20 r.lineStart. .
6730: 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
6740: 20 7d 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 }. . Parser
6750: 2e 70 72 6f 74 6f 74 79 70 65 2e 74 68 72 6f 77 .prototype.throw
6760: 45 72 72 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e Error = function
6770: 20 28 6d 65 73 73 61 67 65 46 6f 72 6d 61 74 29 (messageFormat)
6780: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
6790: 72 20 61 72 67 75 6d 65 6e 74 73 24 31 20 3d 20 r arguments$1 =
67a0: 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 20 20 09 20 arguments;.. .
67b0: 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 var value
67c0: 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 s = [];. .
67d0: 20 20 20 66 6f 72 20 28 76 61 72 20 5f 69 20 3d for (var _i =
67e0: 20 31 3b 20 5f 69 20 3c 20 61 72 67 75 6d 65 6e 1; _i < argumen
67f0: 74 73 2e 6c 65 6e 67 74 68 3b 20 5f 69 2b 2b 29 ts.length; _i++)
6800: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
6810: 20 20 76 61 6c 75 65 73 5b 5f 69 20 2d 20 31 5d values[_i - 1]
6820: 20 3d 20 61 72 67 75 6d 65 6e 74 73 24 31 5b 5f = arguments$1[_
6830: 69 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d i];. . }
6840: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
6850: 61 72 67 73 20 3d 20 41 72 72 61 79 2e 70 72 6f args = Array.pro
6860: 74 6f 74 79 70 65 2e 73 6c 69 63 65 2e 63 61 6c totype.slice.cal
6870: 6c 28 61 72 67 75 6d 65 6e 74 73 2c 20 31 29 3b l(arguments, 1);
6880: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
6890: 6d 73 67 20 3d 20 6d 65 73 73 61 67 65 46 6f 72 msg = messageFor
68a0: 6d 61 74 2e 72 65 70 6c 61 63 65 28 2f 25 28 5c mat.replace(/%(\
68b0: 64 29 2f 67 2c 20 66 75 6e 63 74 69 6f 6e 20 28 d)/g, function (
68c0: 77 68 6f 6c 65 2c 20 69 64 78 29 20 7b 0a 20 20 whole, idx) {.
68d0: 09 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 . ass
68e0: 65 72 74 5f 31 2e 61 73 73 65 72 74 28 69 64 78 ert_1.assert(idx
68f0: 20 3c 20 61 72 67 73 2e 6c 65 6e 67 74 68 2c 20 < args.length,
6900: 27 4d 65 73 73 61 67 65 20 72 65 66 65 72 65 6e 'Message referen
6910: 63 65 20 6d 75 73 74 20 62 65 20 69 6e 20 72 61 ce must be in ra
6920: 6e 67 65 27 29 3b 0a 20 20 09 20 20 20 20 20 20 nge');. .
6930: 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 72 67 return arg
6940: 73 5b 69 64 78 5d 3b 0a 20 20 09 20 20 20 20 20 s[idx];. .
6950: 20 20 20 7d 29 3b 0a 20 20 09 20 20 20 20 20 20 });. .
6960: 20 20 76 61 72 20 69 6e 64 65 78 20 3d 20 74 68 var index = th
6970: 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e 69 6e is.lastMarker.in
6980: 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 dex;. .
6990: 76 61 72 20 6c 69 6e 65 20 3d 20 74 68 69 73 2e var line = this.
69a0: 6c 61 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e lastMarker.lineN
69b0: 75 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 20 20 umber;. .
69c0: 20 20 76 61 72 20 63 6f 6c 75 6d 6e 20 3d 20 74 var column = t
69d0: 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e 69 his.lastMarker.i
69e0: 6e 64 65 78 20 2d 20 74 68 69 73 2e 6c 61 73 74 ndex - this.last
69f0: 4d 61 72 6b 65 72 2e 6c 69 6e 65 53 74 61 72 74 Marker.lineStart
6a00: 20 2b 20 31 3b 0a 20 20 09 20 20 20 20 20 20 20 + 1;. .
6a10: 20 74 68 72 6f 77 20 74 68 69 73 2e 65 72 72 6f throw this.erro
6a20: 72 48 61 6e 64 6c 65 72 2e 63 72 65 61 74 65 45 rHandler.createE
6a30: 72 72 6f 72 28 69 6e 64 65 78 2c 20 6c 69 6e 65 rror(index, line
6a40: 2c 20 63 6f 6c 75 6d 6e 2c 20 6d 73 67 29 3b 0a , column, msg);.
6a50: 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
6a60: 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
6a70: 65 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f 72 20 e.tolerateError
6a80: 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6d 65 73 73 = function (mess
6a90: 61 67 65 46 6f 72 6d 61 74 29 20 7b 0a 20 20 09 ageFormat) {. .
6aa0: 20 20 20 20 20 20 20 20 76 61 72 20 61 72 67 75 var argu
6ab0: 6d 65 6e 74 73 24 31 20 3d 20 61 72 67 75 6d 65 ments$1 = argume
6ac0: 6e 74 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 nts;.. .
6ad0: 20 76 61 72 20 76 61 6c 75 65 73 20 3d 20 5b 5d var values = []
6ae0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 66 6f 72 ;. . for
6af0: 20 28 76 61 72 20 5f 69 20 3d 20 31 3b 20 5f 69 (var _i = 1; _i
6b00: 20 3c 20 61 72 67 75 6d 65 6e 74 73 2e 6c 65 6e < arguments.len
6b10: 67 74 68 3b 20 5f 69 2b 2b 29 20 7b 0a 20 20 09 gth; _i++) {. .
6b20: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
6b30: 65 73 5b 5f 69 20 2d 20 31 5d 20 3d 20 61 72 67 es[_i - 1] = arg
6b40: 75 6d 65 6e 74 73 24 31 5b 5f 69 5d 3b 0a 20 20 uments$1[_i];.
6b50: 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
6b60: 20 20 20 20 20 20 76 61 72 20 61 72 67 73 20 3d var args =
6b70: 20 41 72 72 61 79 2e 70 72 6f 74 6f 74 79 70 65 Array.prototype
6b80: 2e 73 6c 69 63 65 2e 63 61 6c 6c 28 61 72 67 75 .slice.call(argu
6b90: 6d 65 6e 74 73 2c 20 31 29 3b 0a 20 20 09 20 20 ments, 1);. .
6ba0: 20 20 20 20 20 20 76 61 72 20 6d 73 67 20 3d 20 var msg =
6bb0: 6d 65 73 73 61 67 65 46 6f 72 6d 61 74 2e 72 65 messageFormat.re
6bc0: 70 6c 61 63 65 28 2f 25 28 5c 64 29 2f 67 2c 20 place(/%(\d)/g,
6bd0: 66 75 6e 63 74 69 6f 6e 20 28 77 68 6f 6c 65 2c function (whole,
6be0: 20 69 64 78 29 20 7b 0a 20 20 09 20 20 20 20 20 idx) {. .
6bf0: 20 20 20 20 20 20 20 61 73 73 65 72 74 5f 31 2e assert_1.
6c00: 61 73 73 65 72 74 28 69 64 78 20 3c 20 61 72 67 assert(idx < arg
6c10: 73 2e 6c 65 6e 67 74 68 2c 20 27 4d 65 73 73 61 s.length, 'Messa
6c20: 67 65 20 72 65 66 65 72 65 6e 63 65 20 6d 75 73 ge reference mus
6c30: 74 20 62 65 20 69 6e 20 72 61 6e 67 65 27 29 3b t be in range');
6c40: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
6c50: 72 65 74 75 72 6e 20 61 72 67 73 5b 69 64 78 5d return args[idx]
6c60: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 29 3b ;. . });
6c70: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
6c80: 69 6e 64 65 78 20 3d 20 74 68 69 73 2e 6c 61 73 index = this.las
6c90: 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 3b 0a 20 tMarker.index;.
6ca0: 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 . var li
6cb0: 6e 65 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 ne = this.scanne
6cc0: 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 20 r.lineNumber;.
6cd0: 09 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 6c . var col
6ce0: 75 6d 6e 20 3d 20 74 68 69 73 2e 6c 61 73 74 4d umn = this.lastM
6cf0: 61 72 6b 65 72 2e 69 6e 64 65 78 20 2d 20 74 68 arker.index - th
6d00: 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e 6c 69 is.lastMarker.li
6d10: 6e 65 53 74 61 72 74 20 2b 20 31 3b 0a 20 20 09 neStart + 1;. .
6d20: 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 72 72 this.err
6d30: 6f 72 48 61 6e 64 6c 65 72 2e 74 6f 6c 65 72 61 orHandler.tolera
6d40: 74 65 45 72 72 6f 72 28 69 6e 64 65 78 2c 20 6c teError(index, l
6d50: 69 6e 65 2c 20 63 6f 6c 75 6d 6e 2c 20 6d 73 67 ine, column, msg
6d60: 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
6d70: 20 20 20 20 2f 2f 20 54 68 72 6f 77 20 61 6e 20 // Throw an
6d80: 65 78 63 65 70 74 69 6f 6e 20 62 65 63 61 75 73 exception becaus
6d90: 65 20 6f 66 20 74 68 65 20 74 6f 6b 65 6e 2e 0a e of the token..
6da0: 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
6db0: 6f 74 6f 74 79 70 65 2e 75 6e 65 78 70 65 63 74 ototype.unexpect
6dc0: 65 64 54 6f 6b 65 6e 45 72 72 6f 72 20 3d 20 66 edTokenError = f
6dd0: 75 6e 63 74 69 6f 6e 20 28 74 6f 6b 65 6e 2c 20 unction (token,
6de0: 6d 65 73 73 61 67 65 29 20 7b 0a 20 20 09 20 20 message) {. .
6df0: 20 20 20 20 20 20 76 61 72 20 6d 73 67 20 3d 20 var msg =
6e00: 6d 65 73 73 61 67 65 20 7c 7c 20 6d 65 73 73 61 message || messa
6e10: 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 ges_1.Messages.U
6e20: 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 3b 0a nexpectedToken;.
6e30: 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 76 . var v
6e40: 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alue;. .
6e50: 20 69 66 20 28 74 6f 6b 65 6e 29 20 7b 0a 20 20 if (token) {.
6e60: 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
6e70: 28 21 6d 65 73 73 61 67 65 29 20 7b 0a 20 20 09 (!message) {. .
6e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6e90: 6d 73 67 20 3d 20 28 74 6f 6b 65 6e 2e 74 79 70 msg = (token.typ
6ea0: 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f e === token_1.To
6eb0: 6b 65 6e 2e 45 4f 46 29 20 3f 20 6d 65 73 73 61 ken.EOF) ? messa
6ec0: 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 ges_1.Messages.U
6ed0: 6e 65 78 70 65 63 74 65 64 45 4f 53 20 3a 0a 20 nexpectedEOS :.
6ee0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
6ef0: 20 20 20 20 20 20 28 74 6f 6b 65 6e 2e 74 79 70 (token.typ
6f00: 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f e === token_1.To
6f10: 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 29 20 ken.Identifier)
6f20: 3f 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 ? messages_1.Mes
6f30: 73 61 67 65 73 2e 55 6e 65 78 70 65 63 74 65 64 sages.Unexpected
6f40: 49 64 65 6e 74 69 66 69 65 72 20 3a 0a 20 20 09 Identifier :. .
6f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6f60: 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 2e 74 (token.t
6f70: 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e ype === token_1.
6f80: 54 6f 6b 65 6e 2e 4e 75 6d 65 72 69 63 4c 69 74 Token.NumericLit
6f90: 65 72 61 6c 29 20 3f 20 6d 65 73 73 61 67 65 73 eral) ? messages
6fa0: 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 6e 65 78 _1.Messages.Unex
6fb0: 70 65 63 74 65 64 4e 75 6d 62 65 72 20 3a 0a 20 pectedNumber :.
6fc0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
6fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 (t
6fe0: 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f oken.type === to
6ff0: 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 53 74 72 69 ken_1.Token.Stri
7000: 6e 67 4c 69 74 65 72 61 6c 29 20 3f 20 6d 65 73 ngLiteral) ? mes
7010: 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 sages_1.Messages
7020: 2e 55 6e 65 78 70 65 63 74 65 64 53 74 72 69 6e .UnexpectedStrin
7030: 67 20 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 g :. .
7040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7050: 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 2e 74 79 (token.ty
7060: 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 pe === token_1.T
7070: 6f 6b 65 6e 2e 54 65 6d 70 6c 61 74 65 29 20 3f oken.Template) ?
7080: 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 messages_1.Mess
7090: 61 67 65 73 2e 55 6e 65 78 70 65 63 74 65 64 54 ages.UnexpectedT
70a0: 65 6d 70 6c 61 74 65 20 3a 0a 20 20 09 20 20 20 emplate :. .
70b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
70c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
70d0: 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 messages_1.Mess
70e0: 61 67 65 73 2e 55 6e 65 78 70 65 63 74 65 64 54 ages.UnexpectedT
70f0: 6f 6b 65 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 oken;. .
7100: 20 20 20 20 20 20 20 20 20 69 66 20 28 74 6f 6b if (tok
7110: 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 en.type === toke
7120: 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 6f 72 n_1.Token.Keywor
7130: 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 d) {. .
7140: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
7150: 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 73 46 this.scanner.isF
7160: 75 74 75 72 65 52 65 73 65 72 76 65 64 57 6f 72 utureReservedWor
7170: 64 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 29 29 20 d(token.value))
7180: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
7190: 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 msg
71a0: 20 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 = messages_1.Me
71b0: 73 73 61 67 65 73 2e 55 6e 65 78 70 65 63 74 65 ssages.Unexpecte
71c0: 64 52 65 73 65 72 76 65 64 3b 0a 20 20 09 20 20 dReserved;. .
71d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
71e0: 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
71f0: 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 else
7200: 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 if (this.context
7210: 2e 73 74 72 69 63 74 20 26 26 20 74 68 69 73 2e .strict && this.
7220: 73 63 61 6e 6e 65 72 2e 69 73 53 74 72 69 63 74 scanner.isStrict
7230: 4d 6f 64 65 52 65 73 65 72 76 65 64 57 6f 72 64 ModeReservedWord
7240: 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 29 29 20 7b (token.value)) {
7250: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
7260: 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 20 msg
7270: 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 = messages_1.Mes
7280: 73 61 67 65 73 2e 53 74 72 69 63 74 52 65 73 65 sages.StrictRese
7290: 72 76 65 64 57 6f 72 64 3b 0a 20 20 09 20 20 20 rvedWord;. .
72a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
72b0: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
72c0: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
72d0: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
72e0: 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 value =
72f0: 28 74 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 (token.type ===
7300: 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 54 65 token_1.Token.Te
7310: 6d 70 6c 61 74 65 29 20 3f 20 74 6f 6b 65 6e 2e mplate) ? token.
7320: 76 61 6c 75 65 2e 72 61 77 20 3a 20 74 6f 6b 65 value.raw : toke
7330: 6e 2e 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 n.value;. .
7340: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
7350: 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
7360: 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 27 value = '
7370: 49 4c 4c 45 47 41 4c 27 3b 0a 20 20 09 20 20 20 ILLEGAL';. .
7380: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
7390: 20 20 6d 73 67 20 3d 20 6d 73 67 2e 72 65 70 6c msg = msg.repl
73a0: 61 63 65 28 27 25 30 27 2c 20 76 61 6c 75 65 29 ace('%0', value)
73b0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
73c0: 28 74 6f 6b 65 6e 20 26 26 20 74 79 70 65 6f 66 (token && typeof
73d0: 20 74 6f 6b 65 6e 2e 6c 69 6e 65 4e 75 6d 62 65 token.lineNumbe
73e0: 72 20 3d 3d 3d 20 27 6e 75 6d 62 65 72 27 29 20 r === 'number')
73f0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
7400: 20 76 61 72 20 69 6e 64 65 78 20 3d 20 74 6f 6b var index = tok
7410: 65 6e 2e 73 74 61 72 74 3b 0a 20 20 09 20 20 20 en.start;. .
7420: 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e var lin
7430: 65 20 3d 20 74 6f 6b 65 6e 2e 6c 69 6e 65 4e 75 e = token.lineNu
7440: 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 mber;. .
7450: 20 20 20 20 20 76 61 72 20 63 6f 6c 75 6d 6e 20 var column
7460: 3d 20 74 6f 6b 65 6e 2e 73 74 61 72 74 20 2d 20 = token.start -
7470: 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e this.lastMarker.
7480: 6c 69 6e 65 53 74 61 72 74 20 2b 20 31 3b 0a 20 lineStart + 1;.
7490: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 72 65 . re
74a0: 74 75 72 6e 20 74 68 69 73 2e 65 72 72 6f 72 48 turn this.errorH
74b0: 61 6e 64 6c 65 72 2e 63 72 65 61 74 65 45 72 72 andler.createErr
74c0: 6f 72 28 69 6e 64 65 78 2c 20 6c 69 6e 65 2c 20 or(index, line,
74d0: 63 6f 6c 75 6d 6e 2c 20 6d 73 67 29 3b 0a 20 20 column, msg);.
74e0: 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
74f0: 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 else {. .
7500: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
7510: 69 6e 64 65 78 20 3d 20 74 68 69 73 2e 6c 61 73 index = this.las
7520: 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 3b 0a 20 tMarker.index;.
7530: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
7540: 72 20 6c 69 6e 65 20 3d 20 74 68 69 73 2e 6c 61 r line = this.la
7550: 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d stMarker.lineNum
7560: 62 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ber;. .
7570: 20 20 20 20 76 61 72 20 63 6f 6c 75 6d 6e 20 3d var column =
7580: 20 69 6e 64 65 78 20 2d 20 74 68 69 73 2e 6c 61 index - this.la
7590: 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 53 74 61 stMarker.lineSta
75a0: 72 74 20 2b 20 31 3b 0a 20 20 09 20 20 20 20 20 rt + 1;. .
75b0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 return th
75c0: 69 73 2e 65 72 72 6f 72 48 61 6e 64 6c 65 72 2e is.errorHandler.
75d0: 63 72 65 61 74 65 45 72 72 6f 72 28 69 6e 64 65 createError(inde
75e0: 78 2c 20 6c 69 6e 65 2c 20 63 6f 6c 75 6d 6e 2c x, line, column,
75f0: 20 6d 73 67 29 3b 0a 20 20 09 20 20 20 20 20 20 msg);. .
7600: 20 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 }. . };.
7610: 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
7620: 6f 74 79 70 65 2e 74 68 72 6f 77 55 6e 65 78 70 otype.throwUnexp
7630: 65 63 74 65 64 54 6f 6b 65 6e 20 3d 20 66 75 6e ectedToken = fun
7640: 63 74 69 6f 6e 20 28 74 6f 6b 65 6e 2c 20 6d 65 ction (token, me
7650: 73 73 61 67 65 29 20 7b 0a 20 20 09 20 20 20 20 ssage) {. .
7660: 20 20 20 20 74 68 72 6f 77 20 74 68 69 73 2e 75 throw this.u
7670: 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 45 72 nexpectedTokenEr
7680: 72 6f 72 28 74 6f 6b 65 6e 2c 20 6d 65 73 73 61 ror(token, messa
7690: 67 65 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 ge);. . };.
76a0: 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f . Parser.pro
76b0: 74 6f 74 79 70 65 2e 74 6f 6c 65 72 61 74 65 55 totype.tolerateU
76c0: 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 20 3d nexpectedToken =
76d0: 20 66 75 6e 63 74 69 6f 6e 20 28 74 6f 6b 65 6e function (token
76e0: 2c 20 6d 65 73 73 61 67 65 29 20 7b 0a 20 20 09 , message) {. .
76f0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 72 72 this.err
7700: 6f 72 48 61 6e 64 6c 65 72 2e 74 6f 6c 65 72 61 orHandler.tolera
7710: 74 65 28 74 68 69 73 2e 75 6e 65 78 70 65 63 74 te(this.unexpect
7720: 65 64 54 6f 6b 65 6e 45 72 72 6f 72 28 74 6f 6b edTokenError(tok
7730: 65 6e 2c 20 6d 65 73 73 61 67 65 29 29 3b 0a 20 en, message));.
7740: 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
7750: 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
7760: 2e 63 6f 6c 6c 65 63 74 43 6f 6d 6d 65 6e 74 73 .collectComments
7770: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
7780: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
7790: 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a this$1 = this;..
77a0: 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 21 . if (!
77b0: 74 68 69 73 2e 63 6f 6e 66 69 67 2e 63 6f 6d 6d this.config.comm
77c0: 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ent) {. .
77d0: 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 6e 6e this.scann
77e0: 65 72 2e 73 63 61 6e 43 6f 6d 6d 65 6e 74 73 28 er.scanComments(
77f0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
7800: 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 . else
7810: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
7820: 20 76 61 72 20 63 6f 6d 6d 65 6e 74 73 20 3d 20 var comments =
7830: 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 73 63 61 this.scanner.sca
7840: 6e 43 6f 6d 6d 65 6e 74 73 28 29 3b 0a 20 20 09 nComments();. .
7850: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
7860: 63 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 20 comments.length
7870: 3e 20 30 20 26 26 20 74 68 69 73 2e 64 65 6c 65 > 0 && this.dele
7880: 67 61 74 65 29 20 7b 0a 20 20 09 20 20 20 20 20 gate) {. .
7890: 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 for (
78a0: 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 63 var i = 0; i < c
78b0: 6f 6d 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 3b 20 omments.length;
78c0: 2b 2b 69 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ++i) {. .
78d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
78e0: 72 20 65 20 3d 20 63 6f 6d 6d 65 6e 74 73 5b 69 r e = comments[i
78f0: 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ];. .
7900: 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f var no
7910: 64 65 20 3d 20 76 6f 69 64 20 30 3b 0a 20 20 09 de = void 0;. .
7920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7930: 20 20 20 20 6e 6f 64 65 20 3d 20 7b 0a 20 20 09 node = {. .
7940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7950: 20 20 20 20 20 20 20 20 74 79 70 65 3a 20 65 2e type: e.
7960: 6d 75 6c 74 69 4c 69 6e 65 20 3f 20 27 42 6c 6f multiLine ? 'Blo
7970: 63 6b 43 6f 6d 6d 65 6e 74 27 20 3a 20 27 4c 69 ckComment' : 'Li
7980: 6e 65 43 6f 6d 6d 65 6e 74 27 2c 0a 20 20 09 20 neComment',. .
7990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
79a0: 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 74 68 value: th
79b0: 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 is$1.scanner.sou
79c0: 72 63 65 2e 73 6c 69 63 65 28 65 2e 73 6c 69 63 rce.slice(e.slic
79d0: 65 5b 30 5d 2c 20 65 2e 73 6c 69 63 65 5b 31 5d e[0], e.slice[1]
79e0: 29 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ). .
79f0: 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 };. .
7a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7a10: 20 20 20 69 66 20 28 74 68 69 73 24 31 2e 63 6f if (this$1.co
7a20: 6e 66 69 67 2e 72 61 6e 67 65 29 20 7b 0a 20 20 nfig.range) {.
7a30: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7a40: 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2e 72 61 node.ra
7a50: 6e 67 65 20 3d 20 65 2e 72 61 6e 67 65 3b 0a 20 nge = e.range;.
7a60: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7a70: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
7a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
7a90: 66 20 28 74 68 69 73 24 31 2e 63 6f 6e 66 69 67 f (this$1.config
7aa0: 2e 6c 6f 63 29 20 7b 0a 20 20 09 20 20 20 20 20 .loc) {. .
7ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7ac0: 20 20 20 6e 6f 64 65 2e 6c 6f 63 20 3d 20 65 2e node.loc = e.
7ad0: 6c 6f 63 3b 0a 20 20 09 20 20 20 20 20 20 20 20 loc;. .
7ae0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
7af0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7b00: 20 20 20 20 20 76 61 72 20 6d 65 74 61 64 61 74 var metadat
7b10: 61 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 a = {. .
7b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7b30: 20 73 74 61 72 74 3a 20 7b 0a 20 20 09 20 20 20 start: {. .
7b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7b50: 20 20 20 20 20 20 20 20 20 6c 69 6e 65 3a 20 65 line: e
7b60: 2e 6c 6f 63 2e 73 74 61 72 74 2e 6c 69 6e 65 2c .loc.start.line,
7b70: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
7b80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7b90: 63 6f 6c 75 6d 6e 3a 20 65 2e 6c 6f 63 2e 73 74 column: e.loc.st
7ba0: 61 72 74 2e 63 6f 6c 75 6d 6e 2c 0a 20 20 09 20 art.column,. .
7bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7bc0: 20 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 offse
7bd0: 74 3a 20 65 2e 72 61 6e 67 65 5b 30 5d 0a 20 20 t: e.range[0].
7be0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7bf0: 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 09 20 },. .
7c00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7c10: 20 20 20 20 20 20 20 65 6e 64 3a 20 7b 0a 20 20 end: {.
7c20: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e lin
7c40: 65 3a 20 65 2e 6c 6f 63 2e 65 6e 64 2e 6c 69 6e e: e.loc.end.lin
7c50: 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e,. .
7c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7c70: 20 20 63 6f 6c 75 6d 6e 3a 20 65 2e 6c 6f 63 2e column: e.loc.
7c80: 65 6e 64 2e 63 6f 6c 75 6d 6e 2c 0a 20 20 09 20 end.column,. .
7c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7ca0: 20 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 offse
7cb0: 74 3a 20 65 2e 72 61 6e 67 65 5b 31 5d 0a 20 20 t: e.range[1].
7cc0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7cd0: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
7ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7cf0: 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 };. .
7d00: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
7d10: 24 31 2e 64 65 6c 65 67 61 74 65 28 6e 6f 64 65 $1.delegate(node
7d20: 2c 20 6d 65 74 61 64 61 74 61 29 3b 0a 20 20 09 , metadata);. .
7d30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7d40: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
7d50: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a }. . }.
7d60: 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
7d70: 20 2f 2f 20 46 72 6f 6d 20 69 6e 74 65 72 6e 61 // From interna
7d80: 6c 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e l representation
7d90: 20 74 6f 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 to an external
7da0: 73 74 72 75 63 74 75 72 65 0a 20 20 09 20 20 20 structure. .
7db0: 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
7dc0: 65 2e 67 65 74 54 6f 6b 65 6e 52 61 77 20 3d 20 e.getTokenRaw =
7dd0: 66 75 6e 63 74 69 6f 6e 20 28 74 6f 6b 65 6e 29 function (token)
7de0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 {. . re
7df0: 74 75 72 6e 20 74 68 69 73 2e 73 63 61 6e 6e 65 turn this.scanne
7e00: 72 2e 73 6f 75 72 63 65 2e 73 6c 69 63 65 28 74 r.source.slice(t
7e10: 6f 6b 65 6e 2e 73 74 61 72 74 2c 20 74 6f 6b 65 oken.start, toke
7e20: 6e 2e 65 6e 64 29 3b 0a 20 20 09 20 20 20 20 7d n.end);. . }
7e30: 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e ;. . Parser.
7e40: 70 72 6f 74 6f 74 79 70 65 2e 63 6f 6e 76 65 72 prototype.conver
7e50: 74 54 6f 6b 65 6e 20 3d 20 66 75 6e 63 74 69 6f tToken = functio
7e60: 6e 20 28 74 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 n (token) {. .
7e70: 20 20 20 20 20 20 20 76 61 72 20 74 3b 0a 20 20 var t;.
7e80: 09 20 20 20 20 20 20 20 20 74 20 3d 20 7b 0a 20 . t = {.
7e90: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 79 . ty
7ea0: 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 pe: token_1.Toke
7eb0: 6e 4e 61 6d 65 5b 74 6f 6b 65 6e 2e 74 79 70 65 nName[token.type
7ec0: 5d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ],. .
7ed0: 20 20 76 61 6c 75 65 3a 20 74 68 69 73 2e 67 65 value: this.ge
7ee0: 74 54 6f 6b 65 6e 52 61 77 28 74 6f 6b 65 6e 29 tTokenRaw(token)
7ef0: 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 . . };.
7f00: 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 . if (th
7f10: 69 73 2e 63 6f 6e 66 69 67 2e 72 61 6e 67 65 29 is.config.range)
7f20: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
7f30: 20 20 74 2e 72 61 6e 67 65 20 3d 20 5b 74 6f 6b t.range = [tok
7f40: 65 6e 2e 73 74 61 72 74 2c 20 74 6f 6b 65 6e 2e en.start, token.
7f50: 65 6e 64 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 end];. .
7f60: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 }. . if
7f70: 20 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6c 6f (this.config.lo
7f80: 63 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 c) {. .
7f90: 20 20 20 20 74 2e 6c 6f 63 20 3d 20 7b 0a 20 20 t.loc = {.
7fa0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
7fb0: 20 73 74 61 72 74 3a 20 7b 0a 20 20 09 20 20 20 start: {. .
7fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7fd0: 20 6c 69 6e 65 3a 20 74 68 69 73 2e 73 74 61 72 line: this.star
7fe0: 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d 62 tMarker.lineNumb
7ff0: 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 er,. .
8000: 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d colum
8010: 6e 3a 20 74 68 69 73 2e 73 74 61 72 74 4d 61 72 n: this.startMar
8020: 6b 65 72 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 ker.index - this
8030: 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e 6c 69 6e .startMarker.lin
8040: 65 53 74 61 72 74 0a 20 20 09 20 20 20 20 20 20 eStart. .
8050: 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 09 },. .
8060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8070: 65 6e 64 3a 20 7b 0a 20 20 09 20 20 20 20 20 20 end: {. .
8080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 li
8090: 6e 65 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 ne: this.scanner
80a0: 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 .lineNumber,. .
80b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
80c0: 20 20 20 20 63 6f 6c 75 6d 6e 3a 20 74 68 69 73 column: this
80d0: 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 20 2d .scanner.index -
80e0: 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 this.scanner.li
80f0: 6e 65 53 74 61 72 74 0a 20 20 09 20 20 20 20 20 neStart. .
8100: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
8110: 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 };.
8120: 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
8130: 20 20 20 20 20 20 20 69 66 20 28 74 6f 6b 65 6e if (token
8140: 2e 72 65 67 65 78 29 20 7b 0a 20 20 09 20 20 20 .regex) {. .
8150: 20 20 20 20 20 20 20 20 20 74 2e 72 65 67 65 78 t.regex
8160: 20 3d 20 74 6f 6b 65 6e 2e 72 65 67 65 78 3b 0a = token.regex;.
8170: 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
8180: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 return t
8190: 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
81a0: 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
81b0: 79 70 65 2e 6e 65 78 74 54 6f 6b 65 6e 20 3d 20 ype.nextToken =
81c0: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
81d0: 09 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b . var tok
81e0: 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 en = this.lookah
81f0: 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ead;. .
8200: 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e this.lastMarker.
8210: 69 6e 64 65 78 20 3d 20 74 68 69 73 2e 73 63 61 index = this.sca
8220: 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 nner.index;. .
8230: 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 73 74 this.last
8240: 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 Marker.lineNumbe
8250: 72 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 r = this.scanner
8260: 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 20 09 .lineNumber;. .
8270: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 73 this.las
8280: 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 53 74 61 72 tMarker.lineStar
8290: 74 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 t = this.scanner
82a0: 2e 6c 69 6e 65 53 74 61 72 74 3b 0a 20 20 09 20 .lineStart;. .
82b0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6c 6c this.coll
82c0: 65 63 74 43 6f 6d 6d 65 6e 74 73 28 29 3b 0a 20 ectComments();.
82d0: 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 . this.s
82e0: 74 61 72 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 tartMarker.index
82f0: 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e = this.scanner.
8300: 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 index;. .
8310: 20 20 74 68 69 73 2e 73 74 61 72 74 4d 61 72 6b this.startMark
8320: 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 3d 20 er.lineNumber =
8330: 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e this.scanner.lin
8340: 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 eNumber;. .
8350: 20 20 20 20 74 68 69 73 2e 73 74 61 72 74 4d 61 this.startMa
8360: 72 6b 65 72 2e 6c 69 6e 65 53 74 61 72 74 20 3d rker.lineStart =
8370: 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 this.scanner.li
8380: 6e 65 53 74 61 72 74 3b 0a 20 20 09 20 20 20 20 neStart;. .
8390: 20 20 20 20 76 61 72 20 6e 65 78 74 3b 0a 20 20 var next;.
83a0: 09 20 20 20 20 20 20 20 20 6e 65 78 74 20 3d 20 . next =
83b0: 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 65 78 this.scanner.lex
83c0: 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ();. . t
83d0: 68 69 73 2e 68 61 73 4c 69 6e 65 54 65 72 6d 69 his.hasLineTermi
83e0: 6e 61 74 6f 72 20 3d 20 28 74 6f 6b 65 6e 20 26 nator = (token &
83f0: 26 20 6e 65 78 74 29 20 3f 20 28 74 6f 6b 65 6e & next) ? (token
8400: 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 21 3d 3d 20 .lineNumber !==
8410: 6e 65 78 74 2e 6c 69 6e 65 4e 75 6d 62 65 72 29 next.lineNumber)
8420: 20 3a 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 : false;. .
8430: 20 20 20 20 20 69 66 20 28 6e 65 78 74 20 26 26 if (next &&
8440: 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 this.context.st
8450: 72 69 63 74 20 26 26 20 6e 65 78 74 2e 74 79 70 rict && next.typ
8460: 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f e === token_1.To
8470: 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 29 20 ken.Identifier)
8480: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
8490: 20 69 66 20 28 74 68 69 73 2e 73 63 61 6e 6e 65 if (this.scanne
84a0: 72 2e 69 73 53 74 72 69 63 74 4d 6f 64 65 52 65 r.isStrictModeRe
84b0: 73 65 72 76 65 64 57 6f 72 64 28 6e 65 78 74 2e servedWord(next.
84c0: 76 61 6c 75 65 29 29 20 7b 0a 20 20 09 20 20 20 value)) {. .
84d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 78 nex
84e0: 74 2e 74 79 70 65 20 3d 20 74 6f 6b 65 6e 5f 31 t.type = token_1
84f0: 2e 54 6f 6b 65 6e 2e 4b 65 79 77 6f 72 64 3b 0a .Token.Keyword;.
8500: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
8510: 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
8520: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f . this.lo
8530: 6f 6b 61 68 65 61 64 20 3d 20 6e 65 78 74 3b 0a okahead = next;.
8540: 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 . if (t
8550: 68 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6b 65 6e his.config.token
8560: 73 20 26 26 20 6e 65 78 74 2e 74 79 70 65 20 21 s && next.type !
8570: 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e == token_1.Token
8580: 2e 45 4f 46 29 20 7b 0a 20 20 09 20 20 20 20 20 .EOF) {. .
8590: 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6b 65 this.toke
85a0: 6e 73 2e 70 75 73 68 28 74 68 69 73 2e 63 6f 6e ns.push(this.con
85b0: 76 65 72 74 54 6f 6b 65 6e 28 6e 65 78 74 29 29 vertToken(next))
85c0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
85d0: 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
85e0: 20 74 6f 6b 65 6e 3b 0a 20 20 09 20 20 20 20 7d token;. . }
85f0: 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e ;. . Parser.
8600: 70 72 6f 74 6f 74 79 70 65 2e 6e 65 78 74 52 65 prototype.nextRe
8610: 67 65 78 54 6f 6b 65 6e 20 3d 20 66 75 6e 63 74 gexToken = funct
8620: 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
8630: 20 20 20 20 74 68 69 73 2e 63 6f 6c 6c 65 63 74 this.collect
8640: 43 6f 6d 6d 65 6e 74 73 28 29 3b 0a 20 20 09 20 Comments();. .
8650: 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 6e var token
8660: 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e = this.scanner.
8670: 73 63 61 6e 52 65 67 45 78 70 28 29 3b 0a 20 20 scanRegExp();.
8680: 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
8690: 73 2e 63 6f 6e 66 69 67 2e 74 6f 6b 65 6e 73 29 s.config.tokens)
86a0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
86b0: 20 20 2f 2f 20 50 6f 70 20 74 68 65 20 70 72 65 // Pop the pre
86c0: 76 69 6f 75 73 20 74 6f 6b 65 6e 2c 20 27 2f 27 vious token, '/'
86d0: 20 6f 72 20 27 2f 3d 27 0a 20 20 09 20 20 20 20 or '/='. .
86e0: 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 // This
86f0: 69 73 20 61 64 64 65 64 20 66 72 6f 6d 20 74 68 is added from th
8700: 65 20 6c 6f 6f 6b 61 68 65 61 64 20 74 6f 6b 65 e lookahead toke
8710: 6e 2e 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 n.. .
8720: 20 20 74 68 69 73 2e 74 6f 6b 65 6e 73 2e 70 6f this.tokens.po
8730: 70 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 p();. .
8740: 20 20 20 20 74 68 69 73 2e 74 6f 6b 65 6e 73 2e this.tokens.
8750: 70 75 73 68 28 74 68 69 73 2e 63 6f 6e 76 65 72 push(this.conver
8760: 74 54 6f 6b 65 6e 28 74 6f 6b 65 6e 29 29 3b 0a tToken(token));.
8770: 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
8780: 20 20 20 20 20 20 20 20 2f 2f 20 50 72 69 6d 65 // Prime
8790: 20 74 68 65 20 6e 65 78 74 20 6c 6f 6f 6b 61 68 the next lookah
87a0: 65 61 64 2e 0a 20 20 09 20 20 20 20 20 20 20 20 ead.. .
87b0: 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 20 3d this.lookahead =
87c0: 20 74 6f 6b 65 6e 3b 0a 20 20 09 20 20 20 20 20 token;. .
87d0: 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 this.nextToke
87e0: 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
87f0: 72 65 74 75 72 6e 20 74 6f 6b 65 6e 3b 0a 20 20 return token;.
8800: 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 . };. . P
8810: 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
8820: 63 72 65 61 74 65 4e 6f 64 65 20 3d 20 66 75 6e createNode = fun
8830: 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
8840: 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 return {.
8850: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 6e . in
8860: 64 65 78 3a 20 74 68 69 73 2e 73 74 61 72 74 4d dex: this.startM
8870: 61 72 6b 65 72 2e 69 6e 64 65 78 2c 0a 20 20 09 arker.index,. .
8880: 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
8890: 3a 20 74 68 69 73 2e 73 74 61 72 74 4d 61 72 6b : this.startMark
88a0: 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 er.lineNumber,.
88b0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 6f . co
88c0: 6c 75 6d 6e 3a 20 74 68 69 73 2e 73 74 61 72 74 lumn: this.start
88d0: 4d 61 72 6b 65 72 2e 69 6e 64 65 78 20 2d 20 74 Marker.index - t
88e0: 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e his.startMarker.
88f0: 6c 69 6e 65 53 74 61 72 74 0a 20 20 09 20 20 20 lineStart. .
8900: 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 7d };. . }
8910: 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e ;. . Parser.
8920: 70 72 6f 74 6f 74 79 70 65 2e 73 74 61 72 74 4e prototype.startN
8930: 6f 64 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ode = function (
8940: 74 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 20 20 20 token) {. .
8950: 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 return {. .
8960: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 64 65 inde
8970: 78 3a 20 74 6f 6b 65 6e 2e 73 74 61 72 74 2c 0a x: token.start,.
8980: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6c . l
8990: 69 6e 65 3a 20 74 6f 6b 65 6e 2e 6c 69 6e 65 4e ine: token.lineN
89a0: 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 umber,. .
89b0: 20 20 20 20 20 20 63 6f 6c 75 6d 6e 3a 20 74 6f column: to
89c0: 6b 65 6e 2e 73 74 61 72 74 20 2d 20 74 6f 6b 65 ken.start - toke
89d0: 6e 2e 6c 69 6e 65 53 74 61 72 74 0a 20 20 09 20 n.lineStart. .
89e0: 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
89f0: 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 };. . Parse
8a00: 72 2e 70 72 6f 74 6f 74 79 70 65 2e 66 69 6e 61 r.prototype.fina
8a10: 6c 69 7a 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 lize = function
8a20: 28 6d 65 74 61 2c 20 6e 6f 64 65 29 20 7b 0a 20 (meta, node) {.
8a30: 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 . if (th
8a40: 69 73 2e 63 6f 6e 66 69 67 2e 72 61 6e 67 65 29 is.config.range)
8a50: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
8a60: 20 20 6e 6f 64 65 2e 72 61 6e 67 65 20 3d 20 5b node.range = [
8a70: 6d 65 74 61 2e 69 6e 64 65 78 2c 20 74 68 69 73 meta.index, this
8a80: 2e 6c 61 73 74 4d 61 72 6b 65 72 2e 69 6e 64 65 .lastMarker.inde
8a90: 78 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d x];. . }
8aa0: 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
8ab0: 74 68 69 73 2e 63 6f 6e 66 69 67 2e 6c 6f 63 29 this.config.loc)
8ac0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
8ad0: 20 20 6e 6f 64 65 2e 6c 6f 63 20 3d 20 7b 0a 20 node.loc = {.
8ae0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8af0: 20 20 73 74 61 72 74 3a 20 7b 0a 20 20 09 20 20 start: {. .
8b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8b10: 20 20 6c 69 6e 65 3a 20 6d 65 74 61 2e 6c 69 6e line: meta.lin
8b20: 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e,. .
8b30: 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e column
8b40: 3a 20 6d 65 74 61 2e 63 6f 6c 75 6d 6e 0a 20 20 : meta.column.
8b50: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8b60: 20 7d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 },. .
8b70: 20 20 20 20 20 20 20 65 6e 64 3a 20 7b 0a 20 20 end: {.
8b80: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8b90: 20 20 20 20 20 6c 69 6e 65 3a 20 74 68 69 73 2e line: this.
8ba0: 6c 61 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e lastMarker.lineN
8bb0: 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 umber,. .
8bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f co
8bd0: 6c 75 6d 6e 3a 20 74 68 69 73 2e 6c 61 73 74 4d lumn: this.lastM
8be0: 61 72 6b 65 72 2e 69 6e 64 65 78 20 2d 20 74 68 arker.index - th
8bf0: 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e 6c 69 is.lastMarker.li
8c00: 6e 65 53 74 61 72 74 0a 20 20 09 20 20 20 20 20 neStart. .
8c10: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
8c20: 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 };.
8c30: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
8c40: 20 28 74 68 69 73 2e 63 6f 6e 66 69 67 2e 73 6f (this.config.so
8c50: 75 72 63 65 29 20 7b 0a 20 20 09 20 20 20 20 20 urce) {. .
8c60: 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 2e node.
8c70: 6c 6f 63 2e 73 6f 75 72 63 65 20 3d 20 74 68 69 loc.source = thi
8c80: 73 2e 63 6f 6e 66 69 67 2e 73 6f 75 72 63 65 3b s.config.source;
8c90: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
8ca0: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 }. . }.
8cb0: 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 . if (th
8cc0: 69 73 2e 64 65 6c 65 67 61 74 65 29 20 7b 0a 20 is.delegate) {.
8cd0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
8ce0: 72 20 6d 65 74 61 64 61 74 61 20 3d 20 7b 0a 20 r metadata = {.
8cf0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8d00: 20 20 73 74 61 72 74 3a 20 7b 0a 20 20 09 20 20 start: {. .
8d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8d20: 20 20 6c 69 6e 65 3a 20 6d 65 74 61 2e 6c 69 6e line: meta.lin
8d30: 65 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e,. .
8d40: 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e column
8d50: 3a 20 6d 65 74 61 2e 63 6f 6c 75 6d 6e 2c 0a 20 : meta.column,.
8d60: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8d70: 20 20 20 20 20 20 6f 66 66 73 65 74 3a 20 6d 65 offset: me
8d80: 74 61 2e 69 6e 64 65 78 0a 20 20 09 20 20 20 20 ta.index. .
8d90: 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 },.
8da0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8db0: 20 20 65 6e 64 3a 20 7b 0a 20 20 09 20 20 20 20 end: {. .
8dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8dd0: 6c 69 6e 65 3a 20 74 68 69 73 2e 6c 61 73 74 4d line: this.lastM
8de0: 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 arker.lineNumber
8df0: 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
8e00: 20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e 3a column:
8e10: 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 this.lastMarker
8e20: 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 2e 6c 61 .index - this.la
8e30: 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 53 74 61 stMarker.lineSta
8e40: 72 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 rt,. .
8e50: 20 20 20 20 20 20 20 20 20 20 20 6f 66 66 73 65 offse
8e60: 74 3a 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b t: this.lastMark
8e70: 65 72 2e 69 6e 64 65 78 0a 20 20 09 20 20 20 20 er.index. .
8e80: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
8e90: 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a . };.
8ea0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
8eb0: 68 69 73 2e 64 65 6c 65 67 61 74 65 28 6e 6f 64 his.delegate(nod
8ec0: 65 2c 20 6d 65 74 61 64 61 74 61 29 3b 0a 20 20 e, metadata);.
8ed0: 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
8ee0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 6f 64 return nod
8ef0: 65 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 e;. . };. .
8f00: 20 20 20 20 2f 2f 20 45 78 70 65 63 74 20 74 68 // Expect th
8f10: 65 20 6e 65 78 74 20 74 6f 6b 65 6e 20 74 6f 20 e next token to
8f20: 6d 61 74 63 68 20 74 68 65 20 73 70 65 63 69 66 match the specif
8f30: 69 65 64 20 70 75 6e 63 74 75 61 74 6f 72 2e 0a ied punctuator..
8f40: 20 20 09 20 20 20 20 2f 2f 20 49 66 20 6e 6f 74 . // If not
8f50: 2c 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 77 , an exception w
8f60: 69 6c 6c 20 62 65 20 74 68 72 6f 77 6e 2e 0a 20 ill be thrown..
8f70: 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f . Parser.pro
8f80: 74 6f 74 79 70 65 2e 65 78 70 65 63 74 20 3d 20 totype.expect =
8f90: 66 75 6e 63 74 69 6f 6e 20 28 76 61 6c 75 65 29 function (value)
8fa0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
8fb0: 72 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e r token = this.n
8fc0: 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 extToken();. .
8fd0: 20 20 20 20 20 20 20 69 66 20 28 74 6f 6b 65 6e if (token
8fe0: 2e 74 79 70 65 20 21 3d 3d 20 74 6f 6b 65 6e 5f .type !== token_
8ff0: 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 74 75 61 74 1.Token.Punctuat
9000: 6f 72 20 7c 7c 20 74 6f 6b 65 6e 2e 76 61 6c 75 or || token.valu
9010: 65 20 21 3d 3d 20 76 61 6c 75 65 29 20 7b 0a 20 e !== value) {.
9020: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
9030: 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 is.throwUnexpect
9040: 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 6e 29 3b 0a edToken(token);.
9050: 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
9060: 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f };. . //
9070: 20 51 75 69 65 74 6c 79 20 65 78 70 65 63 74 20 Quietly expect
9080: 61 20 63 6f 6d 6d 61 20 77 68 65 6e 20 69 6e 20 a comma when in
9090: 74 6f 6c 65 72 61 6e 74 20 6d 6f 64 65 2c 20 6f tolerant mode, o
90a0: 74 68 65 72 77 69 73 65 20 64 65 6c 65 67 61 74 therwise delegat
90b0: 65 73 20 74 6f 20 65 78 70 65 63 74 28 29 2e 0a es to expect()..
90c0: 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
90d0: 6f 74 6f 74 79 70 65 2e 65 78 70 65 63 74 43 6f ototype.expectCo
90e0: 6d 6d 61 53 65 70 61 72 61 74 6f 72 20 3d 20 66 mmaSeparator = f
90f0: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
9100: 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
9110: 2e 63 6f 6e 66 69 67 2e 74 6f 6c 65 72 61 6e 74 .config.tolerant
9120: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
9130: 20 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d 20 74 var token = t
9140: 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 3b 0a 20 his.lookahead;.
9150: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
9160: 20 28 74 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d (token.type ===
9170: 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 token_1.Token.P
9180: 75 6e 63 74 75 61 74 6f 72 20 26 26 20 74 6f 6b unctuator && tok
9190: 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 2c 27 en.value === ','
91a0: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
91b0: 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 this.next
91c0: 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
91d0: 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
91e0: 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 else if
91f0: 20 28 74 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d (token.type ===
9200: 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 token_1.Token.P
9210: 75 6e 63 74 75 61 74 6f 72 20 26 26 20 74 6f 6b unctuator && tok
9220: 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 3b 27 en.value === ';'
9230: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
9240: 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 this.next
9250: 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
9260: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
9270: 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 65 63 .tolerateUnexpec
9280: 74 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 6e 29 3b tedToken(token);
9290: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
92a0: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
92b0: 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
92c0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
92d0: 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 65 63 74 tolerateUnexpect
92e0: 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 6e 2c 20 6d edToken(token, m
92f0: 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 essages_1.Messag
9300: 65 73 2e 55 6e 65 78 70 65 63 74 65 64 54 6f 6b es.UnexpectedTok
9310: 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 en);. .
9320: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
9330: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c }. . el
9340: 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 se {. .
9350: 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 this.expect(
9360: 27 2c 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ',');. .
9370: 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 }. . };. .
9380: 20 20 20 20 2f 2f 20 45 78 70 65 63 74 20 74 68 // Expect th
9390: 65 20 6e 65 78 74 20 74 6f 6b 65 6e 20 74 6f 20 e next token to
93a0: 6d 61 74 63 68 20 74 68 65 20 73 70 65 63 69 66 match the specif
93b0: 69 65 64 20 6b 65 79 77 6f 72 64 2e 0a 20 20 09 ied keyword.. .
93c0: 20 20 20 20 2f 2f 20 49 66 20 6e 6f 74 2c 20 61 // If not, a
93d0: 6e 20 65 78 63 65 70 74 69 6f 6e 20 77 69 6c 6c n exception will
93e0: 20 62 65 20 74 68 72 6f 77 6e 2e 0a 20 20 09 20 be thrown.. .
93f0: 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
9400: 79 70 65 2e 65 78 70 65 63 74 4b 65 79 77 6f 72 ype.expectKeywor
9410: 64 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6b 65 d = function (ke
9420: 79 77 6f 72 64 29 20 7b 0a 20 20 09 20 20 20 20 yword) {. .
9430: 20 20 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d 20 var token =
9440: 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 this.nextToken()
9450: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
9460: 28 74 6f 6b 65 6e 2e 74 79 70 65 20 21 3d 3d 20 (token.type !==
9470: 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 token_1.Token.Ke
9480: 79 77 6f 72 64 20 7c 7c 20 74 6f 6b 65 6e 2e 76 yword || token.v
9490: 61 6c 75 65 20 21 3d 3d 20 6b 65 79 77 6f 72 64 alue !== keyword
94a0: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
94b0: 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 this.throwUne
94c0: 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f 6b xpectedToken(tok
94d0: 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 en);. .
94e0: 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 }. . };. .
94f0: 20 20 20 2f 2f 20 52 65 74 75 72 6e 20 74 72 75 // Return tru
9500: 65 20 69 66 20 74 68 65 20 6e 65 78 74 20 74 6f e if the next to
9510: 6b 65 6e 20 6d 61 74 63 68 65 73 20 74 68 65 20 ken matches the
9520: 73 70 65 63 69 66 69 65 64 20 70 75 6e 63 74 75 specified punctu
9530: 61 74 6f 72 2e 0a 20 20 09 20 20 20 20 50 61 72 ator.. . Par
9540: 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 61 ser.prototype.ma
9550: 74 63 68 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 tch = function (
9560: 76 61 6c 75 65 29 20 7b 0a 20 20 09 20 20 20 20 value) {. .
9570: 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
9580: 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 20 3d lookahead.type =
9590: 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e == token_1.Token
95a0: 2e 50 75 6e 63 74 75 61 74 6f 72 20 26 26 20 74 .Punctuator && t
95b0: 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 61 his.lookahead.va
95c0: 6c 75 65 20 3d 3d 3d 20 76 61 6c 75 65 3b 0a 20 lue === value;.
95d0: 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
95e0: 2f 2f 20 52 65 74 75 72 6e 20 74 72 75 65 20 69 // Return true i
95f0: 66 20 74 68 65 20 6e 65 78 74 20 74 6f 6b 65 6e f the next token
9600: 20 6d 61 74 63 68 65 73 20 74 68 65 20 73 70 65 matches the spe
9610: 63 69 66 69 65 64 20 6b 65 79 77 6f 72 64 0a 20 cified keyword.
9620: 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f . Parser.pro
9630: 74 6f 74 79 70 65 2e 6d 61 74 63 68 4b 65 79 77 totype.matchKeyw
9640: 6f 72 64 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ord = function (
9650: 6b 65 79 77 6f 72 64 29 20 7b 0a 20 20 09 20 20 keyword) {. .
9660: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 return thi
9670: 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 s.lookahead.type
9680: 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b === token_1.Tok
9690: 65 6e 2e 4b 65 79 77 6f 72 64 20 26 26 20 74 68 en.Keyword && th
96a0: 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 61 6c is.lookahead.val
96b0: 75 65 20 3d 3d 3d 20 6b 65 79 77 6f 72 64 3b 0a ue === keyword;.
96c0: 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
96d0: 20 2f 2f 20 52 65 74 75 72 6e 20 74 72 75 65 20 // Return true
96e0: 69 66 20 74 68 65 20 6e 65 78 74 20 74 6f 6b 65 if the next toke
96f0: 6e 20 6d 61 74 63 68 65 73 20 74 68 65 20 73 70 n matches the sp
9700: 65 63 69 66 69 65 64 20 63 6f 6e 74 65 78 74 75 ecified contextu
9710: 61 6c 20 6b 65 79 77 6f 72 64 0a 20 20 09 20 20 al keyword. .
9720: 20 20 2f 2f 20 28 77 68 65 72 65 20 61 6e 20 69 // (where an i
9730: 64 65 6e 74 69 66 69 65 72 20 69 73 20 73 6f 6d dentifier is som
9740: 65 74 69 6d 65 73 20 61 20 6b 65 79 77 6f 72 64 etimes a keyword
9750: 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 depending on th
9760: 65 20 63 6f 6e 74 65 78 74 29 0a 20 20 09 20 20 e context). .
9770: 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 Parser.prototy
9780: 70 65 2e 6d 61 74 63 68 43 6f 6e 74 65 78 74 75 pe.matchContextu
9790: 61 6c 4b 65 79 77 6f 72 64 20 3d 20 66 75 6e 63 alKeyword = func
97a0: 74 69 6f 6e 20 28 6b 65 79 77 6f 72 64 29 20 7b tion (keyword) {
97b0: 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
97c0: 72 6e 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 rn this.lookahea
97d0: 64 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e d.type === token
97e0: 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 _1.Token.Identif
97f0: 69 65 72 20 26 26 20 74 68 69 73 2e 6c 6f 6f 6b ier && this.look
9800: 61 68 65 61 64 2e 76 61 6c 75 65 20 3d 3d 3d 20 ahead.value ===
9810: 6b 65 79 77 6f 72 64 3b 0a 20 20 09 20 20 20 20 keyword;. .
9820: 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 52 65 74 };. . // Ret
9830: 75 72 6e 20 74 72 75 65 20 69 66 20 74 68 65 20 urn true if the
9840: 6e 65 78 74 20 74 6f 6b 65 6e 20 69 73 20 61 6e next token is an
9850: 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f 70 65 72 assignment oper
9860: 61 74 6f 72 0a 20 20 09 20 20 20 20 50 61 72 73 ator. . Pars
9870: 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 61 74 er.prototype.mat
9880: 63 68 41 73 73 69 67 6e 20 3d 20 66 75 6e 63 74 chAssign = funct
9890: 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
98a0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c 6f 6f if (this.loo
98b0: 6b 61 68 65 61 64 2e 74 79 70 65 20 21 3d 3d 20 kahead.type !==
98c0: 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 75 token_1.Token.Pu
98d0: 6e 63 74 75 61 74 6f 72 29 20 7b 0a 20 20 09 20 nctuator) {. .
98e0: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
98f0: 6e 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 n false;. .
9900: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
9910: 20 76 61 72 20 6f 70 20 3d 20 74 68 69 73 2e 6c var op = this.l
9920: 6f 6f 6b 61 68 65 61 64 2e 76 61 6c 75 65 3b 0a ookahead.value;.
9930: 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
9940: 6e 20 6f 70 20 3d 3d 3d 20 27 3d 27 20 7c 7c 0a n op === '=' ||.
9950: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6f . o
9960: 70 20 3d 3d 3d 20 27 2a 3d 27 20 7c 7c 0a 20 20 p === '*=' ||.
9970: 09 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 20 . op
9980: 3d 3d 3d 20 27 2a 2a 3d 27 20 7c 7c 0a 20 20 09 === '**=' ||. .
9990: 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 20 3d op =
99a0: 3d 3d 20 27 2f 3d 27 20 7c 7c 0a 20 20 09 20 20 == '/=' ||. .
99b0: 20 20 20 20 20 20 20 20 20 20 6f 70 20 3d 3d 3d op ===
99c0: 20 27 25 3d 27 20 7c 7c 0a 20 20 09 20 20 20 20 '%=' ||. .
99d0: 20 20 20 20 20 20 20 20 6f 70 20 3d 3d 3d 20 27 op === '
99e0: 2b 3d 27 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 +=' ||. .
99f0: 20 20 20 20 20 20 6f 70 20 3d 3d 3d 20 27 2d 3d op === '-=
9a00: 27 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 ' ||. .
9a10: 20 20 20 20 6f 70 20 3d 3d 3d 20 27 3c 3c 3d 27 op === '<<='
9a20: 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 ||. .
9a30: 20 20 20 6f 70 20 3d 3d 3d 20 27 3e 3e 3d 27 20 op === '>>='
9a40: 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
9a50: 20 20 6f 70 20 3d 3d 3d 20 27 3e 3e 3e 3d 27 20 op === '>>>='
9a60: 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
9a70: 20 20 6f 70 20 3d 3d 3d 20 27 26 3d 27 20 7c 7c op === '&=' ||
9a80: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
9a90: 6f 70 20 3d 3d 3d 20 27 5e 3d 27 20 7c 7c 0a 20 op === '^=' ||.
9aa0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 . op
9ab0: 20 3d 3d 3d 20 27 7c 3d 27 3b 0a 20 20 09 20 20 === '|=';. .
9ac0: 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 43 };. . // C
9ad0: 6f 76 65 72 20 67 72 61 6d 6d 61 72 20 73 75 70 over grammar sup
9ae0: 70 6f 72 74 2e 0a 20 20 09 20 20 20 20 2f 2f 0a port.. . //.
9af0: 20 20 09 20 20 20 20 2f 2f 20 57 68 65 6e 20 61 . // When a
9b00: 6e 20 61 73 73 69 67 6e 6d 65 6e 74 20 65 78 70 n assignment exp
9b10: 72 65 73 73 69 6f 6e 20 70 6f 73 69 74 69 6f 6e ression position
9b20: 20 73 74 61 72 74 73 20 77 69 74 68 20 61 6e 20 starts with an
9b30: 6c 65 66 74 20 70 61 72 65 6e 74 68 65 73 69 73 left parenthesis
9b40: 2c 20 74 68 65 20 64 65 74 65 72 6d 69 6e 61 74 , the determinat
9b50: 69 6f 6e 20 6f 66 20 74 68 65 20 74 79 70 65 0a ion of the type.
9b60: 20 20 09 20 20 20 20 2f 2f 20 6f 66 20 74 68 65 . // of the
9b70: 20 73 79 6e 74 61 78 20 69 73 20 74 6f 20 62 65 syntax is to be
9b80: 20 64 65 66 65 72 72 65 64 20 61 72 62 69 74 72 deferred arbitr
9b90: 61 72 69 6c 79 20 6c 6f 6e 67 20 75 6e 74 69 6c arily long until
9ba0: 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 the end of the
9bb0: 70 61 72 65 6e 74 68 65 73 65 73 20 70 61 69 72 parentheses pair
9bc0: 20 28 70 6c 75 73 20 61 20 6c 6f 6f 6b 61 68 65 (plus a lookahe
9bd0: 61 64 29 0a 20 20 09 20 20 20 20 2f 2f 20 6f 72 ad). . // or
9be0: 20 74 68 65 20 66 69 72 73 74 20 63 6f 6d 6d 61 the first comma
9bf0: 2e 20 54 68 69 73 20 73 69 74 75 61 74 69 6f 6e . This situation
9c00: 20 61 6c 73 6f 20 64 65 66 65 72 73 20 74 68 65 also defers the
9c10: 20 64 65 74 65 72 6d 69 6e 61 74 69 6f 6e 20 6f determination o
9c20: 66 20 61 6c 6c 20 74 68 65 20 65 78 70 72 65 73 f all the expres
9c30: 73 69 6f 6e 73 20 6e 65 73 74 65 64 20 69 6e 20 sions nested in
9c40: 74 68 65 20 70 61 69 72 2e 0a 20 20 09 20 20 20 the pair.. .
9c50: 20 2f 2f 0a 20 20 09 20 20 20 20 2f 2f 20 54 68 //. . // Th
9c60: 65 72 65 20 61 72 65 20 74 68 72 65 65 20 70 72 ere are three pr
9c70: 6f 64 75 63 74 69 6f 6e 73 20 74 68 61 74 20 63 oductions that c
9c80: 61 6e 20 62 65 20 70 61 72 73 65 64 20 69 6e 20 an be parsed in
9c90: 61 20 70 61 72 65 6e 74 68 65 73 65 73 20 70 61 a parentheses pa
9ca0: 69 72 20 74 68 61 74 20 6e 65 65 64 73 20 74 6f ir that needs to
9cb0: 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64 0a 20 be determined.
9cc0: 20 09 20 20 20 20 2f 2f 20 61 66 74 65 72 20 74 . // after t
9cd0: 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 70 61 69 he outermost pai
9ce0: 72 20 69 73 20 63 6c 6f 73 65 64 2e 20 54 68 65 r is closed. The
9cf0: 79 20 61 72 65 3a 0a 20 20 09 20 20 20 20 2f 2f y are:. . //
9d00: 0a 20 20 09 20 20 20 20 2f 2f 20 20 20 31 2e 20 . . // 1.
9d10: 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 AssignmentExpres
9d20: 73 69 6f 6e 0a 20 20 09 20 20 20 20 2f 2f 20 20 sion. . //
9d30: 20 32 2e 20 42 69 6e 64 69 6e 67 45 6c 65 6d 65 2. BindingEleme
9d40: 6e 74 73 0a 20 20 09 20 20 20 20 2f 2f 20 20 20 nts. . //
9d50: 33 2e 20 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 3. AssignmentTar
9d60: 67 65 74 73 0a 20 20 09 20 20 20 20 2f 2f 0a 20 gets. . //.
9d70: 20 09 20 20 20 20 2f 2f 20 49 6e 20 6f 72 64 65 . // In orde
9d80: 72 20 74 6f 20 61 76 6f 69 64 20 65 78 70 6f 6e r to avoid expon
9d90: 65 6e 74 69 61 6c 20 62 61 63 6b 74 72 61 63 6b ential backtrack
9da0: 69 6e 67 2c 20 77 65 20 75 73 65 20 74 77 6f 20 ing, we use two
9db0: 66 6c 61 67 73 20 74 6f 20 64 65 6e 6f 74 65 20 flags to denote
9dc0: 69 66 20 74 68 65 20 70 72 6f 64 75 63 74 69 6f if the productio
9dd0: 6e 20 63 61 6e 20 62 65 0a 20 20 09 20 20 20 20 n can be. .
9de0: 2f 2f 20 62 69 6e 64 69 6e 67 20 65 6c 65 6d 65 // binding eleme
9df0: 6e 74 20 6f 72 20 61 73 73 69 67 6e 6d 65 6e 74 nt or assignment
9e00: 20 74 61 72 67 65 74 2e 0a 20 20 09 20 20 20 20 target.. .
9e10: 2f 2f 0a 20 20 09 20 20 20 20 2f 2f 20 54 68 65 //. . // The
9e20: 20 74 68 72 65 65 20 70 72 6f 64 75 63 74 69 6f three productio
9e30: 6e 73 20 68 61 76 65 20 74 68 65 20 72 65 6c 61 ns have the rela
9e40: 74 69 6f 6e 73 68 69 70 3a 0a 20 20 09 20 20 20 tionship:. .
9e50: 20 2f 2f 0a 20 20 09 20 20 20 20 2f 2f 20 20 20 //. . //
9e60: 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 73 20 BindingElements
9e70: e2 8a 86 20 41 73 73 69 67 6e 6d 65 6e 74 54 61 ... AssignmentTa
9e80: 72 67 65 74 73 20 e2 8a 86 20 41 73 73 69 67 6e rgets ... Assign
9e90: 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 0a 20 mentExpression.
9ea0: 20 09 20 20 20 20 2f 2f 0a 20 20 09 20 20 20 20 . //. .
9eb0: 2f 2f 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 // with a single
9ec0: 20 65 78 63 65 70 74 69 6f 6e 20 74 68 61 74 20 exception that
9ed0: 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 CoverInitialized
9ee0: 4e 61 6d 65 20 77 68 65 6e 20 75 73 65 64 20 64 Name when used d
9ef0: 69 72 65 63 74 6c 79 20 69 6e 20 61 6e 20 45 78 irectly in an Ex
9f00: 70 72 65 73 73 69 6f 6e 2c 20 67 65 6e 65 72 61 pression, genera
9f10: 74 65 73 0a 20 20 09 20 20 20 20 2f 2f 20 61 6e tes. . // an
9f20: 20 65 61 72 6c 79 20 65 72 72 6f 72 2e 20 54 68 early error. Th
9f30: 65 72 65 66 6f 72 65 2c 20 77 65 20 6e 65 65 64 erefore, we need
9f40: 20 74 68 65 20 74 68 69 72 64 20 73 74 61 74 65 the third state
9f50: 2c 20 66 69 72 73 74 43 6f 76 65 72 49 6e 69 74 , firstCoverInit
9f60: 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 72 6f 72 ializedNameError
9f70: 2c 20 74 6f 20 74 72 61 63 6b 20 74 68 65 0a 20 , to track the.
9f80: 20 09 20 20 20 20 2f 2f 20 66 69 72 73 74 20 75 . // first u
9f90: 73 61 67 65 20 6f 66 20 43 6f 76 65 72 49 6e 69 sage of CoverIni
9fa0: 74 69 61 6c 69 7a 65 64 4e 61 6d 65 20 61 6e 64 tializedName and
9fb0: 20 72 65 70 6f 72 74 20 69 74 20 77 68 65 6e 20 report it when
9fc0: 77 65 20 72 65 61 63 68 65 64 20 74 68 65 20 65 we reached the e
9fd0: 6e 64 20 6f 66 20 74 68 65 20 70 61 72 65 6e 74 nd of the parent
9fe0: 68 65 73 65 73 20 70 61 69 72 2e 0a 20 20 09 20 heses pair.. .
9ff0: 20 20 20 2f 2f 0a 20 20 09 20 20 20 20 2f 2f 20 //. . //
a000: 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d isolateCoverGram
a010: 6d 61 72 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e mar function run
a020: 73 20 74 68 65 20 67 69 76 65 6e 20 70 61 72 73 s the given pars
a030: 65 72 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 er function with
a040: 20 61 20 6e 65 77 20 63 6f 76 65 72 20 67 72 61 a new cover gra
a050: 6d 6d 61 72 20 63 6f 6e 74 65 78 74 2c 20 61 6e mmar context, an
a060: 64 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 d it does not.
a070: 09 20 20 20 20 2f 2f 20 65 66 66 65 63 74 20 74 . // effect t
a080: 68 65 20 63 75 72 72 65 6e 74 20 66 6c 61 67 73 he current flags
a090: 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 74 68 65 . This means the
a0a0: 20 70 72 6f 64 75 63 74 69 6f 6e 20 74 68 65 20 production the
a0b0: 70 61 72 73 65 72 20 70 61 72 73 65 73 20 69 73 parser parses is
a0c0: 20 6f 6e 6c 79 20 75 73 65 64 20 61 73 20 61 6e only used as an
a0d0: 20 65 78 70 72 65 73 73 69 6f 6e 2e 20 54 68 65 expression. The
a0e0: 72 65 66 6f 72 65 0a 20 20 09 20 20 20 20 2f 2f refore. . //
a0f0: 20 74 68 65 20 43 6f 76 65 72 49 6e 69 74 69 61 the CoverInitia
a100: 6c 69 7a 65 64 4e 61 6d 65 20 63 68 65 63 6b 20 lizedName check
a110: 69 73 20 63 6f 6e 64 75 63 74 65 64 2e 0a 20 20 is conducted..
a120: 09 20 20 20 20 2f 2f 0a 20 20 09 20 20 20 20 2f . //. . /
a130: 2f 20 69 6e 68 65 72 69 74 43 6f 76 65 72 47 72 / inheritCoverGr
a140: 61 6d 6d 61 72 20 66 75 6e 63 74 69 6f 6e 20 72 ammar function r
a150: 75 6e 73 20 74 68 65 20 67 69 76 65 6e 20 70 61 uns the given pa
a160: 72 73 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 rse function wit
a170: 68 20 61 20 6e 65 77 20 63 6f 76 65 72 20 67 72 h a new cover gr
a180: 61 6d 6d 61 72 20 63 6f 6e 74 65 78 74 2c 20 61 ammar context, a
a190: 6e 64 20 69 74 20 70 72 6f 70 61 67 61 74 65 73 nd it propagates
a1a0: 0a 20 20 09 20 20 20 20 2f 2f 20 74 68 65 20 66 . . // the f
a1b0: 6c 61 67 73 20 6f 75 74 73 69 64 65 20 6f 66 20 lags outside of
a1c0: 74 68 65 20 70 61 72 73 65 72 2e 20 54 68 69 73 the parser. This
a1d0: 20 6d 65 61 6e 73 20 74 68 65 20 70 72 6f 64 75 means the produ
a1e0: 63 74 69 6f 6e 20 74 68 65 20 70 61 72 73 65 72 ction the parser
a1f0: 20 70 61 72 73 65 73 20 69 73 20 75 73 65 64 20 parses is used
a200: 61 73 20 61 20 70 61 72 74 20 6f 66 20 61 20 70 as a part of a p
a210: 6f 74 65 6e 74 69 61 6c 0a 20 20 09 20 20 20 20 otential. .
a220: 2f 2f 20 70 61 74 74 65 72 6e 2e 20 54 68 65 20 // pattern. The
a230: 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 CoverInitialized
a240: 4e 61 6d 65 20 63 68 65 63 6b 20 69 73 20 64 65 Name check is de
a250: 66 65 72 72 65 64 2e 0a 20 20 09 20 20 20 20 50 ferred.. . P
a260: 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
a270: 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d isolateCoverGram
a280: 6d 61 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 mar = function (
a290: 70 61 72 73 65 46 75 6e 63 74 69 6f 6e 29 20 7b parseFunction) {
a2a0: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
a2b0: 70 72 65 76 69 6f 75 73 49 73 42 69 6e 64 69 6e previousIsBindin
a2c0: 67 45 6c 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e gElement = this.
a2d0: 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e context.isBindin
a2e0: 67 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 gElement;. .
a2f0: 20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 var previou
a300: 73 49 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 sIsAssignmentTar
a310: 67 65 74 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 get = this.conte
a320: 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 xt.isAssignmentT
a330: 61 72 67 65 74 3b 0a 20 20 09 20 20 20 20 20 20 arget;. .
a340: 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 46 69 var previousFi
a350: 72 73 74 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 rstCoverInitiali
a360: 7a 65 64 4e 61 6d 65 45 72 72 6f 72 20 3d 20 74 zedNameError = t
a370: 68 69 73 2e 63 6f 6e 74 65 78 74 2e 66 69 72 73 his.context.firs
a380: 74 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 tCoverInitialize
a390: 64 4e 61 6d 65 45 72 72 6f 72 3b 0a 20 20 09 20 dNameError;. .
a3a0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
a3b0: 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
a3c0: 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 20 20 09 ment = true;. .
a3d0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
a3e0: 74 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e text.isAssignmen
a3f0: 74 54 61 72 67 65 74 20 3d 20 74 72 75 65 3b 0a tTarget = true;.
a400: 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
a410: 63 6f 6e 74 65 78 74 2e 66 69 72 73 74 43 6f 76 context.firstCov
a420: 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 4e 61 6d erInitializedNam
a430: 65 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 20 eError = null;.
a440: 20 09 20 20 20 20 20 20 20 20 76 61 72 20 72 65 . var re
a450: 73 75 6c 74 20 3d 20 70 61 72 73 65 46 75 6e 63 sult = parseFunc
a460: 74 69 6f 6e 2e 63 61 6c 6c 28 74 68 69 73 29 3b tion.call(this);
a470: 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
a480: 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 66 69 72 this.context.fir
a490: 73 74 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a stCoverInitializ
a4a0: 65 64 4e 61 6d 65 45 72 72 6f 72 20 21 3d 3d 20 edNameError !==
a4b0: 6e 75 6c 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 null) {. .
a4c0: 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f this.thro
a4d0: 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e wUnexpectedToken
a4e0: 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 66 69 (this.context.fi
a4f0: 72 73 74 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 rstCoverInitiali
a500: 7a 65 64 4e 61 6d 65 45 72 72 6f 72 29 3b 0a 20 zedNameError);.
a510: 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
a520: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
a530: 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
a540: 6d 65 6e 74 20 3d 20 70 72 65 76 69 6f 75 73 49 ment = previousI
a550: 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 3b sBindingElement;
a560: 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
a570: 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 .context.isAssig
a580: 6e 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 70 72 nmentTarget = pr
a590: 65 76 69 6f 75 73 49 73 41 73 73 69 67 6e 6d 65 eviousIsAssignme
a5a0: 6e 74 54 61 72 67 65 74 3b 0a 20 20 09 20 20 20 ntTarget;. .
a5b0: 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 this.contex
a5c0: 74 2e 66 69 72 73 74 43 6f 76 65 72 49 6e 69 74 t.firstCoverInit
a5d0: 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 72 6f 72 ializedNameError
a5e0: 20 3d 20 70 72 65 76 69 6f 75 73 46 69 72 73 74 = previousFirst
a5f0: 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 CoverInitialized
a600: 4e 61 6d 65 45 72 72 6f 72 3b 0a 20 20 09 20 20 NameError;. .
a610: 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 return res
a620: 75 6c 74 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 ult;. . };.
a630: 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f . Parser.pro
a640: 74 6f 74 79 70 65 2e 69 6e 68 65 72 69 74 43 6f totype.inheritCo
a650: 76 65 72 47 72 61 6d 6d 61 72 20 3d 20 66 75 6e verGrammar = fun
a660: 63 74 69 6f 6e 20 28 70 61 72 73 65 46 75 6e 63 ction (parseFunc
a670: 74 69 6f 6e 29 20 7b 0a 20 20 09 20 20 20 20 20 tion) {. .
a680: 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 49 var previousI
a690: 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 sBindingElement
a6a0: 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 = this.context.i
a6b0: 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 3b sBindingElement;
a6c0: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
a6d0: 70 72 65 76 69 6f 75 73 49 73 41 73 73 69 67 6e previousIsAssign
a6e0: 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 74 68 69 mentTarget = thi
a6f0: 73 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 s.context.isAssi
a700: 67 6e 6d 65 6e 74 54 61 72 67 65 74 3b 0a 20 20 gnmentTarget;.
a710: 09 20 20 20 20 20 20 20 20 76 61 72 20 70 72 65 . var pre
a720: 76 69 6f 75 73 46 69 72 73 74 43 6f 76 65 72 49 viousFirstCoverI
a730: 6e 69 74 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 nitializedNameEr
a740: 72 6f 72 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 ror = this.conte
a750: 78 74 2e 66 69 72 73 74 43 6f 76 65 72 49 6e 69 xt.firstCoverIni
a760: 74 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 72 6f tializedNameErro
a770: 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 r;. . th
a780: 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e is.context.isBin
a790: 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 74 72 dingElement = tr
a7a0: 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ue;. . t
a7b0: 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 his.context.isAs
a7c0: 73 69 67 6e 6d 65 6e 74 54 61 72 67 65 74 20 3d signmentTarget =
a7d0: 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 true;. .
a7e0: 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 66 this.context.f
a7f0: 69 72 73 74 43 6f 76 65 72 49 6e 69 74 69 61 6c irstCoverInitial
a800: 69 7a 65 64 4e 61 6d 65 45 72 72 6f 72 20 3d 20 izedNameError =
a810: 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 null;. .
a820: 20 76 61 72 20 72 65 73 75 6c 74 20 3d 20 70 61 var result = pa
a830: 72 73 65 46 75 6e 63 74 69 6f 6e 2e 63 61 6c 6c rseFunction.call
a840: 28 74 68 69 73 29 3b 0a 20 20 09 20 20 20 20 20 (this);. .
a850: 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e this.context.
a860: 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 isBindingElement
a870: 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e = this.context.
a880: 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 isBindingElement
a890: 20 26 26 20 70 72 65 76 69 6f 75 73 49 73 42 69 && previousIsBi
a8a0: 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 3b 0a 20 20 ndingElement;.
a8b0: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
a8c0: 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 ntext.isAssignme
a8d0: 6e 74 54 61 72 67 65 74 20 3d 20 74 68 69 73 2e ntTarget = this.
a8e0: 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
a8f0: 6d 65 6e 74 54 61 72 67 65 74 20 26 26 20 70 72 mentTarget && pr
a900: 65 76 69 6f 75 73 49 73 41 73 73 69 67 6e 6d 65 eviousIsAssignme
a910: 6e 74 54 61 72 67 65 74 3b 0a 20 20 09 20 20 20 ntTarget;. .
a920: 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 this.contex
a930: 74 2e 66 69 72 73 74 43 6f 76 65 72 49 6e 69 74 t.firstCoverInit
a940: 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 72 6f 72 ializedNameError
a950: 20 3d 20 70 72 65 76 69 6f 75 73 46 69 72 73 74 = previousFirst
a960: 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 CoverInitialized
a970: 4e 61 6d 65 45 72 72 6f 72 20 7c 7c 20 74 68 69 NameError || thi
a980: 73 2e 63 6f 6e 74 65 78 74 2e 66 69 72 73 74 43 s.context.firstC
a990: 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 4e overInitializedN
a9a0: 61 6d 65 45 72 72 6f 72 3b 0a 20 20 09 20 20 20 ameError;. .
a9b0: 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 75 return resu
a9c0: 6c 74 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 lt;. . };.
a9d0: 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
a9e0: 6f 74 79 70 65 2e 63 6f 6e 73 75 6d 65 53 65 6d otype.consumeSem
a9f0: 69 63 6f 6c 6f 6e 20 3d 20 66 75 6e 63 74 69 6f icolon = functio
aa00: 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
aa10: 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 if (this.match
aa20: 28 27 3b 27 29 29 20 7b 0a 20 20 09 20 20 20 20 (';')) {. .
aa30: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 this.nex
aa40: 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 tToken();. .
aa50: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
aa60: 20 20 65 6c 73 65 20 69 66 20 28 21 74 68 69 73 else if (!this
aa70: 2e 68 61 73 4c 69 6e 65 54 65 72 6d 69 6e 61 74 .hasLineTerminat
aa80: 6f 72 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 or) {. .
aa90: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c 6f if (this.lo
aaa0: 6f 6b 61 68 65 61 64 2e 74 79 70 65 20 21 3d 3d okahead.type !==
aab0: 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 45 token_1.Token.E
aac0: 4f 46 20 26 26 20 21 74 68 69 73 2e 6d 61 74 63 OF && !this.matc
aad0: 68 28 27 7d 27 29 29 20 7b 0a 20 20 09 20 20 20 h('}')) {. .
aae0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
aaf0: 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 s.throwUnexpecte
ab00: 64 54 6f 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b dToken(this.look
ab10: 61 68 65 61 64 29 3b 0a 20 20 09 20 20 20 20 20 ahead);. .
ab20: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
ab30: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 73 this.las
ab40: 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 20 3d 20 tMarker.index =
ab50: 74 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 this.startMarker
ab60: 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
ab70: 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 73 74 this.last
ab80: 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 Marker.lineNumbe
ab90: 72 20 3d 20 74 68 69 73 2e 73 74 61 72 74 4d 61 r = this.startMa
aba0: 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b rker.lineNumber;
abb0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
abc0: 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 72 2e this.lastMarker.
abd0: 6c 69 6e 65 53 74 61 72 74 20 3d 20 74 68 69 73 lineStart = this
abe0: 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e 6c 69 6e .startMarker.lin
abf0: 65 53 74 61 72 74 3b 0a 20 20 09 20 20 20 20 20 eStart;. .
ac00: 20 20 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 }. . };.
ac10: 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 . // ECMA-26
ac20: 32 20 31 32 2e 32 20 50 72 69 6d 61 72 79 20 45 2 12.2 Primary E
ac30: 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 09 20 20 xpressions. .
ac40: 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 Parser.prototy
ac50: 70 65 2e 70 61 72 73 65 50 72 69 6d 61 72 79 45 pe.parsePrimaryE
ac60: 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 xpression = func
ac70: 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
ac80: 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 var node =
ac90: 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 this.createNode(
aca0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
acb0: 72 20 65 78 70 72 3b 0a 20 20 09 20 20 20 20 20 r expr;. .
acc0: 20 20 20 76 61 72 20 76 61 6c 75 65 2c 20 74 6f var value, to
acd0: 6b 65 6e 2c 20 72 61 77 3b 0a 20 20 09 20 20 20 ken, raw;. .
ace0: 20 20 20 20 20 73 77 69 74 63 68 20 28 74 68 69 switch (thi
acf0: 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 s.lookahead.type
ad00: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
ad10: 20 20 20 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e case token_1.
ad20: 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 Token.Identifier
ad30: 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
ad40: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 73 6f if (this.so
ad50: 75 72 63 65 54 79 70 65 20 3d 3d 3d 20 27 6d 6f urceType === 'mo
ad60: 64 75 6c 65 27 20 26 26 20 74 68 69 73 2e 6c 6f dule' && this.lo
ad70: 6f 6b 61 68 65 61 64 2e 76 61 6c 75 65 20 3d 3d okahead.value ==
ad80: 3d 20 27 61 77 61 69 74 27 29 20 7b 0a 20 20 09 = 'await') {. .
ad90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ada0: 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 this.tolerat
adb0: 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e eUnexpectedToken
adc0: 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 29 (this.lookahead)
add0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
ade0: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
adf0: 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d expr =
ae00: 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
ae10: 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 49 64 ode, new Node.Id
ae20: 65 6e 74 69 66 69 65 72 28 74 68 69 73 2e 6e 65 entifier(this.ne
ae30: 78 74 54 6f 6b 65 6e 28 29 2e 76 61 6c 75 65 29 xtToken().value)
ae40: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
ae50: 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
ae60: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
ae70: 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e token_1.Token.N
ae80: 75 6d 65 72 69 63 4c 69 74 65 72 61 6c 3a 0a 20 umericLiteral:.
ae90: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
aea0: 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e se token_1.Token
aeb0: 2e 53 74 72 69 6e 67 4c 69 74 65 72 61 6c 3a 0a .StringLiteral:.
aec0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
aed0: 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 if (this.cont
aee0: 65 78 74 2e 73 74 72 69 63 74 20 26 26 20 74 68 ext.strict && th
aef0: 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 6f 63 74 is.lookahead.oct
af00: 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 al) {. .
af10: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
af20: 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 65 s.tolerateUnexpe
af30: 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 2e 6c ctedToken(this.l
af40: 6f 6f 6b 61 68 65 61 64 2c 20 6d 65 73 73 61 67 ookahead, messag
af50: 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 es_1.Messages.St
af60: 72 69 63 74 4f 63 74 61 6c 4c 69 74 65 72 61 6c rictOctalLiteral
af70: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
af80: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
af90: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
afa0: 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
afb0: 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 66 61 6c mentTarget = fal
afc0: 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 se;. .
afd0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
afe0: 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
aff0: 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 ment = false;.
b000: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b010: 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e 65 token = this.ne
b020: 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 xtToken();. .
b030: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 ra
b040: 77 20 3d 20 74 68 69 73 2e 67 65 74 54 6f 6b 65 w = this.getToke
b050: 6e 52 61 77 28 74 6f 6b 65 6e 29 3b 0a 20 20 09 nRaw(token);. .
b060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b070: 65 78 70 72 20 3d 20 74 68 69 73 2e 66 69 6e 61 expr = this.fina
b080: 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e lize(node, new N
b090: 6f 64 65 2e 4c 69 74 65 72 61 6c 28 74 6f 6b 65 ode.Literal(toke
b0a0: 6e 2e 76 61 6c 75 65 2c 20 72 61 77 29 29 3b 0a n.value, raw));.
b0b0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b0c0: 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
b0d0: 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f case to
b0e0: 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 42 6f 6f 6c ken_1.Token.Bool
b0f0: 65 61 6e 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 eanLiteral:. .
b100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
b110: 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 his.context.isAs
b120: 73 69 67 6e 6d 65 6e 74 54 61 72 67 65 74 20 3d signmentTarget =
b130: 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 false;. .
b140: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
b150: 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e context.isBindin
b160: 67 45 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 65 gElement = false
b170: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
b180: 20 20 20 20 20 74 6f 6b 65 6e 20 3d 20 74 68 69 token = thi
b190: 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
b1a0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b1b0: 20 20 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 3d 20 token.value =
b1c0: 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d (token.value ===
b1d0: 20 27 74 72 75 65 27 29 3b 0a 20 20 09 20 20 20 'true');. .
b1e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 raw
b1f0: 20 3d 20 74 68 69 73 2e 67 65 74 54 6f 6b 65 6e = this.getToken
b200: 52 61 77 28 74 6f 6b 65 6e 29 3b 0a 20 20 09 20 Raw(token);. .
b210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
b220: 78 70 72 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c xpr = this.final
b230: 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
b240: 64 65 2e 4c 69 74 65 72 61 6c 28 74 6f 6b 65 6e de.Literal(token
b250: 2e 76 61 6c 75 65 2c 20 72 61 77 29 29 3b 0a 20 .value, raw));.
b260: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b270: 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 break;. .
b280: 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b case tok
b290: 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e 75 6c 6c 4c en_1.Token.NullL
b2a0: 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 20 20 20 iteral:. .
b2b0: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
b2c0: 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
b2d0: 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 66 61 6c mentTarget = fal
b2e0: 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 se;. .
b2f0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
b300: 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
b310: 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 ment = false;.
b320: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b330: 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e 65 token = this.ne
b340: 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 xtToken();. .
b350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f to
b360: 6b 65 6e 2e 76 61 6c 75 65 20 3d 20 6e 75 6c 6c ken.value = null
b370: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
b380: 20 20 20 20 20 72 61 77 20 3d 20 74 68 69 73 2e raw = this.
b390: 67 65 74 54 6f 6b 65 6e 52 61 77 28 74 6f 6b 65 getTokenRaw(toke
b3a0: 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 n);. .
b3b0: 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 expr = th
b3c0: 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 is.finalize(node
b3d0: 2c 20 6e 65 77 20 4e 6f 64 65 2e 4c 69 74 65 72 , new Node.Liter
b3e0: 61 6c 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 2c 20 al(token.value,
b3f0: 72 61 77 29 29 3b 0a 20 20 09 20 20 20 20 20 20 raw));. .
b400: 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
b410: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
b420: 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b case token_1.Tok
b430: 65 6e 2e 54 65 6d 70 6c 61 74 65 3a 0a 20 20 09 en.Template:. .
b440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b450: 65 78 70 72 20 3d 20 74 68 69 73 2e 70 61 72 73 expr = this.pars
b460: 65 54 65 6d 70 6c 61 74 65 4c 69 74 65 72 61 6c eTemplateLiteral
b470: 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ();. .
b480: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
b490: 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
b4a0: 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e e token_1.Token.
b4b0: 50 75 6e 63 74 75 61 74 6f 72 3a 0a 20 20 09 20 Punctuator:. .
b4c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
b4d0: 61 6c 75 65 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b alue = this.look
b4e0: 61 68 65 61 64 2e 76 61 6c 75 65 3b 0a 20 20 09 ahead.value;. .
b4f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b500: 73 77 69 74 63 68 20 28 76 61 6c 75 65 29 20 7b switch (value) {
b510: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
b520: 20 20 20 20 20 20 20 20 63 61 73 65 20 27 28 27 case '('
b530: 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
b540: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
b550: 73 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 s.context.isBind
b560: 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 61 6c ingElement = fal
b570: 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 se;. .
b580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
b590: 78 70 72 20 3d 20 74 68 69 73 2e 69 6e 68 65 72 xpr = this.inher
b5a0: 69 74 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 itCoverGrammar(t
b5b0: 68 69 73 2e 70 61 72 73 65 47 72 6f 75 70 45 78 his.parseGroupEx
b5c0: 70 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 pression);. .
b5d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b5e0: 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
b5f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b600: 20 20 20 20 63 61 73 65 20 27 5b 27 3a 0a 20 20 case '[':.
b610: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b620: 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 expr =
b630: 74 68 69 73 2e 69 6e 68 65 72 69 74 43 6f 76 65 this.inheritCove
b640: 72 47 72 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 rGrammar(this.pa
b650: 72 73 65 41 72 72 61 79 49 6e 69 74 69 61 6c 69 rseArrayInitiali
b660: 7a 65 72 29 3b 0a 20 20 09 20 20 20 20 20 20 20 zer);. .
b670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b680: 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
b690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
b6a0: 61 73 65 20 27 7b 27 3a 0a 20 20 09 20 20 20 20 ase '{':. .
b6b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b6c0: 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e expr = this.
b6d0: 69 6e 68 65 72 69 74 43 6f 76 65 72 47 72 61 6d inheritCoverGram
b6e0: 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 4f 62 mar(this.parseOb
b6f0: 6a 65 63 74 49 6e 69 74 69 61 6c 69 7a 65 72 29 jectInitializer)
b700: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
b710: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
b720: 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
b730: 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
b740: 27 2f 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 '/':. .
b750: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
b760: 20 27 2f 3d 27 3a 0a 20 20 09 20 20 20 20 20 20 '/=':. .
b770: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b780: 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 this.context.i
b790: 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 65 sAssignmentTarge
b7a0: 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 t = false;. .
b7b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b7c0: 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 this.conte
b7d0: 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d xt.isBindingElem
b7e0: 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 ent = false;. .
b7f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b800: 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 this.sca
b810: 6e 6e 65 72 2e 69 6e 64 65 78 20 3d 20 74 68 69 nner.index = thi
b820: 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e 69 6e s.startMarker.in
b830: 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 dex;. .
b840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b850: 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e 65 78 token = this.nex
b860: 74 52 65 67 65 78 54 6f 6b 65 6e 28 29 3b 0a 20 tRegexToken();.
b870: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b880: 20 20 20 20 20 20 20 20 20 20 72 61 77 20 3d 20 raw =
b890: 74 68 69 73 2e 67 65 74 54 6f 6b 65 6e 52 61 77 this.getTokenRaw
b8a0: 28 74 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 (token);. .
b8b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b8c0: 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e expr = this.
b8d0: 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
b8e0: 65 77 20 4e 6f 64 65 2e 52 65 67 65 78 4c 69 74 ew Node.RegexLit
b8f0: 65 72 61 6c 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 eral(token.value
b900: 2c 20 72 61 77 2c 20 74 6f 6b 65 6e 2e 72 65 67 , raw, token.reg
b910: 65 78 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ex));. .
b920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b930: 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
b940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 d
b950: 65 66 61 75 6c 74 3a 0a 20 20 09 20 20 20 20 20 efault:. .
b960: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b970: 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 this.throwUne
b980: 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 xpectedToken(thi
b990: 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 29 3b 0a s.nextToken());.
b9a0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b9b0: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
b9c0: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
b9d0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
b9e0: 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e se token_1.Token
b9f0: 2e 4b 65 79 77 6f 72 64 3a 0a 20 20 09 20 20 20 .Keyword:. .
ba00: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
ba10: 28 21 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 (!this.context.s
ba20: 74 72 69 63 74 20 26 26 20 74 68 69 73 2e 63 6f trict && this.co
ba30: 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 ntext.allowYield
ba40: 20 26 26 20 74 68 69 73 2e 6d 61 74 63 68 4b 65 && this.matchKe
ba50: 79 77 6f 72 64 28 27 79 69 65 6c 64 27 29 29 20 yword('yield'))
ba60: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
ba70: 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 expr =
ba80: 74 68 69 73 2e 70 61 72 73 65 49 64 65 6e 74 69 this.parseIdenti
ba90: 66 69 65 72 4e 61 6d 65 28 29 3b 0a 20 20 09 20 fierName();. .
baa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
bab0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
bac0: 20 20 20 20 65 6c 73 65 20 69 66 20 28 21 74 68 else if (!th
bad0: 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 is.context.stric
bae0: 74 20 26 26 20 74 68 69 73 2e 6d 61 74 63 68 4b t && this.matchK
baf0: 65 79 77 6f 72 64 28 27 6c 65 74 27 29 29 20 7b eyword('let')) {
bb00: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
bb10: 20 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 expr = t
bb20: 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 his.finalize(nod
bb30: 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 49 64 65 6e e, new Node.Iden
bb40: 74 69 66 69 65 72 28 74 68 69 73 2e 6e 65 78 74 tifier(this.next
bb50: 54 6f 6b 65 6e 28 29 2e 76 61 6c 75 65 29 29 3b Token().value));
bb60: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
bb70: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
bb80: 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a else {.
bb90: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
bba0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
bbb0: 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 ext.isAssignment
bbc0: 54 61 72 67 65 74 20 3d 20 66 61 6c 73 65 3b 0a Target = false;.
bbd0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
bbe0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
bbf0: 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
bc00: 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 ment = false;.
bc10: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
bc20: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 if (this.ma
bc30: 74 63 68 4b 65 79 77 6f 72 64 28 27 66 75 6e 63 tchKeyword('func
bc40: 74 69 6f 6e 27 29 29 20 7b 0a 20 20 09 20 20 20 tion')) {. .
bc50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
bc60: 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 expr = this
bc70: 2e 70 61 72 73 65 46 75 6e 63 74 69 6f 6e 45 78 .parseFunctionEx
bc80: 70 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 pression();. .
bc90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
bca0: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
bcb0: 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
bcc0: 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 4b if (this.matchK
bcd0: 65 79 77 6f 72 64 28 27 74 68 69 73 27 29 29 20 eyword('this'))
bce0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
bcf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
bd00: 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
bd10: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
bd20: 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d expr =
bd30: 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
bd40: 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 54 68 ode, new Node.Th
bd50: 69 73 45 78 70 72 65 73 73 69 6f 6e 28 29 29 3b isExpression());
bd60: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
bd70: 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
bd80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
bd90: 20 65 6c 73 65 20 69 66 20 28 74 68 69 73 2e 6d else if (this.m
bda0: 61 74 63 68 4b 65 79 77 6f 72 64 28 27 63 6c 61 atchKeyword('cla
bdb0: 73 73 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 ss')) {. .
bdc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
bdd0: 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e 70 expr = this.p
bde0: 61 72 73 65 43 6c 61 73 73 45 78 70 72 65 73 73 arseClassExpress
bdf0: 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ion();. .
be00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
be10: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
be20: 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 else {.
be30: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
be40: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
be50: 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b rowUnexpectedTok
be60: 65 6e 28 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 en(this.nextToke
be70: 6e 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 n());. .
be80: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
be90: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
bea0: 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
beb0: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
bec0: 09 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 . def
bed0: 61 75 6c 74 3a 0a 20 20 09 20 20 20 20 20 20 20 ault:. .
bee0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
bef0: 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b rowUnexpectedTok
bf00: 65 6e 28 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 en(this.nextToke
bf10: 6e 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 n());. .
bf20: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
bf30: 74 75 72 6e 20 65 78 70 72 3b 0a 20 20 09 20 20 turn expr;. .
bf40: 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 };. . // E
bf50: 43 4d 41 2d 32 36 32 20 31 32 2e 32 2e 35 20 41 CMA-262 12.2.5 A
bf60: 72 72 61 79 20 49 6e 69 74 69 61 6c 69 7a 65 72 rray Initializer
bf70: 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
bf80: 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 53 70 rototype.parseSp
bf90: 72 65 61 64 45 6c 65 6d 65 6e 74 20 3d 20 66 75 readElement = fu
bfa0: 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
bfb0: 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 var node
bfc0: 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 = this.createNod
bfd0: 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 e();. .
bfe0: 74 68 69 73 2e 65 78 70 65 63 74 28 27 2e 2e 2e this.expect('...
bff0: 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ');. . v
c000: 61 72 20 61 72 67 20 3d 20 74 68 69 73 2e 69 6e ar arg = this.in
c010: 68 65 72 69 74 43 6f 76 65 72 47 72 61 6d 6d 61 heritCoverGramma
c020: 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 73 69 r(this.parseAssi
c030: 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e gnmentExpression
c040: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 );. . re
c050: 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
c060: 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
c070: 65 2e 53 70 72 65 61 64 45 6c 65 6d 65 6e 74 28 e.SpreadElement(
c080: 61 72 67 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b arg));. . };
c090: 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
c0a0: 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 41 72 rototype.parseAr
c0b0: 72 61 79 49 6e 69 74 69 61 6c 69 7a 65 72 20 3d rayInitializer =
c0c0: 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
c0d0: 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 68 . var th
c0e0: 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 is$1 = this;..
c0f0: 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 . var nod
c100: 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e e = this.createN
c110: 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ode();. .
c120: 20 20 76 61 72 20 65 6c 65 6d 65 6e 74 73 20 3d var elements =
c130: 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 [];. .
c140: 74 68 69 73 2e 65 78 70 65 63 74 28 27 5b 27 29 this.expect('[')
c150: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 77 68 69 ;. . whi
c160: 6c 65 20 28 21 74 68 69 73 2e 6d 61 74 63 68 28 le (!this.match(
c170: 27 5d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 ']')) {. .
c180: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 24 if (this$
c190: 31 2e 6d 61 74 63 68 28 27 2c 27 29 29 20 7b 0a 1.match(',')) {.
c1a0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
c1b0: 20 20 20 74 68 69 73 24 31 2e 6e 65 78 74 54 6f this$1.nextTo
c1c0: 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ken();. .
c1d0: 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e elemen
c1e0: 74 73 2e 70 75 73 68 28 6e 75 6c 6c 29 3b 0a 20 ts.push(null);.
c1f0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
c200: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
c210: 6c 73 65 20 69 66 20 28 74 68 69 73 24 31 2e 6d lse if (this$1.m
c220: 61 74 63 68 28 27 2e 2e 2e 27 29 29 20 7b 0a 20 atch('...')) {.
c230: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
c240: 20 20 76 61 72 20 65 6c 65 6d 65 6e 74 20 3d 20 var element =
c250: 74 68 69 73 24 31 2e 70 61 72 73 65 53 70 72 65 this$1.parseSpre
c260: 61 64 45 6c 65 6d 65 6e 74 28 29 3b 0a 20 20 09 adElement();. .
c270: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c280: 69 66 20 28 21 74 68 69 73 24 31 2e 6d 61 74 63 if (!this$1.matc
c290: 68 28 27 5d 27 29 29 20 7b 0a 20 20 09 20 20 20 h(']')) {. .
c2a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c2b0: 20 74 68 69 73 24 31 2e 63 6f 6e 74 65 78 74 2e this$1.context.
c2c0: 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 isAssignmentTarg
c2d0: 65 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 et = false;. .
c2e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c2f0: 20 20 20 74 68 69 73 24 31 2e 63 6f 6e 74 65 78 this$1.contex
c300: 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 t.isBindingEleme
c310: 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 nt = false;. .
c320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c330: 20 20 20 74 68 69 73 24 31 2e 65 78 70 65 63 74 this$1.expect
c340: 28 27 2c 27 29 3b 0a 20 20 09 20 20 20 20 20 20 (',');. .
c350: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
c360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
c370: 6c 65 6d 65 6e 74 73 2e 70 75 73 68 28 65 6c 65 lements.push(ele
c380: 6d 65 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 20 ment);. .
c390: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
c3a0: 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 else {.
c3b0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
c3c0: 20 65 6c 65 6d 65 6e 74 73 2e 70 75 73 68 28 74 elements.push(t
c3d0: 68 69 73 24 31 2e 69 6e 68 65 72 69 74 43 6f 76 his$1.inheritCov
c3e0: 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 24 31 erGrammar(this$1
c3f0: 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 6e 74 .parseAssignment
c400: 45 78 70 72 65 73 73 69 6f 6e 29 29 3b 0a 20 20 Expression));.
c410: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
c420: 20 69 66 20 28 21 74 68 69 73 24 31 2e 6d 61 74 if (!this$1.mat
c430: 63 68 28 27 5d 27 29 29 20 7b 0a 20 20 09 20 20 ch(']')) {. .
c440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c450: 20 20 74 68 69 73 24 31 2e 65 78 70 65 63 74 28 this$1.expect(
c460: 27 2c 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ',');. .
c470: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
c480: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
c490: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
c4a0: 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 this.expect(
c4b0: 27 5d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ']');. .
c4c0: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e return this.fin
c4d0: 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 alize(node, new
c4e0: 4e 6f 64 65 2e 41 72 72 61 79 45 78 70 72 65 73 Node.ArrayExpres
c4f0: 73 69 6f 6e 28 65 6c 65 6d 65 6e 74 73 29 29 3b sion(elements));
c500: 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
c510: 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 // ECMA-262 12
c520: 2e 32 2e 36 20 4f 62 6a 65 63 74 20 49 6e 69 74 .2.6 Object Init
c530: 69 61 6c 69 7a 65 72 0a 20 20 09 20 20 20 20 50 ializer. . P
c540: 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
c550: 70 61 72 73 65 50 72 6f 70 65 72 74 79 4d 65 74 parsePropertyMet
c560: 68 6f 64 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 hod = function (
c570: 70 61 72 61 6d 73 29 20 7b 0a 20 20 09 20 20 20 params) {. .
c580: 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 this.contex
c590: 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 t.isAssignmentTa
c5a0: 72 67 65 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 rget = false;.
c5b0: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
c5c0: 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 ntext.isBindingE
c5d0: 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a lement = false;.
c5e0: 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 70 . var p
c5f0: 72 65 76 69 6f 75 73 53 74 72 69 63 74 20 3d 20 reviousStrict =
c600: 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 this.context.str
c610: 69 63 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ict;. .
c620: 76 61 72 20 62 6f 64 79 20 3d 20 74 68 69 73 2e var body = this.
c630: 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d isolateCoverGram
c640: 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 46 75 mar(this.parseFu
c650: 6e 63 74 69 6f 6e 53 6f 75 72 63 65 45 6c 65 6d nctionSourceElem
c660: 65 6e 74 73 29 3b 0a 20 20 09 20 20 20 20 20 20 ents);. .
c670: 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 if (this.conte
c680: 78 74 2e 73 74 72 69 63 74 20 26 26 20 70 61 72 xt.strict && par
c690: 61 6d 73 2e 66 69 72 73 74 52 65 73 74 72 69 63 ams.firstRestric
c6a0: 74 65 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ted) {. .
c6b0: 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 this.toler
c6c0: 61 74 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b ateUnexpectedTok
c6d0: 65 6e 28 70 61 72 61 6d 73 2e 66 69 72 73 74 52 en(params.firstR
c6e0: 65 73 74 72 69 63 74 65 64 2c 20 70 61 72 61 6d estricted, param
c6f0: 73 2e 6d 65 73 73 61 67 65 29 3b 0a 20 20 09 20 s.message);. .
c700: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
c710: 20 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e if (this.con
c720: 74 65 78 74 2e 73 74 72 69 63 74 20 26 26 20 70 text.strict && p
c730: 61 72 61 6d 73 2e 73 74 72 69 63 74 65 64 29 20 arams.stricted)
c740: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
c750: 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e this.tolerateUn
c760: 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 70 61 expectedToken(pa
c770: 72 61 6d 73 2e 73 74 72 69 63 74 65 64 2c 20 70 rams.stricted, p
c780: 61 72 61 6d 73 2e 6d 65 73 73 61 67 65 29 3b 0a arams.message);.
c790: 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
c7a0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
c7b0: 74 65 78 74 2e 73 74 72 69 63 74 20 3d 20 70 72 text.strict = pr
c7c0: 65 76 69 6f 75 73 53 74 72 69 63 74 3b 0a 20 20 eviousStrict;.
c7d0: 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
c7e0: 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 7d 3b 0a body;. . };.
c7f0: 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
c800: 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 50 72 6f ototype.parsePro
c810: 70 65 72 74 79 4d 65 74 68 6f 64 46 75 6e 63 74 pertyMethodFunct
c820: 69 6f 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ion = function (
c830: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
c840: 61 72 20 69 73 47 65 6e 65 72 61 74 6f 72 20 3d ar isGenerator =
c850: 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 false;. .
c860: 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
c870: 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
c880: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
c890: 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 69 65 previousAllowYie
c8a0: 6c 64 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 ld = this.contex
c8b0: 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 3b 0a 20 20 t.allowYield;.
c8c0: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
c8d0: 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 ntext.allowYield
c8e0: 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 = false;. .
c8f0: 20 20 20 20 20 76 61 72 20 70 61 72 61 6d 73 20 var params
c900: 3d 20 74 68 69 73 2e 70 61 72 73 65 46 6f 72 6d = this.parseForm
c910: 61 6c 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0a alParameters();.
c920: 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6d . var m
c930: 65 74 68 6f 64 20 3d 20 74 68 69 73 2e 70 61 72 ethod = this.par
c940: 73 65 50 72 6f 70 65 72 74 79 4d 65 74 68 6f 64 sePropertyMethod
c950: 28 70 61 72 61 6d 73 29 3b 0a 20 20 09 20 20 20 (params);. .
c960: 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 this.contex
c970: 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 70 t.allowYield = p
c980: 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 69 65 6c reviousAllowYiel
c990: 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 d;. . re
c9a0: 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
c9b0: 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
c9c0: 65 2e 46 75 6e 63 74 69 6f 6e 45 78 70 72 65 73 e.FunctionExpres
c9d0: 73 69 6f 6e 28 6e 75 6c 6c 2c 20 70 61 72 61 6d sion(null, param
c9e0: 73 2e 70 61 72 61 6d 73 2c 20 6d 65 74 68 6f 64 s.params, method
c9f0: 2c 20 69 73 47 65 6e 65 72 61 74 6f 72 29 29 3b , isGenerator));
ca00: 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
ca10: 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 Parser.prototy
ca20: 70 65 2e 70 61 72 73 65 4f 62 6a 65 63 74 50 72 pe.parseObjectPr
ca30: 6f 70 65 72 74 79 4b 65 79 20 3d 20 66 75 6e 63 opertyKey = func
ca40: 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
ca50: 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 var node =
ca60: 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 this.createNode(
ca70: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
ca80: 72 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e r token = this.n
ca90: 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 extToken();. .
caa0: 20 20 20 20 20 20 20 76 61 72 20 6b 65 79 20 3d var key =
cab0: 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 null;. .
cac0: 20 20 73 77 69 74 63 68 20 28 74 6f 6b 65 6e 2e switch (token.
cad0: 74 79 70 65 29 20 7b 0a 20 20 09 20 20 20 20 20 type) {. .
cae0: 20 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b 65 case toke
caf0: 6e 5f 31 2e 54 6f 6b 65 6e 2e 53 74 72 69 6e 67 n_1.Token.String
cb00: 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 20 20 Literal:. .
cb10: 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b case tok
cb20: 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e 75 6d 65 72 en_1.Token.Numer
cb30: 69 63 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 icLiteral:. .
cb40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 if
cb50: 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 (this.context.s
cb60: 74 72 69 63 74 20 26 26 20 74 6f 6b 65 6e 2e 6f trict && token.o
cb70: 63 74 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 ctal) {. .
cb80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
cb90: 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 his.tolerateUnex
cba0: 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 pectedToken(toke
cbb0: 6e 2c 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 n, messages_1.Me
cbc0: 73 73 61 67 65 73 2e 53 74 72 69 63 74 4f 63 74 ssages.StrictOct
cbd0: 61 6c 4c 69 74 65 72 61 6c 29 3b 0a 20 20 09 20 alLiteral);. .
cbe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
cbf0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
cc00: 20 20 20 20 76 61 72 20 72 61 77 20 3d 20 74 68 var raw = th
cc10: 69 73 2e 67 65 74 54 6f 6b 65 6e 52 61 77 28 74 is.getTokenRaw(t
cc20: 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 oken);. .
cc30: 20 20 20 20 20 20 20 20 20 20 6b 65 79 20 3d 20 key =
cc40: 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f this.finalize(no
cc50: 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 4c 69 74 de, new Node.Lit
cc60: 65 72 61 6c 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 eral(token.value
cc70: 2c 20 72 61 77 29 29 3b 0a 20 20 09 20 20 20 20 , raw));. .
cc80: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
cc90: 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 k;. .
cca0: 20 20 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 case token_1.T
ccb0: 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 3a oken.Identifier:
ccc0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
ccd0: 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b case token_1.Tok
cce0: 65 6e 2e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 en.BooleanLitera
ccf0: 6c 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 l:. .
cd00: 20 20 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 case token_1.T
cd10: 6f 6b 65 6e 2e 4e 75 6c 6c 4c 69 74 65 72 61 6c oken.NullLiteral
cd20: 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
cd30: 20 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f case token_1.To
cd40: 6b 65 6e 2e 4b 65 79 77 6f 72 64 3a 0a 20 20 09 ken.Keyword:. .
cd50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
cd60: 6b 65 79 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c key = this.final
cd70: 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
cd80: 64 65 2e 49 64 65 6e 74 69 66 69 65 72 28 74 6f de.Identifier(to
cd90: 6b 65 6e 2e 76 61 6c 75 65 29 29 3b 0a 20 20 09 ken.value));. .
cda0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
cdb0: 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 break;. .
cdc0: 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b 65 6e case token
cdd0: 5f 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 74 75 61 _1.Token.Punctua
cde0: 74 6f 72 3a 0a 20 20 09 20 20 20 20 20 20 20 20 tor:. .
cdf0: 20 20 20 20 20 20 20 20 69 66 20 28 74 6f 6b 65 if (toke
ce00: 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 5b 27 29 n.value === '[')
ce10: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
ce20: 20 20 20 20 20 20 20 20 20 20 6b 65 79 20 3d 20 key =
ce30: 74 68 69 73 2e 69 73 6f 6c 61 74 65 43 6f 76 65 this.isolateCove
ce40: 72 47 72 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 rGrammar(this.pa
ce50: 72 73 65 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 rseAssignmentExp
ce60: 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 ression);. .
ce70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ce80: 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 5d 27 this.expect(']'
ce90: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
cea0: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
ceb0: 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 else
cec0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
ced0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
cee0: 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b rowUnexpectedTok
cef0: 65 6e 28 74 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 en(token);. .
cf00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
cf10: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
cf20: 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
cf30: 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 default
cf40: 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
cf50: 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
cf60: 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 nexpectedToken(t
cf70: 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 oken);. .
cf80: 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 }. . r
cf90: 65 74 75 72 6e 20 6b 65 79 3b 0a 20 20 09 20 20 eturn key;. .
cfa0: 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 };. . Pars
cfb0: 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 69 73 50 er.prototype.isP
cfc0: 72 6f 70 65 72 74 79 4b 65 79 20 3d 20 66 75 6e ropertyKey = fun
cfd0: 63 74 69 6f 6e 20 28 6b 65 79 2c 20 76 61 6c 75 ction (key, valu
cfe0: 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 e) {. .
cff0: 72 65 74 75 72 6e 20 28 6b 65 79 2e 74 79 70 65 return (key.type
d000: 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 === syntax_1.Sy
d010: 6e 74 61 78 2e 49 64 65 6e 74 69 66 69 65 72 20 ntax.Identifier
d020: 26 26 20 6b 65 79 2e 6e 61 6d 65 20 3d 3d 3d 20 && key.name ===
d030: 76 61 6c 75 65 29 20 7c 7c 0a 20 20 09 20 20 20 value) ||. .
d040: 20 20 20 20 20 20 20 20 20 28 6b 65 79 2e 74 79 (key.ty
d050: 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e pe === syntax_1.
d060: 53 79 6e 74 61 78 2e 4c 69 74 65 72 61 6c 20 26 Syntax.Literal &
d070: 26 20 6b 65 79 2e 76 61 6c 75 65 20 3d 3d 3d 20 & key.value ===
d080: 76 61 6c 75 65 29 3b 0a 20 20 09 20 20 20 20 7d value);. . }
d090: 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e ;. . Parser.
d0a0: 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 4f prototype.parseO
d0b0: 62 6a 65 63 74 50 72 6f 70 65 72 74 79 20 3d 20 bjectProperty =
d0c0: 66 75 6e 63 74 69 6f 6e 20 28 68 61 73 50 72 6f function (hasPro
d0d0: 74 6f 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 to) {. .
d0e0: 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 var node = this
d0f0: 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 .createNode();.
d100: 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 6f . var to
d110: 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 ken = this.looka
d120: 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 head;. .
d130: 20 76 61 72 20 6b 69 6e 64 3b 0a 20 20 09 20 20 var kind;. .
d140: 20 20 20 20 20 20 76 61 72 20 6b 65 79 3b 0a 20 var key;.
d150: 20 09 20 20 20 20 20 20 20 20 76 61 72 20 76 61 . var va
d160: 6c 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lue;. .
d170: 76 61 72 20 63 6f 6d 70 75 74 65 64 20 3d 20 66 var computed = f
d180: 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
d190: 20 76 61 72 20 6d 65 74 68 6f 64 20 3d 20 66 61 var method = fa
d1a0: 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lse;. .
d1b0: 76 61 72 20 73 68 6f 72 74 68 61 6e 64 20 3d 20 var shorthand =
d1c0: 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 false;. .
d1d0: 20 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 70 65 if (token.type
d1e0: 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b === token_1.Tok
d1f0: 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 29 20 7b en.Identifier) {
d200: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
d210: 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 this.nextToken()
d220: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
d230: 20 6b 65 79 20 3d 20 74 68 69 73 2e 66 69 6e 61 key = this.fina
d240: 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e lize(node, new N
d250: 6f 64 65 2e 49 64 65 6e 74 69 66 69 65 72 28 74 ode.Identifier(t
d260: 6f 6b 65 6e 2e 76 61 6c 75 65 29 29 3b 0a 20 20 oken.value));.
d270: 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
d280: 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 else if (t
d290: 68 69 73 2e 6d 61 74 63 68 28 27 2a 27 29 29 20 his.match('*'))
d2a0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
d2b0: 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 this.nextToken(
d2c0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
d2d0: 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 . else
d2e0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
d2f0: 20 63 6f 6d 70 75 74 65 64 20 3d 20 74 68 69 73 computed = this
d300: 2e 6d 61 74 63 68 28 27 5b 27 29 3b 0a 20 20 09 .match('[');. .
d310: 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 20 key
d320: 3d 20 74 68 69 73 2e 70 61 72 73 65 4f 62 6a 65 = this.parseObje
d330: 63 74 50 72 6f 70 65 72 74 79 4b 65 79 28 29 3b ctPropertyKey();
d340: 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
d350: 09 20 20 20 20 20 20 20 20 76 61 72 20 6c 6f 6f . var loo
d360: 6b 61 68 65 61 64 50 72 6f 70 65 72 74 79 4b 65 kaheadPropertyKe
d370: 79 20 3d 20 74 68 69 73 2e 71 75 61 6c 69 66 69 y = this.qualifi
d380: 65 64 50 72 6f 70 65 72 74 79 4e 61 6d 65 28 74 edPropertyName(t
d390: 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 29 3b 0a his.lookahead);.
d3a0: 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 . if (t
d3b0: 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f oken.type === to
d3c0: 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e ken_1.Token.Iden
d3d0: 74 69 66 69 65 72 20 26 26 20 74 6f 6b 65 6e 2e tifier && token.
d3e0: 76 61 6c 75 65 20 3d 3d 3d 20 27 67 65 74 27 20 value === 'get'
d3f0: 26 26 20 6c 6f 6f 6b 61 68 65 61 64 50 72 6f 70 && lookaheadProp
d400: 65 72 74 79 4b 65 79 29 20 7b 0a 20 20 09 20 20 ertyKey) {. .
d410: 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 3d kind =
d420: 20 27 67 65 74 27 3b 0a 20 20 09 20 20 20 20 20 'get';. .
d430: 20 20 20 20 20 20 20 63 6f 6d 70 75 74 65 64 20 computed
d440: 3d 20 74 68 69 73 2e 6d 61 74 63 68 28 27 5b 27 = this.match('['
d450: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
d460: 20 20 6b 65 79 20 3d 20 74 68 69 73 2e 70 61 72 key = this.par
d470: 73 65 4f 62 6a 65 63 74 50 72 6f 70 65 72 74 79 seObjectProperty
d480: 4b 65 79 28 29 3b 0a 20 20 09 20 20 20 20 20 20 Key();. .
d490: 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 this.conte
d4a0: 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 xt.allowYield =
d4b0: 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 false;. .
d4c0: 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 74 68 value = th
d4d0: 69 73 2e 70 61 72 73 65 47 65 74 74 65 72 4d 65 is.parseGetterMe
d4e0: 74 68 6f 64 28 29 3b 0a 20 20 09 20 20 20 20 20 thod();. .
d4f0: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
d500: 65 6c 73 65 20 69 66 20 28 74 6f 6b 65 6e 2e 74 else if (token.t
d510: 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e ype === token_1.
d520: 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 Token.Identifier
d530: 20 26 26 20 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 && token.value
d540: 3d 3d 3d 20 27 73 65 74 27 20 26 26 20 6c 6f 6f === 'set' && loo
d550: 6b 61 68 65 61 64 50 72 6f 70 65 72 74 79 4b 65 kaheadPropertyKe
d560: 79 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 y) {. .
d570: 20 20 20 20 6b 69 6e 64 20 3d 20 27 73 65 74 27 kind = 'set'
d580: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
d590: 20 63 6f 6d 70 75 74 65 64 20 3d 20 74 68 69 73 computed = this
d5a0: 2e 6d 61 74 63 68 28 27 5b 27 29 3b 0a 20 20 09 .match('[');. .
d5b0: 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 20 key
d5c0: 3d 20 74 68 69 73 2e 70 61 72 73 65 4f 62 6a 65 = this.parseObje
d5d0: 63 74 50 72 6f 70 65 72 74 79 4b 65 79 28 29 3b ctPropertyKey();
d5e0: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
d5f0: 76 61 6c 75 65 20 3d 20 74 68 69 73 2e 70 61 72 value = this.par
d600: 73 65 53 65 74 74 65 72 4d 65 74 68 6f 64 28 29 seSetterMethod()
d610: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
d620: 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 . else i
d630: 66 20 28 74 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d f (token.type ==
d640: 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e = token_1.Token.
d650: 50 75 6e 63 74 75 61 74 6f 72 20 26 26 20 74 6f Punctuator && to
d660: 6b 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 2a ken.value === '*
d670: 27 20 26 26 20 6c 6f 6f 6b 61 68 65 61 64 50 72 ' && lookaheadPr
d680: 6f 70 65 72 74 79 4b 65 79 29 20 7b 0a 20 20 09 opertyKey) {. .
d690: 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 kind
d6a0: 20 3d 20 27 69 6e 69 74 27 3b 0a 20 20 09 20 20 = 'init';. .
d6b0: 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 75 74 comput
d6c0: 65 64 20 3d 20 74 68 69 73 2e 6d 61 74 63 68 28 ed = this.match(
d6d0: 27 5b 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 '[');. .
d6e0: 20 20 20 20 20 6b 65 79 20 3d 20 74 68 69 73 2e key = this.
d6f0: 70 61 72 73 65 4f 62 6a 65 63 74 50 72 6f 70 65 parseObjectPrope
d700: 72 74 79 4b 65 79 28 29 3b 0a 20 20 09 20 20 20 rtyKey();. .
d710: 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d value =
d720: 20 74 68 69 73 2e 70 61 72 73 65 47 65 6e 65 72 this.parseGener
d730: 61 74 6f 72 4d 65 74 68 6f 64 28 29 3b 0a 20 20 atorMethod();.
d740: 09 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 . met
d750: 68 6f 64 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 hod = true;. .
d760: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
d770: 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
d780: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 6b if (!k
d790: 65 79 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ey) {. .
d7a0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
d7b0: 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b rowUnexpectedTok
d7c0: 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 en(this.lookahea
d7d0: 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 d);. .
d7e0: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
d7f0: 20 20 20 20 6b 69 6e 64 20 3d 20 27 69 6e 69 74 kind = 'init
d800: 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ';. .
d810: 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 if (this.match
d820: 28 27 3a 27 29 29 20 7b 0a 20 20 09 20 20 20 20 (':')) {. .
d830: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
d840: 21 63 6f 6d 70 75 74 65 64 20 26 26 20 74 68 69 !computed && thi
d850: 73 2e 69 73 50 72 6f 70 65 72 74 79 4b 65 79 28 s.isPropertyKey(
d860: 6b 65 79 2c 20 27 5f 5f 70 72 6f 74 6f 5f 5f 27 key, '__proto__'
d870: 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
d880: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
d890: 68 61 73 50 72 6f 74 6f 2e 76 61 6c 75 65 29 20 hasProto.value)
d8a0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
d8b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
d8c0: 73 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f 72 28 s.tolerateError(
d8d0: 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 messages_1.Messa
d8e0: 67 65 73 2e 44 75 70 6c 69 63 61 74 65 50 72 6f ges.DuplicatePro
d8f0: 74 6f 50 72 6f 70 65 72 74 79 29 3b 0a 20 20 09 toProperty);. .
d900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
d910: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
d920: 20 20 20 20 20 20 20 20 20 20 20 20 20 68 61 73 has
d930: 50 72 6f 74 6f 2e 76 61 6c 75 65 20 3d 20 74 72 Proto.value = tr
d940: 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ue;. .
d950: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
d960: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
d970: 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 .nextToken();.
d980: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
d990: 20 76 61 6c 75 65 20 3d 20 74 68 69 73 2e 69 6e value = this.in
d9a0: 68 65 72 69 74 43 6f 76 65 72 47 72 61 6d 6d 61 heritCoverGramma
d9b0: 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 73 69 r(this.parseAssi
d9c0: 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e gnmentExpression
d9d0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
d9e0: 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
d9f0: 20 20 20 65 6c 73 65 20 69 66 20 28 74 68 69 73 else if (this
da00: 2e 6d 61 74 63 68 28 27 28 27 29 29 20 7b 0a 20 .match('(')) {.
da10: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
da20: 20 20 76 61 6c 75 65 20 3d 20 74 68 69 73 2e 70 value = this.p
da30: 61 72 73 65 50 72 6f 70 65 72 74 79 4d 65 74 68 arsePropertyMeth
da40: 6f 64 46 75 6e 63 74 69 6f 6e 28 29 3b 0a 20 20 odFunction();.
da50: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
da60: 20 6d 65 74 68 6f 64 20 3d 20 74 72 75 65 3b 0a method = true;.
da70: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
da80: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
da90: 65 6c 73 65 20 69 66 20 28 74 6f 6b 65 6e 2e 74 else if (token.t
daa0: 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e ype === token_1.
dab0: 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 Token.Identifier
dac0: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
dad0: 20 20 20 20 20 20 20 76 61 72 20 69 64 20 3d 20 var id =
dae0: 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f this.finalize(no
daf0: 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 49 64 65 de, new Node.Ide
db00: 6e 74 69 66 69 65 72 28 74 6f 6b 65 6e 2e 76 61 ntifier(token.va
db10: 6c 75 65 29 29 3b 0a 20 20 09 20 20 20 20 20 20 lue));. .
db20: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 if (th
db30: 69 73 2e 6d 61 74 63 68 28 27 3d 27 29 29 20 7b is.match('=')) {
db40: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
db50: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
db60: 74 65 78 74 2e 66 69 72 73 74 43 6f 76 65 72 49 text.firstCoverI
db70: 6e 69 74 69 61 6c 69 7a 65 64 4e 61 6d 65 45 72 nitializedNameEr
db80: 72 6f 72 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 ror = this.looka
db90: 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 head;. .
dba0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
dbb0: 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
dbc0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
dbd0: 20 20 20 20 20 20 73 68 6f 72 74 68 61 6e 64 20 shorthand
dbe0: 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 = true;. .
dbf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
dc00: 61 72 20 69 6e 69 74 20 3d 20 74 68 69 73 2e 69 ar init = this.i
dc10: 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d 6d solateCoverGramm
dc20: 61 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 73 ar(this.parseAss
dc30: 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f ignmentExpressio
dc40: 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 n);. .
dc50: 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 value
dc60: 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 = this.finalize
dc70: 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
dc80: 41 73 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 72 AssignmentPatter
dc90: 6e 28 69 64 2c 20 69 6e 69 74 29 29 3b 0a 20 20 n(id, init));.
dca0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
dcb0: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
dcc0: 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 else {. .
dcd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
dce0: 20 20 20 20 73 68 6f 72 74 68 61 6e 64 20 3d 20 shorthand =
dcf0: 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 true;. .
dd00: 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c val
dd10: 75 65 20 3d 20 69 64 3b 0a 20 20 09 20 20 20 20 ue = id;. .
dd20: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
dd30: 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
dd40: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c . el
dd50: 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 se {. .
dd60: 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 this.thr
dd70: 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 owUnexpectedToke
dd80: 6e 28 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e n(this.nextToken
dd90: 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ());. .
dda0: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
ddb0: 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
ddc0: 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
ddd0: 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
dde0: 65 2e 50 72 6f 70 65 72 74 79 28 6b 69 6e 64 2c e.Property(kind,
ddf0: 20 6b 65 79 2c 20 63 6f 6d 70 75 74 65 64 2c 20 key, computed,
de00: 76 61 6c 75 65 2c 20 6d 65 74 68 6f 64 2c 20 73 value, method, s
de10: 68 6f 72 74 68 61 6e 64 29 29 3b 0a 20 20 09 20 horthand));. .
de20: 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 };. . Par
de30: 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
de40: 72 73 65 4f 62 6a 65 63 74 49 6e 69 74 69 61 6c rseObjectInitial
de50: 69 7a 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 izer = function
de60: 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
de70: 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
de80: 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 s;.. . v
de90: 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 ar node = this.c
dea0: 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 reateNode();. .
deb0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 this.exp
dec0: 65 63 74 28 27 7b 27 29 3b 0a 20 20 09 20 20 20 ect('{');. .
ded0: 20 20 20 20 20 76 61 72 20 70 72 6f 70 65 72 74 var propert
dee0: 69 65 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 ies = [];. .
def0: 20 20 20 20 20 76 61 72 20 68 61 73 50 72 6f 74 var hasProt
df00: 6f 20 3d 20 7b 20 76 61 6c 75 65 3a 20 66 61 6c o = { value: fal
df10: 73 65 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 se };. .
df20: 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e 6d 61 while (!this.ma
df30: 74 63 68 28 27 7d 27 29 29 20 7b 0a 20 20 09 20 tch('}')) {. .
df40: 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70 65 prope
df50: 72 74 69 65 73 2e 70 75 73 68 28 74 68 69 73 24 rties.push(this$
df60: 31 2e 70 61 72 73 65 4f 62 6a 65 63 74 50 72 6f 1.parseObjectPro
df70: 70 65 72 74 79 28 68 61 73 50 72 6f 74 6f 29 29 perty(hasProto))
df80: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
df90: 20 69 66 20 28 21 74 68 69 73 24 31 2e 6d 61 74 if (!this$1.mat
dfa0: 63 68 28 27 7d 27 29 29 20 7b 0a 20 20 09 20 20 ch('}')) {. .
dfb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
dfc0: 69 73 24 31 2e 65 78 70 65 63 74 43 6f 6d 6d 61 is$1.expectComma
dfd0: 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 20 20 09 Separator();. .
dfe0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
dff0: 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
e000: 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
e010: 74 28 27 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 t('}');. .
e020: 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
e030: 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
e040: 77 20 4e 6f 64 65 2e 4f 62 6a 65 63 74 45 78 70 w Node.ObjectExp
e050: 72 65 73 73 69 6f 6e 28 70 72 6f 70 65 72 74 69 ression(properti
e060: 65 73 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a es));. . };.
e070: 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 . // ECMA-2
e080: 36 32 20 31 32 2e 32 2e 39 20 54 65 6d 70 6c 61 62 12.2.9 Templa
e090: 74 65 20 4c 69 74 65 72 61 6c 73 0a 20 20 09 20 te Literals. .
e0a0: 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
e0b0: 79 70 65 2e 70 61 72 73 65 54 65 6d 70 6c 61 74 ype.parseTemplat
e0c0: 65 48 65 61 64 20 3d 20 66 75 6e 63 74 69 6f 6e eHead = function
e0d0: 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 () {. .
e0e0: 20 61 73 73 65 72 74 5f 31 2e 61 73 73 65 72 74 assert_1.assert
e0f0: 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e (this.lookahead.
e100: 68 65 61 64 2c 20 27 54 65 6d 70 6c 61 74 65 20 head, 'Template
e110: 6c 69 74 65 72 61 6c 20 6d 75 73 74 20 73 74 61 literal must sta
e120: 72 74 20 77 69 74 68 20 61 20 74 65 6d 70 6c 61 rt with a templa
e130: 74 65 20 68 65 61 64 27 29 3b 0a 20 20 09 20 20 te head');. .
e140: 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d var node =
e150: 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 this.createNode
e160: 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ();. . v
e170: 61 72 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e ar token = this.
e180: 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 nextToken();. .
e190: 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 var valu
e1a0: 65 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 e = {. .
e1b0: 20 20 20 20 20 72 61 77 3a 20 74 6f 6b 65 6e 2e raw: token.
e1c0: 76 61 6c 75 65 2e 72 61 77 2c 0a 20 20 09 20 20 value.raw,. .
e1d0: 20 20 20 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 cooked
e1e0: 3a 20 74 6f 6b 65 6e 2e 76 61 6c 75 65 2e 63 6f : token.value.co
e1f0: 6f 6b 65 64 0a 20 20 09 20 20 20 20 20 20 20 20 oked. .
e200: 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 };. . re
e210: 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
e220: 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
e230: 65 2e 54 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e e.TemplateElemen
e240: 74 28 76 61 6c 75 65 2c 20 74 6f 6b 65 6e 2e 74 t(value, token.t
e250: 61 69 6c 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b ail));. . };
e260: 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
e270: 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 54 65 rototype.parseTe
e280: 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 20 3d 20 mplateElement =
e290: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
e2a0: 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
e2b0: 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 s.lookahead.type
e2c0: 20 21 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b !== token_1.Tok
e2d0: 65 6e 2e 54 65 6d 70 6c 61 74 65 29 20 7b 0a 20 en.Template) {.
e2e0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
e2f0: 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 is.throwUnexpect
e300: 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 edToken();. .
e310: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
e320: 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
e330: 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
e340: 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
e350: 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e 65 78 token = this.nex
e360: 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 tToken();. .
e370: 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d var value =
e380: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
e390: 20 20 72 61 77 3a 20 74 6f 6b 65 6e 2e 76 61 6c raw: token.val
e3a0: 75 65 2e 72 61 77 2c 0a 20 20 09 20 20 20 20 20 ue.raw,. .
e3b0: 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 3a 20 74 cooked: t
e3c0: 6f 6b 65 6e 2e 76 61 6c 75 65 2e 63 6f 6f 6b 65 oken.value.cooke
e3d0: 64 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a d. . };.
e3e0: 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
e3f0: 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 n this.finalize(
e400: 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 54 node, new Node.T
e410: 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 28 76 emplateElement(v
e420: 61 6c 75 65 2c 20 74 6f 6b 65 6e 2e 74 61 69 6c alue, token.tail
e430: 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 ));. . };.
e440: 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
e450: 6f 74 79 70 65 2e 70 61 72 73 65 54 65 6d 70 6c otype.parseTempl
e460: 61 74 65 4c 69 74 65 72 61 6c 20 3d 20 66 75 6e ateLiteral = fun
e470: 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
e480: 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
e490: 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
e4a0: 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 var node =
e4b0: 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 this.createNode(
e4c0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
e4d0: 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 3d 20 r expressions =
e4e0: 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 [];. . v
e4f0: 61 72 20 71 75 61 73 69 73 20 3d 20 5b 5d 3b 0a ar quasis = [];.
e500: 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 71 . var q
e510: 75 61 73 69 20 3d 20 74 68 69 73 2e 70 61 72 73 uasi = this.pars
e520: 65 54 65 6d 70 6c 61 74 65 48 65 61 64 28 29 3b eTemplateHead();
e530: 0a 20 20 09 20 20 20 20 20 20 20 20 71 75 61 73 . . quas
e540: 69 73 2e 70 75 73 68 28 71 75 61 73 69 29 3b 0a is.push(quasi);.
e550: 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
e560: 20 28 21 71 75 61 73 69 2e 74 61 69 6c 29 20 7b (!quasi.tail) {
e570: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
e580: 65 78 70 72 65 73 73 69 6f 6e 73 2e 70 75 73 68 expressions.push
e590: 28 74 68 69 73 24 31 2e 70 61 72 73 65 45 78 70 (this$1.parseExp
e5a0: 72 65 73 73 69 6f 6e 28 29 29 3b 0a 20 20 09 20 ression());. .
e5b0: 20 20 20 20 20 20 20 20 20 20 20 71 75 61 73 69 quasi
e5c0: 20 3d 20 74 68 69 73 24 31 2e 70 61 72 73 65 54 = this$1.parseT
e5d0: 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 28 29 emplateElement()
e5e0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
e5f0: 20 71 75 61 73 69 73 2e 70 75 73 68 28 71 75 61 quasis.push(qua
e600: 73 69 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 si);. .
e610: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 }. . ret
e620: 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
e630: 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
e640: 2e 54 65 6d 70 6c 61 74 65 4c 69 74 65 72 61 6c .TemplateLiteral
e650: 28 71 75 61 73 69 73 2c 20 65 78 70 72 65 73 73 (quasis, express
e660: 69 6f 6e 73 29 29 3b 0a 20 20 09 20 20 20 20 7d ions));. . }
e670: 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 ;. . // ECMA
e680: 2d 32 36 32 20 31 32 2e 32 2e 31 30 20 54 68 65 -262 12.2.10 The
e690: 20 47 72 6f 75 70 69 6e 67 20 4f 70 65 72 61 74 Grouping Operat
e6a0: 6f 72 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 or. . Parser
e6b0: 2e 70 72 6f 74 6f 74 79 70 65 2e 72 65 69 6e 74 .prototype.reint
e6c0: 65 72 70 72 65 74 45 78 70 72 65 73 73 69 6f 6e erpretExpression
e6d0: 41 73 50 61 74 74 65 72 6e 20 3d 20 66 75 6e 63 AsPattern = func
e6e0: 74 69 6f 6e 20 28 65 78 70 72 29 20 7b 0a 20 20 tion (expr) {.
e6f0: 09 20 20 20 20 20 20 20 20 76 61 72 20 74 68 69 . var thi
e700: 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 s$1 = this;.. .
e710: 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 switch (
e720: 65 78 70 72 2e 74 79 70 65 29 20 7b 0a 20 20 09 expr.type) {. .
e730: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
e740: 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
e750: 2e 49 64 65 6e 74 69 66 69 65 72 3a 0a 20 20 09 .Identifier:. .
e760: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
e770: 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
e780: 2e 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f .MemberExpressio
e790: 6e 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 n:. .
e7a0: 20 20 63 61 73 65 20 73 79 6e 74 61 78 5f 31 2e case syntax_1.
e7b0: 53 79 6e 74 61 78 2e 52 65 73 74 45 6c 65 6d 65 Syntax.RestEleme
e7c0: 6e 74 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 nt:. .
e7d0: 20 20 20 63 61 73 65 20 73 79 6e 74 61 78 5f 31 case syntax_1
e7e0: 2e 53 79 6e 74 61 78 2e 41 73 73 69 67 6e 6d 65 .Syntax.Assignme
e7f0: 6e 74 50 61 74 74 65 72 6e 3a 0a 20 20 09 20 20 ntPattern:. .
e800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
e810: 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
e820: 20 20 20 20 63 61 73 65 20 73 79 6e 74 61 78 5f case syntax_
e830: 31 2e 53 79 6e 74 61 78 2e 53 70 72 65 61 64 45 1.Syntax.SpreadE
e840: 6c 65 6d 65 6e 74 3a 0a 20 20 09 20 20 20 20 20 lement:. .
e850: 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 2e expr.
e860: 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
e870: 53 79 6e 74 61 78 2e 52 65 73 74 45 6c 65 6d 65 Syntax.RestEleme
e880: 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 nt;. .
e890: 20 20 20 20 20 20 20 74 68 69 73 2e 72 65 69 6e this.rein
e8a0: 74 65 72 70 72 65 74 45 78 70 72 65 73 73 69 6f terpretExpressio
e8b0: 6e 41 73 50 61 74 74 65 72 6e 28 65 78 70 72 2e nAsPattern(expr.
e8c0: 61 72 67 75 6d 65 6e 74 29 3b 0a 20 20 09 20 20 argument);. .
e8d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
e8e0: 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
e8f0: 20 20 20 20 63 61 73 65 20 73 79 6e 74 61 78 5f case syntax_
e900: 31 2e 53 79 6e 74 61 78 2e 41 72 72 61 79 45 78 1.Syntax.ArrayEx
e910: 70 72 65 73 73 69 6f 6e 3a 0a 20 20 09 20 20 20 pression:. .
e920: 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 exp
e930: 72 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f r.type = syntax_
e940: 31 2e 53 79 6e 74 61 78 2e 41 72 72 61 79 50 61 1.Syntax.ArrayPa
e950: 74 74 65 72 6e 3b 0a 20 20 09 20 20 20 20 20 20 ttern;. .
e960: 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 for (v
e970: 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 65 78 ar i = 0; i < ex
e980: 70 72 2e 65 6c 65 6d 65 6e 74 73 2e 6c 65 6e 67 pr.elements.leng
e990: 74 68 3b 20 69 2b 2b 29 20 7b 0a 20 20 09 20 20 th; i++) {. .
e9a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
e9b0: 20 20 69 66 20 28 65 78 70 72 2e 65 6c 65 6d 65 if (expr.eleme
e9c0: 6e 74 73 5b 69 5d 20 21 3d 3d 20 6e 75 6c 6c 29 nts[i] !== null)
e9d0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
e9e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
e9f0: 69 73 24 31 2e 72 65 69 6e 74 65 72 70 72 65 74 is$1.reinterpret
ea00: 45 78 70 72 65 73 73 69 6f 6e 41 73 50 61 74 74 ExpressionAsPatt
ea10: 65 72 6e 28 65 78 70 72 2e 65 6c 65 6d 65 6e 74 ern(expr.element
ea20: 73 5b 69 5d 29 3b 0a 20 20 09 20 20 20 20 20 20 s[i]);. .
ea30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
ea40: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
ea50: 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
ea60: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
ea70: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
ea80: 73 65 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 se syntax_1.Synt
ea90: 61 78 2e 4f 62 6a 65 63 74 45 78 70 72 65 73 73 ax.ObjectExpress
eaa0: 69 6f 6e 3a 0a 20 20 09 20 20 20 20 20 20 20 20 ion:. .
eab0: 20 20 20 20 20 20 20 20 65 78 70 72 2e 74 79 70 expr.typ
eac0: 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e e = syntax_1.Syn
ead0: 74 61 78 2e 4f 62 6a 65 63 74 50 61 74 74 65 72 tax.ObjectPatter
eae0: 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 n;. .
eaf0: 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 for (var i
eb00: 20 3d 20 30 3b 20 69 20 3c 20 65 78 70 72 2e 70 = 0; i < expr.p
eb10: 72 6f 70 65 72 74 69 65 73 2e 6c 65 6e 67 74 68 roperties.length
eb20: 3b 20 69 2b 2b 29 20 7b 0a 20 20 09 20 20 20 20 ; i++) {. .
eb30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
eb40: 74 68 69 73 24 31 2e 72 65 69 6e 74 65 72 70 72 this$1.reinterpr
eb50: 65 74 45 78 70 72 65 73 73 69 6f 6e 41 73 50 61 etExpressionAsPa
eb60: 74 74 65 72 6e 28 65 78 70 72 2e 70 72 6f 70 65 ttern(expr.prope
eb70: 72 74 69 65 73 5b 69 5d 2e 76 61 6c 75 65 29 3b rties[i].value);
eb80: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
eb90: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
eba0: 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a break;.
ebb0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 . c
ebc0: 61 73 65 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e ase syntax_1.Syn
ebd0: 74 61 78 2e 41 73 73 69 67 6e 6d 65 6e 74 45 78 tax.AssignmentEx
ebe0: 70 72 65 73 73 69 6f 6e 3a 0a 20 20 09 20 20 20 pression:. .
ebf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 exp
ec00: 72 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f r.type = syntax_
ec10: 31 2e 53 79 6e 74 61 78 2e 41 73 73 69 67 6e 6d 1.Syntax.Assignm
ec20: 65 6e 74 50 61 74 74 65 72 6e 3b 0a 20 20 09 20 entPattern;. .
ec30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 d
ec40: 65 6c 65 74 65 20 65 78 70 72 2e 6f 70 65 72 61 elete expr.opera
ec50: 74 6f 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 tor;. .
ec60: 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 65 69 this.rei
ec70: 6e 74 65 72 70 72 65 74 45 78 70 72 65 73 73 69 nterpretExpressi
ec80: 6f 6e 41 73 50 61 74 74 65 72 6e 28 65 78 70 72 onAsPattern(expr
ec90: 2e 6c 65 66 74 29 3b 0a 20 20 09 20 20 20 20 20 .left);. .
eca0: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
ecb0: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
ecc0: 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 20 20 20 default:. .
ecd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
ece0: 41 6c 6c 6f 77 20 6f 74 68 65 72 20 6e 6f 64 65 Allow other node
ecf0: 20 74 79 70 65 20 66 6f 72 20 74 6f 6c 65 72 61 type for tolera
ed00: 6e 74 20 70 61 72 73 69 6e 67 2e 0a 20 20 09 20 nt parsing.. .
ed10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
ed20: 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
ed30: 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 }. . };. .
ed40: 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
ed50: 74 79 70 65 2e 70 61 72 73 65 47 72 6f 75 70 45 type.parseGroupE
ed60: 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 xpression = func
ed70: 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
ed80: 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 var this$1
ed90: 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 = this;.. .
eda0: 20 20 20 20 76 61 72 20 65 78 70 72 3b 0a 20 20 var expr;.
edb0: 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 . this.ex
edc0: 70 65 63 74 28 27 28 27 29 3b 0a 20 20 09 20 20 pect('(');. .
edd0: 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d if (this.m
ede0: 61 74 63 68 28 27 29 27 29 29 20 7b 0a 20 20 09 atch(')')) {. .
edf0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
ee00: 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 .nextToken();.
ee10: 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
ee20: 28 21 74 68 69 73 2e 6d 61 74 63 68 28 27 3d 3e (!this.match('=>
ee30: 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
ee40: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 this.ex
ee50: 70 65 63 74 28 27 3d 3e 27 29 3b 0a 20 20 09 20 pect('=>');. .
ee60: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
ee70: 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 expr
ee80: 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 = {. .
ee90: 20 20 20 20 20 20 20 20 74 79 70 65 3a 20 41 72 type: Ar
eea0: 72 6f 77 50 61 72 61 6d 65 74 65 72 50 6c 61 63 rowParameterPlac
eeb0: 65 48 6f 6c 64 65 72 2c 0a 20 20 09 20 20 20 20 eHolder,. .
eec0: 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 para
eed0: 6d 73 3a 20 5b 5d 0a 20 20 09 20 20 20 20 20 20 ms: []. .
eee0: 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 };. .
eef0: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
ef00: 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
ef10: 20 20 20 20 20 20 20 76 61 72 20 73 74 61 72 74 var start
ef20: 54 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f Token = this.loo
ef30: 6b 61 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 kahead;. .
ef40: 20 20 20 20 20 20 20 76 61 72 20 70 61 72 61 6d var param
ef50: 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 s = [];. .
ef60: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
ef70: 6d 61 74 63 68 28 27 2e 2e 2e 27 29 29 20 7b 0a match('...')) {.
ef80: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
ef90: 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e 70 expr = this.p
efa0: 61 72 73 65 52 65 73 74 45 6c 65 6d 65 6e 74 28 arseRestElement(
efb0: 70 61 72 61 6d 73 29 3b 0a 20 20 09 20 20 20 20 params);. .
efc0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
efd0: 2e 65 78 70 65 63 74 28 27 29 27 29 3b 0a 20 20 .expect(')');.
efe0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
eff0: 20 69 66 20 28 21 74 68 69 73 2e 6d 61 74 63 68 if (!this.match
f000: 28 27 3d 3e 27 29 29 20 7b 0a 20 20 09 20 20 20 ('=>')) {. .
f010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f020: 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 3d 3e this.expect('=>
f030: 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ');. .
f040: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
f050: 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 expr
f060: 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 = {. .
f070: 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 type
f080: 3a 20 41 72 72 6f 77 50 61 72 61 6d 65 74 65 72 : ArrowParameter
f090: 50 6c 61 63 65 48 6f 6c 64 65 72 2c 0a 20 20 09 PlaceHolder,. .
f0a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f0b0: 20 20 20 20 70 61 72 61 6d 73 3a 20 5b 65 78 70 params: [exp
f0c0: 72 5d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 r]. .
f0d0: 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 };. .
f0e0: 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
f0f0: 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a else {.
f100: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f110: 20 20 20 76 61 72 20 61 72 72 6f 77 20 3d 20 66 var arrow = f
f120: 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
f130: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f this.co
f140: 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 ntext.isBindingE
f150: 6c 65 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 20 lement = true;.
f160: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f170: 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e 69 6e expr = this.in
f180: 68 65 72 69 74 43 6f 76 65 72 47 72 61 6d 6d 61 heritCoverGramma
f190: 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 73 69 r(this.parseAssi
f1a0: 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e gnmentExpression
f1b0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
f1c0: 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d if (this.m
f1d0: 61 74 63 68 28 27 2c 27 29 29 20 7b 0a 20 20 09 atch(',')) {. .
f1e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f1f0: 20 20 20 20 76 61 72 20 65 78 70 72 65 73 73 69 var expressi
f200: 6f 6e 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 ons = [];. .
f210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f220: 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 this.context.is
f230: 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 65 74 AssignmentTarget
f240: 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 = false;. .
f250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f260: 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 70 75 73 expressions.pus
f270: 68 28 65 78 70 72 29 3b 0a 20 20 09 20 20 20 20 h(expr);. .
f280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f290: 77 68 69 6c 65 20 28 74 68 69 73 2e 73 74 61 72 while (this.star
f2a0: 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 20 3c 20 tMarker.index <
f2b0: 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 65 6e this.scanner.len
f2c0: 67 74 68 29 20 7b 0a 20 20 09 20 20 20 20 20 20 gth) {. .
f2d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f2e0: 20 20 69 66 20 28 21 74 68 69 73 24 31 2e 6d 61 if (!this$1.ma
f2f0: 74 63 68 28 27 2c 27 29 29 20 7b 0a 20 20 09 20 tch(',')) {. .
f300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f310: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
f320: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
f330: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
f340: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f350: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
f360: 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 .nextToken();.
f370: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f380: 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 if (thi
f390: 73 24 31 2e 6d 61 74 63 68 28 27 2e 2e 2e 27 29 s$1.match('...')
f3a0: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
f3b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f3c0: 20 20 20 69 66 20 28 21 74 68 69 73 24 31 2e 63 if (!this$1.c
f3d0: 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 ontext.isBinding
f3e0: 45 6c 65 6d 65 6e 74 29 20 7b 0a 20 20 09 20 20 Element) {. .
f3f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
f410: 69 73 24 31 2e 74 68 72 6f 77 55 6e 65 78 70 65 is$1.throwUnexpe
f420: 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 24 31 ctedToken(this$1
f430: 2e 6c 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 20 09 .lookahead);. .
f440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f450: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
f460: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f470: 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 exp
f480: 72 65 73 73 69 6f 6e 73 2e 70 75 73 68 28 74 68 ressions.push(th
f490: 69 73 24 31 2e 70 61 72 73 65 52 65 73 74 45 6c is$1.parseRestEl
f4a0: 65 6d 65 6e 74 28 70 61 72 61 6d 73 29 29 3b 0a ement(params));.
f4b0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f4c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
f4d0: 68 69 73 24 31 2e 65 78 70 65 63 74 28 27 29 27 his$1.expect(')'
f4e0: 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
f4f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f500: 20 20 69 66 20 28 21 74 68 69 73 24 31 2e 6d 61 if (!this$1.ma
f510: 74 63 68 28 27 3d 3e 27 29 29 20 7b 0a 20 20 09 tch('=>')) {. .
f520: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f540: 74 68 69 73 24 31 2e 65 78 70 65 63 74 28 27 3d this$1.expect('=
f550: 3e 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 >');. .
f560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f570: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
f580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f590: 20 20 20 20 20 74 68 69 73 24 31 2e 63 6f 6e 74 this$1.cont
f5a0: 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
f5b0: 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 ment = false;.
f5c0: 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f5d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 for
f5e0: 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c (var i = 0; i <
f5f0: 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 6c 65 6e expressions.len
f600: 67 74 68 3b 20 69 2b 2b 29 20 7b 0a 20 20 09 20 gth; i++) {. .
f610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
f630: 68 69 73 24 31 2e 72 65 69 6e 74 65 72 70 72 65 his$1.reinterpre
f640: 74 45 78 70 72 65 73 73 69 6f 6e 41 73 50 61 74 tExpressionAsPat
f650: 74 65 72 6e 28 65 78 70 72 65 73 73 69 6f 6e 73 tern(expressions
f660: 5b 69 5d 29 3b 0a 20 20 09 20 20 20 20 20 20 20 [i]);. .
f670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f680: 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
f690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f6a0: 20 20 20 20 20 20 61 72 72 6f 77 20 3d 20 74 72 arrow = tr
f6b0: 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ue;. .
f6c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f6d0: 20 20 20 65 78 70 72 20 3d 20 7b 0a 20 20 09 20 expr = {. .
f6e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f6f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
f700: 79 70 65 3a 20 41 72 72 6f 77 50 61 72 61 6d 65 ype: ArrowParame
f710: 74 65 72 50 6c 61 63 65 48 6f 6c 64 65 72 2c 0a terPlaceHolder,.
f720: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f730: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f740: 20 20 20 70 61 72 61 6d 73 3a 20 65 78 70 72 65 params: expre
f750: 73 73 69 6f 6e 73 0a 20 20 09 20 20 20 20 20 20 ssions. .
f760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f770: 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 };. .
f780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f790: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
f7a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f7b0: 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
f7c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f7d0: 20 20 20 20 20 20 20 65 78 70 72 65 73 73 69 6f expressio
f7e0: 6e 73 2e 70 75 73 68 28 74 68 69 73 24 31 2e 69 ns.push(this$1.i
f7f0: 6e 68 65 72 69 74 43 6f 76 65 72 47 72 61 6d 6d nheritCoverGramm
f800: 61 72 28 74 68 69 73 24 31 2e 70 61 72 73 65 41 ar(this$1.parseA
f810: 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 ssignmentExpress
f820: 69 6f 6e 29 29 3b 0a 20 20 09 20 20 20 20 20 20 ion));. .
f830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f840: 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
f850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
f860: 66 20 28 61 72 72 6f 77 29 20 7b 0a 20 20 09 20 f (arrow) {. .
f870: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f880: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
f890: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
f8a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
f8b0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
f8c0: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
f8d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
f8e0: 66 20 28 21 61 72 72 6f 77 29 20 7b 0a 20 20 09 f (!arrow) {. .
f8f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f900: 20 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 expr = t
f910: 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 74 68 69 his.finalize(thi
f920: 73 2e 73 74 61 72 74 4e 6f 64 65 28 73 74 61 72 s.startNode(star
f930: 74 54 6f 6b 65 6e 29 2c 20 6e 65 77 20 4e 6f 64 tToken), new Nod
f940: 65 2e 53 65 71 75 65 6e 63 65 45 78 70 72 65 73 e.SequenceExpres
f950: 73 69 6f 6e 28 65 78 70 72 65 73 73 69 6f 6e 73 sion(expressions
f960: 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
f970: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
f980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f990: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
f9a0: 20 20 20 20 20 69 66 20 28 21 61 72 72 6f 77 29 if (!arrow)
f9b0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
f9c0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 this.e
f9d0: 78 70 65 63 74 28 27 29 27 29 3b 0a 20 20 09 20 xpect(')');. .
f9e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
f9f0: 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 if (this.matc
fa00: 68 28 27 3d 3e 27 29 29 20 7b 0a 20 20 09 20 20 h('=>')) {. .
fa10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fa20: 20 20 20 20 20 20 69 66 20 28 65 78 70 72 2e 74 if (expr.t
fa30: 79 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 ype === syntax_1
fa40: 2e 53 79 6e 74 61 78 2e 49 64 65 6e 74 69 66 69 .Syntax.Identifi
fa50: 65 72 20 26 26 20 65 78 70 72 2e 6e 61 6d 65 20 er && expr.name
fa60: 3d 3d 3d 20 27 79 69 65 6c 64 27 29 20 7b 0a 20 === 'yield') {.
fa70: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
fa80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 ar
fa90: 72 6f 77 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 row = true;. .
faa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fab0: 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 expr
fac0: 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 = {. .
fad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fae0: 20 20 20 20 20 20 20 74 79 70 65 3a 20 41 72 72 type: Arr
faf0: 6f 77 50 61 72 61 6d 65 74 65 72 50 6c 61 63 65 owParameterPlace
fb00: 48 6f 6c 64 65 72 2c 0a 20 20 09 20 20 20 20 20 Holder,. .
fb10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fb20: 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d param
fb30: 73 3a 20 5b 65 78 70 72 5d 0a 20 20 09 20 20 20 s: [expr]. .
fb40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fb50: 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 };. .
fb60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fb70: 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
fb80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fb90: 20 20 20 20 69 66 20 28 21 61 72 72 6f 77 29 20 if (!arrow)
fba0: 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
fbb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fbc0: 20 69 66 20 28 21 74 68 69 73 2e 63 6f 6e 74 65 if (!this.conte
fbd0: 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d xt.isBindingElem
fbe0: 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ent) {. .
fbf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fc00: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 this.t
fc10: 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f hrowUnexpectedTo
fc20: 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 ken(this.lookahe
fc30: 61 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ad);. .
fc40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fc50: 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
fc60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fc70: 20 20 20 20 20 69 66 20 28 65 78 70 72 2e 74 79 if (expr.ty
fc80: 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e pe === syntax_1.
fc90: 53 79 6e 74 61 78 2e 53 65 71 75 65 6e 63 65 45 Syntax.SequenceE
fca0: 78 70 72 65 73 73 69 6f 6e 29 20 7b 0a 20 20 09 xpression) {. .
fcb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fcc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fcd0: 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 for (var i = 0;
fce0: 69 20 3c 20 65 78 70 72 2e 65 78 70 72 65 73 73 i < expr.express
fcf0: 69 6f 6e 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b ions.length; i++
fd00: 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
fd10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fd20: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 this$
fd30: 31 2e 72 65 69 6e 74 65 72 70 72 65 74 45 78 70 1.reinterpretExp
fd40: 72 65 73 73 69 6f 6e 41 73 50 61 74 74 65 72 6e ressionAsPattern
fd50: 28 65 78 70 72 2e 65 78 70 72 65 73 73 69 6f 6e (expr.expression
fd60: 73 5b 69 5d 29 3b 0a 20 20 09 20 20 20 20 20 20 s[i]);. .
fd70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fd80: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
fd90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fda0: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
fdb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fdc0: 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
fdd0: 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
fde0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fdf0: 20 20 20 20 20 20 74 68 69 73 2e 72 65 69 6e 74 this.reint
fe00: 65 72 70 72 65 74 45 78 70 72 65 73 73 69 6f 6e erpretExpression
fe10: 41 73 50 61 74 74 65 72 6e 28 65 78 70 72 29 3b AsPattern(expr);
fe20: 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
fe30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fe40: 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
fe50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
fe60: 20 76 61 72 20 70 61 72 61 6d 73 5f 31 20 3d 20 var params_1 =
fe70: 28 65 78 70 72 2e 74 79 70 65 20 3d 3d 3d 20 73 (expr.type === s
fe80: 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 53 yntax_1.Syntax.S
fe90: 65 71 75 65 6e 63 65 45 78 70 72 65 73 73 69 6f equenceExpressio
fea0: 6e 20 3f 20 65 78 70 72 2e 65 78 70 72 65 73 73 n ? expr.express
feb0: 69 6f 6e 73 20 3a 20 5b 65 78 70 72 5d 29 3b 0a ions : [expr]);.
fec0: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
fed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
fee0: 78 70 72 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 xpr = {. .
fef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ff00: 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 3a type:
ff10: 20 41 72 72 6f 77 50 61 72 61 6d 65 74 65 72 50 ArrowParameterP
ff20: 6c 61 63 65 48 6f 6c 64 65 72 2c 0a 20 20 09 20 laceHolder,. .
ff30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ff40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 p
ff50: 61 72 61 6d 73 3a 20 70 61 72 61 6d 73 5f 31 0a arams: params_1.
ff60: 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
ff70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
ff80: 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
ff90: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
ffa0: 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
ffb0: 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
ffc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
ffd0: 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 his.context.isBi
ffe0: 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 ndingElement = f
fff0: 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
10000 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
10010 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
10020 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
10030 20 20 20 20 72 65 74 75 72 6e 20 65 78 70 72 3b return expr;
10040 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
10050 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 // ECMA-262 12
10060 2e 33 20 4c 65 66 74 2d 48 61 6e 64 2d 53 69 64 .3 Left-Hand-Sid
10070 65 20 45 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 e Expressions.
10080 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
10090 6f 74 79 70 65 2e 70 61 72 73 65 41 72 67 75 6d otype.parseArgum
100a0 65 6e 74 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 ents = function
100b0 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
100c0 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
100d0 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 74 s;.. . t
100e0 68 69 73 2e 65 78 70 65 63 74 28 27 28 27 29 3b his.expect('(');
100f0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
10100 61 72 67 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 args = [];. .
10110 20 20 20 20 20 20 69 66 20 28 21 74 68 69 73 2e if (!this.
10120 6d 61 74 63 68 28 27 29 27 29 29 20 7b 0a 20 20 match(')')) {.
10130 09 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 . whi
10140 6c 65 20 28 74 72 75 65 29 20 7b 0a 20 20 09 20 le (true) {. .
10150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
10160 61 72 20 65 78 70 72 20 3d 20 74 68 69 73 24 31 ar expr = this$1
10170 2e 6d 61 74 63 68 28 27 2e 2e 2e 27 29 20 3f 20 .match('...') ?
10180 74 68 69 73 24 31 2e 70 61 72 73 65 53 70 72 65 this$1.parseSpre
10190 61 64 45 6c 65 6d 65 6e 74 28 29 20 3a 0a 20 20 adElement() :.
101a0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
101b0 20 20 20 20 20 74 68 69 73 24 31 2e 69 73 6f 6c this$1.isol
101c0 61 74 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 ateCoverGrammar(
101d0 74 68 69 73 24 31 2e 70 61 72 73 65 41 73 73 69 this$1.parseAssi
101e0 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e gnmentExpression
101f0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
10200 20 20 20 20 20 20 61 72 67 73 2e 70 75 73 68 28 args.push(
10210 65 78 70 72 29 3b 0a 20 20 09 20 20 20 20 20 20 expr);. .
10220 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 if (th
10230 69 73 24 31 2e 6d 61 74 63 68 28 27 29 27 29 29 is$1.match(')'))
10240 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
10250 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
10260 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
10270 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
10280 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
10290 65 78 70 65 63 74 43 6f 6d 6d 61 53 65 70 61 72 expectCommaSepar
102a0 61 74 6f 72 28 29 3b 0a 20 20 09 20 20 20 20 20 ator();. .
102b0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
102c0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
102d0 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 29 27 this.expect(')'
102e0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 );. . re
102f0 74 75 72 6e 20 61 72 67 73 3b 0a 20 20 09 20 20 turn args;. .
10300 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 };. . Pars
10310 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 69 73 49 er.prototype.isI
10320 64 65 6e 74 69 66 69 65 72 4e 61 6d 65 20 3d 20 dentifierName =
10330 66 75 6e 63 74 69 6f 6e 20 28 74 6f 6b 65 6e 29 function (token)
10340 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 {. . re
10350 74 75 72 6e 20 74 6f 6b 65 6e 2e 74 79 70 65 20 turn token.type
10360 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 === token_1.Toke
10370 6e 2e 49 64 65 6e 74 69 66 69 65 72 20 7c 7c 0a n.Identifier ||.
10380 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
10390 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f oken.type === to
103a0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 ken_1.Token.Keyw
103b0 6f 72 64 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 ord ||. .
103c0 20 20 20 20 20 20 74 6f 6b 65 6e 2e 74 79 70 65 token.type
103d0 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b === token_1.Tok
103e0 65 6e 2e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 en.BooleanLitera
103f0 6c 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 l ||. .
10400 20 20 20 20 74 6f 6b 65 6e 2e 74 79 70 65 20 3d token.type =
10410 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e == token_1.Token
10420 2e 4e 75 6c 6c 4c 69 74 65 72 61 6c 3b 0a 20 20 .NullLiteral;.
10430 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 . };. . P
10440 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
10450 70 61 72 73 65 49 64 65 6e 74 69 66 69 65 72 4e parseIdentifierN
10460 61 6d 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ame = function (
10470 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
10480 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 ar node = this.c
10490 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 reateNode();. .
104a0 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 var toke
104b0 6e 20 3d 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b n = this.nextTok
104c0 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
104d0 20 69 66 20 28 21 74 68 69 73 2e 69 73 49 64 65 if (!this.isIde
104e0 6e 74 69 66 69 65 72 4e 61 6d 65 28 74 6f 6b 65 ntifierName(toke
104f0 6e 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 n)) {. .
10500 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
10510 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 nexpectedToken(t
10520 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 oken);. .
10530 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 }. . r
10540 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c eturn this.final
10550 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
10560 64 65 2e 49 64 65 6e 74 69 66 69 65 72 28 74 6f de.Identifier(to
10570 6b 65 6e 2e 76 61 6c 75 65 29 29 3b 0a 20 20 09 ken.value));. .
10580 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 };. . Pa
10590 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 rser.prototype.p
105a0 61 72 73 65 4e 65 77 45 78 70 72 65 73 73 69 6f arseNewExpressio
105b0 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 n = function ()
105c0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
105d0 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
105e0 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 ateNode();. .
105f0 20 20 20 20 20 20 76 61 72 20 69 64 20 3d 20 74 var id = t
10600 68 69 73 2e 70 61 72 73 65 49 64 65 6e 74 69 66 his.parseIdentif
10610 69 65 72 4e 61 6d 65 28 29 3b 0a 20 20 09 20 20 ierName();. .
10620 20 20 20 20 20 20 61 73 73 65 72 74 5f 31 2e 61 assert_1.a
10630 73 73 65 72 74 28 69 64 2e 6e 61 6d 65 20 3d 3d ssert(id.name ==
10640 3d 20 27 6e 65 77 27 2c 20 27 4e 65 77 20 65 78 = 'new', 'New ex
10650 70 72 65 73 73 69 6f 6e 20 6d 75 73 74 20 73 74 pression must st
10660 61 72 74 20 77 69 74 68 20 60 6e 65 77 60 27 29 art with `new`')
10670 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
10680 20 65 78 70 72 3b 0a 20 20 09 20 20 20 20 20 20 expr;. .
10690 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 if (this.match
106a0 28 27 2e 27 29 29 20 7b 0a 20 20 09 20 20 20 20 ('.')) {. .
106b0 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 this.nex
106c0 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 tToken();. .
106d0 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 if (thi
106e0 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 s.lookahead.type
106f0 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b === token_1.Tok
10700 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 20 26 26 en.Identifier &&
10710 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e this.context.in
10720 46 75 6e 63 74 69 6f 6e 42 6f 64 79 20 26 26 20 FunctionBody &&
10730 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 this.lookahead.v
10740 61 6c 75 65 20 3d 3d 3d 20 27 74 61 72 67 65 74 alue === 'target
10750 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 ') {. .
10760 20 20 20 20 20 20 20 20 76 61 72 20 70 72 6f 70 var prop
10770 65 72 74 79 20 3d 20 74 68 69 73 2e 70 61 72 73 erty = this.pars
10780 65 49 64 65 6e 74 69 66 69 65 72 4e 61 6d 65 28 eIdentifierName(
10790 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
107a0 20 20 20 20 20 20 65 78 70 72 20 3d 20 6e 65 77 expr = new
107b0 20 4e 6f 64 65 2e 4d 65 74 61 50 72 6f 70 65 72 Node.MetaProper
107c0 74 79 28 69 64 2c 20 70 72 6f 70 65 72 74 79 29 ty(id, property)
107d0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
107e0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
107f0 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
10800 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
10810 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 .throwUnexpected
10820 54 6f 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 Token(this.looka
10830 68 65 61 64 29 3b 0a 20 20 09 20 20 20 20 20 20 head);. .
10840 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
10850 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
10860 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
10870 20 20 20 20 20 20 76 61 72 20 63 61 6c 6c 65 65 var callee
10880 20 3d 20 74 68 69 73 2e 69 73 6f 6c 61 74 65 43 = this.isolateC
10890 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 overGrammar(this
108a0 2e 70 61 72 73 65 4c 65 66 74 48 61 6e 64 53 69 .parseLeftHandSi
108b0 64 65 45 78 70 72 65 73 73 69 6f 6e 29 3b 0a 20 deExpression);.
108c0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
108d0 72 20 61 72 67 73 20 3d 20 74 68 69 73 2e 6d 61 r args = this.ma
108e0 74 63 68 28 27 28 27 29 20 3f 20 74 68 69 73 2e tch('(') ? this.
108f0 70 61 72 73 65 41 72 67 75 6d 65 6e 74 73 28 29 parseArguments()
10900 20 3a 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 : [];. .
10910 20 20 20 20 20 20 65 78 70 72 20 3d 20 6e 65 77 expr = new
10920 20 4e 6f 64 65 2e 4e 65 77 45 78 70 72 65 73 73 Node.NewExpress
10930 69 6f 6e 28 63 61 6c 6c 65 65 2c 20 61 72 67 73 ion(callee, args
10940 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
10950 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 this.context.i
10960 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 65 sAssignmentTarge
10970 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 t = false;. .
10980 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 this.c
10990 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 ontext.isBinding
109a0 45 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b Element = false;
109b0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
109c0 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
109d0 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f this.finalize(no
109e0 64 65 2c 20 65 78 70 72 29 3b 0a 20 20 09 20 20 de, expr);. .
109f0 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 };. . Pars
10a00 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 er.prototype.par
10a10 73 65 4c 65 66 74 48 61 6e 64 53 69 64 65 45 78 seLeftHandSideEx
10a20 70 72 65 73 73 69 6f 6e 41 6c 6c 6f 77 43 61 6c pressionAllowCal
10a30 6c 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 l = function ()
10a40 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
10a50 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a this$1 = this;.
10a60 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
10a70 73 74 61 72 74 54 6f 6b 65 6e 20 3d 20 74 68 69 startToken = thi
10a80 73 2e 6c 6f 6f 6b 61 68 65 61 64 3b 0a 20 20 09 s.lookahead;. .
10a90 20 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 var prev
10aa0 69 6f 75 73 41 6c 6c 6f 77 49 6e 20 3d 20 74 68 iousAllowIn = th
10ab0 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 is.context.allow
10ac0 49 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 In;. . t
10ad0 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f his.context.allo
10ae0 77 49 6e 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 wIn = true;. .
10af0 20 20 20 20 20 20 20 76 61 72 20 65 78 70 72 3b var expr;
10b00 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
10b10 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 this.matchKeywor
10b20 64 28 27 73 75 70 65 72 27 29 20 26 26 20 74 68 d('super') && th
10b30 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 46 75 6e is.context.inFun
10b40 63 74 69 6f 6e 42 6f 64 79 29 20 7b 0a 20 20 09 ctionBody) {. .
10b50 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 expr
10b60 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f = this.createNo
10b70 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 de();. .
10b80 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f this.nextTo
10b90 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ken();. .
10ba0 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 expr = thi
10bb0 73 2e 66 69 6e 61 6c 69 7a 65 28 65 78 70 72 2c s.finalize(expr,
10bc0 20 6e 65 77 20 4e 6f 64 65 2e 53 75 70 65 72 28 new Node.Super(
10bd0 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
10be0 20 20 20 69 66 20 28 21 74 68 69 73 2e 6d 61 74 if (!this.mat
10bf0 63 68 28 27 28 27 29 20 26 26 20 21 74 68 69 73 ch('(') && !this
10c00 2e 6d 61 74 63 68 28 27 2e 27 29 20 26 26 20 21 .match('.') && !
10c10 74 68 69 73 2e 6d 61 74 63 68 28 27 5b 27 29 29 this.match('['))
10c20 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
10c30 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 this.throw
10c40 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 UnexpectedToken(
10c50 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 29 3b this.lookahead);
10c60 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
10c70 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 }. . }.
10c80 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b . else {
10c90 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
10ca0 65 78 70 72 20 3d 20 74 68 69 73 2e 69 6e 68 65 expr = this.inhe
10cb0 72 69 74 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 ritCoverGrammar(
10cc0 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 this.matchKeywor
10cd0 64 28 27 6e 65 77 27 29 20 3f 20 74 68 69 73 2e d('new') ? this.
10ce0 70 61 72 73 65 4e 65 77 45 78 70 72 65 73 73 69 parseNewExpressi
10cf0 6f 6e 20 3a 20 74 68 69 73 2e 70 61 72 73 65 50 on : this.parseP
10d00 72 69 6d 61 72 79 45 78 70 72 65 73 73 69 6f 6e rimaryExpression
10d10 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
10d20 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
10d30 20 28 74 72 75 65 29 20 7b 0a 20 20 09 20 20 20 (true) {. .
10d40 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 if (thi
10d50 73 24 31 2e 6d 61 74 63 68 28 27 2e 27 29 29 20 s$1.match('.'))
10d60 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
10d70 20 20 20 20 20 74 68 69 73 24 31 2e 63 6f 6e 74 this$1.cont
10d80 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 ext.isBindingEle
10d90 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 ment = false;.
10da0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
10db0 20 74 68 69 73 24 31 2e 63 6f 6e 74 65 78 74 2e this$1.context.
10dc0 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 isAssignmentTarg
10dd0 65 74 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 et = true;. .
10de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
10df0 69 73 24 31 2e 65 78 70 65 63 74 28 27 2e 27 29 is$1.expect('.')
10e00 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
10e10 20 20 20 20 20 76 61 72 20 70 72 6f 70 65 72 74 var propert
10e20 79 20 3d 20 74 68 69 73 24 31 2e 70 61 72 73 65 y = this$1.parse
10e30 49 64 65 6e 74 69 66 69 65 72 4e 61 6d 65 28 29 IdentifierName()
10e40 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
10e50 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 expr = this
10e60 24 31 2e 66 69 6e 61 6c 69 7a 65 28 74 68 69 73 $1.finalize(this
10e70 24 31 2e 73 74 61 72 74 4e 6f 64 65 28 73 74 61 $1.startNode(sta
10e80 72 74 54 6f 6b 65 6e 29 2c 20 6e 65 77 20 4e 6f rtToken), new No
10e90 64 65 2e 53 74 61 74 69 63 4d 65 6d 62 65 72 45 de.StaticMemberE
10ea0 78 70 72 65 73 73 69 6f 6e 28 65 78 70 72 2c 20 xpression(expr,
10eb0 70 72 6f 70 65 72 74 79 29 29 3b 0a 20 20 09 20 property));. .
10ec0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
10ed0 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
10ee0 20 69 66 20 28 74 68 69 73 24 31 2e 6d 61 74 63 if (this$1.matc
10ef0 68 28 27 28 27 29 29 20 7b 0a 20 20 09 20 20 20 h('(')) {. .
10f00 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
10f10 73 24 31 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 s$1.context.isBi
10f20 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 ndingElement = f
10f30 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
10f40 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
10f50 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
10f60 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 66 61 6c mentTarget = fal
10f70 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 se;. .
10f80 20 20 20 20 20 20 20 76 61 72 20 61 72 67 73 20 var args
10f90 3d 20 74 68 69 73 24 31 2e 70 61 72 73 65 41 72 = this$1.parseAr
10fa0 67 75 6d 65 6e 74 73 28 29 3b 0a 20 20 09 20 20 guments();. .
10fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 ex
10fc0 70 72 20 3d 20 74 68 69 73 24 31 2e 66 69 6e 61 pr = this$1.fina
10fd0 6c 69 7a 65 28 74 68 69 73 24 31 2e 73 74 61 72 lize(this$1.star
10fe0 74 4e 6f 64 65 28 73 74 61 72 74 54 6f 6b 65 6e tNode(startToken
10ff0 29 2c 20 6e 65 77 20 4e 6f 64 65 2e 43 61 6c 6c ), new Node.Call
11000 45 78 70 72 65 73 73 69 6f 6e 28 65 78 70 72 2c Expression(expr,
11010 20 61 72 67 73 29 29 3b 0a 20 20 09 20 20 20 20 args));. .
11020 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
11030 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 else if
11040 20 28 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 (this$1.match('
11050 5b 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 [')) {. .
11060 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
11070 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 .context.isBindi
11080 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 ngElement = fals
11090 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e;. .
110a0 20 20 20 20 20 20 74 68 69 73 24 31 2e 63 6f 6e this$1.con
110b0 74 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e text.isAssignmen
110c0 74 54 61 72 67 65 74 20 3d 20 74 72 75 65 3b 0a tTarget = true;.
110d0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
110e0 20 20 20 74 68 69 73 24 31 2e 65 78 70 65 63 74 this$1.expect
110f0 28 27 5b 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('[');. .
11100 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 72 var pr
11110 6f 70 65 72 74 79 20 3d 20 74 68 69 73 24 31 2e operty = this$1.
11120 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d isolateCoverGram
11130 6d 61 72 28 74 68 69 73 24 31 2e 70 61 72 73 65 mar(this$1.parse
11140 45 78 70 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 Expression);. .
11150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11160 74 68 69 73 24 31 2e 65 78 70 65 63 74 28 27 5d this$1.expect(']
11170 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ');. .
11180 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 expr = th
11190 69 73 24 31 2e 66 69 6e 61 6c 69 7a 65 28 74 68 is$1.finalize(th
111a0 69 73 24 31 2e 73 74 61 72 74 4e 6f 64 65 28 73 is$1.startNode(s
111b0 74 61 72 74 54 6f 6b 65 6e 29 2c 20 6e 65 77 20 tartToken), new
111c0 4e 6f 64 65 2e 43 6f 6d 70 75 74 65 64 4d 65 6d Node.ComputedMem
111d0 62 65 72 45 78 70 72 65 73 73 69 6f 6e 28 65 78 berExpression(ex
111e0 70 72 2c 20 70 72 6f 70 65 72 74 79 29 29 3b 0a pr, property));.
111f0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
11200 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
11210 65 6c 73 65 20 69 66 20 28 74 68 69 73 24 31 2e else if (this$1.
11220 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 20 3d lookahead.type =
11230 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e == token_1.Token
11240 2e 54 65 6d 70 6c 61 74 65 20 26 26 20 74 68 69 .Template && thi
11250 73 24 31 2e 6c 6f 6f 6b 61 68 65 61 64 2e 68 65 s$1.lookahead.he
11260 61 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ad) {. .
11270 20 20 20 20 20 20 20 20 20 76 61 72 20 71 75 61 var qua
11280 73 69 20 3d 20 74 68 69 73 24 31 2e 70 61 72 73 si = this$1.pars
11290 65 54 65 6d 70 6c 61 74 65 4c 69 74 65 72 61 6c eTemplateLiteral
112a0 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ();. .
112b0 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 expr = th
112c0 69 73 24 31 2e 66 69 6e 61 6c 69 7a 65 28 74 68 is$1.finalize(th
112d0 69 73 24 31 2e 73 74 61 72 74 4e 6f 64 65 28 73 is$1.startNode(s
112e0 74 61 72 74 54 6f 6b 65 6e 29 2c 20 6e 65 77 20 tartToken), new
112f0 4e 6f 64 65 2e 54 61 67 67 65 64 54 65 6d 70 6c Node.TaggedTempl
11300 61 74 65 45 78 70 72 65 73 73 69 6f 6e 28 65 78 ateExpression(ex
11310 70 72 2c 20 71 75 61 73 69 29 29 3b 0a 20 20 09 pr, quasi));. .
11320 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
11330 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 . els
11340 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
11350 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
11360 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
11370 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
11380 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
11390 65 78 74 2e 61 6c 6c 6f 77 49 6e 20 3d 20 70 72 ext.allowIn = pr
113a0 65 76 69 6f 75 73 41 6c 6c 6f 77 49 6e 3b 0a 20 eviousAllowIn;.
113b0 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
113c0 20 65 78 70 72 3b 0a 20 20 09 20 20 20 20 7d 3b expr;. . };
113d0 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
113e0 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 53 75 rototype.parseSu
113f0 70 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 per = function (
11400 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
11410 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 ar node = this.c
11420 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 reateNode();. .
11430 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 this.exp
11440 65 63 74 4b 65 79 77 6f 72 64 28 27 73 75 70 65 ectKeyword('supe
11450 72 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 r');. .
11460 69 66 20 28 21 74 68 69 73 2e 6d 61 74 63 68 28 if (!this.match(
11470 27 5b 27 29 20 26 26 20 21 74 68 69 73 2e 6d 61 '[') && !this.ma
11480 74 63 68 28 27 2e 27 29 29 20 7b 0a 20 20 09 20 tch('.')) {. .
11490 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
114a0 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 throwUnexpectedT
114b0 6f 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 oken(this.lookah
114c0 65 61 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ead);. .
114d0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
114e0 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
114f0 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
11500 65 2e 53 75 70 65 72 28 29 29 3b 0a 20 20 09 20 e.Super());. .
11510 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 };. . Par
11520 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
11530 72 73 65 4c 65 66 74 48 61 6e 64 53 69 64 65 45 rseLeftHandSideE
11540 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 xpression = func
11550 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
11560 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 var this$1
11570 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 = this;.. .
11580 20 20 20 20 61 73 73 65 72 74 5f 31 2e 61 73 73 assert_1.ass
11590 65 72 74 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 ert(this.context
115a0 2e 61 6c 6c 6f 77 49 6e 2c 20 27 63 61 6c 6c 65 .allowIn, 'calle
115b0 65 20 6f 66 20 6e 65 77 20 65 78 70 72 65 73 73 e of new express
115c0 69 6f 6e 20 61 6c 77 61 79 73 20 61 6c 6c 6f 77 ion always allow
115d0 20 69 6e 20 6b 65 79 77 6f 72 64 2e 27 29 3b 0a in keyword.');.
115e0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e . var n
115f0 6f 64 65 20 3d 20 74 68 69 73 2e 73 74 61 72 74 ode = this.start
11600 4e 6f 64 65 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 Node(this.lookah
11610 65 61 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ead);. .
11620 20 76 61 72 20 65 78 70 72 20 3d 20 28 74 68 69 var expr = (thi
11630 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 27 s.matchKeyword('
11640 73 75 70 65 72 27 29 20 26 26 20 74 68 69 73 2e super') && this.
11650 63 6f 6e 74 65 78 74 2e 69 6e 46 75 6e 63 74 69 context.inFuncti
11660 6f 6e 42 6f 64 79 29 20 3f 20 74 68 69 73 2e 70 onBody) ? this.p
11670 61 72 73 65 53 75 70 65 72 28 29 20 3a 0a 20 20 arseSuper() :.
11680 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
11690 73 2e 69 6e 68 65 72 69 74 43 6f 76 65 72 47 72 s.inheritCoverGr
116a0 61 6d 6d 61 72 28 74 68 69 73 2e 6d 61 74 63 68 ammar(this.match
116b0 4b 65 79 77 6f 72 64 28 27 6e 65 77 27 29 20 3f Keyword('new') ?
116c0 20 74 68 69 73 2e 70 61 72 73 65 4e 65 77 45 78 this.parseNewEx
116d0 70 72 65 73 73 69 6f 6e 20 3a 20 74 68 69 73 2e pression : this.
116e0 70 61 72 73 65 50 72 69 6d 61 72 79 45 78 70 72 parsePrimaryExpr
116f0 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 ession);. .
11700 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 65 29 while (true)
11710 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
11720 20 20 69 66 20 28 74 68 69 73 24 31 2e 6d 61 74 if (this$1.mat
11730 63 68 28 27 5b 27 29 29 20 7b 0a 20 20 09 20 20 ch('[')) {. .
11740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
11750 69 73 24 31 2e 63 6f 6e 74 65 78 74 2e 69 73 42 is$1.context.isB
11760 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 indingElement =
11770 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 false;. .
11780 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
11790 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 .context.isAssig
117a0 6e 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 74 72 nmentTarget = tr
117b0 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ue;. .
117c0 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 65 78 this$1.ex
117d0 70 65 63 74 28 27 5b 27 29 3b 0a 20 20 09 20 20 pect('[');. .
117e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
117f0 72 20 70 72 6f 70 65 72 74 79 20 3d 20 74 68 69 r property = thi
11800 73 24 31 2e 69 73 6f 6c 61 74 65 43 6f 76 65 72 s$1.isolateCover
11810 47 72 61 6d 6d 61 72 28 74 68 69 73 24 31 2e 70 Grammar(this$1.p
11820 61 72 73 65 45 78 70 72 65 73 73 69 6f 6e 29 3b arseExpression);
11830 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
11840 20 20 20 20 74 68 69 73 24 31 2e 65 78 70 65 63 this$1.expec
11850 74 28 27 5d 27 29 3b 0a 20 20 09 20 20 20 20 20 t(']');. .
11860 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 expr
11870 3d 20 74 68 69 73 24 31 2e 66 69 6e 61 6c 69 7a = this$1.finaliz
11880 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
11890 2e 43 6f 6d 70 75 74 65 64 4d 65 6d 62 65 72 45 .ComputedMemberE
118a0 78 70 72 65 73 73 69 6f 6e 28 65 78 70 72 2c 20 xpression(expr,
118b0 70 72 6f 70 65 72 74 79 29 29 3b 0a 20 20 09 20 property));. .
118c0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
118d0 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
118e0 20 69 66 20 28 74 68 69 73 24 31 2e 6d 61 74 63 if (this$1.matc
118f0 68 28 27 2e 27 29 29 20 7b 0a 20 20 09 20 20 20 h('.')) {. .
11900 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
11910 73 24 31 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 s$1.context.isBi
11920 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 ndingElement = f
11930 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
11940 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
11950 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
11960 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 74 72 75 mentTarget = tru
11970 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e;. .
11980 20 20 20 20 20 20 74 68 69 73 24 31 2e 65 78 70 this$1.exp
11990 65 63 74 28 27 2e 27 29 3b 0a 20 20 09 20 20 20 ect('.');. .
119a0 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 var
119b0 20 70 72 6f 70 65 72 74 79 20 3d 20 74 68 69 73 property = this
119c0 24 31 2e 70 61 72 73 65 49 64 65 6e 74 69 66 69 $1.parseIdentifi
119d0 65 72 4e 61 6d 65 28 29 3b 0a 20 20 09 20 20 20 erName();. .
119e0 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 exp
119f0 72 20 3d 20 74 68 69 73 24 31 2e 66 69 6e 61 6c r = this$1.final
11a00 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
11a10 64 65 2e 53 74 61 74 69 63 4d 65 6d 62 65 72 45 de.StaticMemberE
11a20 78 70 72 65 73 73 69 6f 6e 28 65 78 70 72 2c 20 xpression(expr,
11a30 70 72 6f 70 65 72 74 79 29 29 3b 0a 20 20 09 20 property));. .
11a40 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
11a50 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
11a60 20 69 66 20 28 74 68 69 73 24 31 2e 6c 6f 6f 6b if (this$1.look
11a70 61 68 65 61 64 2e 74 79 70 65 20 3d 3d 3d 20 74 ahead.type === t
11a80 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 54 65 6d oken_1.Token.Tem
11a90 70 6c 61 74 65 20 26 26 20 74 68 69 73 24 31 2e plate && this$1.
11aa0 6c 6f 6f 6b 61 68 65 61 64 2e 68 65 61 64 29 20 lookahead.head)
11ab0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
11ac0 20 20 20 20 20 76 61 72 20 71 75 61 73 69 20 3d var quasi =
11ad0 20 74 68 69 73 24 31 2e 70 61 72 73 65 54 65 6d this$1.parseTem
11ae0 70 6c 61 74 65 4c 69 74 65 72 61 6c 28 29 3b 0a plateLiteral();.
11af0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
11b00 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 24 31 expr = this$1
11b10 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 .finalize(node,
11b20 6e 65 77 20 4e 6f 64 65 2e 54 61 67 67 65 64 54 new Node.TaggedT
11b30 65 6d 70 6c 61 74 65 45 78 70 72 65 73 73 69 6f emplateExpressio
11b40 6e 28 65 78 70 72 2c 20 71 75 61 73 69 29 29 3b n(expr, quasi));
11b50 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
11b60 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
11b70 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
11b80 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
11b90 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
11ba0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a }. . }.
11bb0 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
11bc0 6e 20 65 78 70 72 3b 0a 20 20 09 20 20 20 20 7d n expr;. . }
11bd0 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 ;. . // ECMA
11be0 2d 32 36 32 20 31 32 2e 34 20 55 70 64 61 74 65 -262 12.4 Update
11bf0 20 45 78 70 72 65 73 73 69 6f 6e 73 0a 20 20 09 Expressions. .
11c00 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
11c10 74 79 70 65 2e 70 61 72 73 65 55 70 64 61 74 65 type.parseUpdate
11c20 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e Expression = fun
11c30 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
11c40 20 20 20 20 20 20 76 61 72 20 65 78 70 72 3b 0a var expr;.
11c50 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 73 . var s
11c60 74 61 72 74 54 6f 6b 65 6e 20 3d 20 74 68 69 73 tartToken = this
11c70 2e 6c 6f 6f 6b 61 68 65 61 64 3b 0a 20 20 09 20 .lookahead;. .
11c80 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
11c90 6d 61 74 63 68 28 27 2b 2b 27 29 20 7c 7c 20 74 match('++') || t
11ca0 68 69 73 2e 6d 61 74 63 68 28 27 2d 2d 27 29 29 his.match('--'))
11cb0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
11cc0 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
11cd0 73 2e 73 74 61 72 74 4e 6f 64 65 28 73 74 61 72 s.startNode(star
11ce0 74 54 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 tToken);. .
11cf0 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 var toke
11d00 6e 20 3d 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b n = this.nextTok
11d10 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
11d20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 expr = this
11d30 2e 69 6e 68 65 72 69 74 43 6f 76 65 72 47 72 61 .inheritCoverGra
11d40 6d 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 55 mmar(this.parseU
11d50 6e 61 72 79 45 78 70 72 65 73 73 69 6f 6e 29 3b naryExpression);
11d60 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
11d70 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 if (this.context
11d80 2e 73 74 72 69 63 74 20 26 26 20 65 78 70 72 2e .strict && expr.
11d90 74 79 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f type === syntax_
11da0 31 2e 53 79 6e 74 61 78 2e 49 64 65 6e 74 69 66 1.Syntax.Identif
11db0 69 65 72 20 26 26 20 74 68 69 73 2e 73 63 61 6e ier && this.scan
11dc0 6e 65 72 2e 69 73 52 65 73 74 72 69 63 74 65 64 ner.isRestricted
11dd0 57 6f 72 64 28 65 78 70 72 2e 6e 61 6d 65 29 29 Word(expr.name))
11de0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
11df0 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 this.toler
11e00 61 74 65 45 72 72 6f 72 28 6d 65 73 73 61 67 65 ateError(message
11e10 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 72 s_1.Messages.Str
11e20 69 63 74 4c 48 53 50 72 65 66 69 78 29 3b 0a 20 ictLHSPrefix);.
11e30 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
11e40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
11e50 66 20 28 21 74 68 69 73 2e 63 6f 6e 74 65 78 74 f (!this.context
11e60 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 .isAssignmentTar
11e70 67 65 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 get) {. .
11e80 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 this.t
11e90 6f 6c 65 72 61 74 65 45 72 72 6f 72 28 6d 65 73 olerateError(mes
11ea0 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 sages_1.Messages
11eb0 2e 49 6e 76 61 6c 69 64 4c 48 53 49 6e 41 73 73 .InvalidLHSInAss
11ec0 69 67 6e 6d 65 6e 74 29 3b 0a 20 20 09 20 20 20 ignment);. .
11ed0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
11ee0 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 72 var pr
11ef0 65 66 69 78 20 3d 20 74 72 75 65 3b 0a 20 20 09 efix = true;. .
11f00 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 72 expr
11f10 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 = this.finalize
11f20 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
11f30 55 70 64 61 74 65 45 78 70 72 65 73 73 69 6f 6e UpdateExpression
11f40 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 2c 20 65 78 (token.value, ex
11f50 70 72 2c 20 70 72 65 66 69 78 29 29 3b 0a 20 20 pr, prefix));.
11f60 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
11f70 73 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 s.context.isAssi
11f80 67 6e 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 66 gnmentTarget = f
11f90 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
11fa0 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 this.contex
11fb0 74 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 t.isBindingEleme
11fc0 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 nt = false;. .
11fd0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
11fe0 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
11ff0 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d expr =
12000 20 74 68 69 73 2e 69 6e 68 65 72 69 74 43 6f 76 this.inheritCov
12010 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 2e 70 erGrammar(this.p
12020 61 72 73 65 4c 65 66 74 48 61 6e 64 53 69 64 65 arseLeftHandSide
12030 45 78 70 72 65 73 73 69 6f 6e 41 6c 6c 6f 77 43 ExpressionAllowC
12040 61 6c 6c 29 3b 0a 20 20 09 20 20 20 20 20 20 20 all);. .
12050 20 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 68 if (!this.h
12060 61 73 4c 69 6e 65 54 65 72 6d 69 6e 61 74 6f 72 asLineTerminator
12070 20 26 26 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 && this.lookahe
12080 61 64 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 ad.type === toke
12090 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 74 75 n_1.Token.Punctu
120a0 61 74 6f 72 29 20 7b 0a 20 20 09 20 20 20 20 20 ator) {. .
120b0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
120c0 68 69 73 2e 6d 61 74 63 68 28 27 2b 2b 27 29 20 his.match('++')
120d0 7c 7c 20 74 68 69 73 2e 6d 61 74 63 68 28 27 2d || this.match('-
120e0 2d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 -')) {. .
120f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 if
12100 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 (this.context.s
12110 74 72 69 63 74 20 26 26 20 65 78 70 72 2e 74 79 trict && expr.ty
12120 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e pe === syntax_1.
12130 53 79 6e 74 61 78 2e 49 64 65 6e 74 69 66 69 65 Syntax.Identifie
12140 72 20 26 26 20 74 68 69 73 2e 73 63 61 6e 6e 65 r && this.scanne
12150 72 2e 69 73 52 65 73 74 72 69 63 74 65 64 57 6f r.isRestrictedWo
12160 72 64 28 65 78 70 72 2e 6e 61 6d 65 29 29 20 7b rd(expr.name)) {
12170 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
12180 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
12190 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f 72 28 6d .tolerateError(m
121a0 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 essages_1.Messag
121b0 65 73 2e 53 74 72 69 63 74 4c 48 53 50 6f 73 74 es.StrictLHSPost
121c0 66 69 78 29 3b 0a 20 20 09 20 20 20 20 20 20 20 fix);. .
121d0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
121e0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
121f0 20 20 20 20 20 20 69 66 20 28 21 74 68 69 73 2e if (!this.
12200 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
12210 6d 65 6e 74 54 61 72 67 65 74 29 20 7b 0a 20 20 mentTarget) {.
12220 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12230 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f this.to
12240 6c 65 72 61 74 65 45 72 72 6f 72 28 6d 65 73 73 lerateError(mess
12250 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e ages_1.Messages.
12260 49 6e 76 61 6c 69 64 4c 48 53 49 6e 41 73 73 69 InvalidLHSInAssi
12270 67 6e 6d 65 6e 74 29 3b 0a 20 20 09 20 20 20 20 gnment);. .
12280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12290 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
122a0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f this.co
122b0 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 ntext.isAssignme
122c0 6e 74 54 61 72 67 65 74 20 3d 20 66 61 6c 73 65 ntTarget = false
122d0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
122e0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f this.co
122f0 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 ntext.isBindingE
12300 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a lement = false;.
12310 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12320 20 20 20 20 20 20 20 76 61 72 20 6f 70 65 72 61 var opera
12330 74 6f 72 20 3d 20 74 68 69 73 2e 6e 65 78 74 54 tor = this.nextT
12340 6f 6b 65 6e 28 29 2e 76 61 6c 75 65 3b 0a 20 20 oken().value;.
12350 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12360 20 20 20 20 20 76 61 72 20 70 72 65 66 69 78 20 var prefix
12370 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
12380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12390 65 78 70 72 20 3d 20 74 68 69 73 2e 66 69 6e 61 expr = this.fina
123a0 6c 69 7a 65 28 74 68 69 73 2e 73 74 61 72 74 4e lize(this.startN
123b0 6f 64 65 28 73 74 61 72 74 54 6f 6b 65 6e 29 2c ode(startToken),
123c0 20 6e 65 77 20 4e 6f 64 65 2e 55 70 64 61 74 65 new Node.Update
123d0 45 78 70 72 65 73 73 69 6f 6e 28 6f 70 65 72 61 Expression(opera
123e0 74 6f 72 2c 20 65 78 70 72 2c 20 70 72 65 66 69 tor, expr, prefi
123f0 78 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 x));. .
12400 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
12410 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
12420 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
12430 20 20 20 72 65 74 75 72 6e 20 65 78 70 72 3b 0a return expr;.
12440 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
12450 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 2e // ECMA-262 12.
12460 35 20 55 6e 61 72 79 20 4f 70 65 72 61 74 6f 72 5 Unary Operator
12470 73 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e s. . Parser.
12480 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 55 prototype.parseU
12490 6e 61 72 79 45 78 70 72 65 73 73 69 6f 6e 20 3d naryExpression =
124a0 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
124b0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 65 78 . var ex
124c0 70 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 pr;. . i
124d0 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 27 2b f (this.match('+
124e0 27 29 20 7c 7c 20 74 68 69 73 2e 6d 61 74 63 68 ') || this.match
124f0 28 27 2d 27 29 20 7c 7c 20 74 68 69 73 2e 6d 61 ('-') || this.ma
12500 74 63 68 28 27 7e 27 29 20 7c 7c 20 74 68 69 73 tch('~') || this
12510 2e 6d 61 74 63 68 28 27 21 27 29 20 7c 7c 0a 20 .match('!') ||.
12520 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
12530 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 is.matchKeyword(
12540 27 64 65 6c 65 74 65 27 29 20 7c 7c 20 74 68 69 'delete') || thi
12550 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 27 s.matchKeyword('
12560 76 6f 69 64 27 29 20 7c 7c 20 74 68 69 73 2e 6d void') || this.m
12570 61 74 63 68 4b 65 79 77 6f 72 64 28 27 74 79 70 atchKeyword('typ
12580 65 6f 66 27 29 29 20 7b 0a 20 20 09 20 20 20 20 eof')) {. .
12590 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
125a0 20 3d 20 74 68 69 73 2e 73 74 61 72 74 4e 6f 64 = this.startNod
125b0 65 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 e(this.lookahead
125c0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
125d0 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d 20 74 68 var token = th
125e0 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a is.nextToken();.
125f0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
12600 78 70 72 20 3d 20 74 68 69 73 2e 69 6e 68 65 72 xpr = this.inher
12610 69 74 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 itCoverGrammar(t
12620 68 69 73 2e 70 61 72 73 65 55 6e 61 72 79 45 78 his.parseUnaryEx
12630 70 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 pression);. .
12640 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d expr =
12650 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
12660 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 55 6e ode, new Node.Un
12670 61 72 79 45 78 70 72 65 73 73 69 6f 6e 28 74 6f aryExpression(to
12680 6b 65 6e 2e 76 61 6c 75 65 2c 20 65 78 70 72 29 ken.value, expr)
12690 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
126a0 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 if (this.conte
126b0 78 74 2e 73 74 72 69 63 74 20 26 26 20 65 78 70 xt.strict && exp
126c0 72 2e 6f 70 65 72 61 74 6f 72 20 3d 3d 3d 20 27 r.operator === '
126d0 64 65 6c 65 74 65 27 20 26 26 20 65 78 70 72 2e delete' && expr.
126e0 61 72 67 75 6d 65 6e 74 2e 74 79 70 65 20 3d 3d argument.type ==
126f0 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
12700 78 2e 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a x.Identifier) {.
12710 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12720 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 this.tolerate
12730 45 72 72 6f 72 28 6d 65 73 73 61 67 65 73 5f 31 Error(messages_1
12740 2e 4d 65 73 73 61 67 65 73 2e 53 74 72 69 63 74 .Messages.Strict
12750 44 65 6c 65 74 65 29 3b 0a 20 20 09 20 20 20 20 Delete);. .
12760 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
12770 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f this.co
12780 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 ntext.isAssignme
12790 6e 74 54 61 72 67 65 74 20 3d 20 66 61 6c 73 65 ntTarget = false
127a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
127b0 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 this.context.is
127c0 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d BindingElement =
127d0 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 false;. .
127e0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
127f0 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
12800 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 expr = thi
12810 73 2e 70 61 72 73 65 55 70 64 61 74 65 45 78 70 s.parseUpdateExp
12820 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
12830 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
12840 20 20 20 72 65 74 75 72 6e 20 65 78 70 72 3b 0a return expr;.
12850 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
12860 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
12870 65 2e 70 61 72 73 65 45 78 70 6f 6e 65 6e 74 69 e.parseExponenti
12880 61 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 ationExpression
12890 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
128a0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 73 . var s
128b0 74 61 72 74 54 6f 6b 65 6e 20 3d 20 74 68 69 73 tartToken = this
128c0 2e 6c 6f 6f 6b 61 68 65 61 64 3b 0a 20 20 09 20 .lookahead;. .
128d0 20 20 20 20 20 20 20 76 61 72 20 65 78 70 72 20 var expr
128e0 3d 20 74 68 69 73 2e 69 6e 68 65 72 69 74 43 6f = this.inheritCo
128f0 76 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 2e verGrammar(this.
12900 70 61 72 73 65 55 6e 61 72 79 45 78 70 72 65 73 parseUnaryExpres
12910 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 sion);. .
12920 20 20 69 66 20 28 65 78 70 72 2e 74 79 70 65 20 if (expr.type
12930 21 3d 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e !== syntax_1.Syn
12940 74 61 78 2e 55 6e 61 72 79 45 78 70 72 65 73 73 tax.UnaryExpress
12950 69 6f 6e 20 26 26 20 74 68 69 73 2e 6d 61 74 63 ion && this.matc
12960 68 28 27 2a 2a 27 29 29 20 7b 0a 20 20 09 20 20 h('**')) {. .
12970 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e this.n
12980 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 extToken();. .
12990 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
129a0 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 6e context.isAssign
129b0 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 66 61 6c mentTarget = fal
129c0 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 se;. .
129d0 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e this.context.
129e0 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 isBindingElement
129f0 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 = false;. .
12a00 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 65 66 var lef
12a10 74 20 3d 20 65 78 70 72 3b 0a 20 20 09 20 20 20 t = expr;. .
12a20 20 20 20 20 20 20 20 20 20 76 61 72 20 72 69 67 var rig
12a30 68 74 20 3d 20 74 68 69 73 2e 69 73 6f 6c 61 74 ht = this.isolat
12a40 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 eCoverGrammar(th
12a50 69 73 2e 70 61 72 73 65 45 78 70 6f 6e 65 6e 74 is.parseExponent
12a60 69 61 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e iationExpression
12a70 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
12a80 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e 66 69 expr = this.fi
12a90 6e 61 6c 69 7a 65 28 74 68 69 73 2e 73 74 61 72 nalize(this.star
12aa0 74 4e 6f 64 65 28 73 74 61 72 74 54 6f 6b 65 6e tNode(startToken
12ab0 29 2c 20 6e 65 77 20 4e 6f 64 65 2e 42 69 6e 61 ), new Node.Bina
12ac0 72 79 45 78 70 72 65 73 73 69 6f 6e 28 27 2a 2a ryExpression('**
12ad0 27 2c 20 6c 65 66 74 2c 20 72 69 67 68 74 29 29 ', left, right))
12ae0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
12af0 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
12b00 20 65 78 70 72 3b 0a 20 20 09 20 20 20 20 7d 3b expr;. . };
12b10 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d . . // ECMA-
12b20 32 36 32 20 31 32 2e 36 20 45 78 70 6f 6e 65 6e 262 12.6 Exponen
12b30 74 69 61 74 69 6f 6e 20 4f 70 65 72 61 74 6f 72 tiation Operator
12b40 73 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 s. . // ECMA
12b50 2d 32 36 32 20 31 32 2e 37 20 4d 75 6c 74 69 70 -262 12.7 Multip
12b60 6c 69 63 61 74 69 76 65 20 4f 70 65 72 61 74 6f licative Operato
12b70 72 73 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d rs. . // ECM
12b80 41 2d 32 36 32 20 31 32 2e 38 20 41 64 64 69 74 A-262 12.8 Addit
12b90 69 76 65 20 4f 70 65 72 61 74 6f 72 73 0a 20 20 ive Operators.
12ba0 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 . // ECMA-262
12bb0 20 31 32 2e 39 20 42 69 74 77 69 73 65 20 53 68 12.9 Bitwise Sh
12bc0 69 66 74 20 4f 70 65 72 61 74 6f 72 73 0a 20 20 ift Operators.
12bd0 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 . // ECMA-262
12be0 20 31 32 2e 31 30 20 52 65 6c 61 74 69 6f 6e 61 12.10 Relationa
12bf0 6c 20 4f 70 65 72 61 74 6f 72 73 0a 20 20 09 20 l Operators. .
12c00 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 // ECMA-262 1
12c10 32 2e 31 31 20 45 71 75 61 6c 69 74 79 20 4f 70 2.11 Equality Op
12c20 65 72 61 74 6f 72 73 0a 20 20 09 20 20 20 20 2f erators. . /
12c30 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 2e 31 32 / ECMA-262 12.12
12c40 20 42 69 6e 61 72 79 20 42 69 74 77 69 73 65 20 Binary Bitwise
12c50 4f 70 65 72 61 74 6f 72 73 0a 20 20 09 20 20 20 Operators. .
12c60 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 2e // ECMA-262 12.
12c70 31 33 20 42 69 6e 61 72 79 20 4c 6f 67 69 63 61 13 Binary Logica
12c80 6c 20 4f 70 65 72 61 74 6f 72 73 0a 20 20 09 20 l Operators. .
12c90 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
12ca0 79 70 65 2e 62 69 6e 61 72 79 50 72 65 63 65 64 ype.binaryPreced
12cb0 65 6e 63 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 ence = function
12cc0 28 74 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 20 20 (token) {. .
12cd0 20 20 20 20 20 76 61 72 20 6f 70 20 3d 20 74 6f var op = to
12ce0 6b 65 6e 2e 76 61 6c 75 65 3b 0a 20 20 09 20 20 ken.value;. .
12cf0 20 20 20 20 20 20 76 61 72 20 70 72 65 63 65 64 var preced
12d00 65 6e 63 65 3b 0a 20 20 09 20 20 20 20 20 20 20 ence;. .
12d10 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 70 65 20 if (token.type
12d20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 === token_1.Toke
12d30 6e 2e 50 75 6e 63 74 75 61 74 6f 72 29 20 7b 0a n.Punctuator) {.
12d40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 70 . p
12d50 72 65 63 65 64 65 6e 63 65 20 3d 20 74 68 69 73 recedence = this
12d60 2e 6f 70 65 72 61 74 6f 72 50 72 65 63 65 64 65 .operatorPrecede
12d70 6e 63 65 5b 6f 70 5d 20 7c 7c 20 30 3b 0a 20 20 nce[op] || 0;.
12d80 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
12d90 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 else if (t
12da0 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f oken.type === to
12db0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 ken_1.Token.Keyw
12dc0 6f 72 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ord) {. .
12dd0 20 20 20 20 20 20 70 72 65 63 65 64 65 6e 63 65 precedence
12de0 20 3d 20 28 6f 70 20 3d 3d 3d 20 27 69 6e 73 74 = (op === 'inst
12df0 61 6e 63 65 6f 66 27 20 7c 7c 20 28 74 68 69 73 anceof' || (this
12e00 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 49 6e .context.allowIn
12e10 20 26 26 20 6f 70 20 3d 3d 3d 20 27 69 6e 27 29 && op === 'in')
12e20 29 20 3f 20 37 20 3a 20 30 3b 0a 20 20 09 20 20 ) ? 7 : 0;. .
12e30 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
12e40 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
12e50 20 20 20 20 20 20 20 20 20 70 72 65 63 65 64 65 precede
12e60 6e 63 65 20 3d 20 30 3b 0a 20 20 09 20 20 20 20 nce = 0;. .
12e70 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
12e80 20 72 65 74 75 72 6e 20 70 72 65 63 65 64 65 6e return preceden
12e90 63 65 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 ce;. . };.
12ea0 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
12eb0 6f 74 79 70 65 2e 70 61 72 73 65 42 69 6e 61 72 otype.parseBinar
12ec0 79 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 yExpression = fu
12ed0 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
12ee0 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 var this$
12ef0 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 1 = this;.. .
12f00 20 20 20 20 20 20 76 61 72 20 73 74 61 72 74 54 var startT
12f10 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b oken = this.look
12f20 61 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 ahead;. .
12f30 20 20 76 61 72 20 65 78 70 72 20 3d 20 74 68 69 var expr = thi
12f40 73 2e 69 6e 68 65 72 69 74 43 6f 76 65 72 47 72 s.inheritCoverGr
12f50 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 ammar(this.parse
12f60 45 78 70 6f 6e 65 6e 74 69 61 74 69 6f 6e 45 78 ExponentiationEx
12f70 70 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 pression);. .
12f80 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 6e 20 var token
12f90 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 = this.lookahead
12fa0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
12fb0 20 70 72 65 63 20 3d 20 74 68 69 73 2e 62 69 6e prec = this.bin
12fc0 61 72 79 50 72 65 63 65 64 65 6e 63 65 28 74 6f aryPrecedence(to
12fd0 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ken);. .
12fe0 20 69 66 20 28 70 72 65 63 20 3e 20 30 29 20 7b if (prec > 0) {
12ff0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
13000 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 this.nextToken()
13010 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
13020 20 74 6f 6b 65 6e 2e 70 72 65 63 20 3d 20 70 72 token.prec = pr
13030 65 63 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ec;. .
13040 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e this.context.
13050 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 isAssignmentTarg
13060 65 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 et = false;. .
13070 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
13080 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e context.isBindin
13090 67 45 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 65 gElement = false
130a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
130b0 20 76 61 72 20 6d 61 72 6b 65 72 73 20 3d 20 5b var markers = [
130c0 73 74 61 72 74 54 6f 6b 65 6e 2c 20 74 68 69 73 startToken, this
130d0 2e 6c 6f 6f 6b 61 68 65 61 64 5d 3b 0a 20 20 09 .lookahead];. .
130e0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
130f0 6c 65 66 74 20 3d 20 65 78 70 72 3b 0a 20 20 09 left = expr;. .
13100 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
13110 72 69 67 68 74 20 3d 20 74 68 69 73 2e 69 73 6f right = this.iso
13120 6c 61 74 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 lateCoverGrammar
13130 28 74 68 69 73 2e 70 61 72 73 65 45 78 70 6f 6e (this.parseExpon
13140 65 6e 74 69 61 74 69 6f 6e 45 78 70 72 65 73 73 entiationExpress
13150 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ion);. .
13160 20 20 20 20 20 76 61 72 20 73 74 61 63 6b 20 3d var stack =
13170 20 5b 6c 65 66 74 2c 20 74 6f 6b 65 6e 2c 20 72 [left, token, r
13180 69 67 68 74 5d 3b 0a 20 20 09 20 20 20 20 20 20 ight];. .
13190 20 20 20 20 20 20 77 68 69 6c 65 20 28 74 72 75 while (tru
131a0 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 e) {. .
131b0 20 20 20 20 20 20 20 20 70 72 65 63 20 3d 20 74 prec = t
131c0 68 69 73 24 31 2e 62 69 6e 61 72 79 50 72 65 63 his$1.binaryPrec
131d0 65 64 65 6e 63 65 28 74 68 69 73 24 31 2e 6c 6f edence(this$1.lo
131e0 6f 6b 61 68 65 61 64 29 3b 0a 20 20 09 20 20 20 okahead);. .
131f0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
13200 28 70 72 65 63 20 3c 3d 20 30 29 20 7b 0a 20 20 (prec <= 0) {.
13210 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13220 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
13230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
13240 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
13250 20 20 20 20 2f 2f 20 52 65 64 75 63 65 3a 20 6d // Reduce: m
13260 61 6b 65 20 61 20 62 69 6e 61 72 79 20 65 78 70 ake a binary exp
13270 72 65 73 73 69 6f 6e 20 66 72 6f 6d 20 74 68 65 ression from the
13280 20 74 68 72 65 65 20 74 6f 70 6d 6f 73 74 20 65 three topmost e
13290 6e 74 72 69 65 73 2e 0a 20 20 09 20 20 20 20 20 ntries.. .
132a0 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 while
132b0 20 28 28 73 74 61 63 6b 2e 6c 65 6e 67 74 68 20 ((stack.length
132c0 3e 20 32 29 20 26 26 20 28 70 72 65 63 20 3c 3d > 2) && (prec <=
132d0 20 73 74 61 63 6b 5b 73 74 61 63 6b 2e 6c 65 6e stack[stack.len
132e0 67 74 68 20 2d 20 32 5d 2e 70 72 65 63 29 29 20 gth - 2].prec))
132f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
13300 20 20 20 20 20 20 20 20 20 72 69 67 68 74 20 3d right =
13310 20 73 74 61 63 6b 2e 70 6f 70 28 29 3b 0a 20 20 stack.pop();.
13320 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13330 20 20 20 20 20 76 61 72 20 6f 70 65 72 61 74 6f var operato
13340 72 20 3d 20 73 74 61 63 6b 2e 70 6f 70 28 29 2e r = stack.pop().
13350 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 20 20 value;. .
13360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 le
13370 66 74 20 3d 20 73 74 61 63 6b 2e 70 6f 70 28 29 ft = stack.pop()
13380 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
13390 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 73 markers
133a0 2e 70 6f 70 28 29 3b 0a 20 20 09 20 20 20 20 20 .pop();. .
133b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
133c0 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 24 31 ar node = this$1
133d0 2e 73 74 61 72 74 4e 6f 64 65 28 6d 61 72 6b 65 .startNode(marke
133e0 72 73 5b 6d 61 72 6b 65 72 73 2e 6c 65 6e 67 74 rs[markers.lengt
133f0 68 20 2d 20 31 5d 29 3b 0a 20 20 09 20 20 20 20 h - 1]);. .
13400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13410 73 74 61 63 6b 2e 70 75 73 68 28 74 68 69 73 24 stack.push(this$
13420 31 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 1.finalize(node,
13430 20 6e 65 77 20 4e 6f 64 65 2e 42 69 6e 61 72 79 new Node.Binary
13440 45 78 70 72 65 73 73 69 6f 6e 28 6f 70 65 72 61 Expression(opera
13450 74 6f 72 2c 20 6c 65 66 74 2c 20 72 69 67 68 74 tor, left, right
13460 29 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 )));. .
13470 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
13480 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
13490 53 68 69 66 74 2e 0a 20 20 09 20 20 20 20 20 20 Shift.. .
134a0 20 20 20 20 20 20 20 20 20 20 74 6f 6b 65 6e 20 token
134b0 3d 20 74 68 69 73 24 31 2e 6e 65 78 74 54 6f 6b = this$1.nextTok
134c0 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
134d0 20 20 20 20 20 20 20 20 20 74 6f 6b 65 6e 2e 70 token.p
134e0 72 65 63 20 3d 20 70 72 65 63 3b 0a 20 20 09 20 rec = prec;. .
134f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
13500 74 61 63 6b 2e 70 75 73 68 28 74 6f 6b 65 6e 29 tack.push(token)
13510 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
13520 20 20 20 20 20 6d 61 72 6b 65 72 73 2e 70 75 73 markers.pus
13530 68 28 74 68 69 73 24 31 2e 6c 6f 6f 6b 61 68 65 h(this$1.lookahe
13540 61 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ad);. .
13550 20 20 20 20 20 20 20 20 73 74 61 63 6b 2e 70 75 stack.pu
13560 73 68 28 74 68 69 73 24 31 2e 69 73 6f 6c 61 74 sh(this$1.isolat
13570 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 eCoverGrammar(th
13580 69 73 24 31 2e 70 61 72 73 65 45 78 70 6f 6e 65 is$1.parseExpone
13590 6e 74 69 61 74 69 6f 6e 45 78 70 72 65 73 73 69 ntiationExpressi
135a0 6f 6e 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 on));. .
135b0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
135c0 20 20 20 20 20 20 2f 2f 20 46 69 6e 61 6c 20 72 // Final r
135d0 65 64 75 63 65 20 74 6f 20 63 6c 65 61 6e 2d 75 educe to clean-u
135e0 70 20 74 68 65 20 73 74 61 63 6b 2e 0a 20 20 09 p the stack.. .
135f0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
13600 69 20 3d 20 73 74 61 63 6b 2e 6c 65 6e 67 74 68 i = stack.length
13610 20 2d 20 31 3b 0a 20 20 09 20 20 20 20 20 20 20 - 1;. .
13620 20 20 20 20 20 65 78 70 72 20 3d 20 73 74 61 63 expr = stac
13630 6b 5b 69 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 k[i];. .
13640 20 20 20 20 20 6d 61 72 6b 65 72 73 2e 70 6f 70 markers.pop
13650 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ();. .
13660 20 20 20 77 68 69 6c 65 20 28 69 20 3e 20 31 29 while (i > 1)
13670 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
13680 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d var node =
13690 20 74 68 69 73 24 31 2e 73 74 61 72 74 4e 6f 64 this$1.startNod
136a0 65 28 6d 61 72 6b 65 72 73 2e 70 6f 70 28 29 29 e(markers.pop())
136b0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
136c0 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 expr = this
136d0 24 31 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 $1.finalize(node
136e0 2c 20 6e 65 77 20 4e 6f 64 65 2e 42 69 6e 61 72 , new Node.Binar
136f0 79 45 78 70 72 65 73 73 69 6f 6e 28 73 74 61 63 yExpression(stac
13700 6b 5b 69 20 2d 20 31 5d 2e 76 61 6c 75 65 2c 20 k[i - 1].value,
13710 73 74 61 63 6b 5b 69 20 2d 20 32 5d 2c 20 65 78 stack[i - 2], ex
13720 70 72 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 pr));. .
13730 20 20 20 20 20 20 20 20 20 69 20 2d 3d 20 32 3b i -= 2;
13740 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
13750 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 }. . }.
13760 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
13770 20 65 78 70 72 3b 0a 20 20 09 20 20 20 20 7d 3b expr;. . };
13780 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d . . // ECMA-
13790 32 36 32 20 31 32 2e 31 34 20 43 6f 6e 64 69 74 262 12.14 Condit
137a0 69 6f 6e 61 6c 20 4f 70 65 72 61 74 6f 72 0a 20 ional Operator.
137b0 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f . Parser.pro
137c0 74 6f 74 79 70 65 2e 70 61 72 73 65 43 6f 6e 64 totype.parseCond
137d0 69 74 69 6f 6e 61 6c 45 78 70 72 65 73 73 69 6f itionalExpressio
137e0 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 n = function ()
137f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
13800 20 73 74 61 72 74 54 6f 6b 65 6e 20 3d 20 74 68 startToken = th
13810 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 3b 0a 20 20 is.lookahead;.
13820 09 20 20 20 20 20 20 20 20 76 61 72 20 65 78 70 . var exp
13830 72 20 3d 20 74 68 69 73 2e 69 6e 68 65 72 69 74 r = this.inherit
13840 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 69 CoverGrammar(thi
13850 73 2e 70 61 72 73 65 42 69 6e 61 72 79 45 78 70 s.parseBinaryExp
13860 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 ression);. .
13870 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 if (this.ma
13880 74 63 68 28 27 3f 27 29 29 20 7b 0a 20 20 09 20 tch('?')) {. .
13890 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
138a0 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 nextToken();. .
138b0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
138c0 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 49 6e 20 previousAllowIn
138d0 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 = this.context.a
138e0 6c 6c 6f 77 49 6e 3b 0a 20 20 09 20 20 20 20 20 llowIn;. .
138f0 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
13900 65 78 74 2e 61 6c 6c 6f 77 49 6e 20 3d 20 74 72 ext.allowIn = tr
13910 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ue;. .
13920 20 20 20 76 61 72 20 63 6f 6e 73 65 71 75 65 6e var consequen
13930 74 20 3d 20 74 68 69 73 2e 69 73 6f 6c 61 74 65 t = this.isolate
13940 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 69 CoverGrammar(thi
13950 73 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 6e s.parseAssignmen
13960 74 45 78 70 72 65 73 73 69 6f 6e 29 3b 0a 20 20 tExpression);.
13970 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
13980 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 49 s.context.allowI
13990 6e 20 3d 20 70 72 65 76 69 6f 75 73 41 6c 6c 6f n = previousAllo
139a0 77 49 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 wIn;. .
139b0 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 this.expect(
139c0 27 3a 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ':');. .
139d0 20 20 20 20 20 76 61 72 20 61 6c 74 65 72 6e 61 var alterna
139e0 74 65 20 3d 20 74 68 69 73 2e 69 73 6f 6c 61 74 te = this.isolat
139f0 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 eCoverGrammar(th
13a00 69 73 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 is.parseAssignme
13a10 6e 74 45 78 70 72 65 73 73 69 6f 6e 29 3b 0a 20 ntExpression);.
13a20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 78 . ex
13a30 70 72 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 pr = this.finali
13a40 7a 65 28 74 68 69 73 2e 73 74 61 72 74 4e 6f 64 ze(this.startNod
13a50 65 28 73 74 61 72 74 54 6f 6b 65 6e 29 2c 20 6e e(startToken), n
13a60 65 77 20 4e 6f 64 65 2e 43 6f 6e 64 69 74 69 6f ew Node.Conditio
13a70 6e 61 6c 45 78 70 72 65 73 73 69 6f 6e 28 65 78 nalExpression(ex
13a80 70 72 2c 20 63 6f 6e 73 65 71 75 65 6e 74 2c 20 pr, consequent,
13a90 61 6c 74 65 72 6e 61 74 65 29 29 3b 0a 20 20 09 alternate));. .
13aa0 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
13ab0 2e 63 6f 6e 74 65 78 74 2e 69 73 41 73 73 69 67 .context.isAssig
13ac0 6e 6d 65 6e 74 54 61 72 67 65 74 20 3d 20 66 61 nmentTarget = fa
13ad0 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lse;. .
13ae0 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 this.context
13af0 2e 69 73 42 69 6e 64 69 6e 67 45 6c 65 6d 65 6e .isBindingElemen
13b00 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 t = false;. .
13b10 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
13b20 20 20 20 72 65 74 75 72 6e 20 65 78 70 72 3b 0a return expr;.
13b30 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
13b40 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 2e // ECMA-262 12.
13b50 31 35 20 41 73 73 69 67 6e 6d 65 6e 74 20 4f 70 15 Assignment Op
13b60 65 72 61 74 6f 72 73 0a 20 20 09 20 20 20 20 50 erators. . P
13b70 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
13b80 63 68 65 63 6b 50 61 74 74 65 72 6e 50 61 72 61 checkPatternPara
13b90 6d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6f 70 m = function (op
13ba0 74 69 6f 6e 73 2c 20 70 61 72 61 6d 29 20 7b 0a tions, param) {.
13bb0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 . var t
13bc0 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 his$1 = this;..
13bd0 20 09 20 20 20 20 20 20 20 20 73 77 69 74 63 68 . switch
13be0 20 28 70 61 72 61 6d 2e 74 79 70 65 29 20 7b 0a (param.type) {.
13bf0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 . c
13c00 61 73 65 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e ase syntax_1.Syn
13c10 74 61 78 2e 49 64 65 6e 74 69 66 69 65 72 3a 0a tax.Identifier:.
13c20 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13c30 20 20 20 74 68 69 73 2e 76 61 6c 69 64 61 74 65 this.validate
13c40 50 61 72 61 6d 28 6f 70 74 69 6f 6e 73 2c 20 70 Param(options, p
13c50 61 72 61 6d 2c 20 70 61 72 61 6d 2e 6e 61 6d 65 aram, param.name
13c60 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
13c70 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
13c80 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
13c90 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
13ca0 2e 52 65 73 74 45 6c 65 6d 65 6e 74 3a 0a 20 20 .RestElement:.
13cb0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13cc0 20 74 68 69 73 2e 63 68 65 63 6b 50 61 74 74 65 this.checkPatte
13cd0 72 6e 50 61 72 61 6d 28 6f 70 74 69 6f 6e 73 2c rnParam(options,
13ce0 20 70 61 72 61 6d 2e 61 72 67 75 6d 65 6e 74 29 param.argument)
13cf0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
13d00 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
13d10 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
13d20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e syntax_1.Syntax.
13d30 41 73 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 72 AssignmentPatter
13d40 6e 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 n:. .
13d50 20 20 20 20 20 20 74 68 69 73 2e 63 68 65 63 6b this.check
13d60 50 61 74 74 65 72 6e 50 61 72 61 6d 28 6f 70 74 PatternParam(opt
13d70 69 6f 6e 73 2c 20 70 61 72 61 6d 2e 6c 65 66 74 ions, param.left
13d80 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
13d90 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
13da0 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
13db0 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
13dc0 2e 41 72 72 61 79 50 61 74 74 65 72 6e 3a 0a 20 .ArrayPattern:.
13dd0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13de0 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 for (var i = 0
13df0 3b 20 69 20 3c 20 70 61 72 61 6d 2e 65 6c 65 6d ; i < param.elem
13e00 65 6e 74 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b ents.length; i++
13e10 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
13e20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 70 if (p
13e30 61 72 61 6d 2e 65 6c 65 6d 65 6e 74 73 5b 69 5d aram.elements[i]
13e40 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 09 !== null) {. .
13e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13e60 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 63 this$1.c
13e70 68 65 63 6b 50 61 74 74 65 72 6e 50 61 72 61 6d heckPatternParam
13e80 28 6f 70 74 69 6f 6e 73 2c 20 70 61 72 61 6d 2e (options, param.
13e90 65 6c 65 6d 65 6e 74 73 5b 69 5d 29 3b 0a 20 20 elements[i]);.
13ea0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13eb0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
13ec0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
13ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
13ee0 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
13ef0 20 20 20 20 20 63 61 73 65 20 73 79 6e 74 61 78 case syntax
13f00 5f 31 2e 53 79 6e 74 61 78 2e 59 69 65 6c 64 45 _1.Syntax.YieldE
13f10 78 70 72 65 73 73 69 6f 6e 3a 0a 20 20 09 20 20 xpression:. .
13f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
13f30 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
13f40 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 default:. .
13f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13f60 61 73 73 65 72 74 5f 31 2e 61 73 73 65 72 74 28 assert_1.assert(
13f70 70 61 72 61 6d 2e 74 79 70 65 20 3d 3d 3d 20 73 param.type === s
13f80 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 4f yntax_1.Syntax.O
13f90 62 6a 65 63 74 50 61 74 74 65 72 6e 2c 20 27 49 bjectPattern, 'I
13fa0 6e 76 61 6c 69 64 20 74 79 70 65 27 29 3b 0a 20 nvalid type');.
13fb0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13fc0 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 for (var i = 0
13fd0 3b 20 69 20 3c 20 70 61 72 61 6d 2e 70 72 6f 70 ; i < param.prop
13fe0 65 72 74 69 65 73 2e 6c 65 6e 67 74 68 3b 20 69 erties.length; i
13ff0 2b 2b 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ++) {. .
14000 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
14010 73 24 31 2e 63 68 65 63 6b 50 61 74 74 65 72 6e s$1.checkPattern
14020 50 61 72 61 6d 28 6f 70 74 69 6f 6e 73 2c 20 70 Param(options, p
14030 61 72 61 6d 2e 70 72 6f 70 65 72 74 69 65 73 5b aram.properties[
14040 69 5d 2e 76 61 6c 75 65 29 3b 0a 20 20 09 20 20 i].value);. .
14050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
14060 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
14070 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
14080 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 7d 3b }. . };
14090 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
140a0 72 6f 74 6f 74 79 70 65 2e 72 65 69 6e 74 65 72 rototype.reinter
140b0 70 72 65 74 41 73 43 6f 76 65 72 46 6f 72 6d 61 pretAsCoverForma
140c0 6c 73 4c 69 73 74 20 3d 20 66 75 6e 63 74 69 6f lsList = functio
140d0 6e 20 28 65 78 70 72 29 20 7b 0a 20 20 09 20 20 n (expr) {. .
140e0 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
140f0 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
14100 20 20 20 20 20 76 61 72 20 70 61 72 61 6d 73 20 var params
14110 3d 20 5b 65 78 70 72 5d 3b 0a 20 20 09 20 20 20 = [expr];. .
14120 20 20 20 20 20 76 61 72 20 6f 70 74 69 6f 6e 73 var options
14130 3b 0a 20 20 09 20 20 20 20 20 20 20 20 73 77 69 ;. . swi
14140 74 63 68 20 28 65 78 70 72 2e 74 79 70 65 29 20 tch (expr.type)
14150 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
14160 20 63 61 73 65 20 73 79 6e 74 61 78 5f 31 2e 53 case syntax_1.S
14170 79 6e 74 61 78 2e 49 64 65 6e 74 69 66 69 65 72 yntax.Identifier
14180 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
14190 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
141a0 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
141b0 41 72 72 6f 77 50 61 72 61 6d 65 74 65 72 50 6c ArrowParameterPl
141c0 61 63 65 48 6f 6c 64 65 72 3a 0a 20 20 09 20 20 aceHolder:. .
141d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 pa
141e0 72 61 6d 73 20 3d 20 65 78 70 72 2e 70 61 72 61 rams = expr.para
141f0 6d 73 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ms;. .
14200 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
14210 09 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 . def
14220 61 75 6c 74 3a 0a 20 20 09 20 20 20 20 20 20 20 ault:. .
14230 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
14240 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 null;. .
14250 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 6f 70 }. . op
14260 74 69 6f 6e 73 20 3d 20 7b 0a 20 20 09 20 20 20 tions = {. .
14270 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 53 65 paramSe
14280 74 3a 20 7b 7d 0a 20 20 09 20 20 20 20 20 20 20 t: {}. .
14290 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 66 };. . f
142a0 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 or (var i = 0; i
142b0 20 3c 20 70 61 72 61 6d 73 2e 6c 65 6e 67 74 68 < params.length
142c0 3b 20 2b 2b 69 29 20 7b 0a 20 20 09 20 20 20 20 ; ++i) {. .
142d0 20 20 20 20 20 20 20 20 76 61 72 20 70 61 72 61 var para
142e0 6d 20 3d 20 70 61 72 61 6d 73 5b 69 5d 3b 0a 20 m = params[i];.
142f0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
14300 20 28 70 61 72 61 6d 2e 74 79 70 65 20 3d 3d 3d (param.type ===
14310 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
14320 2e 41 73 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 .AssignmentPatte
14330 72 6e 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 rn) {. .
14340 20 20 20 20 20 20 20 20 20 69 66 20 28 70 61 72 if (par
14350 61 6d 2e 72 69 67 68 74 2e 74 79 70 65 20 3d 3d am.right.type ==
14360 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
14370 78 2e 59 69 65 6c 64 45 78 70 72 65 73 73 69 6f x.YieldExpressio
14380 6e 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 n) {. .
14390 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
143a0 70 61 72 61 6d 2e 72 69 67 68 74 2e 61 72 67 75 param.right.argu
143b0 6d 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 ment) {. .
143c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
143d0 20 20 20 74 68 69 73 24 31 2e 74 68 72 6f 77 55 this$1.throwU
143e0 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 nexpectedToken(t
143f0 68 69 73 24 31 2e 6c 6f 6f 6b 61 68 65 61 64 29 his$1.lookahead)
14400 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
14410 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
14420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14430 20 20 70 61 72 61 6d 2e 72 69 67 68 74 2e 74 79 param.right.ty
14440 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 pe = syntax_1.Sy
14450 6e 74 61 78 2e 49 64 65 6e 74 69 66 69 65 72 3b ntax.Identifier;
14460 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
14470 20 20 20 20 20 20 20 20 70 61 72 61 6d 2e 72 69 param.ri
14480 67 68 74 2e 6e 61 6d 65 20 3d 20 27 79 69 65 6c ght.name = 'yiel
14490 64 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 d';. .
144a0 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 delet
144b0 65 20 70 61 72 61 6d 2e 72 69 67 68 74 2e 61 72 e param.right.ar
144c0 67 75 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 gument;. .
144d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 d
144e0 65 6c 65 74 65 20 70 61 72 61 6d 2e 72 69 67 68 elete param.righ
144f0 74 2e 64 65 6c 65 67 61 74 65 3b 0a 20 20 09 20 t.delegate;. .
14500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
14510 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
14520 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
14530 20 74 68 69 73 24 31 2e 63 68 65 63 6b 50 61 74 this$1.checkPat
14540 74 65 72 6e 50 61 72 61 6d 28 6f 70 74 69 6f 6e ternParam(option
14550 73 2c 20 70 61 72 61 6d 29 3b 0a 20 20 09 20 20 s, param);. .
14560 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 params
14570 5b 69 5d 20 3d 20 70 61 72 61 6d 3b 0a 20 20 09 [i] = param;. .
14580 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
14590 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f if (this.co
145a0 6e 74 65 78 74 2e 73 74 72 69 63 74 20 7c 7c 20 ntext.strict ||
145b0 21 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c !this.context.al
145c0 6c 6f 77 59 69 65 6c 64 29 20 7b 0a 20 20 09 20 lowYield) {. .
145d0 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 for (
145e0 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c 20 70 var i = 0; i < p
145f0 61 72 61 6d 73 2e 6c 65 6e 67 74 68 3b 20 2b 2b arams.length; ++
14600 69 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 i) {. .
14610 20 20 20 20 20 20 20 20 76 61 72 20 70 61 72 61 var para
14620 6d 20 3d 20 70 61 72 61 6d 73 5b 69 5d 3b 0a 20 m = params[i];.
14630 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
14640 20 20 69 66 20 28 70 61 72 61 6d 2e 74 79 70 65 if (param.type
14650 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 === syntax_1.Sy
14660 6e 74 61 78 2e 59 69 65 6c 64 45 78 70 72 65 73 ntax.YieldExpres
14670 73 69 6f 6e 29 20 7b 0a 20 20 09 20 20 20 20 20 sion) {. .
14680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
14690 68 69 73 24 31 2e 74 68 72 6f 77 55 6e 65 78 70 his$1.throwUnexp
146a0 65 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 24 ectedToken(this$
146b0 31 2e 6c 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 20 1.lookahead);.
146c0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
146d0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
146e0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d }. . }
146f0 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
14700 6f 70 74 69 6f 6e 73 2e 6d 65 73 73 61 67 65 20 options.message
14710 3d 3d 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d === messages_1.M
14720 65 73 73 61 67 65 73 2e 53 74 72 69 63 74 50 61 essages.StrictPa
14730 72 61 6d 44 75 70 65 29 20 7b 0a 20 20 09 20 20 ramDupe) {. .
14740 20 20 20 20 20 20 20 20 20 20 76 61 72 20 74 6f var to
14750 6b 65 6e 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 ken = this.conte
14760 78 74 2e 73 74 72 69 63 74 20 3f 20 6f 70 74 69 xt.strict ? opti
14770 6f 6e 73 2e 73 74 72 69 63 74 65 64 20 3a 20 6f ons.stricted : o
14780 70 74 69 6f 6e 73 2e 66 69 72 73 74 52 65 73 74 ptions.firstRest
14790 72 69 63 74 65 64 3b 0a 20 20 09 20 20 20 20 20 ricted;. .
147a0 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f this.thro
147b0 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e wUnexpectedToken
147c0 28 74 6f 6b 65 6e 2c 20 6f 70 74 69 6f 6e 73 2e (token, options.
147d0 6d 65 73 73 61 67 65 29 3b 0a 20 20 09 20 20 20 message);. .
147e0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
147f0 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 return {. .
14800 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 params
14810 3a 20 70 61 72 61 6d 73 2c 0a 20 20 09 20 20 20 : params,. .
14820 20 20 20 20 20 20 20 20 20 73 74 72 69 63 74 65 stricte
14830 64 3a 20 6f 70 74 69 6f 6e 73 2e 73 74 72 69 63 d: options.stric
14840 74 65 64 2c 0a 20 20 09 20 20 20 20 20 20 20 20 ted,. .
14850 20 20 20 20 66 69 72 73 74 52 65 73 74 72 69 63 firstRestric
14860 74 65 64 3a 20 6f 70 74 69 6f 6e 73 2e 66 69 72 ted: options.fir
14870 73 74 52 65 73 74 72 69 63 74 65 64 2c 0a 20 20 stRestricted,.
14880 09 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 . mes
14890 73 61 67 65 3a 20 6f 70 74 69 6f 6e 73 2e 6d 65 sage: options.me
148a0 73 73 61 67 65 0a 20 20 09 20 20 20 20 20 20 20 ssage. .
148b0 20 7d 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 };. . };.
148c0 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
148d0 6f 74 79 70 65 2e 70 61 72 73 65 41 73 73 69 67 otype.parseAssig
148e0 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 20 nmentExpression
148f0 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
14900 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 65 . var e
14910 78 70 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 xpr;. .
14920 69 66 20 28 21 74 68 69 73 2e 63 6f 6e 74 65 78 if (!this.contex
14930 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 26 26 20 t.allowYield &&
14940 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 this.matchKeywor
14950 64 28 27 79 69 65 6c 64 27 29 29 20 7b 0a 20 20 d('yield')) {.
14960 09 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 . exp
14970 72 20 3d 20 74 68 69 73 2e 70 61 72 73 65 59 69 r = this.parseYi
14980 65 6c 64 45 78 70 72 65 73 73 69 6f 6e 28 29 3b eldExpression();
14990 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
149a0 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a . else {.
149b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
149c0 61 72 20 73 74 61 72 74 54 6f 6b 65 6e 20 3d 20 ar startToken =
149d0 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 3b 0a this.lookahead;.
149e0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
149f0 61 72 20 74 6f 6b 65 6e 20 3d 20 73 74 61 72 74 ar token = start
14a00 54 6f 6b 65 6e 3b 0a 20 20 09 20 20 20 20 20 20 Token;. .
14a10 20 20 20 20 20 20 65 78 70 72 20 3d 20 74 68 69 expr = thi
14a20 73 2e 70 61 72 73 65 43 6f 6e 64 69 74 69 6f 6e s.parseCondition
14a30 61 6c 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a alExpression();.
14a40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
14a50 66 20 28 65 78 70 72 2e 74 79 70 65 20 3d 3d 3d f (expr.type ===
14a60 20 41 72 72 6f 77 50 61 72 61 6d 65 74 65 72 50 ArrowParameterP
14a70 6c 61 63 65 48 6f 6c 64 65 72 20 7c 7c 20 74 68 laceHolder || th
14a80 69 73 2e 6d 61 74 63 68 28 27 3d 3e 27 29 29 20 is.match('=>'))
14a90 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
14aa0 20 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 // ECMA-262
14ab0 20 31 34 2e 32 20 41 72 72 6f 77 20 46 75 6e 63 14.2 Arrow Func
14ac0 74 69 6f 6e 20 44 65 66 69 6e 69 74 69 6f 6e 73 tion Definitions
14ad0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
14ae0 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 this.context
14af0 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 .isAssignmentTar
14b00 67 65 74 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 get = false;. .
14b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14b20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 73 42 this.context.isB
14b30 69 6e 64 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 indingElement =
14b40 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 false;. .
14b50 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 var li
14b60 73 74 20 3d 20 74 68 69 73 2e 72 65 69 6e 74 65 st = this.reinte
14b70 72 70 72 65 74 41 73 43 6f 76 65 72 46 6f 72 6d rpretAsCoverForm
14b80 61 6c 73 4c 69 73 74 28 65 78 70 72 29 3b 0a 20 alsList(expr);.
14b90 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
14ba0 20 20 69 66 20 28 6c 69 73 74 29 20 7b 0a 20 20 if (list) {.
14bb0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
14bc0 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 68 61 if (this.ha
14bd0 73 4c 69 6e 65 54 65 72 6d 69 6e 61 74 6f 72 29 sLineTerminator)
14be0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
14bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
14c00 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 is.tolerateUnexp
14c10 65 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 2e ectedToken(this.
14c20 6c 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 20 09 20 lookahead);. .
14c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14c40 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
14c50 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
14c60 2e 63 6f 6e 74 65 78 74 2e 66 69 72 73 74 43 6f .context.firstCo
14c70 76 65 72 49 6e 69 74 69 61 6c 69 7a 65 64 4e 61 verInitializedNa
14c80 6d 65 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a meError = null;.
14c90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
14ca0 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 var previ
14cb0 6f 75 73 53 74 72 69 63 74 20 3d 20 74 68 69 73 ousStrict = this
14cc0 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 3b .context.strict;
14cd0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
14ce0 20 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 var prev
14cf0 69 6f 75 73 41 6c 6c 6f 77 59 69 65 6c 64 20 3d iousAllowYield =
14d00 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
14d10 6c 6f 77 59 69 65 6c 64 3b 0a 20 20 09 20 20 20 lowYield;. .
14d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14d30 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
14d40 6c 6f 77 59 69 65 6c 64 20 3d 20 74 72 75 65 3b lowYield = true;
14d50 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
14d60 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
14d70 20 3d 20 74 68 69 73 2e 73 74 61 72 74 4e 6f 64 = this.startNod
14d80 65 28 73 74 61 72 74 54 6f 6b 65 6e 29 3b 0a 20 e(startToken);.
14d90 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
14da0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
14db0 74 28 27 3d 3e 27 29 3b 0a 20 20 09 20 20 20 20 t('=>');. .
14dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14dd0 76 61 72 20 62 6f 64 79 20 3d 20 74 68 69 73 2e var body = this.
14de0 6d 61 74 63 68 28 27 7b 27 29 20 3f 20 74 68 69 match('{') ? thi
14df0 73 2e 70 61 72 73 65 46 75 6e 63 74 69 6f 6e 53 s.parseFunctionS
14e00 6f 75 72 63 65 45 6c 65 6d 65 6e 74 73 28 29 20 ourceElements()
14e10 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
14e20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
14e30 73 2e 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 s.isolateCoverGr
14e40 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 ammar(this.parse
14e50 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 AssignmentExpres
14e60 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 sion);. .
14e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
14e80 72 20 65 78 70 72 65 73 73 69 6f 6e 20 3d 20 62 r expression = b
14e90 6f 64 79 2e 74 79 70 65 20 21 3d 3d 20 73 79 6e ody.type !== syn
14ea0 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 42 6c 6f tax_1.Syntax.Blo
14eb0 63 6b 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 ckStatement;. .
14ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14ed0 20 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e if (this.con
14ee0 74 65 78 74 2e 73 74 72 69 63 74 20 26 26 20 6c text.strict && l
14ef0 69 73 74 2e 66 69 72 73 74 52 65 73 74 72 69 63 ist.firstRestric
14f00 74 65 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ted) {. .
14f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14f20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 this.throwUnex
14f30 70 65 63 74 65 64 54 6f 6b 65 6e 28 6c 69 73 74 pectedToken(list
14f40 2e 66 69 72 73 74 52 65 73 74 72 69 63 74 65 64 .firstRestricted
14f50 2c 20 6c 69 73 74 2e 6d 65 73 73 61 67 65 29 3b , list.message);
14f60 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
14f70 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
14f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14f90 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 if (this.contex
14fa0 74 2e 73 74 72 69 63 74 20 26 26 20 6c 69 73 74 t.strict && list
14fb0 2e 73 74 72 69 63 74 65 64 29 20 7b 0a 20 20 09 .stricted) {. .
14fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14fd0 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c this.tol
14fe0 65 72 61 74 65 55 6e 65 78 70 65 63 74 65 64 54 erateUnexpectedT
14ff0 6f 6b 65 6e 28 6c 69 73 74 2e 73 74 72 69 63 74 oken(list.strict
15000 65 64 2c 20 6c 69 73 74 2e 6d 65 73 73 61 67 65 ed, list.message
15010 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
15020 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
15030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15040 20 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e 66 expr = this.f
15050 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
15060 77 20 4e 6f 64 65 2e 41 72 72 6f 77 46 75 6e 63 w Node.ArrowFunc
15070 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 28 6c tionExpression(l
15080 69 73 74 2e 70 61 72 61 6d 73 2c 20 62 6f 64 79 ist.params, body
15090 2c 20 65 78 70 72 65 73 73 69 6f 6e 29 29 3b 0a , expression));.
150a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
150b0 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
150c0 65 78 74 2e 73 74 72 69 63 74 20 3d 20 70 72 65 ext.strict = pre
150d0 76 69 6f 75 73 53 74 72 69 63 74 3b 0a 20 20 09 viousStrict;. .
150e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
150f0 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 this.context
15100 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 70 72 .allowYield = pr
15110 65 76 69 6f 75 73 41 6c 6c 6f 77 59 69 65 6c 64 eviousAllowYield
15120 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
15130 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
15140 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
15150 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 else {.
15160 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15170 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 41 if (this.matchA
15180 73 73 69 67 6e 28 29 29 20 7b 0a 20 20 09 20 20 ssign()) {. .
15190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
151a0 20 20 69 66 20 28 21 74 68 69 73 2e 63 6f 6e 74 if (!this.cont
151b0 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 ext.isAssignment
151c0 54 61 72 67 65 74 29 20 7b 0a 20 20 09 20 20 20 Target) {. .
151d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
151e0 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 this.tolera
151f0 74 65 45 72 72 6f 72 28 6d 65 73 73 61 67 65 73 teError(messages
15200 5f 31 2e 4d 65 73 73 61 67 65 73 2e 49 6e 76 61 _1.Messages.Inva
15210 6c 69 64 4c 48 53 49 6e 41 73 73 69 67 6e 6d 65 lidLHSInAssignme
15220 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nt);. .
15230 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
15240 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15250 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f if (this.co
15260 6e 74 65 78 74 2e 73 74 72 69 63 74 20 26 26 20 ntext.strict &&
15270 65 78 70 72 2e 74 79 70 65 20 3d 3d 3d 20 73 79 expr.type === sy
15280 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 49 64 ntax_1.Syntax.Id
15290 65 6e 74 69 66 69 65 72 29 20 7b 0a 20 20 09 20 entifier) {. .
152a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
152b0 20 20 20 20 20 20 20 76 61 72 20 69 64 20 3d 20 var id =
152c0 28 65 78 70 72 29 3b 0a 20 20 09 20 20 20 20 20 (expr);. .
152d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
152e0 20 20 20 69 66 20 28 74 68 69 73 2e 73 63 61 6e if (this.scan
152f0 6e 65 72 2e 69 73 52 65 73 74 72 69 63 74 65 64 ner.isRestricted
15300 57 6f 72 64 28 69 64 2e 6e 61 6d 65 29 29 20 7b Word(id.name)) {
15310 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
15320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15330 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 this.tolerateUne
15340 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f 6b xpectedToken(tok
15350 65 6e 2c 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d en, messages_1.M
15360 65 73 73 61 67 65 73 2e 53 74 72 69 63 74 4c 48 essages.StrictLH
15370 53 41 73 73 69 67 6e 6d 65 6e 74 29 3b 0a 20 20 SAssignment);.
15380 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15390 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
153a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
153b0 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 73 if (this.s
153c0 63 61 6e 6e 65 72 2e 69 73 53 74 72 69 63 74 4d canner.isStrictM
153d0 6f 64 65 52 65 73 65 72 76 65 64 57 6f 72 64 28 odeReservedWord(
153e0 69 64 2e 6e 61 6d 65 29 29 20 7b 0a 20 20 09 20 id.name)) {. .
153f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15400 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
15410 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 65 63 74 tolerateUnexpect
15420 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 6e 2c 20 6d edToken(token, m
15430 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 essages_1.Messag
15440 65 73 2e 53 74 72 69 63 74 52 65 73 65 72 76 65 es.StrictReserve
15450 64 57 6f 72 64 29 3b 0a 20 20 09 20 20 20 20 20 dWord);. .
15460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15470 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
15480 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
15490 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
154a0 20 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 6d if (!this.m
154b0 61 74 63 68 28 27 3d 27 29 29 20 7b 0a 20 20 09 atch('=')) {. .
154c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
154d0 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
154e0 74 65 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e text.isAssignmen
154f0 74 54 61 72 67 65 74 20 3d 20 66 61 6c 73 65 3b tTarget = false;
15500 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
15510 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
15520 2e 63 6f 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 .context.isBindi
15530 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 61 6c 73 ngElement = fals
15540 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e;. .
15550 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
15560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15570 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
15580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15590 20 20 20 20 20 74 68 69 73 2e 72 65 69 6e 74 65 this.reinte
155a0 72 70 72 65 74 45 78 70 72 65 73 73 69 6f 6e 41 rpretExpressionA
155b0 73 50 61 74 74 65 72 6e 28 65 78 70 72 29 3b 0a sPattern(expr);.
155c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
155d0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
155e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
155f0 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6e 65 78 token = this.nex
15600 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 tToken();. .
15610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15620 20 76 61 72 20 72 69 67 68 74 20 3d 20 74 68 69 var right = thi
15630 73 2e 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 s.isolateCoverGr
15640 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 ammar(this.parse
15650 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 AssignmentExpres
15660 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 sion);. .
15670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 ex
15680 70 72 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 pr = this.finali
15690 7a 65 28 74 68 69 73 2e 73 74 61 72 74 4e 6f 64 ze(this.startNod
156a0 65 28 73 74 61 72 74 54 6f 6b 65 6e 29 2c 20 6e e(startToken), n
156b0 65 77 20 4e 6f 64 65 2e 41 73 73 69 67 6e 6d 65 ew Node.Assignme
156c0 6e 74 45 78 70 72 65 73 73 69 6f 6e 28 74 6f 6b ntExpression(tok
156d0 65 6e 2e 76 61 6c 75 65 2c 20 65 78 70 72 2c 20 en.value, expr,
156e0 72 69 67 68 74 29 29 3b 0a 20 20 09 20 20 20 20 right));. .
156f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15700 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 66 69 72 this.context.fir
15710 73 74 43 6f 76 65 72 49 6e 69 74 69 61 6c 69 7a stCoverInitializ
15720 65 64 4e 61 6d 65 45 72 72 6f 72 20 3d 20 6e 75 edNameError = nu
15730 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ll;. .
15740 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
15750 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
15760 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
15770 20 20 72 65 74 75 72 6e 20 65 78 70 72 3b 0a 20 return expr;.
15780 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
15790 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 32 2e 31 // ECMA-262 12.1
157a0 36 20 43 6f 6d 6d 61 20 4f 70 65 72 61 74 6f 72 6 Comma Operator
157b0 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
157c0 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 45 78 rototype.parseEx
157d0 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 74 pression = funct
157e0 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
157f0 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d var this$1 =
15800 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 this;.. .
15810 20 20 20 76 61 72 20 73 74 61 72 74 54 6f 6b 65 var startToke
15820 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 n = this.lookahe
15830 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ad;. . v
15840 61 72 20 65 78 70 72 20 3d 20 74 68 69 73 2e 69 ar expr = this.i
15850 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d 6d solateCoverGramm
15860 61 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 73 ar(this.parseAss
15870 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f ignmentExpressio
15880 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 n);. . i
15890 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 27 2c f (this.match(',
158a0 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
158b0 20 20 20 20 20 76 61 72 20 65 78 70 72 65 73 73 var express
158c0 69 6f 6e 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 ions = [];. .
158d0 20 20 20 20 20 20 20 20 20 20 65 78 70 72 65 73 expres
158e0 73 69 6f 6e 73 2e 70 75 73 68 28 65 78 70 72 29 sions.push(expr)
158f0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
15900 20 77 68 69 6c 65 20 28 74 68 69 73 2e 73 74 61 while (this.sta
15910 72 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 20 3c rtMarker.index <
15920 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 65 this.scanner.le
15930 6e 67 74 68 29 20 7b 0a 20 20 09 20 20 20 20 20 ngth) {. .
15940 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 if (!
15950 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 2c 27 this$1.match(','
15960 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
15970 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
15980 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 k;. .
15990 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
159a0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 this$
159b0 31 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 1.nextToken();.
159c0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
159d0 20 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 70 75 expressions.pu
159e0 73 68 28 74 68 69 73 24 31 2e 69 73 6f 6c 61 74 sh(this$1.isolat
159f0 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 eCoverGrammar(th
15a00 69 73 24 31 2e 70 61 72 73 65 41 73 73 69 67 6e is$1.parseAssign
15a10 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 29 29 mentExpression))
15a20 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
15a30 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
15a40 20 20 65 78 70 72 20 3d 20 74 68 69 73 2e 66 69 expr = this.fi
15a50 6e 61 6c 69 7a 65 28 74 68 69 73 2e 73 74 61 72 nalize(this.star
15a60 74 4e 6f 64 65 28 73 74 61 72 74 54 6f 6b 65 6e tNode(startToken
15a70 29 2c 20 6e 65 77 20 4e 6f 64 65 2e 53 65 71 75 ), new Node.Sequ
15a80 65 6e 63 65 45 78 70 72 65 73 73 69 6f 6e 28 65 enceExpression(e
15a90 78 70 72 65 73 73 69 6f 6e 73 29 29 3b 0a 20 20 xpressions));.
15aa0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
15ab0 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 78 70 return exp
15ac0 72 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 r;. . };. .
15ad0 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 // ECMA-262
15ae0 31 33 2e 32 20 42 6c 6f 63 6b 0a 20 20 09 20 20 13.2 Block. .
15af0 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 Parser.prototy
15b00 70 65 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e pe.parseStatemen
15b10 74 4c 69 73 74 49 74 65 6d 20 3d 20 66 75 6e 63 tListItem = func
15b20 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
15b30 20 20 20 20 20 76 61 72 20 73 74 61 74 65 6d 65 var stateme
15b40 6e 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 nt = null;. .
15b50 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 this.conte
15b60 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 xt.isAssignmentT
15b70 61 72 67 65 74 20 3d 20 74 72 75 65 3b 0a 20 20 arget = true;.
15b80 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
15b90 6e 74 65 78 74 2e 69 73 42 69 6e 64 69 6e 67 45 ntext.isBindingE
15ba0 6c 65 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 20 lement = true;.
15bb0 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 . if (th
15bc0 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 70 is.lookahead.typ
15bd0 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f e === token_1.To
15be0 6b 65 6e 2e 4b 65 79 77 6f 72 64 29 20 7b 0a 20 ken.Keyword) {.
15bf0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 73 77 . sw
15c00 69 74 63 68 20 28 74 68 69 73 2e 6c 6f 6f 6b 61 itch (this.looka
15c10 68 65 61 64 2e 76 61 6c 75 65 29 20 7b 0a 20 20 head.value) {.
15c20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15c30 20 63 61 73 65 20 27 65 78 70 6f 72 74 27 3a 0a case 'export':.
15c40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15c50 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
15c60 73 6f 75 72 63 65 54 79 70 65 20 21 3d 3d 20 27 sourceType !== '
15c70 6d 6f 64 75 6c 65 27 29 20 7b 0a 20 20 09 20 20 module') {. .
15c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15c90 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 this.toler
15ca0 61 74 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b ateUnexpectedTok
15cb0 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 en(this.lookahea
15cc0 64 2c 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 d, messages_1.Me
15cd0 73 73 61 67 65 73 2e 49 6c 6c 65 67 61 6c 45 78 ssages.IllegalEx
15ce0 70 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e 29 portDeclaration)
15cf0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
15d00 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
15d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15d20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d 20 74 68 statement = th
15d30 69 73 2e 70 61 72 73 65 45 78 70 6f 72 74 44 65 is.parseExportDe
15d40 63 6c 61 72 61 74 69 6f 6e 28 29 3b 0a 20 20 09 claration();. .
15d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15d60 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
15d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ca
15d80 73 65 20 27 69 6d 70 6f 72 74 27 3a 0a 20 20 09 se 'import':. .
15d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15da0 20 20 20 20 69 66 20 28 74 68 69 73 2e 73 6f 75 if (this.sou
15db0 72 63 65 54 79 70 65 20 21 3d 3d 20 27 6d 6f 64 rceType !== 'mod
15dc0 75 6c 65 27 29 20 7b 0a 20 20 09 20 20 20 20 20 ule') {. .
15dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15de0 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 this.tolerate
15df0 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 UnexpectedToken(
15e00 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2c 20 this.lookahead,
15e10 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 messages_1.Messa
15e20 67 65 73 2e 49 6c 6c 65 67 61 6c 49 6d 70 6f 72 ges.IllegalImpor
15e30 74 44 65 63 6c 61 72 61 74 69 6f 6e 29 3b 0a 20 tDeclaration);.
15e40 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15e50 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
15e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
15e70 74 61 74 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e tatement = this.
15e80 70 61 72 73 65 49 6d 70 6f 72 74 44 65 63 6c 61 parseImportDecla
15e90 72 61 74 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 ration();. .
15ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15eb0 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
15ec0 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
15ed0 27 63 6f 6e 73 74 27 3a 0a 20 20 09 20 20 20 20 'const':. .
15ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15ef0 73 74 61 74 65 6d 65 6e 74 20 3d 20 74 68 69 73 statement = this
15f00 2e 70 61 72 73 65 4c 65 78 69 63 61 6c 44 65 63 .parseLexicalDec
15f10 6c 61 72 61 74 69 6f 6e 28 7b 20 69 6e 46 6f 72 laration({ inFor
15f20 3a 20 66 61 6c 73 65 20 7d 29 3b 0a 20 20 09 20 : false });. .
15f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15f40 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
15f50 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 cas
15f60 65 20 27 66 75 6e 63 74 69 6f 6e 27 3a 0a 20 20 e 'function':.
15f70 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15f80 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d statement =
15f90 20 74 68 69 73 2e 70 61 72 73 65 46 75 6e 63 74 this.parseFunct
15fa0 69 6f 6e 44 65 63 6c 61 72 61 74 69 6f 6e 28 29 ionDeclaration()
15fb0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
15fc0 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a break;.
15fd0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
15fe0 20 20 20 63 61 73 65 20 27 63 6c 61 73 73 27 3a case 'class':
15ff0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
16000 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e statemen
16010 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 43 6c t = this.parseCl
16020 61 73 73 44 65 63 6c 61 72 61 74 69 6f 6e 28 29 assDeclaration()
16030 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
16040 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a break;.
16050 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
16060 20 20 20 63 61 73 65 20 27 6c 65 74 27 3a 0a 20 case 'let':.
16070 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
16080 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 statement
16090 3d 20 74 68 69 73 2e 69 73 4c 65 78 69 63 61 6c = this.isLexical
160a0 44 65 63 6c 61 72 61 74 69 6f 6e 28 29 20 3f 20 Declaration() ?
160b0 74 68 69 73 2e 70 61 72 73 65 4c 65 78 69 63 61 this.parseLexica
160c0 6c 44 65 63 6c 61 72 61 74 69 6f 6e 28 7b 20 69 lDeclaration({ i
160d0 6e 46 6f 72 3a 20 66 61 6c 73 65 20 7d 29 20 3a nFor: false }) :
160e0 20 74 68 69 73 2e 70 61 72 73 65 53 74 61 74 65 this.parseState
160f0 6d 65 6e 74 28 29 3b 0a 20 20 09 20 20 20 20 20 ment();. .
16100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
16110 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
16120 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 default
16130 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
16140 20 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 stateme
16150 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 53 nt = this.parseS
16160 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 tatement();. .
16170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
16180 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
16190 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
161a0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
161b0 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
161c0 20 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 stateme
161d0 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 53 nt = this.parseS
161e0 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 tatement();. .
161f0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
16200 20 20 20 20 72 65 74 75 72 6e 20 73 74 61 74 65 return state
16210 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 7d 3b 0a ment;. . };.
16220 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
16230 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 42 6c 6f ototype.parseBlo
16240 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 ck = function ()
16250 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
16260 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b r this$1 = this;
16270 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 .. . var
16280 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
16290 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 ateNode();. .
162a0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
162b0 74 28 27 7b 27 29 3b 0a 20 20 09 20 20 20 20 20 t('{');. .
162c0 20 20 20 76 61 72 20 62 6c 6f 63 6b 20 3d 20 5b var block = [
162d0 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 77 68 ];. . wh
162e0 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 20 20 09 ile (true) {. .
162f0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
16300 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 7d 27 this$1.match('}'
16310 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
16320 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
16330 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
16340 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 62 . b
16350 6c 6f 63 6b 2e 70 75 73 68 28 74 68 69 73 24 31 lock.push(this$1
16360 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e 74 4c .parseStatementL
16370 69 73 74 49 74 65 6d 28 29 29 3b 0a 20 20 09 20 istItem());. .
16380 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
16390 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 this.expect(
163a0 27 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 '}');. .
163b0 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e return this.fin
163c0 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 alize(node, new
163d0 4e 6f 64 65 2e 42 6c 6f 63 6b 53 74 61 74 65 6d Node.BlockStatem
163e0 65 6e 74 28 62 6c 6f 63 6b 29 29 3b 0a 20 20 09 ent(block));. .
163f0 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f };. . //
16400 20 45 43 4d 41 2d 32 36 32 20 31 33 2e 33 2e 31 ECMA-262 13.3.1
16410 20 4c 65 74 20 61 6e 64 20 43 6f 6e 73 74 20 44 Let and Const D
16420 65 63 6c 61 72 61 74 69 6f 6e 73 0a 20 20 09 20 eclarations. .
16430 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
16440 79 70 65 2e 70 61 72 73 65 4c 65 78 69 63 61 6c ype.parseLexical
16450 42 69 6e 64 69 6e 67 20 3d 20 66 75 6e 63 74 69 Binding = functi
16460 6f 6e 20 28 6b 69 6e 64 2c 20 6f 70 74 69 6f 6e on (kind, option
16470 73 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 s) {. .
16480 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e var node = this.
16490 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 createNode();.
164a0 09 20 20 20 20 20 20 20 20 76 61 72 20 70 61 72 . var par
164b0 61 6d 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 ams = [];. .
164c0 20 20 20 20 20 76 61 72 20 69 64 20 3d 20 74 68 var id = th
164d0 69 73 2e 70 61 72 73 65 50 61 74 74 65 72 6e 28 is.parsePattern(
164e0 70 61 72 61 6d 73 2c 20 6b 69 6e 64 29 3b 0a 20 params, kind);.
164f0 20 09 20 20 20 20 20 20 20 20 2f 2f 20 45 43 4d . // ECM
16500 41 2d 32 36 32 20 31 32 2e 32 2e 31 0a 20 20 09 A-262 12.2.1. .
16510 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
16520 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 .context.strict
16530 26 26 20 69 64 2e 74 79 70 65 20 3d 3d 3d 20 73 && id.type === s
16540 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 49 yntax_1.Syntax.I
16550 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 20 20 09 dentifier) {. .
16560 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
16570 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 73 52 this.scanner.isR
16580 65 73 74 72 69 63 74 65 64 57 6f 72 64 28 28 69 estrictedWord((i
16590 64 29 2e 6e 61 6d 65 29 29 20 7b 0a 20 20 09 20 d).name)) {. .
165a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
165b0 68 69 73 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f his.tolerateErro
165c0 72 28 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 r(messages_1.Mes
165d0 73 61 67 65 73 2e 53 74 72 69 63 74 56 61 72 4e sages.StrictVarN
165e0 61 6d 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ame);. .
165f0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
16600 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 76 }. . v
16610 61 72 20 69 6e 69 74 20 3d 20 6e 75 6c 6c 3b 0a ar init = null;.
16620 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 6b . if (k
16630 69 6e 64 20 3d 3d 3d 20 27 63 6f 6e 73 74 27 29 ind === 'const')
16640 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
16650 20 20 69 66 20 28 21 74 68 69 73 2e 6d 61 74 63 if (!this.matc
16660 68 4b 65 79 77 6f 72 64 28 27 69 6e 27 29 20 26 hKeyword('in') &
16670 26 20 21 74 68 69 73 2e 6d 61 74 63 68 43 6f 6e & !this.matchCon
16680 74 65 78 74 75 61 6c 4b 65 79 77 6f 72 64 28 27 textualKeyword('
16690 6f 66 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 of')) {. .
166a0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
166b0 65 78 70 65 63 74 28 27 3d 27 29 3b 0a 20 20 09 expect('=');. .
166c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
166d0 69 6e 69 74 20 3d 20 74 68 69 73 2e 69 73 6f 6c init = this.isol
166e0 61 74 65 43 6f 76 65 72 47 72 61 6d 6d 61 72 28 ateCoverGrammar(
166f0 74 68 69 73 2e 70 61 72 73 65 41 73 73 69 67 6e this.parseAssign
16700 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 29 3b mentExpression);
16710 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
16720 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 }. . }.
16730 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 . else i
16740 66 20 28 28 21 6f 70 74 69 6f 6e 73 2e 69 6e 46 f ((!options.inF
16750 6f 72 20 26 26 20 69 64 2e 74 79 70 65 20 21 3d or && id.type !=
16760 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
16770 78 2e 49 64 65 6e 74 69 66 69 65 72 29 20 7c 7c x.Identifier) ||
16780 20 74 68 69 73 2e 6d 61 74 63 68 28 27 3d 27 29 this.match('=')
16790 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
167a0 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 this.expect('
167b0 3d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 =');. .
167c0 20 20 20 20 69 6e 69 74 20 3d 20 74 68 69 73 2e init = this.
167d0 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d isolateCoverGram
167e0 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 mar(this.parseAs
167f0 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 signmentExpressi
16800 6f 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 on);. .
16810 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 }. . ret
16820 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
16830 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
16840 2e 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 .VariableDeclara
16850 74 6f 72 28 69 64 2c 20 69 6e 69 74 29 29 3b 0a tor(id, init));.
16860 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
16870 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
16880 65 2e 70 61 72 73 65 42 69 6e 64 69 6e 67 4c 69 e.parseBindingLi
16890 73 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6b st = function (k
168a0 69 6e 64 2c 20 6f 70 74 69 6f 6e 73 29 20 7b 0a ind, options) {.
168b0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 . var t
168c0 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 his$1 = this;..
168d0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 . var li
168e0 73 74 20 3d 20 5b 74 68 69 73 2e 70 61 72 73 65 st = [this.parse
168f0 4c 65 78 69 63 61 6c 42 69 6e 64 69 6e 67 28 6b LexicalBinding(k
16900 69 6e 64 2c 20 6f 70 74 69 6f 6e 73 29 5d 3b 0a ind, options)];.
16910 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
16920 20 28 74 68 69 73 2e 6d 61 74 63 68 28 27 2c 27 (this.match(','
16930 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
16940 20 20 20 20 74 68 69 73 24 31 2e 6e 65 78 74 54 this$1.nextT
16950 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
16960 20 20 20 20 20 20 20 6c 69 73 74 2e 70 75 73 68 list.push
16970 28 74 68 69 73 24 31 2e 70 61 72 73 65 4c 65 78 (this$1.parseLex
16980 69 63 61 6c 42 69 6e 64 69 6e 67 28 6b 69 6e 64 icalBinding(kind
16990 2c 20 6f 70 74 69 6f 6e 73 29 29 3b 0a 20 20 09 , options));. .
169a0 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
169b0 20 20 20 20 20 72 65 74 75 72 6e 20 6c 69 73 74 return list
169c0 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
169d0 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
169e0 79 70 65 2e 69 73 4c 65 78 69 63 61 6c 44 65 63 ype.isLexicalDec
169f0 6c 61 72 61 74 69 6f 6e 20 3d 20 66 75 6e 63 74 laration = funct
16a00 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
16a10 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 var previous
16a20 49 6e 64 65 78 20 3d 20 74 68 69 73 2e 73 63 61 Index = this.sca
16a30 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 nner.index;. .
16a40 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 var previ
16a50 6f 75 73 4c 69 6e 65 4e 75 6d 62 65 72 20 3d 20 ousLineNumber =
16a60 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e this.scanner.lin
16a70 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 eNumber;. .
16a80 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 var previous
16a90 4c 69 6e 65 53 74 61 72 74 20 3d 20 74 68 69 73 LineStart = this
16aa0 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 53 74 61 .scanner.lineSta
16ab0 72 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 rt;. . t
16ac0 68 69 73 2e 63 6f 6c 6c 65 63 74 43 6f 6d 6d 65 his.collectComme
16ad0 6e 74 73 28 29 3b 0a 20 20 09 20 20 20 20 20 20 nts();. .
16ae0 20 20 76 61 72 20 6e 65 78 74 20 3d 20 74 68 69 var next = thi
16af0 73 2e 73 63 61 6e 6e 65 72 2e 6c 65 78 28 29 3b s.scanner.lex();
16b00 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
16b10 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 20 3d .scanner.index =
16b20 20 70 72 65 76 69 6f 75 73 49 6e 64 65 78 3b 0a previousIndex;.
16b30 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
16b40 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 scanner.lineNumb
16b50 65 72 20 3d 20 70 72 65 76 69 6f 75 73 4c 69 6e er = previousLin
16b60 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 eNumber;. .
16b70 20 20 20 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 this.scanner
16b80 2e 6c 69 6e 65 53 74 61 72 74 20 3d 20 70 72 65 .lineStart = pre
16b90 76 69 6f 75 73 4c 69 6e 65 53 74 61 72 74 3b 0a viousLineStart;.
16ba0 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
16bb0 6e 20 28 6e 65 78 74 2e 74 79 70 65 20 3d 3d 3d n (next.type ===
16bc0 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 49 token_1.Token.I
16bd0 64 65 6e 74 69 66 69 65 72 29 20 7c 7c 0a 20 20 dentifier) ||.
16be0 09 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 65 . (ne
16bf0 78 74 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 xt.type === toke
16c00 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 74 75 n_1.Token.Punctu
16c10 61 74 6f 72 20 26 26 20 6e 65 78 74 2e 76 61 6c ator && next.val
16c20 75 65 20 3d 3d 3d 20 27 5b 27 29 20 7c 7c 0a 20 ue === '[') ||.
16c30 20 09 20 20 20 20 20 20 20 20 20 20 20 20 28 6e . (n
16c40 65 78 74 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b ext.type === tok
16c50 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 74 en_1.Token.Punct
16c60 75 61 74 6f 72 20 26 26 20 6e 65 78 74 2e 76 61 uator && next.va
16c70 6c 75 65 20 3d 3d 3d 20 27 7b 27 29 20 7c 7c 0a lue === '{') ||.
16c80 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 28 . (
16c90 6e 65 78 74 2e 74 79 70 65 20 3d 3d 3d 20 74 6f next.type === to
16ca0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 ken_1.Token.Keyw
16cb0 6f 72 64 20 26 26 20 6e 65 78 74 2e 76 61 6c 75 ord && next.valu
16cc0 65 20 3d 3d 3d 20 27 6c 65 74 27 29 20 7c 7c 0a e === 'let') ||.
16cd0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 28 . (
16ce0 6e 65 78 74 2e 74 79 70 65 20 3d 3d 3d 20 74 6f next.type === to
16cf0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 ken_1.Token.Keyw
16d00 6f 72 64 20 26 26 20 6e 65 78 74 2e 76 61 6c 75 ord && next.valu
16d10 65 20 3d 3d 3d 20 27 79 69 65 6c 64 27 29 3b 0a e === 'yield');.
16d20 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
16d30 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
16d40 65 2e 70 61 72 73 65 4c 65 78 69 63 61 6c 44 65 e.parseLexicalDe
16d50 63 6c 61 72 61 74 69 6f 6e 20 3d 20 66 75 6e 63 claration = func
16d60 74 69 6f 6e 20 28 6f 70 74 69 6f 6e 73 29 20 7b tion (options) {
16d70 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
16d80 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 node = this.crea
16d90 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 teNode();. .
16da0 20 20 20 20 20 76 61 72 20 6b 69 6e 64 20 3d 20 var kind =
16db0 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 this.nextToken()
16dc0 2e 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 20 .value;. .
16dd0 20 20 20 61 73 73 65 72 74 5f 31 2e 61 73 73 65 assert_1.asse
16de0 72 74 28 6b 69 6e 64 20 3d 3d 3d 20 27 6c 65 74 rt(kind === 'let
16df0 27 20 7c 7c 20 6b 69 6e 64 20 3d 3d 3d 20 27 63 ' || kind === 'c
16e00 6f 6e 73 74 27 2c 20 27 4c 65 78 69 63 61 6c 20 onst', 'Lexical
16e10 64 65 63 6c 61 72 61 74 69 6f 6e 20 6d 75 73 74 declaration must
16e20 20 62 65 20 65 69 74 68 65 72 20 6c 65 74 20 6f be either let o
16e30 72 20 63 6f 6e 73 74 27 29 3b 0a 20 20 09 20 20 r const');. .
16e40 20 20 20 20 20 20 76 61 72 20 64 65 63 6c 61 72 var declar
16e50 61 74 69 6f 6e 73 20 3d 20 74 68 69 73 2e 70 61 ations = this.pa
16e60 72 73 65 42 69 6e 64 69 6e 67 4c 69 73 74 28 6b rseBindingList(k
16e70 69 6e 64 2c 20 6f 70 74 69 6f 6e 73 29 3b 0a 20 ind, options);.
16e80 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 . this.c
16e90 6f 6e 73 75 6d 65 53 65 6d 69 63 6f 6c 6f 6e 28 onsumeSemicolon(
16ea0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 );. . re
16eb0 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
16ec0 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
16ed0 65 2e 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 e.VariableDeclar
16ee0 61 74 69 6f 6e 28 64 65 63 6c 61 72 61 74 69 6f ation(declaratio
16ef0 6e 73 2c 20 6b 69 6e 64 29 29 3b 0a 20 20 09 20 ns, kind));. .
16f00 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 };. . //
16f10 45 43 4d 41 2d 32 36 32 20 31 33 2e 33 2e 33 20 ECMA-262 13.3.3
16f20 44 65 73 74 72 75 63 74 75 72 69 6e 67 20 42 69 Destructuring Bi
16f30 6e 64 69 6e 67 20 50 61 74 74 65 72 6e 73 0a 20 nding Patterns.
16f40 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f . Parser.pro
16f50 74 6f 74 79 70 65 2e 70 61 72 73 65 42 69 6e 64 totype.parseBind
16f60 69 6e 67 52 65 73 74 45 6c 65 6d 65 6e 74 20 3d ingRestElement =
16f70 20 66 75 6e 63 74 69 6f 6e 20 28 70 61 72 61 6d function (param
16f80 73 2c 20 6b 69 6e 64 29 20 7b 0a 20 20 09 20 20 s, kind) {. .
16f90 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d var node =
16fa0 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 this.createNode
16fb0 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ();. . t
16fc0 68 69 73 2e 65 78 70 65 63 74 28 27 2e 2e 2e 27 his.expect('...'
16fd0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
16fe0 72 20 61 72 67 20 3d 20 74 68 69 73 2e 70 61 72 r arg = this.par
16ff0 73 65 50 61 74 74 65 72 6e 28 70 61 72 61 6d 73 sePattern(params
17000 2c 20 6b 69 6e 64 29 3b 0a 20 20 09 20 20 20 20 , kind);. .
17010 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
17020 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
17030 65 77 20 4e 6f 64 65 2e 52 65 73 74 45 6c 65 6d ew Node.RestElem
17040 65 6e 74 28 61 72 67 29 29 3b 0a 20 20 09 20 20 ent(arg));. .
17050 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 };. . Pars
17060 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 er.prototype.par
17070 73 65 41 72 72 61 79 50 61 74 74 65 72 6e 20 3d seArrayPattern =
17080 20 66 75 6e 63 74 69 6f 6e 20 28 70 61 72 61 6d function (param
17090 73 2c 20 6b 69 6e 64 29 20 7b 0a 20 20 09 20 20 s, kind) {. .
170a0 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
170b0 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
170c0 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 var node =
170d0 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 this.createNode(
170e0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 );. . th
170f0 69 73 2e 65 78 70 65 63 74 28 27 5b 27 29 3b 0a is.expect('[');.
17100 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 65 . var e
17110 6c 65 6d 65 6e 74 73 20 3d 20 5b 5d 3b 0a 20 20 lements = [];.
17120 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 . while (
17130 21 74 68 69 73 2e 6d 61 74 63 68 28 27 5d 27 29 !this.match(']')
17140 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
17150 20 20 20 69 66 20 28 74 68 69 73 24 31 2e 6d 61 if (this$1.ma
17160 74 63 68 28 27 2c 27 29 29 20 7b 0a 20 20 09 20 tch(',')) {. .
17170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
17180 68 69 73 24 31 2e 6e 65 78 74 54 6f 6b 65 6e 28 his$1.nextToken(
17190 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
171a0 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 2e 70 elements.p
171b0 75 73 68 28 6e 75 6c 6c 29 3b 0a 20 20 09 20 20 ush(null);. .
171c0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
171d0 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 else
171e0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
171f0 20 20 20 20 20 69 66 20 28 74 68 69 73 24 31 2e if (this$1.
17200 6d 61 74 63 68 28 27 2e 2e 2e 27 29 29 20 7b 0a match('...')) {.
17210 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
17220 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 2e elements.
17230 70 75 73 68 28 74 68 69 73 24 31 2e 70 61 72 73 push(this$1.pars
17240 65 42 69 6e 64 69 6e 67 52 65 73 74 45 6c 65 6d eBindingRestElem
17250 65 6e 74 28 70 61 72 61 6d 73 2c 20 6b 69 6e 64 ent(params, kind
17260 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
17270 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
17280 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
17290 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
172a0 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b else {
172b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
172c0 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 73 elements
172d0 2e 70 75 73 68 28 74 68 69 73 24 31 2e 70 61 72 .push(this$1.par
172e0 73 65 50 61 74 74 65 72 6e 57 69 74 68 44 65 66 sePatternWithDef
172f0 61 75 6c 74 28 70 61 72 61 6d 73 2c 20 6b 69 6e ault(params, kin
17300 64 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 d));. .
17310 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
17320 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
17330 28 21 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 (!this$1.match('
17340 5d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ]')) {. .
17350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
17360 69 73 24 31 2e 65 78 70 65 63 74 28 27 2c 27 29 is$1.expect(',')
17370 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
17380 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
17390 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
173a0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
173b0 74 68 69 73 2e 65 78 70 65 63 74 28 27 5d 27 29 this.expect(']')
173c0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 ;. . ret
173d0 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
173e0 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
173f0 2e 41 72 72 61 79 50 61 74 74 65 72 6e 28 65 6c .ArrayPattern(el
17400 65 6d 65 6e 74 73 29 29 3b 0a 20 20 09 20 20 20 ements));. .
17410 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 };. . Parse
17420 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 r.prototype.pars
17430 65 50 72 6f 70 65 72 74 79 50 61 74 74 65 72 6e ePropertyPattern
17440 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 70 61 72 = function (par
17450 61 6d 73 2c 20 6b 69 6e 64 29 20 7b 0a 20 20 09 ams, kind) {. .
17460 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
17470 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f = this.createNo
17480 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 de();. .
17490 20 76 61 72 20 63 6f 6d 70 75 74 65 64 20 3d 20 var computed =
174a0 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 false;. .
174b0 20 20 76 61 72 20 73 68 6f 72 74 68 61 6e 64 20 var shorthand
174c0 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
174d0 20 20 20 20 76 61 72 20 6d 65 74 68 6f 64 20 3d var method =
174e0 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 false;. .
174f0 20 20 20 76 61 72 20 6b 65 79 3b 0a 20 20 09 20 var key;. .
17500 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 var value
17510 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
17520 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e (this.lookahead.
17530 74 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 type === token_1
17540 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 .Token.Identifie
17550 72 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 r) {. .
17560 20 20 20 20 76 61 72 20 6b 65 79 54 6f 6b 65 6e var keyToken
17570 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 = this.lookahea
17580 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 d;. .
17590 20 20 6b 65 79 20 3d 20 74 68 69 73 2e 70 61 72 key = this.par
175a0 73 65 56 61 72 69 61 62 6c 65 49 64 65 6e 74 69 seVariableIdenti
175b0 66 69 65 72 28 29 3b 0a 20 20 09 20 20 20 20 20 fier();. .
175c0 20 20 20 20 20 20 20 76 61 72 20 69 6e 69 74 20 var init
175d0 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 = this.finalize(
175e0 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 49 node, new Node.I
175f0 64 65 6e 74 69 66 69 65 72 28 6b 65 79 54 6f 6b dentifier(keyTok
17600 65 6e 2e 76 61 6c 75 65 29 29 3b 0a 20 20 09 20 en.value));. .
17610 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
17620 68 69 73 2e 6d 61 74 63 68 28 27 3d 27 29 29 20 his.match('='))
17630 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
17640 20 20 20 20 20 70 61 72 61 6d 73 2e 70 75 73 68 params.push
17650 28 6b 65 79 54 6f 6b 65 6e 29 3b 0a 20 20 09 20 (keyToken);. .
17660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
17670 68 6f 72 74 68 61 6e 64 20 3d 20 74 72 75 65 3b horthand = true;
17680 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
17690 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b this.nextTok
176a0 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
176b0 20 20 20 20 20 20 20 20 20 76 61 72 20 65 78 70 var exp
176c0 72 20 3d 20 74 68 69 73 2e 70 61 72 73 65 41 73 r = this.parseAs
176d0 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 signmentExpressi
176e0 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 on();. .
176f0 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d value =
17700 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 74 this.finalize(t
17710 68 69 73 2e 73 74 61 72 74 4e 6f 64 65 28 6b 65 his.startNode(ke
17720 79 54 6f 6b 65 6e 29 2c 20 6e 65 77 20 4e 6f 64 yToken), new Nod
17730 65 2e 41 73 73 69 67 6e 6d 65 6e 74 50 61 74 74 e.AssignmentPatt
17740 65 72 6e 28 69 6e 69 74 2c 20 65 78 70 72 29 29 ern(init, expr))
17750 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
17760 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
17770 20 20 65 6c 73 65 20 69 66 20 28 21 74 68 69 73 else if (!this
17780 2e 6d 61 74 63 68 28 27 3a 27 29 29 20 7b 0a 20 .match(':')) {.
17790 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
177a0 20 20 70 61 72 61 6d 73 2e 70 75 73 68 28 6b 65 params.push(ke
177b0 79 54 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 yToken);. .
177c0 20 20 20 20 20 20 20 20 20 20 20 20 73 68 6f 72 shor
177d0 74 68 61 6e 64 20 3d 20 74 72 75 65 3b 0a 20 20 thand = true;.
177e0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
177f0 20 76 61 6c 75 65 20 3d 20 69 6e 69 74 3b 0a 20 value = init;.
17800 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
17810 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
17820 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 lse {. .
17830 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 this.ex
17840 70 65 63 74 28 27 3a 27 29 3b 0a 20 20 09 20 20 pect(':');. .
17850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
17860 6c 75 65 20 3d 20 74 68 69 73 2e 70 61 72 73 65 lue = this.parse
17870 50 61 74 74 65 72 6e 57 69 74 68 44 65 66 61 75 PatternWithDefau
17880 6c 74 28 70 61 72 61 6d 73 2c 20 6b 69 6e 64 29 lt(params, kind)
17890 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
178a0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a }. . }.
178b0 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 . else
178c0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
178d0 20 63 6f 6d 70 75 74 65 64 20 3d 20 74 68 69 73 computed = this
178e0 2e 6d 61 74 63 68 28 27 5b 27 29 3b 0a 20 20 09 .match('[');. .
178f0 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 20 key
17900 3d 20 74 68 69 73 2e 70 61 72 73 65 4f 62 6a 65 = this.parseObje
17910 63 74 50 72 6f 70 65 72 74 79 4b 65 79 28 29 3b ctPropertyKey();
17920 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
17930 74 68 69 73 2e 65 78 70 65 63 74 28 27 3a 27 29 this.expect(':')
17940 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
17950 20 76 61 6c 75 65 20 3d 20 74 68 69 73 2e 70 61 value = this.pa
17960 72 73 65 50 61 74 74 65 72 6e 57 69 74 68 44 65 rsePatternWithDe
17970 66 61 75 6c 74 28 70 61 72 61 6d 73 2c 20 6b 69 fault(params, ki
17980 6e 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nd);. .
17990 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 }. . ret
179a0 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
179b0 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
179c0 2e 50 72 6f 70 65 72 74 79 28 27 69 6e 69 74 27 .Property('init'
179d0 2c 20 6b 65 79 2c 20 63 6f 6d 70 75 74 65 64 2c , key, computed,
179e0 20 76 61 6c 75 65 2c 20 6d 65 74 68 6f 64 2c 20 value, method,
179f0 73 68 6f 72 74 68 61 6e 64 29 29 3b 0a 20 20 09 shorthand));. .
17a00 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 };. . Pa
17a10 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 rser.prototype.p
17a20 61 72 73 65 4f 62 6a 65 63 74 50 61 74 74 65 72 arseObjectPatter
17a30 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 70 61 n = function (pa
17a40 72 61 6d 73 2c 20 6b 69 6e 64 29 20 7b 0a 20 20 rams, kind) {.
17a50 09 20 20 20 20 20 20 20 20 76 61 72 20 74 68 69 . var thi
17a60 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 s$1 = this;.. .
17a70 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
17a80 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f = this.createNo
17a90 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 de();. .
17aa0 20 76 61 72 20 70 72 6f 70 65 72 74 69 65 73 20 var properties
17ab0 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 = [];. .
17ac0 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 7b 27 this.expect('{'
17ad0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 77 68 );. . wh
17ae0 69 6c 65 20 28 21 74 68 69 73 2e 6d 61 74 63 68 ile (!this.match
17af0 28 27 7d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 ('}')) {. .
17b00 20 20 20 20 20 20 20 20 70 72 6f 70 65 72 74 69 properti
17b10 65 73 2e 70 75 73 68 28 74 68 69 73 24 31 2e 70 es.push(this$1.p
17b20 61 72 73 65 50 72 6f 70 65 72 74 79 50 61 74 74 arsePropertyPatt
17b30 65 72 6e 28 70 61 72 61 6d 73 2c 20 6b 69 6e 64 ern(params, kind
17b40 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
17b50 20 20 20 69 66 20 28 21 74 68 69 73 24 31 2e 6d if (!this$1.m
17b60 61 74 63 68 28 27 7d 27 29 29 20 7b 0a 20 20 09 atch('}')) {. .
17b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
17b80 74 68 69 73 24 31 2e 65 78 70 65 63 74 28 27 2c this$1.expect(',
17b90 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ');. .
17ba0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
17bb0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 }. . thi
17bc0 73 2e 65 78 70 65 63 74 28 27 7d 27 29 3b 0a 20 s.expect('}');.
17bd0 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
17be0 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
17bf0 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 4f 62 ode, new Node.Ob
17c00 6a 65 63 74 50 61 74 74 65 72 6e 28 70 72 6f 70 jectPattern(prop
17c10 65 72 74 69 65 73 29 29 3b 0a 20 20 09 20 20 20 erties));. .
17c20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 };. . Parse
17c30 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 r.prototype.pars
17c40 65 50 61 74 74 65 72 6e 20 3d 20 66 75 6e 63 74 ePattern = funct
17c50 69 6f 6e 20 28 70 61 72 61 6d 73 2c 20 6b 69 6e ion (params, kin
17c60 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 d) {. .
17c70 76 61 72 20 70 61 74 74 65 72 6e 3b 0a 20 20 09 var pattern;. .
17c80 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
17c90 2e 6d 61 74 63 68 28 27 5b 27 29 29 20 7b 0a 20 .match('[')) {.
17ca0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 70 61 . pa
17cb0 74 74 65 72 6e 20 3d 20 74 68 69 73 2e 70 61 72 ttern = this.par
17cc0 73 65 41 72 72 61 79 50 61 74 74 65 72 6e 28 70 seArrayPattern(p
17cd0 61 72 61 6d 73 2c 20 6b 69 6e 64 29 3b 0a 20 20 arams, kind);.
17ce0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
17cf0 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 else if (t
17d00 68 69 73 2e 6d 61 74 63 68 28 27 7b 27 29 29 20 his.match('{'))
17d10 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
17d20 20 70 61 74 74 65 72 6e 20 3d 20 74 68 69 73 2e pattern = this.
17d30 70 61 72 73 65 4f 62 6a 65 63 74 50 61 74 74 65 parseObjectPatte
17d40 72 6e 28 70 61 72 61 6d 73 2c 20 6b 69 6e 64 29 rn(params, kind)
17d50 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
17d60 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b . else {
17d70 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
17d80 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 4b 65 if (this.matchKe
17d90 79 77 6f 72 64 28 27 6c 65 74 27 29 20 26 26 20 yword('let') &&
17da0 28 6b 69 6e 64 20 3d 3d 3d 20 27 63 6f 6e 73 74 (kind === 'const
17db0 27 20 7c 7c 20 6b 69 6e 64 20 3d 3d 3d 20 27 6c ' || kind === 'l
17dc0 65 74 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 et')) {. .
17dd0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
17de0 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 65 63 74 tolerateUnexpect
17df0 65 64 54 6f 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f edToken(this.loo
17e00 6b 61 68 65 61 64 2c 20 6d 65 73 73 61 67 65 73 kahead, messages
17e10 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 6e 65 78 _1.Messages.Unex
17e20 70 65 63 74 65 64 54 6f 6b 65 6e 29 3b 0a 20 20 pectedToken);.
17e30 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
17e40 20 09 20 20 20 20 20 20 20 20 20 20 20 20 70 61 . pa
17e50 72 61 6d 73 2e 70 75 73 68 28 74 68 69 73 2e 6c rams.push(this.l
17e60 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 20 09 20 20 ookahead);. .
17e70 20 20 20 20 20 20 20 20 20 20 70 61 74 74 65 72 patter
17e80 6e 20 3d 20 74 68 69 73 2e 70 61 72 73 65 56 61 n = this.parseVa
17e90 72 69 61 62 6c 65 49 64 65 6e 74 69 66 69 65 72 riableIdentifier
17ea0 28 6b 69 6e 64 29 3b 0a 20 20 09 20 20 20 20 20 (kind);. .
17eb0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
17ec0 72 65 74 75 72 6e 20 70 61 74 74 65 72 6e 3b 0a return pattern;.
17ed0 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
17ee0 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
17ef0 65 2e 70 61 72 73 65 50 61 74 74 65 72 6e 57 69 e.parsePatternWi
17f00 74 68 44 65 66 61 75 6c 74 20 3d 20 66 75 6e 63 thDefault = func
17f10 74 69 6f 6e 20 28 70 61 72 61 6d 73 2c 20 6b 69 tion (params, ki
17f20 6e 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 nd) {. .
17f30 20 76 61 72 20 73 74 61 72 74 54 6f 6b 65 6e 20 var startToken
17f40 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 = this.lookahead
17f50 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
17f60 20 70 61 74 74 65 72 6e 20 3d 20 74 68 69 73 2e pattern = this.
17f70 70 61 72 73 65 50 61 74 74 65 72 6e 28 70 61 72 parsePattern(par
17f80 61 6d 73 2c 20 6b 69 6e 64 29 3b 0a 20 20 09 20 ams, kind);. .
17f90 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
17fa0 6d 61 74 63 68 28 27 3d 27 29 29 20 7b 0a 20 20 match('=')) {.
17fb0 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
17fc0 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
17fd0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
17fe0 72 20 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 r previousAllowY
17ff0 69 65 6c 64 20 3d 20 74 68 69 73 2e 63 6f 6e 74 ield = this.cont
18000 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 3b 0a ext.allowYield;.
18010 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
18020 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f his.context.allo
18030 77 59 69 65 6c 64 20 3d 20 74 72 75 65 3b 0a 20 wYield = true;.
18040 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
18050 72 20 72 69 67 68 74 20 3d 20 74 68 69 73 2e 69 r right = this.i
18060 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 61 6d 6d solateCoverGramm
18070 61 72 28 74 68 69 73 2e 70 61 72 73 65 41 73 73 ar(this.parseAss
18080 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f ignmentExpressio
18090 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 n);. .
180a0 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e this.context.
180b0 61 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 70 72 65 allowYield = pre
180c0 76 69 6f 75 73 41 6c 6c 6f 77 59 69 65 6c 64 3b viousAllowYield;
180d0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
180e0 70 61 74 74 65 72 6e 20 3d 20 74 68 69 73 2e 66 pattern = this.f
180f0 69 6e 61 6c 69 7a 65 28 74 68 69 73 2e 73 74 61 inalize(this.sta
18100 72 74 4e 6f 64 65 28 73 74 61 72 74 54 6f 6b 65 rtNode(startToke
18110 6e 29 2c 20 6e 65 77 20 4e 6f 64 65 2e 41 73 73 n), new Node.Ass
18120 69 67 6e 6d 65 6e 74 50 61 74 74 65 72 6e 28 70 ignmentPattern(p
18130 61 74 74 65 72 6e 2c 20 72 69 67 68 74 29 29 3b attern, right));
18140 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
18150 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
18160 70 61 74 74 65 72 6e 3b 0a 20 20 09 20 20 20 20 pattern;. .
18170 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d };. . // ECM
18180 41 2d 32 36 32 20 31 33 2e 33 2e 32 20 56 61 72 A-262 13.3.2 Var
18190 69 61 62 6c 65 20 53 74 61 74 65 6d 65 6e 74 0a iable Statement.
181a0 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
181b0 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 56 61 72 ototype.parseVar
181c0 69 61 62 6c 65 49 64 65 6e 74 69 66 69 65 72 20 iableIdentifier
181d0 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6b 69 6e 64 = function (kind
181e0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
181f0 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 ar node = this.c
18200 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 reateNode();. .
18210 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 var toke
18220 6e 20 3d 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b n = this.nextTok
18230 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
18240 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 70 65 20 if (token.type
18250 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 === token_1.Toke
18260 6e 2e 4b 65 79 77 6f 72 64 20 26 26 20 74 6f 6b n.Keyword && tok
18270 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 79 69 en.value === 'yi
18280 65 6c 64 27 29 20 7b 0a 20 20 09 20 20 20 20 20 eld') {. .
18290 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
182a0 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 29 20 context.strict)
182b0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
182c0 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 this.tolera
182d0 74 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 teUnexpectedToke
182e0 6e 28 74 6f 6b 65 6e 2c 20 6d 65 73 73 61 67 65 n(token, message
182f0 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 72 s_1.Messages.Str
18300 69 63 74 52 65 73 65 72 76 65 64 57 6f 72 64 29 ictReservedWord)
18310 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
18320 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
18330 20 20 69 66 20 28 21 74 68 69 73 2e 63 6f 6e 74 if (!this.cont
18340 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 29 20 ext.allowYield)
18350 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
18360 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
18370 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 nexpectedToken(t
18380 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 oken);. .
18390 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
183a0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
183b0 65 6c 73 65 20 69 66 20 28 74 6f 6b 65 6e 2e 74 else if (token.t
183c0 79 70 65 20 21 3d 3d 20 74 6f 6b 65 6e 5f 31 2e ype !== token_1.
183d0 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 Token.Identifier
183e0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
183f0 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 if (this.cont
18400 65 78 74 2e 73 74 72 69 63 74 20 26 26 20 74 6f ext.strict && to
18410 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b ken.type === tok
18420 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 6f en_1.Token.Keywo
18430 72 64 20 26 26 20 74 68 69 73 2e 73 63 61 6e 6e rd && this.scann
18440 65 72 2e 69 73 53 74 72 69 63 74 4d 6f 64 65 52 er.isStrictModeR
18450 65 73 65 72 76 65 64 57 6f 72 64 28 74 6f 6b 65 eservedWord(toke
18460 6e 2e 76 61 6c 75 65 29 29 20 7b 0a 20 20 09 20 n.value)) {. .
18470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
18480 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 his.tolerateUnex
18490 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 pectedToken(toke
184a0 6e 2c 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 n, messages_1.Me
184b0 73 73 61 67 65 73 2e 53 74 72 69 63 74 52 65 73 ssages.StrictRes
184c0 65 72 76 65 64 57 6f 72 64 29 3b 0a 20 20 09 20 ervedWord);. .
184d0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
184e0 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
184f0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
18500 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 63 if (this.c
18510 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 7c 7c ontext.strict ||
18520 20 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 21 3d 3d token.value !==
18530 20 27 6c 65 74 27 20 7c 7c 20 6b 69 6e 64 20 21 'let' || kind !
18540 3d 3d 20 27 76 61 72 27 29 20 7b 0a 20 20 09 20 == 'var') {. .
18550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18560 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 this.throwUne
18570 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f 6b xpectedToken(tok
18580 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 en);. .
18590 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
185a0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
185b0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
185c0 20 20 20 65 6c 73 65 20 69 66 20 28 74 68 69 73 else if (this
185d0 2e 73 6f 75 72 63 65 54 79 70 65 20 3d 3d 3d 20 .sourceType ===
185e0 27 6d 6f 64 75 6c 65 27 20 26 26 20 74 6f 6b 65 'module' && toke
185f0 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e n.type === token
18600 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 _1.Token.Identif
18610 69 65 72 20 26 26 20 74 6f 6b 65 6e 2e 76 61 6c ier && token.val
18620 75 65 20 3d 3d 3d 20 27 61 77 61 69 74 27 29 20 ue === 'await')
18630 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
18640 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e this.tolerateUn
18650 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f expectedToken(to
18660 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ken);. .
18670 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
18680 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
18690 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
186a0 65 2e 49 64 65 6e 74 69 66 69 65 72 28 74 6f 6b e.Identifier(tok
186b0 65 6e 2e 76 61 6c 75 65 29 29 3b 0a 20 20 09 20 en.value));. .
186c0 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 };. . Par
186d0 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
186e0 72 73 65 56 61 72 69 61 62 6c 65 44 65 63 6c 61 rseVariableDecla
186f0 72 61 74 69 6f 6e 20 3d 20 66 75 6e 63 74 69 6f ration = functio
18700 6e 20 28 6f 70 74 69 6f 6e 73 29 20 7b 0a 20 20 n (options) {.
18710 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 . var nod
18720 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e e = this.createN
18730 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ode();. .
18740 20 20 76 61 72 20 70 61 72 61 6d 73 20 3d 20 5b var params = [
18750 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 ];. . va
18760 72 20 69 64 20 3d 20 74 68 69 73 2e 70 61 72 73 r id = this.pars
18770 65 50 61 74 74 65 72 6e 28 70 61 72 61 6d 73 2c ePattern(params,
18780 20 27 76 61 72 27 29 3b 0a 20 20 09 20 20 20 20 'var');. .
18790 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 // ECMA-262
187a0 31 32 2e 32 2e 31 0a 20 20 09 20 20 20 20 20 20 12.2.1. .
187b0 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 if (this.conte
187c0 78 74 2e 73 74 72 69 63 74 20 26 26 20 69 64 2e xt.strict && id.
187d0 74 79 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f type === syntax_
187e0 31 2e 53 79 6e 74 61 78 2e 49 64 65 6e 74 69 66 1.Syntax.Identif
187f0 69 65 72 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ier) {. .
18800 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 73 if (this.s
18810 63 61 6e 6e 65 72 2e 69 73 52 65 73 74 72 69 63 canner.isRestric
18820 74 65 64 57 6f 72 64 28 28 69 64 29 2e 6e 61 6d tedWord((id).nam
18830 65 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 e)) {. .
18840 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f this.to
18850 6c 65 72 61 74 65 45 72 72 6f 72 28 6d 65 73 73 lerateError(mess
18860 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e ages_1.Messages.
18870 53 74 72 69 63 74 56 61 72 4e 61 6d 65 29 3b 0a StrictVarName);.
18880 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
18890 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
188a0 09 20 20 20 20 20 20 20 20 76 61 72 20 69 6e 69 . var ini
188b0 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 t = null;. .
188c0 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 if (this.ma
188d0 74 63 68 28 27 3d 27 29 29 20 7b 0a 20 20 09 20 tch('=')) {. .
188e0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
188f0 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 nextToken();. .
18900 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 init
18910 20 3d 20 74 68 69 73 2e 69 73 6f 6c 61 74 65 43 = this.isolateC
18920 6f 76 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 overGrammar(this
18930 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 6e 74 .parseAssignment
18940 45 78 70 72 65 73 73 69 6f 6e 29 3b 0a 20 20 09 Expression);. .
18950 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
18960 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 69 64 else if (id
18970 2e 74 79 70 65 20 21 3d 3d 20 73 79 6e 74 61 78 .type !== syntax
18980 5f 31 2e 53 79 6e 74 61 78 2e 49 64 65 6e 74 69 _1.Syntax.Identi
18990 66 69 65 72 20 26 26 20 21 6f 70 74 69 6f 6e 73 fier && !options
189a0 2e 69 6e 46 6f 72 29 20 7b 0a 20 20 09 20 20 20 .inFor) {. .
189b0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 this.ex
189c0 70 65 63 74 28 27 3d 27 29 3b 0a 20 20 09 20 20 pect('=');. .
189d0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
189e0 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
189f0 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
18a00 77 20 4e 6f 64 65 2e 56 61 72 69 61 62 6c 65 44 w Node.VariableD
18a10 65 63 6c 61 72 61 74 6f 72 28 69 64 2c 20 69 6e eclarator(id, in
18a20 69 74 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a it));. . };.
18a30 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
18a40 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 56 61 72 ototype.parseVar
18a50 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e iableDeclaration
18a60 4c 69 73 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 List = function
18a70 28 6f 70 74 69 6f 6e 73 29 20 7b 0a 20 20 09 20 (options) {. .
18a80 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 var this$
18a90 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 1 = this;.. .
18aa0 20 20 20 20 20 20 76 61 72 20 6f 70 74 20 3d 20 var opt =
18ab0 7b 20 69 6e 46 6f 72 3a 20 6f 70 74 69 6f 6e 73 { inFor: options
18ac0 2e 69 6e 46 6f 72 20 7d 3b 0a 20 20 09 20 20 20 .inFor };. .
18ad0 20 20 20 20 20 76 61 72 20 6c 69 73 74 20 3d 20 var list =
18ae0 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 6c [];. . l
18af0 69 73 74 2e 70 75 73 68 28 74 68 69 73 2e 70 61 ist.push(this.pa
18b00 72 73 65 56 61 72 69 61 62 6c 65 44 65 63 6c 61 rseVariableDecla
18b10 72 61 74 69 6f 6e 28 6f 70 74 29 29 3b 0a 20 20 ration(opt));.
18b20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 . while (
18b30 74 68 69 73 2e 6d 61 74 63 68 28 27 2c 27 29 29 this.match(','))
18b40 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
18b50 20 20 74 68 69 73 24 31 2e 6e 65 78 74 54 6f 6b this$1.nextTok
18b60 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
18b70 20 20 20 20 20 6c 69 73 74 2e 70 75 73 68 28 74 list.push(t
18b80 68 69 73 24 31 2e 70 61 72 73 65 56 61 72 69 61 his$1.parseVaria
18b90 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 28 6f bleDeclaration(o
18ba0 70 74 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 pt));. .
18bb0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
18bc0 74 75 72 6e 20 6c 69 73 74 3b 0a 20 20 09 20 20 turn list;. .
18bd0 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 };. . Pars
18be0 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 er.prototype.par
18bf0 73 65 56 61 72 69 61 62 6c 65 53 74 61 74 65 6d seVariableStatem
18c00 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ent = function (
18c10 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
18c20 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 ar node = this.c
18c30 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 reateNode();. .
18c40 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 this.exp
18c50 65 63 74 4b 65 79 77 6f 72 64 28 27 76 61 72 27 ectKeyword('var'
18c60 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
18c70 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 3d r declarations =
18c80 20 74 68 69 73 2e 70 61 72 73 65 56 61 72 69 61 this.parseVaria
18c90 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 4c 69 bleDeclarationLi
18ca0 73 74 28 7b 20 69 6e 46 6f 72 3a 20 66 61 6c 73 st({ inFor: fals
18cb0 65 20 7d 29 3b 0a 20 20 09 20 20 20 20 20 20 20 e });. .
18cc0 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 6d this.consumeSem
18cd0 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 20 icolon();. .
18ce0 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
18cf0 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 .finalize(node,
18d00 6e 65 77 20 4e 6f 64 65 2e 56 61 72 69 61 62 6c new Node.Variabl
18d10 65 44 65 63 6c 61 72 61 74 69 6f 6e 28 64 65 63 eDeclaration(dec
18d20 6c 61 72 61 74 69 6f 6e 73 2c 20 27 76 61 72 27 larations, 'var'
18d30 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 ));. . };.
18d40 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 . // ECMA-262
18d50 20 31 33 2e 34 20 45 6d 70 74 79 20 53 74 61 74 13.4 Empty Stat
18d60 65 6d 65 6e 74 0a 20 20 09 20 20 20 20 50 61 72 ement. . Par
18d70 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
18d80 72 73 65 45 6d 70 74 79 53 74 61 74 65 6d 65 6e rseEmptyStatemen
18d90 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 t = function ()
18da0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
18db0 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
18dc0 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 ateNode();. .
18dd0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
18de0 74 28 27 3b 27 29 3b 0a 20 20 09 20 20 20 20 20 t(';');. .
18df0 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
18e00 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
18e10 77 20 4e 6f 64 65 2e 45 6d 70 74 79 53 74 61 74 w Node.EmptyStat
18e20 65 6d 65 6e 74 28 29 29 3b 0a 20 20 09 20 20 20 ement());. .
18e30 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 };. . // EC
18e40 4d 41 2d 32 36 32 20 31 33 2e 35 20 45 78 70 72 MA-262 13.5 Expr
18e50 65 73 73 69 6f 6e 20 53 74 61 74 65 6d 65 6e 74 ession Statement
18e60 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
18e70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 45 78 rototype.parseEx
18e80 70 72 65 73 73 69 6f 6e 53 74 61 74 65 6d 65 6e pressionStatemen
18e90 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 t = function ()
18ea0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
18eb0 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
18ec0 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 ateNode();. .
18ed0 20 20 20 20 20 20 76 61 72 20 65 78 70 72 20 3d var expr =
18ee0 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 72 65 this.parseExpre
18ef0 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 ssion();. .
18f00 20 20 20 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 this.consume
18f10 53 65 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 Semicolon();. .
18f20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 return t
18f30 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 his.finalize(nod
18f40 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 45 78 70 72 e, new Node.Expr
18f50 65 73 73 69 6f 6e 53 74 61 74 65 6d 65 6e 74 28 essionStatement(
18f60 65 78 70 72 29 29 3b 0a 20 20 09 20 20 20 20 7d expr));. . }
18f70 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 ;. . // ECMA
18f80 2d 32 36 32 20 31 33 2e 36 20 49 66 20 73 74 61 -262 13.6 If sta
18f90 74 65 6d 65 6e 74 0a 20 20 09 20 20 20 20 50 61 tement. . Pa
18fa0 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 rser.prototype.p
18fb0 61 72 73 65 49 66 53 74 61 74 65 6d 65 6e 74 20 arseIfStatement
18fc0 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
18fd0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e . var n
18fe0 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 ode = this.creat
18ff0 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 eNode();. .
19000 20 20 20 20 76 61 72 20 63 6f 6e 73 65 71 75 65 var conseque
19010 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 nt;. . v
19020 61 72 20 61 6c 74 65 72 6e 61 74 65 20 3d 20 6e ar alternate = n
19030 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ull;. .
19040 74 68 69 73 2e 65 78 70 65 63 74 4b 65 79 77 6f this.expectKeywo
19050 72 64 28 27 69 66 27 29 3b 0a 20 20 09 20 20 20 rd('if');. .
19060 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 this.expect
19070 28 27 28 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('(');. .
19080 20 20 76 61 72 20 74 65 73 74 20 3d 20 74 68 69 var test = thi
19090 73 2e 70 61 72 73 65 45 78 70 72 65 73 73 69 6f s.parseExpressio
190a0 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
190b0 69 66 20 28 21 74 68 69 73 2e 6d 61 74 63 68 28 if (!this.match(
190c0 27 29 27 29 20 26 26 20 74 68 69 73 2e 63 6f 6e ')') && this.con
190d0 66 69 67 2e 74 6f 6c 65 72 61 6e 74 29 20 7b 0a fig.tolerant) {.
190e0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
190f0 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 his.tolerateUnex
19100 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 pectedToken(this
19110 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 29 3b 0a 20 .nextToken());.
19120 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 6f . co
19130 6e 73 65 71 75 65 6e 74 20 3d 20 74 68 69 73 2e nsequent = this.
19140 66 69 6e 61 6c 69 7a 65 28 74 68 69 73 2e 63 72 finalize(this.cr
19150 65 61 74 65 4e 6f 64 65 28 29 2c 20 6e 65 77 20 eateNode(), new
19160 4e 6f 64 65 2e 45 6d 70 74 79 53 74 61 74 65 6d Node.EmptyStatem
19170 65 6e 74 28 29 29 3b 0a 20 20 09 20 20 20 20 20 ent());. .
19180 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
19190 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
191a0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
191b0 74 28 27 29 27 29 3b 0a 20 20 09 20 20 20 20 20 t(')');. .
191c0 20 20 20 20 20 20 20 63 6f 6e 73 65 71 75 65 6e consequen
191d0 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 53 74 t = this.parseSt
191e0 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 20 atement();. .
191f0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 if (th
19200 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 is.matchKeyword(
19210 27 65 6c 73 65 27 29 29 20 7b 0a 20 20 09 20 20 'else')) {. .
19220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
19230 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a is.nextToken();.
19240 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
19250 20 20 20 61 6c 74 65 72 6e 61 74 65 20 3d 20 74 alternate = t
19260 68 69 73 2e 70 61 72 73 65 53 74 61 74 65 6d 65 his.parseStateme
19270 6e 74 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 nt();. .
19280 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
19290 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 }. . r
192a0 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c eturn this.final
192b0 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
192c0 64 65 2e 49 66 53 74 61 74 65 6d 65 6e 74 28 74 de.IfStatement(t
192d0 65 73 74 2c 20 63 6f 6e 73 65 71 75 65 6e 74 2c est, consequent,
192e0 20 61 6c 74 65 72 6e 61 74 65 29 29 3b 0a 20 20 alternate));.
192f0 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f . };. . /
19300 2f 20 45 43 4d 41 2d 32 36 32 20 31 33 2e 37 2e / ECMA-262 13.7.
19310 32 20 54 68 65 20 64 6f 2d 77 68 69 6c 65 20 53 2 The do-while S
19320 74 61 74 65 6d 65 6e 74 0a 20 20 09 20 20 20 20 tatement. .
19330 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
19340 2e 70 61 72 73 65 44 6f 57 68 69 6c 65 53 74 61 .parseDoWhileSta
19350 74 65 6d 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f tement = functio
19360 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
19370 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
19380 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a s.createNode();.
19390 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
193a0 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 27 64 expectKeyword('d
193b0 6f 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 o');. .
193c0 76 61 72 20 70 72 65 76 69 6f 75 73 49 6e 49 74 var previousInIt
193d0 65 72 61 74 69 6f 6e 20 3d 20 74 68 69 73 2e 63 eration = this.c
193e0 6f 6e 74 65 78 74 2e 69 6e 49 74 65 72 61 74 69 ontext.inIterati
193f0 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 on;. . t
19400 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 49 74 his.context.inIt
19410 65 72 61 74 69 6f 6e 20 3d 20 74 72 75 65 3b 0a eration = true;.
19420 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 62 . var b
19430 6f 64 79 20 3d 20 74 68 69 73 2e 70 61 72 73 65 ody = this.parse
19440 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 Statement();. .
19450 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
19460 74 65 78 74 2e 69 6e 49 74 65 72 61 74 69 6f 6e text.inIteration
19470 20 3d 20 70 72 65 76 69 6f 75 73 49 6e 49 74 65 = previousInIte
19480 72 61 74 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 ration;. .
19490 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 4b 65 this.expectKe
194a0 79 77 6f 72 64 28 27 77 68 69 6c 65 27 29 3b 0a yword('while');.
194b0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
194c0 65 78 70 65 63 74 28 27 28 27 29 3b 0a 20 20 09 expect('(');. .
194d0 20 20 20 20 20 20 20 20 76 61 72 20 74 65 73 74 var test
194e0 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
194f0 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
19500 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
19510 74 28 27 29 27 29 3b 0a 20 20 09 20 20 20 20 20 t(')');. .
19520 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 if (this.matc
19530 68 28 27 3b 27 29 29 20 7b 0a 20 20 09 20 20 20 h(';')) {. .
19540 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 this.ne
19550 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 xtToken();. .
19560 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
19570 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
19580 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
19590 77 20 4e 6f 64 65 2e 44 6f 57 68 69 6c 65 53 74 w Node.DoWhileSt
195a0 61 74 65 6d 65 6e 74 28 62 6f 64 79 2c 20 74 65 atement(body, te
195b0 73 74 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a st));. . };.
195c0 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 . // ECMA-2
195d0 36 32 20 31 33 2e 37 2e 33 20 54 68 65 20 77 68 62 13.7.3 The wh
195e0 69 6c 65 20 53 74 61 74 65 6d 65 6e 74 0a 20 20 ile Statement.
195f0 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
19600 6f 74 79 70 65 2e 70 61 72 73 65 57 68 69 6c 65 otype.parseWhile
19610 53 74 61 74 65 6d 65 6e 74 20 3d 20 66 75 6e 63 Statement = func
19620 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
19630 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 var node =
19640 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 this.createNode(
19650 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
19660 72 20 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 20 r body;. .
19670 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 4b 65 this.expectKe
19680 79 77 6f 72 64 28 27 77 68 69 6c 65 27 29 3b 0a yword('while');.
19690 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
196a0 65 78 70 65 63 74 28 27 28 27 29 3b 0a 20 20 09 expect('(');. .
196b0 20 20 20 20 20 20 20 20 76 61 72 20 74 65 73 74 var test
196c0 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
196d0 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
196e0 20 20 20 20 20 20 69 66 20 28 21 74 68 69 73 2e if (!this.
196f0 6d 61 74 63 68 28 27 29 27 29 20 26 26 20 74 68 match(')') && th
19700 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6c 65 72 61 is.config.tolera
19710 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 nt) {. .
19720 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 this.tolera
19730 74 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 teUnexpectedToke
19740 6e 28 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e n(this.nextToken
19750 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ());. .
19760 20 20 20 20 62 6f 64 79 20 3d 20 74 68 69 73 2e body = this.
19770 66 69 6e 61 6c 69 7a 65 28 74 68 69 73 2e 63 72 finalize(this.cr
19780 65 61 74 65 4e 6f 64 65 28 29 2c 20 6e 65 77 20 eateNode(), new
19790 4e 6f 64 65 2e 45 6d 70 74 79 53 74 61 74 65 6d Node.EmptyStatem
197a0 65 6e 74 28 29 29 3b 0a 20 20 09 20 20 20 20 20 ent());. .
197b0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
197c0 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
197d0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
197e0 74 28 27 29 27 29 3b 0a 20 20 09 20 20 20 20 20 t(')');. .
197f0 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 var previ
19800 6f 75 73 49 6e 49 74 65 72 61 74 69 6f 6e 20 3d ousInIteration =
19810 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e this.context.in
19820 49 74 65 72 61 74 69 6f 6e 3b 0a 20 20 09 20 20 Iteration;. .
19830 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 this.c
19840 6f 6e 74 65 78 74 2e 69 6e 49 74 65 72 61 74 69 ontext.inIterati
19850 6f 6e 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 on = true;. .
19860 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 20 3d body =
19870 20 74 68 69 73 2e 70 61 72 73 65 53 74 61 74 65 this.parseState
19880 6d 65 6e 74 28 29 3b 0a 20 20 09 20 20 20 20 20 ment();. .
19890 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
198a0 65 78 74 2e 69 6e 49 74 65 72 61 74 69 6f 6e 20 ext.inIteration
198b0 3d 20 70 72 65 76 69 6f 75 73 49 6e 49 74 65 72 = previousInIter
198c0 61 74 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 ation;. .
198d0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 }. . r
198e0 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c eturn this.final
198f0 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
19900 64 65 2e 57 68 69 6c 65 53 74 61 74 65 6d 65 6e de.WhileStatemen
19910 74 28 74 65 73 74 2c 20 62 6f 64 79 29 29 3b 0a t(test, body));.
19920 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
19930 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 33 2e // ECMA-262 13.
19940 37 2e 34 20 54 68 65 20 66 6f 72 20 53 74 61 74 7.4 The for Stat
19950 65 6d 65 6e 74 0a 20 20 09 20 20 20 20 2f 2f 20 ement. . //
19960 45 43 4d 41 2d 32 36 32 20 31 33 2e 37 2e 35 20 ECMA-262 13.7.5
19970 54 68 65 20 66 6f 72 2d 69 6e 20 61 6e 64 20 66 The for-in and f
19980 6f 72 2d 6f 66 20 53 74 61 74 65 6d 65 6e 74 73 or-of Statements
19990 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
199a0 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 46 6f rototype.parseFo
199b0 72 53 74 61 74 65 6d 65 6e 74 20 3d 20 66 75 6e rStatement = fun
199c0 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
199d0 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
199e0 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
199f0 20 20 20 20 20 76 61 72 20 69 6e 69 74 20 3d 20 var init =
19a00 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 null;. .
19a10 20 76 61 72 20 74 65 73 74 20 3d 20 6e 75 6c 6c var test = null
19a20 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
19a30 20 75 70 64 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a update = null;.
19a40 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 66 . var f
19a50 6f 72 49 6e 20 3d 20 74 72 75 65 3b 0a 20 20 09 orIn = true;. .
19a60 20 20 20 20 20 20 20 20 76 61 72 20 6c 65 66 74 var left
19a70 2c 20 72 69 67 68 74 3b 0a 20 20 09 20 20 20 20 , right;. .
19a80 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 var node = t
19a90 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 his.createNode()
19aa0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
19ab0 73 2e 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 s.expectKeyword(
19ac0 27 66 6f 72 27 29 3b 0a 20 20 09 20 20 20 20 20 'for');. .
19ad0 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 this.expect('
19ae0 28 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 (');. .
19af0 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 27 if (this.match('
19b00 3b 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ;')) {. .
19b10 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 this.nextT
19b20 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
19b30 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
19b40 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
19b50 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d if (this.m
19b60 61 74 63 68 4b 65 79 77 6f 72 64 28 27 76 61 72 atchKeyword('var
19b70 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
19b80 20 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d 20 init =
19b90 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 this.createNode(
19ba0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
19bb0 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 this.nextT
19bc0 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
19bd0 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 var p
19be0 72 65 76 69 6f 75 73 41 6c 6c 6f 77 49 6e 20 3d reviousAllowIn =
19bf0 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
19c00 6c 6f 77 49 6e 3b 0a 20 20 09 20 20 20 20 20 20 lowIn;. .
19c10 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 this.c
19c20 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 49 6e 20 3d ontext.allowIn =
19c30 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 false;. .
19c40 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 var d
19c50 65 63 6c 61 72 61 74 69 6f 6e 73 20 3d 20 74 68 eclarations = th
19c60 69 73 2e 70 61 72 73 65 56 61 72 69 61 62 6c 65 is.parseVariable
19c70 44 65 63 6c 61 72 61 74 69 6f 6e 4c 69 73 74 28 DeclarationList(
19c80 7b 20 69 6e 46 6f 72 3a 20 74 72 75 65 20 7d 29 { inFor: true })
19c90 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
19ca0 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 this.contex
19cb0 74 2e 61 6c 6c 6f 77 49 6e 20 3d 20 70 72 65 76 t.allowIn = prev
19cc0 69 6f 75 73 41 6c 6c 6f 77 49 6e 3b 0a 20 20 09 iousAllowIn;. .
19cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
19ce0 69 66 20 28 64 65 63 6c 61 72 61 74 69 6f 6e 73 if (declarations
19cf0 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 31 20 26 26 .length === 1 &&
19d00 20 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f this.matchKeywo
19d10 72 64 28 27 69 6e 27 29 29 20 7b 0a 20 20 09 20 rd('in')) {. .
19d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
19d30 20 20 20 76 61 72 20 64 65 63 6c 20 3d 20 64 65 var decl = de
19d40 63 6c 61 72 61 74 69 6f 6e 73 5b 30 5d 3b 0a 20 clarations[0];.
19d50 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
19d60 20 20 20 20 20 20 69 66 20 28 64 65 63 6c 2e 69 if (decl.i
19d70 6e 69 74 20 26 26 20 28 64 65 63 6c 2e 69 64 2e nit && (decl.id.
19d80 74 79 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f type === syntax_
19d90 31 2e 53 79 6e 74 61 78 2e 41 72 72 61 79 50 61 1.Syntax.ArrayPa
19da0 74 74 65 72 6e 20 7c 7c 20 64 65 63 6c 2e 69 64 ttern || decl.id
19db0 2e 74 79 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 .type === syntax
19dc0 5f 31 2e 53 79 6e 74 61 78 2e 4f 62 6a 65 63 74 _1.Syntax.Object
19dd0 50 61 74 74 65 72 6e 20 7c 7c 20 74 68 69 73 2e Pattern || this.
19de0 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 29 29 context.strict))
19df0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
19e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
19e10 69 73 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f 72 is.tolerateError
19e20 28 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 (messages_1.Mess
19e30 61 67 65 73 2e 46 6f 72 49 6e 4f 66 4c 6f 6f 70 ages.ForInOfLoop
19e40 49 6e 69 74 69 61 6c 69 7a 65 72 2c 20 27 66 6f Initializer, 'fo
19e50 72 2d 69 6e 27 29 3b 0a 20 20 09 20 20 20 20 20 r-in');. .
19e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
19e70 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
19e80 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d 20 74 init = t
19e90 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 69 6e 69 his.finalize(ini
19ea0 74 2c 20 6e 65 77 20 4e 6f 64 65 2e 56 61 72 69 t, new Node.Vari
19eb0 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 28 ableDeclaration(
19ec0 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 27 76 declarations, 'v
19ed0 61 72 27 29 29 3b 0a 20 20 09 20 20 20 20 20 20 ar'));. .
19ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
19ef0 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a is.nextToken();.
19f00 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
19f10 20 20 20 20 20 20 20 6c 65 66 74 20 3d 20 69 6e left = in
19f20 69 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 it;. .
19f30 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 74 right
19f40 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
19f50 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
19f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
19f70 20 20 69 6e 69 74 20 3d 20 6e 75 6c 6c 3b 0a 20 init = null;.
19f80 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
19f90 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
19fa0 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 else if (
19fb0 64 65 63 6c 61 72 61 74 69 6f 6e 73 2e 6c 65 6e declarations.len
19fc0 67 74 68 20 3d 3d 3d 20 31 20 26 26 20 64 65 63 gth === 1 && dec
19fd0 6c 61 72 61 74 69 6f 6e 73 5b 30 5d 2e 69 6e 69 larations[0].ini
19fe0 74 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 74 68 t === null && th
19ff0 69 73 2e 6d 61 74 63 68 43 6f 6e 74 65 78 74 75 is.matchContextu
1a000 61 6c 4b 65 79 77 6f 72 64 28 27 6f 66 27 29 29 alKeyword('of'))
1a010 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
1a020 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d init =
1a030 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 69 this.finalize(i
1a040 6e 69 74 2c 20 6e 65 77 20 4e 6f 64 65 2e 56 61 nit, new Node.Va
1a050 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f riableDeclaratio
1a060 6e 28 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 n(declarations,
1a070 27 76 61 72 27 29 29 3b 0a 20 20 09 20 20 20 20 'var'));. .
1a080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a090 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 this.nextToken()
1a0a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1a0b0 20 20 20 20 20 20 20 20 20 6c 65 66 74 20 3d 20 left =
1a0c0 69 6e 69 74 3b 0a 20 20 09 20 20 20 20 20 20 20 init;. .
1a0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 rig
1a0e0 68 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 41 ht = this.parseA
1a0f0 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 ssignmentExpress
1a100 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ion();. .
1a110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e in
1a120 69 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 it = null;. .
1a130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a140 20 20 66 6f 72 49 6e 20 3d 20 66 61 6c 73 65 3b forIn = false;
1a150 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1a160 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1a170 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a else {.
1a180 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a190 20 20 20 20 20 20 20 69 6e 69 74 20 3d 20 74 68 init = th
1a1a0 69 73 2e 66 69 6e 61 6c 69 7a 65 28 69 6e 69 74 is.finalize(init
1a1b0 2c 20 6e 65 77 20 4e 6f 64 65 2e 56 61 72 69 61 , new Node.Varia
1a1c0 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 28 64 bleDeclaration(d
1a1d0 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 27 76 61 eclarations, 'va
1a1e0 72 27 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 r'));. .
1a1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
1a200 73 2e 65 78 70 65 63 74 28 27 3b 27 29 3b 0a 20 s.expect(';');.
1a210 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a220 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
1a230 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
1a240 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 68 69 else if (thi
1a250 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 27 s.matchKeyword('
1a260 63 6f 6e 73 74 27 29 20 7c 7c 20 74 68 69 73 2e const') || this.
1a270 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 27 6c 65 matchKeyword('le
1a280 74 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 t')) {. .
1a290 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d init =
1a2a0 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 this.createNode
1a2b0 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ();. .
1a2c0 20 20 20 20 20 20 20 76 61 72 20 6b 69 6e 64 20 var kind
1a2d0 3d 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e = this.nextToken
1a2e0 28 29 2e 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 ().value;. .
1a2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
1a300 28 21 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 (!this.context.s
1a310 74 72 69 63 74 20 26 26 20 74 68 69 73 2e 6c 6f trict && this.lo
1a320 6f 6b 61 68 65 61 64 2e 76 61 6c 75 65 20 3d 3d okahead.value ==
1a330 3d 20 27 69 6e 27 29 20 7b 0a 20 20 09 20 20 20 = 'in') {. .
1a340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a350 20 69 6e 69 74 20 3d 20 74 68 69 73 2e 66 69 6e init = this.fin
1a360 61 6c 69 7a 65 28 69 6e 69 74 2c 20 6e 65 77 20 alize(init, new
1a370 4e 6f 64 65 2e 49 64 65 6e 74 69 66 69 65 72 28 Node.Identifier(
1a380 6b 69 6e 64 29 29 3b 0a 20 20 09 20 20 20 20 20 kind));. .
1a390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
1a3a0 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b his.nextToken();
1a3b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1a3c0 20 20 20 20 20 20 20 20 6c 65 66 74 20 3d 20 69 left = i
1a3d0 6e 69 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nit;. .
1a3e0 20 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 righ
1a3f0 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 t = this.parseEx
1a400 70 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 pression();. .
1a410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a420 20 20 20 69 6e 69 74 20 3d 20 6e 75 6c 6c 3b 0a init = null;.
1a430 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a440 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
1a450 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
1a460 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a470 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f var previo
1a480 75 73 41 6c 6c 6f 77 49 6e 20 3d 20 74 68 69 73 usAllowIn = this
1a490 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 49 6e .context.allowIn
1a4a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1a4b0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f this.co
1a4c0 6e 74 65 78 74 2e 61 6c 6c 6f 77 49 6e 20 3d 20 ntext.allowIn =
1a4d0 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 false;. .
1a4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
1a4f0 72 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 3d r declarations =
1a500 20 74 68 69 73 2e 70 61 72 73 65 42 69 6e 64 69 this.parseBindi
1a510 6e 67 4c 69 73 74 28 6b 69 6e 64 2c 20 7b 20 69 ngList(kind, { i
1a520 6e 46 6f 72 3a 20 74 72 75 65 20 7d 29 3b 0a 20 nFor: true });.
1a530 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a540 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 this.conte
1a550 78 74 2e 61 6c 6c 6f 77 49 6e 20 3d 20 70 72 65 xt.allowIn = pre
1a560 76 69 6f 75 73 41 6c 6c 6f 77 49 6e 3b 0a 20 20 viousAllowIn;.
1a570 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a580 20 20 20 20 20 69 66 20 28 64 65 63 6c 61 72 61 if (declara
1a590 74 69 6f 6e 73 2e 6c 65 6e 67 74 68 20 3d 3d 3d tions.length ===
1a5a0 20 31 20 26 26 20 64 65 63 6c 61 72 61 74 69 6f 1 && declaratio
1a5b0 6e 73 5b 30 5d 2e 69 6e 69 74 20 3d 3d 3d 20 6e ns[0].init === n
1a5c0 75 6c 6c 20 26 26 20 74 68 69 73 2e 6d 61 74 63 ull && this.matc
1a5d0 68 4b 65 79 77 6f 72 64 28 27 69 6e 27 29 29 20 hKeyword('in'))
1a5e0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1a5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 69 ini
1a600 74 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a t = this.finaliz
1a610 65 28 69 6e 69 74 2c 20 6e 65 77 20 4e 6f 64 65 e(init, new Node
1a620 2e 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 .VariableDeclara
1a630 74 69 6f 6e 28 64 65 63 6c 61 72 61 74 69 6f 6e tion(declaration
1a640 73 2c 20 6b 69 6e 64 29 29 3b 0a 20 20 09 20 20 s, kind));. .
1a650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a660 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 this.nextT
1a670 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
1a680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a690 20 20 20 6c 65 66 74 20 3d 20 69 6e 69 74 3b 0a left = init;.
1a6a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a6b0 20 20 20 20 20 20 20 20 20 20 20 72 69 67 68 74 right
1a6c0 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
1a6d0 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
1a6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a6f0 20 20 20 20 20 20 69 6e 69 74 20 3d 20 6e 75 6c init = nul
1a700 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 l;. .
1a710 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
1a720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a730 20 20 20 65 6c 73 65 20 69 66 20 28 64 65 63 6c else if (decl
1a740 61 72 61 74 69 6f 6e 73 2e 6c 65 6e 67 74 68 20 arations.length
1a750 3d 3d 3d 20 31 20 26 26 20 64 65 63 6c 61 72 61 === 1 && declara
1a760 74 69 6f 6e 73 5b 30 5d 2e 69 6e 69 74 20 3d 3d tions[0].init ==
1a770 3d 20 6e 75 6c 6c 20 26 26 20 74 68 69 73 2e 6d = null && this.m
1a780 61 74 63 68 43 6f 6e 74 65 78 74 75 61 6c 4b 65 atchContextualKe
1a790 79 77 6f 72 64 28 27 6f 66 27 29 29 20 7b 0a 20 yword('of')) {.
1a7a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a7b0 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d init =
1a7c0 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 69 this.finalize(i
1a7d0 6e 69 74 2c 20 6e 65 77 20 4e 6f 64 65 2e 56 61 nit, new Node.Va
1a7e0 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f riableDeclaratio
1a7f0 6e 28 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 n(declarations,
1a800 6b 69 6e 64 29 29 3b 0a 20 20 09 20 20 20 20 20 kind));. .
1a810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a820 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 this.nextToke
1a830 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
1a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a850 6c 65 66 74 20 3d 20 69 6e 69 74 3b 0a 20 20 09 left = init;. .
1a860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a870 20 20 20 20 20 20 20 20 72 69 67 68 74 20 3d 20 right =
1a880 74 68 69 73 2e 70 61 72 73 65 41 73 73 69 67 6e this.parseAssign
1a890 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 28 29 mentExpression()
1a8a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1a8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 69 ini
1a8c0 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 t = null;. .
1a8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a8e0 20 20 20 20 20 66 6f 72 49 6e 20 3d 20 66 61 6c forIn = fal
1a8f0 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 se;. .
1a900 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
1a910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a920 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
1a930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1a940 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 73 75 this.consu
1a950 6d 65 53 65 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 meSemicolon();.
1a960 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1a970 20 20 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d init =
1a980 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 69 this.finalize(i
1a990 6e 69 74 2c 20 6e 65 77 20 4e 6f 64 65 2e 56 61 nit, new Node.Va
1a9a0 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f riableDeclaratio
1a9b0 6e 28 64 65 63 6c 61 72 61 74 69 6f 6e 73 2c 20 n(declarations,
1a9c0 6b 69 6e 64 29 29 3b 0a 20 20 09 20 20 20 20 20 kind));. .
1a9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
1a9e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1a9f0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1aa00 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
1aa10 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 else {. .
1aa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1aa30 76 61 72 20 69 6e 69 74 53 74 61 72 74 54 6f 6b var initStartTok
1aa40 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 en = this.lookah
1aa50 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ead;. .
1aa60 20 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 var prev
1aa70 69 6f 75 73 41 6c 6c 6f 77 49 6e 20 3d 20 74 68 iousAllowIn = th
1aa80 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 is.context.allow
1aa90 49 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 In;. .
1aaa0 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
1aab0 65 78 74 2e 61 6c 6c 6f 77 49 6e 20 3d 20 66 61 ext.allowIn = fa
1aac0 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lse;. .
1aad0 20 20 20 20 20 20 20 20 69 6e 69 74 20 3d 20 74 init = t
1aae0 68 69 73 2e 69 6e 68 65 72 69 74 43 6f 76 65 72 his.inheritCover
1aaf0 47 72 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 72 Grammar(this.par
1ab00 73 65 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 seAssignmentExpr
1ab10 65 73 73 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 ession);. .
1ab20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
1ab30 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 49 6e .context.allowIn
1ab40 20 3d 20 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 = previousAllow
1ab50 49 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 In;. .
1ab60 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
1ab70 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 27 69 6e matchKeyword('in
1ab80 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
1ab90 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
1aba0 28 21 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 (!this.context.i
1abb0 73 41 73 73 69 67 6e 6d 65 6e 74 54 61 72 67 65 sAssignmentTarge
1abc0 74 20 7c 7c 20 69 6e 69 74 2e 74 79 70 65 20 3d t || init.type =
1abd0 3d 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 == syntax_1.Synt
1abe0 61 78 2e 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 ax.AssignmentExp
1abf0 72 65 73 73 69 6f 6e 29 20 7b 0a 20 20 09 20 20 ression) {. .
1ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ac10 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 this.toler
1ac20 61 74 65 45 72 72 6f 72 28 6d 65 73 73 61 67 65 ateError(message
1ac30 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 49 6e 76 s_1.Messages.Inv
1ac40 61 6c 69 64 4c 48 53 49 6e 46 6f 72 49 6e 29 3b alidLHSInForIn);
1ac50 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1ac60 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
1ac70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ac80 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 this.nextToken(
1ac90 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
1aca0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 this.r
1acb0 65 69 6e 74 65 72 70 72 65 74 45 78 70 72 65 73 einterpretExpres
1acc0 73 69 6f 6e 41 73 50 61 74 74 65 72 6e 28 69 6e sionAsPattern(in
1acd0 69 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 it);. .
1ace0 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 66 74 left
1acf0 20 3d 20 69 6e 69 74 3b 0a 20 20 09 20 20 20 20 = init;. .
1ad00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ad10 72 69 67 68 74 20 3d 20 74 68 69 73 2e 70 61 72 right = this.par
1ad20 73 65 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a seExpression();.
1ad30 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1ad40 20 20 20 20 20 20 20 69 6e 69 74 20 3d 20 6e 75 init = nu
1ad50 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ll;. .
1ad60 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1ad70 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
1ad80 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 43 if (this.matchC
1ad90 6f 6e 74 65 78 74 75 61 6c 4b 65 79 77 6f 72 64 ontextualKeyword
1ada0 28 27 6f 66 27 29 29 20 7b 0a 20 20 09 20 20 20 ('of')) {. .
1adb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1adc0 20 69 66 20 28 21 74 68 69 73 2e 63 6f 6e 74 65 if (!this.conte
1add0 78 74 2e 69 73 41 73 73 69 67 6e 6d 65 6e 74 54 xt.isAssignmentT
1ade0 61 72 67 65 74 20 7c 7c 20 69 6e 69 74 2e 74 79 arget || init.ty
1adf0 70 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e pe === syntax_1.
1ae00 53 79 6e 74 61 78 2e 41 73 73 69 67 6e 6d 65 6e Syntax.Assignmen
1ae10 74 45 78 70 72 65 73 73 69 6f 6e 29 20 7b 0a 20 tExpression) {.
1ae20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1ae30 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 this.t
1ae40 6f 6c 65 72 61 74 65 45 72 72 6f 72 28 6d 65 73 olerateError(mes
1ae50 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 sages_1.Messages
1ae60 2e 49 6e 76 61 6c 69 64 4c 48 53 49 6e 46 6f 72 .InvalidLHSInFor
1ae70 4c 6f 6f 70 29 3b 0a 20 20 09 20 20 20 20 20 20 Loop);. .
1ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
1ae90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1aea0 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 this.next
1aeb0 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
1aec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1aed0 74 68 69 73 2e 72 65 69 6e 74 65 72 70 72 65 74 this.reinterpret
1aee0 45 78 70 72 65 73 73 69 6f 6e 41 73 50 61 74 74 ExpressionAsPatt
1aef0 65 72 6e 28 69 6e 69 74 29 3b 0a 20 20 09 20 20 ern(init);. .
1af00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1af10 20 20 6c 65 66 74 20 3d 20 69 6e 69 74 3b 0a 20 left = init;.
1af20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1af30 20 20 20 20 20 20 72 69 67 68 74 20 3d 20 74 68 right = th
1af40 69 73 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 is.parseAssignme
1af50 6e 74 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a ntExpression();.
1af60 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1af70 20 20 20 20 20 20 20 69 6e 69 74 20 3d 20 6e 75 init = nu
1af80 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ll;. .
1af90 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 49 6e forIn
1afa0 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 = false;. .
1afb0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
1afc0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1afd0 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
1afe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1aff0 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 27 if (this.match('
1b000 2c 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ,')) {. .
1b010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b020 20 20 76 61 72 20 69 6e 69 74 53 65 71 20 3d 20 var initSeq =
1b030 5b 69 6e 69 74 5d 3b 0a 20 20 09 20 20 20 20 20 [init];. .
1b040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b050 20 20 20 77 68 69 6c 65 20 28 74 68 69 73 2e 6d while (this.m
1b060 61 74 63 68 28 27 2c 27 29 29 20 7b 0a 20 20 09 atch(',')) {. .
1b070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b080 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
1b090 24 31 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a $1.nextToken();.
1b0a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1b0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
1b0c0 6e 69 74 53 65 71 2e 70 75 73 68 28 74 68 69 73 nitSeq.push(this
1b0d0 24 31 2e 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 $1.isolateCoverG
1b0e0 72 61 6d 6d 61 72 28 74 68 69 73 24 31 2e 70 61 rammar(this$1.pa
1b0f0 72 73 65 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 rseAssignmentExp
1b100 72 65 73 73 69 6f 6e 29 29 3b 0a 20 20 09 20 20 ression));. .
1b110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b120 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1b130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b140 20 20 20 69 6e 69 74 20 3d 20 74 68 69 73 2e 66 init = this.f
1b150 69 6e 61 6c 69 7a 65 28 74 68 69 73 2e 73 74 61 inalize(this.sta
1b160 72 74 4e 6f 64 65 28 69 6e 69 74 53 74 61 72 74 rtNode(initStart
1b170 54 6f 6b 65 6e 29 2c 20 6e 65 77 20 4e 6f 64 65 Token), new Node
1b180 2e 53 65 71 75 65 6e 63 65 45 78 70 72 65 73 73 .SequenceExpress
1b190 69 6f 6e 28 69 6e 69 74 53 65 71 29 29 3b 0a 20 ion(initSeq));.
1b1a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1b1b0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1b1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
1b1d0 68 69 73 2e 65 78 70 65 63 74 28 27 3b 27 29 3b his.expect(';');
1b1e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1b1f0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1b200 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
1b210 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 }. . i
1b220 66 20 28 74 79 70 65 6f 66 20 6c 65 66 74 20 3d f (typeof left =
1b230 3d 3d 20 27 75 6e 64 65 66 69 6e 65 64 27 29 20 == 'undefined')
1b240 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1b250 20 69 66 20 28 21 74 68 69 73 2e 6d 61 74 63 68 if (!this.match
1b260 28 27 3b 27 29 29 20 7b 0a 20 20 09 20 20 20 20 (';')) {. .
1b270 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 test
1b280 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
1b290 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
1b2a0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
1b2b0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
1b2c0 65 78 70 65 63 74 28 27 3b 27 29 3b 0a 20 20 09 expect(';');. .
1b2d0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
1b2e0 21 74 68 69 73 2e 6d 61 74 63 68 28 27 29 27 29 !this.match(')')
1b2f0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
1b300 20 20 20 20 20 20 20 75 70 64 61 74 65 20 3d 20 update =
1b310 74 68 69 73 2e 70 61 72 73 65 45 78 70 72 65 73 this.parseExpres
1b320 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 sion();. .
1b330 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1b340 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1b350 20 76 61 72 20 62 6f 64 79 3b 0a 20 20 09 20 20 var body;. .
1b360 20 20 20 20 20 20 69 66 20 28 21 74 68 69 73 2e if (!this.
1b370 6d 61 74 63 68 28 27 29 27 29 20 26 26 20 74 68 match(')') && th
1b380 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6c 65 72 61 is.config.tolera
1b390 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 nt) {. .
1b3a0 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 this.tolera
1b3b0 74 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 teUnexpectedToke
1b3c0 6e 28 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e n(this.nextToken
1b3d0 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ());. .
1b3e0 20 20 20 20 62 6f 64 79 20 3d 20 74 68 69 73 2e body = this.
1b3f0 66 69 6e 61 6c 69 7a 65 28 74 68 69 73 2e 63 72 finalize(this.cr
1b400 65 61 74 65 4e 6f 64 65 28 29 2c 20 6e 65 77 20 eateNode(), new
1b410 4e 6f 64 65 2e 45 6d 70 74 79 53 74 61 74 65 6d Node.EmptyStatem
1b420 65 6e 74 28 29 29 3b 0a 20 20 09 20 20 20 20 20 ent());. .
1b430 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
1b440 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
1b450 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
1b460 74 28 27 29 27 29 3b 0a 20 20 09 20 20 20 20 20 t(')');. .
1b470 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 var previ
1b480 6f 75 73 49 6e 49 74 65 72 61 74 69 6f 6e 20 3d ousInIteration =
1b490 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e this.context.in
1b4a0 49 74 65 72 61 74 69 6f 6e 3b 0a 20 20 09 20 20 Iteration;. .
1b4b0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 this.c
1b4c0 6f 6e 74 65 78 74 2e 69 6e 49 74 65 72 61 74 69 ontext.inIterati
1b4d0 6f 6e 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 on = true;. .
1b4e0 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 20 3d body =
1b4f0 20 74 68 69 73 2e 69 73 6f 6c 61 74 65 43 6f 76 this.isolateCov
1b500 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 2e 70 erGrammar(this.p
1b510 61 72 73 65 53 74 61 74 65 6d 65 6e 74 29 3b 0a arseStatement);.
1b520 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
1b530 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 49 74 his.context.inIt
1b540 65 72 61 74 69 6f 6e 20 3d 20 70 72 65 76 69 6f eration = previo
1b550 75 73 49 6e 49 74 65 72 61 74 69 6f 6e 3b 0a 20 usInIteration;.
1b560 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
1b570 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 74 return (t
1b580 79 70 65 6f 66 20 6c 65 66 74 20 3d 3d 3d 20 27 ypeof left === '
1b590 75 6e 64 65 66 69 6e 65 64 27 29 20 3f 0a 20 20 undefined') ?.
1b5a0 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
1b5b0 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c s.finalize(node,
1b5c0 20 6e 65 77 20 4e 6f 64 65 2e 46 6f 72 53 74 61 new Node.ForSta
1b5d0 74 65 6d 65 6e 74 28 69 6e 69 74 2c 20 74 65 73 tement(init, tes
1b5e0 74 2c 20 75 70 64 61 74 65 2c 20 62 6f 64 79 29 t, update, body)
1b5f0 29 20 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) :. .
1b600 20 20 20 66 6f 72 49 6e 20 3f 20 74 68 69 73 2e forIn ? this.
1b610 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
1b620 65 77 20 4e 6f 64 65 2e 46 6f 72 49 6e 53 74 61 ew Node.ForInSta
1b630 74 65 6d 65 6e 74 28 6c 65 66 74 2c 20 72 69 67 tement(left, rig
1b640 68 74 2c 20 62 6f 64 79 29 29 20 3a 0a 20 20 09 ht, body)) :. .
1b650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b660 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f this.finalize(no
1b670 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 46 6f 72 de, new Node.For
1b680 4f 66 53 74 61 74 65 6d 65 6e 74 28 6c 65 66 74 OfStatement(left
1b690 2c 20 72 69 67 68 74 2c 20 62 6f 64 79 29 29 3b , right, body));
1b6a0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
1b6b0 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 33 // ECMA-262 13
1b6c0 2e 38 20 54 68 65 20 63 6f 6e 74 69 6e 75 65 20 .8 The continue
1b6d0 73 74 61 74 65 6d 65 6e 74 0a 20 20 09 20 20 20 statement. .
1b6e0 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
1b6f0 65 2e 70 61 72 73 65 43 6f 6e 74 69 6e 75 65 53 e.parseContinueS
1b700 74 61 74 65 6d 65 6e 74 20 3d 20 66 75 6e 63 74 tatement = funct
1b710 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
1b720 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 var node = t
1b730 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 his.createNode()
1b740 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
1b750 73 2e 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 s.expectKeyword(
1b760 27 63 6f 6e 74 69 6e 75 65 27 29 3b 0a 20 20 09 'continue');. .
1b770 20 20 20 20 20 20 20 20 76 61 72 20 6c 61 62 65 var labe
1b780 6c 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 l = null;. .
1b790 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c 6f if (this.lo
1b7a0 6f 6b 61 68 65 61 64 2e 74 79 70 65 20 3d 3d 3d okahead.type ===
1b7b0 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 49 token_1.Token.I
1b7c0 64 65 6e 74 69 66 69 65 72 20 26 26 20 21 74 68 dentifier && !th
1b7d0 69 73 2e 68 61 73 4c 69 6e 65 54 65 72 6d 69 6e is.hasLineTermin
1b7e0 61 74 6f 72 29 20 7b 0a 20 20 09 20 20 20 20 20 ator) {. .
1b7f0 20 20 20 20 20 20 20 6c 61 62 65 6c 20 3d 20 74 label = t
1b800 68 69 73 2e 70 61 72 73 65 56 61 72 69 61 62 6c his.parseVariabl
1b810 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 eIdentifier();.
1b820 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
1b830 72 20 6b 65 79 20 3d 20 27 24 27 20 2b 20 6c 61 r key = '$' + la
1b840 62 65 6c 2e 6e 61 6d 65 3b 0a 20 20 09 20 20 20 bel.name;. .
1b850 20 20 20 20 20 20 20 20 20 69 66 20 28 21 4f 62 if (!Ob
1b860 6a 65 63 74 2e 70 72 6f 74 6f 74 79 70 65 2e 68 ject.prototype.h
1b870 61 73 4f 77 6e 50 72 6f 70 65 72 74 79 2e 63 61 asOwnProperty.ca
1b880 6c 6c 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e ll(this.context.
1b890 6c 61 62 65 6c 53 65 74 2c 20 6b 65 79 29 29 20 labelSet, key))
1b8a0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1b8b0 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 45 this.throwE
1b8c0 72 72 6f 72 28 6d 65 73 73 61 67 65 73 5f 31 2e rror(messages_1.
1b8d0 4d 65 73 73 61 67 65 73 2e 55 6e 6b 6e 6f 77 6e Messages.Unknown
1b8e0 4c 61 62 65 6c 2c 20 6c 61 62 65 6c 2e 6e 61 6d Label, label.nam
1b8f0 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e);. .
1b900 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
1b910 7d 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 }. . thi
1b920 73 2e 63 6f 6e 73 75 6d 65 53 65 6d 69 63 6f 6c s.consumeSemicol
1b930 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 on();. .
1b940 20 69 66 20 28 6c 61 62 65 6c 20 3d 3d 3d 20 6e if (label === n
1b950 75 6c 6c 20 26 26 20 21 74 68 69 73 2e 63 6f 6e ull && !this.con
1b960 74 65 78 74 2e 69 6e 49 74 65 72 61 74 69 6f 6e text.inIteration
1b970 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
1b980 20 20 20 74 68 69 73 2e 74 68 72 6f 77 45 72 72 this.throwErr
1b990 6f 72 28 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 or(messages_1.Me
1b9a0 73 73 61 67 65 73 2e 49 6c 6c 65 67 61 6c 43 6f ssages.IllegalCo
1b9b0 6e 74 69 6e 75 65 29 3b 0a 20 20 09 20 20 20 20 ntinue);. .
1b9c0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1b9d0 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e return this.fin
1b9e0 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 alize(node, new
1b9f0 4e 6f 64 65 2e 43 6f 6e 74 69 6e 75 65 53 74 61 Node.ContinueSta
1ba00 74 65 6d 65 6e 74 28 6c 61 62 65 6c 29 29 3b 0a tement(label));.
1ba10 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
1ba20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 33 2e // ECMA-262 13.
1ba30 39 20 54 68 65 20 62 72 65 61 6b 20 73 74 61 74 9 The break stat
1ba40 65 6d 65 6e 74 0a 20 20 09 20 20 20 20 50 61 72 ement. . Par
1ba50 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
1ba60 72 73 65 42 72 65 61 6b 53 74 61 74 65 6d 65 6e rseBreakStatemen
1ba70 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 t = function ()
1ba80 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
1ba90 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
1baa0 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 ateNode();. .
1bab0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
1bac0 74 4b 65 79 77 6f 72 64 28 27 62 72 65 61 6b 27 tKeyword('break'
1bad0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
1bae0 72 20 6c 61 62 65 6c 20 3d 20 6e 75 6c 6c 3b 0a r label = null;.
1baf0 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 . if (t
1bb00 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 his.lookahead.ty
1bb10 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 pe === token_1.T
1bb20 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 20 oken.Identifier
1bb30 26 26 20 21 74 68 69 73 2e 68 61 73 4c 69 6e 65 && !this.hasLine
1bb40 54 65 72 6d 69 6e 61 74 6f 72 29 20 7b 0a 20 20 Terminator) {.
1bb50 09 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 . lab
1bb60 65 6c 20 3d 20 74 68 69 73 2e 70 61 72 73 65 56 el = this.parseV
1bb70 61 72 69 61 62 6c 65 49 64 65 6e 74 69 66 69 65 ariableIdentifie
1bb80 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 r();. .
1bb90 20 20 20 20 76 61 72 20 6b 65 79 20 3d 20 27 24 var key = '$
1bba0 27 20 2b 20 6c 61 62 65 6c 2e 6e 61 6d 65 3b 0a ' + label.name;.
1bbb0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
1bbc0 66 20 28 21 4f 62 6a 65 63 74 2e 70 72 6f 74 6f f (!Object.proto
1bbd0 74 79 70 65 2e 68 61 73 4f 77 6e 50 72 6f 70 65 type.hasOwnPrope
1bbe0 72 74 79 2e 63 61 6c 6c 28 74 68 69 73 2e 63 6f rty.call(this.co
1bbf0 6e 74 65 78 74 2e 6c 61 62 65 6c 53 65 74 2c 20 ntext.labelSet,
1bc00 6b 65 79 29 29 20 7b 0a 20 20 09 20 20 20 20 20 key)) {. .
1bc10 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
1bc20 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 throwError(messa
1bc30 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 ges_1.Messages.U
1bc40 6e 6b 6e 6f 77 6e 4c 61 62 65 6c 2c 20 6c 61 62 nknownLabel, lab
1bc50 65 6c 2e 6e 61 6d 65 29 3b 0a 20 20 09 20 20 20 el.name);. .
1bc60 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1bc70 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1bc80 20 20 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 this.consumeS
1bc90 65 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 emicolon();. .
1bca0 20 20 20 20 20 20 20 69 66 20 28 6c 61 62 65 6c if (label
1bcb0 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 21 74 68 === null && !th
1bcc0 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 49 74 65 is.context.inIte
1bcd0 72 61 74 69 6f 6e 20 26 26 20 21 74 68 69 73 2e ration && !this.
1bce0 63 6f 6e 74 65 78 74 2e 69 6e 53 77 69 74 63 68 context.inSwitch
1bcf0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
1bd00 20 20 20 74 68 69 73 2e 74 68 72 6f 77 45 72 72 this.throwErr
1bd10 6f 72 28 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 or(messages_1.Me
1bd20 73 73 61 67 65 73 2e 49 6c 6c 65 67 61 6c 42 72 ssages.IllegalBr
1bd30 65 61 6b 29 3b 0a 20 20 09 20 20 20 20 20 20 20 eak);. .
1bd40 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
1bd50 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 turn this.finali
1bd60 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 ze(node, new Nod
1bd70 65 2e 42 72 65 61 6b 53 74 61 74 65 6d 65 6e 74 e.BreakStatement
1bd80 28 6c 61 62 65 6c 29 29 3b 0a 20 20 09 20 20 20 (label));. .
1bd90 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 };. . // EC
1bda0 4d 41 2d 32 36 32 20 31 33 2e 31 30 20 54 68 65 MA-262 13.10 The
1bdb0 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d 65 6e return statemen
1bdc0 74 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e t. . Parser.
1bdd0 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 52 prototype.parseR
1bde0 65 74 75 72 6e 53 74 61 74 65 6d 65 6e 74 20 3d eturnStatement =
1bdf0 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
1be00 20 09 20 20 20 20 20 20 20 20 69 66 20 28 21 74 . if (!t
1be10 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 46 75 his.context.inFu
1be20 6e 63 74 69 6f 6e 42 6f 64 79 29 20 7b 0a 20 20 nctionBody) {.
1be30 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
1be40 73 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f 72 28 s.tolerateError(
1be50 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 messages_1.Messa
1be60 67 65 73 2e 49 6c 6c 65 67 61 6c 52 65 74 75 72 ges.IllegalRetur
1be70 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d n);. . }
1be80 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
1be90 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 node = this.crea
1bea0 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 teNode();. .
1beb0 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 this.expect
1bec0 4b 65 79 77 6f 72 64 28 27 72 65 74 75 72 6e 27 Keyword('return'
1bed0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
1bee0 72 20 68 61 73 41 72 67 75 6d 65 6e 74 20 3d 20 r hasArgument =
1bef0 21 74 68 69 73 2e 6d 61 74 63 68 28 27 3b 27 29 !this.match(';')
1bf00 20 26 26 20 21 74 68 69 73 2e 6d 61 74 63 68 28 && !this.match(
1bf10 27 7d 27 29 20 26 26 0a 20 20 09 20 20 20 20 20 '}') &&. .
1bf20 20 20 20 20 20 20 20 21 74 68 69 73 2e 68 61 73 !this.has
1bf30 4c 69 6e 65 54 65 72 6d 69 6e 61 74 6f 72 20 26 LineTerminator &
1bf40 26 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 & this.lookahead
1bf50 2e 74 79 70 65 20 21 3d 3d 20 74 6f 6b 65 6e 5f .type !== token_
1bf60 31 2e 54 6f 6b 65 6e 2e 45 4f 46 3b 0a 20 20 09 1.Token.EOF;. .
1bf70 20 20 20 20 20 20 20 20 76 61 72 20 61 72 67 75 var argu
1bf80 6d 65 6e 74 20 3d 20 68 61 73 41 72 67 75 6d 65 ment = hasArgume
1bf90 6e 74 20 3f 20 74 68 69 73 2e 70 61 72 73 65 45 nt ? this.parseE
1bfa0 78 70 72 65 73 73 69 6f 6e 28 29 20 3a 20 6e 75 xpression() : nu
1bfb0 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ll;. . t
1bfc0 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 6d 69 63 his.consumeSemic
1bfd0 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 olon();. .
1bfe0 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
1bff0 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
1c000 77 20 4e 6f 64 65 2e 52 65 74 75 72 6e 53 74 61 w Node.ReturnSta
1c010 74 65 6d 65 6e 74 28 61 72 67 75 6d 65 6e 74 29 tement(argument)
1c020 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
1c030 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 // ECMA-262
1c040 31 33 2e 31 31 20 54 68 65 20 77 69 74 68 20 73 13.11 The with s
1c050 74 61 74 65 6d 65 6e 74 0a 20 20 09 20 20 20 20 tatement. .
1c060 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
1c070 2e 70 61 72 73 65 57 69 74 68 53 74 61 74 65 6d .parseWithStatem
1c080 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ent = function (
1c090 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 69 ) {. . i
1c0a0 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e f (this.context.
1c0b0 73 74 72 69 63 74 29 20 7b 0a 20 20 09 20 20 20 strict) {. .
1c0c0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f this.to
1c0d0 6c 65 72 61 74 65 45 72 72 6f 72 28 6d 65 73 73 lerateError(mess
1c0e0 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e ages_1.Messages.
1c0f0 53 74 72 69 63 74 4d 6f 64 65 57 69 74 68 29 3b StrictModeWith);
1c100 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
1c110 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 . var nod
1c120 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e e = this.createN
1c130 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ode();. .
1c140 20 20 74 68 69 73 2e 65 78 70 65 63 74 4b 65 79 this.expectKey
1c150 77 6f 72 64 28 27 77 69 74 68 27 29 3b 0a 20 20 word('with');.
1c160 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 . this.ex
1c170 70 65 63 74 28 27 28 27 29 3b 0a 20 20 09 20 20 pect('(');. .
1c180 20 20 20 20 20 20 76 61 72 20 6f 62 6a 65 63 74 var object
1c190 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
1c1a0 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 ression();. .
1c1b0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
1c1c0 74 28 27 29 27 29 3b 0a 20 20 09 20 20 20 20 20 t(')');. .
1c1d0 20 20 20 76 61 72 20 62 6f 64 79 20 3d 20 74 68 var body = th
1c1e0 69 73 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e is.parseStatemen
1c1f0 74 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 t();. .
1c200 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 return this.fina
1c210 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e lize(node, new N
1c220 6f 64 65 2e 57 69 74 68 53 74 61 74 65 6d 65 6e ode.WithStatemen
1c230 74 28 6f 62 6a 65 63 74 2c 20 62 6f 64 79 29 29 t(object, body))
1c240 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
1c250 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 // ECMA-262 1
1c260 33 2e 31 32 20 54 68 65 20 73 77 69 74 63 68 20 3.12 The switch
1c270 73 74 61 74 65 6d 65 6e 74 0a 20 20 09 20 20 20 statement. .
1c280 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
1c290 65 2e 70 61 72 73 65 53 77 69 74 63 68 43 61 73 e.parseSwitchCas
1c2a0 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 e = function ()
1c2b0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
1c2c0 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a this$1 = this;.
1c2d0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
1c2e0 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 node = this.crea
1c2f0 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 teNode();. .
1c300 20 20 20 20 20 76 61 72 20 74 65 73 74 3b 0a 20 var test;.
1c310 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 . if (th
1c320 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 28 is.matchKeyword(
1c330 27 64 65 66 61 75 6c 74 27 29 29 20 7b 0a 20 20 'default')) {.
1c340 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
1c350 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
1c360 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 65 . te
1c370 73 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 st = null;. .
1c380 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1c390 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
1c3a0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 this.ex
1c3b0 70 65 63 74 4b 65 79 77 6f 72 64 28 27 63 61 73 pectKeyword('cas
1c3c0 65 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 e');. .
1c3d0 20 20 20 20 74 65 73 74 20 3d 20 74 68 69 73 2e test = this.
1c3e0 70 61 72 73 65 45 78 70 72 65 73 73 69 6f 6e 28 parseExpression(
1c3f0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
1c400 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
1c410 65 78 70 65 63 74 28 27 3a 27 29 3b 0a 20 20 09 expect(':');. .
1c420 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 6e 73 var cons
1c430 65 71 75 65 6e 74 20 3d 20 5b 5d 3b 0a 20 20 09 equent = [];. .
1c440 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 74 while (t
1c450 72 75 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 rue) {. .
1c460 20 20 20 20 20 20 69 66 20 28 74 68 69 73 24 31 if (this$1
1c470 2e 6d 61 74 63 68 28 27 7d 27 29 20 7c 7c 20 74 .match('}') || t
1c480 68 69 73 24 31 2e 6d 61 74 63 68 4b 65 79 77 6f his$1.matchKeywo
1c490 72 64 28 27 64 65 66 61 75 6c 74 27 29 20 7c 7c rd('default') ||
1c4a0 20 74 68 69 73 24 31 2e 6d 61 74 63 68 4b 65 79 this$1.matchKey
1c4b0 77 6f 72 64 28 27 63 61 73 65 27 29 29 20 7b 0a word('case')) {.
1c4c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1c4d0 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
1c4e0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1c4f0 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 65 71 conseq
1c500 75 65 6e 74 2e 70 75 73 68 28 74 68 69 73 24 31 uent.push(this$1
1c510 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e 74 4c .parseStatementL
1c520 69 73 74 49 74 65 6d 28 29 29 3b 0a 20 20 09 20 istItem());. .
1c530 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1c540 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
1c550 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
1c560 65 77 20 4e 6f 64 65 2e 53 77 69 74 63 68 43 61 ew Node.SwitchCa
1c570 73 65 28 74 65 73 74 2c 20 63 6f 6e 73 65 71 75 se(test, consequ
1c580 65 6e 74 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b ent));. . };
1c590 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
1c5a0 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 53 77 rototype.parseSw
1c5b0 69 74 63 68 53 74 61 74 65 6d 65 6e 74 20 3d 20 itchStatement =
1c5c0 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
1c5d0 09 20 20 20 20 20 20 20 20 76 61 72 20 74 68 69 . var thi
1c5e0 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 s$1 = this;.. .
1c5f0 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
1c600 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f = this.createNo
1c610 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 de();. .
1c620 20 74 68 69 73 2e 65 78 70 65 63 74 4b 65 79 77 this.expectKeyw
1c630 6f 72 64 28 27 73 77 69 74 63 68 27 29 3b 0a 20 ord('switch');.
1c640 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 . this.e
1c650 78 70 65 63 74 28 27 28 27 29 3b 0a 20 20 09 20 xpect('(');. .
1c660 20 20 20 20 20 20 20 76 61 72 20 64 69 73 63 72 var discr
1c670 69 6d 69 6e 61 6e 74 20 3d 20 74 68 69 73 2e 70 iminant = this.p
1c680 61 72 73 65 45 78 70 72 65 73 73 69 6f 6e 28 29 arseExpression()
1c690 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
1c6a0 73 2e 65 78 70 65 63 74 28 27 29 27 29 3b 0a 20 s.expect(')');.
1c6b0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 70 72 . var pr
1c6c0 65 76 69 6f 75 73 49 6e 53 77 69 74 63 68 20 3d eviousInSwitch =
1c6d0 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e this.context.in
1c6e0 53 77 69 74 63 68 3b 0a 20 20 09 20 20 20 20 20 Switch;. .
1c6f0 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e this.context.
1c700 69 6e 53 77 69 74 63 68 20 3d 20 74 72 75 65 3b inSwitch = true;
1c710 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
1c720 63 61 73 65 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 cases = [];. .
1c730 20 20 20 20 20 20 20 76 61 72 20 64 65 66 61 75 var defau
1c740 6c 74 46 6f 75 6e 64 20 3d 20 66 61 6c 73 65 3b ltFound = false;
1c750 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
1c760 2e 65 78 70 65 63 74 28 27 7b 27 29 3b 0a 20 20 .expect('{');.
1c770 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 . while (
1c780 74 72 75 65 29 20 7b 0a 20 20 09 20 20 20 20 20 true) {. .
1c790 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 24 if (this$
1c7a0 31 2e 6d 61 74 63 68 28 27 7d 27 29 29 20 7b 0a 1.match('}')) {.
1c7b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1c7c0 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
1c7d0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1c7e0 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 6c var cl
1c7f0 61 75 73 65 20 3d 20 74 68 69 73 24 31 2e 70 61 ause = this$1.pa
1c800 72 73 65 53 77 69 74 63 68 43 61 73 65 28 29 3b rseSwitchCase();
1c810 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1c820 69 66 20 28 63 6c 61 75 73 65 2e 74 65 73 74 20 if (clause.test
1c830 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 09 20 === null) {. .
1c840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
1c850 66 20 28 64 65 66 61 75 6c 74 46 6f 75 6e 64 29 f (defaultFound)
1c860 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
1c870 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
1c880 2e 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 73 73 .throwError(mess
1c890 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e ages_1.Messages.
1c8a0 4d 75 6c 74 69 70 6c 65 44 65 66 61 75 6c 74 73 MultipleDefaults
1c8b0 49 6e 53 77 69 74 63 68 29 3b 0a 20 20 09 20 20 InSwitch);. .
1c8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
1c8d0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1c8e0 20 20 20 64 65 66 61 75 6c 74 46 6f 75 6e 64 20 defaultFound
1c8f0 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 = true;. .
1c900 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1c910 20 20 20 20 20 20 20 20 63 61 73 65 73 2e 70 75 cases.pu
1c920 73 68 28 63 6c 61 75 73 65 29 3b 0a 20 20 09 20 sh(clause);. .
1c930 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1c940 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 this.expect(
1c950 27 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 '}');. .
1c960 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e this.context.in
1c970 53 77 69 74 63 68 20 3d 20 70 72 65 76 69 6f 75 Switch = previou
1c980 73 49 6e 53 77 69 74 63 68 3b 0a 20 20 09 20 20 sInSwitch;. .
1c990 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 return thi
1c9a0 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c s.finalize(node,
1c9b0 20 6e 65 77 20 4e 6f 64 65 2e 53 77 69 74 63 68 new Node.Switch
1c9c0 53 74 61 74 65 6d 65 6e 74 28 64 69 73 63 72 69 Statement(discri
1c9d0 6d 69 6e 61 6e 74 2c 20 63 61 73 65 73 29 29 3b minant, cases));
1c9e0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
1c9f0 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 33 // ECMA-262 13
1ca00 2e 31 33 20 4c 61 62 65 6c 6c 65 64 20 53 74 61 .13 Labelled Sta
1ca10 74 65 6d 65 6e 74 73 0a 20 20 09 20 20 20 20 50 tements. . P
1ca20 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
1ca30 70 61 72 73 65 4c 61 62 65 6c 6c 65 64 53 74 61 parseLabelledSta
1ca40 74 65 6d 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f tement = functio
1ca50 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
1ca60 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
1ca70 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a s.createNode();.
1ca80 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 65 . var e
1ca90 78 70 72 20 3d 20 74 68 69 73 2e 70 61 72 73 65 xpr = this.parse
1caa0 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 Expression();.
1cab0 09 20 20 20 20 20 20 20 20 76 61 72 20 73 74 61 . var sta
1cac0 74 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 tement;. .
1cad0 20 20 20 69 66 20 28 28 65 78 70 72 2e 74 79 70 if ((expr.typ
1cae0 65 20 3d 3d 3d 20 73 79 6e 74 61 78 5f 31 2e 53 e === syntax_1.S
1caf0 79 6e 74 61 78 2e 49 64 65 6e 74 69 66 69 65 72 yntax.Identifier
1cb00 29 20 26 26 20 74 68 69 73 2e 6d 61 74 63 68 28 ) && this.match(
1cb10 27 3a 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 ':')) {. .
1cb20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 this.next
1cb30 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
1cb40 20 20 20 20 20 20 20 20 76 61 72 20 69 64 20 3d var id =
1cb50 20 28 65 78 70 72 29 3b 0a 20 20 09 20 20 20 20 (expr);. .
1cb60 20 20 20 20 20 20 20 20 76 61 72 20 6b 65 79 20 var key
1cb70 3d 20 27 24 27 20 2b 20 69 64 2e 6e 61 6d 65 3b = '$' + id.name;
1cb80 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1cb90 69 66 20 28 4f 62 6a 65 63 74 2e 70 72 6f 74 6f if (Object.proto
1cba0 74 79 70 65 2e 68 61 73 4f 77 6e 50 72 6f 70 65 type.hasOwnPrope
1cbb0 72 74 79 2e 63 61 6c 6c 28 74 68 69 73 2e 63 6f rty.call(this.co
1cbc0 6e 74 65 78 74 2e 6c 61 62 65 6c 53 65 74 2c 20 ntext.labelSet,
1cbd0 6b 65 79 29 29 20 7b 0a 20 20 09 20 20 20 20 20 key)) {. .
1cbe0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
1cbf0 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 throwError(messa
1cc00 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 52 ges_1.Messages.R
1cc10 65 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 27 4c edeclaration, 'L
1cc20 61 62 65 6c 27 2c 20 69 64 2e 6e 61 6d 65 29 3b abel', id.name);
1cc30 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1cc40 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
1cc50 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 6c 61 this.context.la
1cc60 62 65 6c 53 65 74 5b 6b 65 79 5d 20 3d 20 74 72 belSet[key] = tr
1cc70 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ue;. .
1cc80 20 20 20 76 61 72 20 6c 61 62 65 6c 65 64 42 6f var labeledBo
1cc90 64 79 20 3d 20 74 68 69 73 2e 70 61 72 73 65 53 dy = this.parseS
1cca0 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 tatement();. .
1ccb0 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 delet
1ccc0 65 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 6c e this.context.l
1ccd0 61 62 65 6c 53 65 74 5b 6b 65 79 5d 3b 0a 20 20 abelSet[key];.
1cce0 09 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 . sta
1ccf0 74 65 6d 65 6e 74 20 3d 20 6e 65 77 20 4e 6f 64 tement = new Nod
1cd00 65 2e 4c 61 62 65 6c 65 64 53 74 61 74 65 6d 65 e.LabeledStateme
1cd10 6e 74 28 69 64 2c 20 6c 61 62 65 6c 65 64 42 6f nt(id, labeledBo
1cd20 64 79 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 dy);. .
1cd30 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 }. . els
1cd40 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
1cd50 20 20 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 this.consumeS
1cd60 65 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 emicolon();. .
1cd70 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 state
1cd80 6d 65 6e 74 20 3d 20 6e 65 77 20 4e 6f 64 65 2e ment = new Node.
1cd90 45 78 70 72 65 73 73 69 6f 6e 53 74 61 74 65 6d ExpressionStatem
1cda0 65 6e 74 28 65 78 70 72 29 3b 0a 20 20 09 20 20 ent(expr);. .
1cdb0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1cdc0 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
1cdd0 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 73 74 inalize(node, st
1cde0 61 74 65 6d 65 6e 74 29 3b 0a 20 20 09 20 20 20 atement);. .
1cdf0 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 };. . // EC
1ce00 4d 41 2d 32 36 32 20 31 33 2e 31 34 20 54 68 65 MA-262 13.14 The
1ce10 20 74 68 72 6f 77 20 73 74 61 74 65 6d 65 6e 74 throw statement
1ce20 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 . . Parser.p
1ce30 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 54 68 rototype.parseTh
1ce40 72 6f 77 53 74 61 74 65 6d 65 6e 74 20 3d 20 66 rowStatement = f
1ce50 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
1ce60 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
1ce70 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f = this.createNo
1ce80 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 de();. .
1ce90 20 74 68 69 73 2e 65 78 70 65 63 74 4b 65 79 77 this.expectKeyw
1cea0 6f 72 64 28 27 74 68 72 6f 77 27 29 3b 0a 20 20 ord('throw');.
1ceb0 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
1cec0 73 2e 68 61 73 4c 69 6e 65 54 65 72 6d 69 6e 61 s.hasLineTermina
1ced0 74 6f 72 29 20 7b 0a 20 20 09 20 20 20 20 20 20 tor) {. .
1cee0 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 this.throw
1cef0 45 72 72 6f 72 28 6d 65 73 73 61 67 65 73 5f 31 Error(messages_1
1cf00 2e 4d 65 73 73 61 67 65 73 2e 4e 65 77 6c 69 6e .Messages.Newlin
1cf10 65 41 66 74 65 72 54 68 72 6f 77 29 3b 0a 20 20 eAfterThrow);.
1cf20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
1cf30 20 20 20 20 20 20 76 61 72 20 61 72 67 75 6d 65 var argume
1cf40 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 nt = this.parseE
1cf50 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 xpression();. .
1cf60 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
1cf70 73 75 6d 65 53 65 6d 69 63 6f 6c 6f 6e 28 29 3b sumeSemicolon();
1cf80 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
1cf90 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 rn this.finalize
1cfa0 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
1cfb0 54 68 72 6f 77 53 74 61 74 65 6d 65 6e 74 28 61 ThrowStatement(a
1cfc0 72 67 75 6d 65 6e 74 29 29 3b 0a 20 20 09 20 20 rgument));. .
1cfd0 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 };. . // E
1cfe0 43 4d 41 2d 32 36 32 20 31 33 2e 31 35 20 54 68 CMA-262 13.15 Th
1cff0 65 20 74 72 79 20 73 74 61 74 65 6d 65 6e 74 0a e try statement.
1d000 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
1d010 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 43 61 74 ototype.parseCat
1d020 63 68 43 6c 61 75 73 65 20 3d 20 66 75 6e 63 74 chClause = funct
1d030 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
1d040 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d var this$1 =
1d050 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 this;.. .
1d060 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
1d070 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
1d080 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
1d090 2e 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 27 .expectKeyword('
1d0a0 63 61 74 63 68 27 29 3b 0a 20 20 09 20 20 20 20 catch');. .
1d0b0 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 this.expect(
1d0c0 27 28 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 '(');. .
1d0d0 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 if (this.match(
1d0e0 27 29 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 ')')) {. .
1d0f0 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f this.thro
1d100 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e wUnexpectedToken
1d110 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 29 (this.lookahead)
1d120 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
1d130 20 09 20 20 20 20 20 20 20 20 76 61 72 20 70 61 . var pa
1d140 72 61 6d 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 rams = [];. .
1d150 20 20 20 20 20 20 76 61 72 20 70 61 72 61 6d 20 var param
1d160 3d 20 74 68 69 73 2e 70 61 72 73 65 50 61 74 74 = this.parsePatt
1d170 65 72 6e 28 70 61 72 61 6d 73 29 3b 0a 20 20 09 ern(params);. .
1d180 20 20 20 20 20 20 20 20 76 61 72 20 70 61 72 61 var para
1d190 6d 4d 61 70 20 3d 20 7b 7d 3b 0a 20 20 09 20 20 mMap = {};. .
1d1a0 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 for (var i
1d1b0 20 3d 20 30 3b 20 69 20 3c 20 70 61 72 61 6d 73 = 0; i < params
1d1c0 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b 0a .length; i++) {.
1d1d0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
1d1e0 61 72 20 6b 65 79 20 3d 20 27 24 27 20 2b 20 70 ar key = '$' + p
1d1f0 61 72 61 6d 73 5b 69 5d 2e 76 61 6c 75 65 3b 0a arams[i].value;.
1d200 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
1d210 66 20 28 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74 f (Object.protot
1d220 79 70 65 2e 68 61 73 4f 77 6e 50 72 6f 70 65 72 ype.hasOwnProper
1d230 74 79 2e 63 61 6c 6c 28 70 61 72 61 6d 4d 61 70 ty.call(paramMap
1d240 2c 20 6b 65 79 29 29 20 7b 0a 20 20 09 20 20 20 , key)) {. .
1d250 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
1d260 73 24 31 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f s$1.tolerateErro
1d270 72 28 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 r(messages_1.Mes
1d280 73 61 67 65 73 2e 44 75 70 6c 69 63 61 74 65 42 sages.DuplicateB
1d290 69 6e 64 69 6e 67 2c 20 70 61 72 61 6d 73 5b 69 inding, params[i
1d2a0 5d 2e 76 61 6c 75 65 29 3b 0a 20 20 09 20 20 20 ].value);. .
1d2b0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1d2c0 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 4d paramM
1d2d0 61 70 5b 6b 65 79 5d 20 3d 20 74 72 75 65 3b 0a ap[key] = true;.
1d2e0 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
1d2f0 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
1d300 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 .context.strict
1d310 26 26 20 70 61 72 61 6d 2e 74 79 70 65 20 3d 3d && param.type ==
1d320 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
1d330 78 2e 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a x.Identifier) {.
1d340 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
1d350 66 20 28 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e f (this.scanner.
1d360 69 73 52 65 73 74 72 69 63 74 65 64 57 6f 72 64 isRestrictedWord
1d370 28 28 70 61 72 61 6d 29 2e 6e 61 6d 65 29 29 20 ((param).name))
1d380 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1d390 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 this.tolera
1d3a0 74 65 45 72 72 6f 72 28 6d 65 73 73 61 67 65 73 teError(messages
1d3b0 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 72 69 _1.Messages.Stri
1d3c0 63 74 43 61 74 63 68 56 61 72 69 61 62 6c 65 29 ctCatchVariable)
1d3d0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1d3e0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a }. . }.
1d3f0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
1d400 65 78 70 65 63 74 28 27 29 27 29 3b 0a 20 20 09 expect(')');. .
1d410 20 20 20 20 20 20 20 20 76 61 72 20 62 6f 64 79 var body
1d420 20 3d 20 74 68 69 73 2e 70 61 72 73 65 42 6c 6f = this.parseBlo
1d430 63 6b 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ck();. .
1d440 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e return this.fin
1d450 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 alize(node, new
1d460 4e 6f 64 65 2e 43 61 74 63 68 43 6c 61 75 73 65 Node.CatchClause
1d470 28 70 61 72 61 6d 2c 20 62 6f 64 79 29 29 3b 0a (param, body));.
1d480 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
1d490 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
1d4a0 65 2e 70 61 72 73 65 46 69 6e 61 6c 6c 79 43 6c e.parseFinallyCl
1d4b0 61 75 73 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 ause = function
1d4c0 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
1d4d0 74 68 69 73 2e 65 78 70 65 63 74 4b 65 79 77 6f this.expectKeywo
1d4e0 72 64 28 27 66 69 6e 61 6c 6c 79 27 29 3b 0a 20 rd('finally');.
1d4f0 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
1d500 20 74 68 69 73 2e 70 61 72 73 65 42 6c 6f 63 6b this.parseBlock
1d510 28 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 ();. . };.
1d520 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
1d530 6f 74 79 70 65 2e 70 61 72 73 65 54 72 79 53 74 otype.parseTrySt
1d540 61 74 65 6d 65 6e 74 20 3d 20 66 75 6e 63 74 69 atement = functi
1d550 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
1d560 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
1d570 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
1d580 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
1d590 2e 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 27 .expectKeyword('
1d5a0 74 72 79 27 29 3b 0a 20 20 09 20 20 20 20 20 20 try');. .
1d5b0 20 20 76 61 72 20 62 6c 6f 63 6b 20 3d 20 74 68 var block = th
1d5c0 69 73 2e 70 61 72 73 65 42 6c 6f 63 6b 28 29 3b is.parseBlock();
1d5d0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
1d5e0 68 61 6e 64 6c 65 72 20 3d 20 74 68 69 73 2e 6d handler = this.m
1d5f0 61 74 63 68 4b 65 79 77 6f 72 64 28 27 63 61 74 atchKeyword('cat
1d600 63 68 27 29 20 3f 20 74 68 69 73 2e 70 61 72 73 ch') ? this.pars
1d610 65 43 61 74 63 68 43 6c 61 75 73 65 28 29 20 3a eCatchClause() :
1d620 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 null;. .
1d630 20 20 76 61 72 20 66 69 6e 61 6c 69 7a 65 72 20 var finalizer
1d640 3d 20 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 = this.matchKeyw
1d650 6f 72 64 28 27 66 69 6e 61 6c 6c 79 27 29 20 3f ord('finally') ?
1d660 20 74 68 69 73 2e 70 61 72 73 65 46 69 6e 61 6c this.parseFinal
1d670 6c 79 43 6c 61 75 73 65 28 29 20 3a 20 6e 75 6c lyClause() : nul
1d680 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 l;. . if
1d690 20 28 21 68 61 6e 64 6c 65 72 20 26 26 20 21 66 (!handler && !f
1d6a0 69 6e 61 6c 69 7a 65 72 29 20 7b 0a 20 20 09 20 inalizer) {. .
1d6b0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
1d6c0 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 throwError(messa
1d6d0 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 4e ges_1.Messages.N
1d6e0 6f 43 61 74 63 68 4f 72 46 69 6e 61 6c 6c 79 29 oCatchOrFinally)
1d6f0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
1d700 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
1d710 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
1d720 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 54 72 ode, new Node.Tr
1d730 79 53 74 61 74 65 6d 65 6e 74 28 62 6c 6f 63 6b yStatement(block
1d740 2c 20 68 61 6e 64 6c 65 72 2c 20 66 69 6e 61 6c , handler, final
1d750 69 7a 65 72 29 29 3b 0a 20 20 09 20 20 20 20 7d izer));. . }
1d760 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 ;. . // ECMA
1d770 2d 32 36 32 20 31 33 2e 31 36 20 54 68 65 20 64 -262 13.16 The d
1d780 65 62 75 67 67 65 72 20 73 74 61 74 65 6d 65 6e ebugger statemen
1d790 74 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e t. . Parser.
1d7a0 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 44 prototype.parseD
1d7b0 65 62 75 67 67 65 72 53 74 61 74 65 6d 65 6e 74 ebuggerStatement
1d7c0 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
1d7d0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
1d7e0 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 node = this.crea
1d7f0 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 teNode();. .
1d800 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 this.expect
1d810 4b 65 79 77 6f 72 64 28 27 64 65 62 75 67 67 65 Keyword('debugge
1d820 72 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 r');. .
1d830 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 6d 69 this.consumeSemi
1d840 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 colon();. .
1d850 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
1d860 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
1d870 65 77 20 4e 6f 64 65 2e 44 65 62 75 67 67 65 72 ew Node.Debugger
1d880 53 74 61 74 65 6d 65 6e 74 28 29 29 3b 0a 20 20 Statement());.
1d890 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f . };. . /
1d8a0 2f 20 45 43 4d 41 2d 32 36 32 20 31 33 20 53 74 / ECMA-262 13 St
1d8b0 61 74 65 6d 65 6e 74 73 0a 20 20 09 20 20 20 20 atements. .
1d8c0 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
1d8d0 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e 74 20 .parseStatement
1d8e0 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
1d8f0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 73 . var s
1d900 74 61 74 65 6d 65 6e 74 20 3d 20 6e 75 6c 6c 3b tatement = null;
1d910 0a 20 20 09 20 20 20 20 20 20 20 20 73 77 69 74 . . swit
1d920 63 68 20 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 ch (this.lookahe
1d930 61 64 2e 74 79 70 65 29 20 7b 0a 20 20 09 20 20 ad.type) {. .
1d940 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 case t
1d950 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 42 6f 6f oken_1.Token.Boo
1d960 6c 65 61 6e 4c 69 74 65 72 61 6c 3a 0a 20 20 09 leanLiteral:. .
1d970 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
1d980 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e token_1.Token.N
1d990 75 6c 6c 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 ullLiteral:. .
1d9a0 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
1d9b0 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e 75 token_1.Token.Nu
1d9c0 6d 65 72 69 63 4c 69 74 65 72 61 6c 3a 0a 20 20 mericLiteral:.
1d9d0 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
1d9e0 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e e token_1.Token.
1d9f0 53 74 72 69 6e 67 4c 69 74 65 72 61 6c 3a 0a 20 StringLiteral:.
1da00 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
1da10 73 65 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e se token_1.Token
1da20 2e 54 65 6d 70 6c 61 74 65 3a 0a 20 20 09 20 20 .Template:. .
1da30 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 case t
1da40 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 52 65 67 oken_1.Token.Reg
1da50 75 6c 61 72 45 78 70 72 65 73 73 69 6f 6e 3a 0a ularExpression:.
1da60 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1da70 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d 20 74 statement = t
1da80 68 69 73 2e 70 61 72 73 65 45 78 70 72 65 73 73 his.parseExpress
1da90 69 6f 6e 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a ionStatement();.
1daa0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1dab0 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
1dac0 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f case to
1dad0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 ken_1.Token.Punc
1dae0 74 75 61 74 6f 72 3a 0a 20 20 09 20 20 20 20 20 tuator:. .
1daf0 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 var v
1db00 61 6c 75 65 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b alue = this.look
1db10 61 68 65 61 64 2e 76 61 6c 75 65 3b 0a 20 20 09 ahead.value;. .
1db20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1db30 69 66 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 7b if (value === '{
1db40 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 ') {. .
1db50 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 stat
1db60 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 ement = this.par
1db70 73 65 42 6c 6f 63 6b 28 29 3b 0a 20 20 09 20 20 seBlock();. .
1db80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
1db90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1dba0 20 20 20 65 6c 73 65 20 69 66 20 28 76 61 6c 75 else if (valu
1dbb0 65 20 3d 3d 3d 20 27 28 27 29 20 7b 0a 20 20 09 e === '(') {. .
1dbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1dbd0 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d 20 statement =
1dbe0 74 68 69 73 2e 70 61 72 73 65 45 78 70 72 65 73 this.parseExpres
1dbf0 73 69 6f 6e 53 74 61 74 65 6d 65 6e 74 28 29 3b sionStatement();
1dc00 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1dc10 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1dc20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 else if
1dc30 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 3b 27 29 (value === ';')
1dc40 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
1dc50 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 6d statem
1dc60 65 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 ent = this.parse
1dc70 45 6d 70 74 79 53 74 61 74 65 6d 65 6e 74 28 29 EmptyStatement()
1dc80 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1dc90 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
1dca0 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b else {
1dcb0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1dcc0 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e statemen
1dcd0 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 t = this.parseEx
1dce0 70 72 65 73 73 69 6f 6e 53 74 61 74 65 6d 65 6e pressionStatemen
1dcf0 74 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 t();. .
1dd00 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
1dd10 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
1dd20 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
1dd30 20 20 20 63 61 73 65 20 74 6f 6b 65 6e 5f 31 2e case token_1.
1dd40 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 Token.Identifier
1dd50 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
1dd60 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d statement =
1dd70 20 74 68 69 73 2e 70 61 72 73 65 4c 61 62 65 6c this.parseLabel
1dd80 6c 65 64 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a ledStatement();.
1dd90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1dda0 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
1ddb0 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f case to
1ddc0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 ken_1.Token.Keyw
1ddd0 6f 72 64 3a 0a 20 20 09 20 20 20 20 20 20 20 20 ord:. .
1dde0 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 switch (
1ddf0 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 this.lookahead.v
1de00 61 6c 75 65 29 20 7b 0a 20 20 09 20 20 20 20 20 alue) {. .
1de10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
1de20 61 73 65 20 27 62 72 65 61 6b 27 3a 0a 20 20 09 ase 'break':. .
1de30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1de40 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e statemen
1de50 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 42 72 t = this.parseBr
1de60 65 61 6b 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a eakStatement();.
1de70 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1de80 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
1de90 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1dea0 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 63 case 'c
1deb0 6f 6e 74 69 6e 75 65 27 3a 0a 20 20 09 20 20 20 ontinue':. .
1dec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ded0 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d statement =
1dee0 20 74 68 69 73 2e 70 61 72 73 65 43 6f 6e 74 69 this.parseConti
1def0 6e 75 65 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a nueStatement();.
1df00 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1df10 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
1df20 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1df30 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 case 'd
1df40 65 62 75 67 67 65 72 27 3a 0a 20 20 09 20 20 20 ebugger':. .
1df50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1df60 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d statement =
1df70 20 74 68 69 73 2e 70 61 72 73 65 44 65 62 75 67 this.parseDebug
1df80 67 65 72 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a gerStatement();.
1df90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1dfa0 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
1dfb0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1dfc0 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 64 case 'd
1dfd0 6f 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 o':. .
1dfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
1dff0 74 61 74 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e tatement = this.
1e000 70 61 72 73 65 44 6f 57 68 69 6c 65 53 74 61 74 parseDoWhileStat
1e010 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 20 20 20 ement();. .
1e020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e030 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
1e040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e050 20 20 63 61 73 65 20 27 66 6f 72 27 3a 0a 20 20 case 'for':.
1e060 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1e070 20 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 stateme
1e080 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 46 nt = this.parseF
1e090 6f 72 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 orStatement();.
1e0a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1e0b0 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
1e0c0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1e0d0 20 20 20 20 20 20 20 20 63 61 73 65 20 27 66 75 case 'fu
1e0e0 6e 63 74 69 6f 6e 27 3a 0a 20 20 09 20 20 20 20 nction':. .
1e0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e100 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d 20 statement =
1e110 74 68 69 73 2e 70 61 72 73 65 46 75 6e 63 74 69 this.parseFuncti
1e120 6f 6e 44 65 63 6c 61 72 61 74 69 6f 6e 28 29 3b onDeclaration();
1e130 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1e140 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
1e150 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 k;. .
1e160 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 case '
1e170 69 66 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 if':. .
1e180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e190 73 74 61 74 65 6d 65 6e 74 20 3d 20 74 68 69 73 statement = this
1e1a0 2e 70 61 72 73 65 49 66 53 74 61 74 65 6d 65 6e .parseIfStatemen
1e1b0 74 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 t();. .
1e1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e1d0 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 break;. .
1e1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ca
1e1f0 73 65 20 27 72 65 74 75 72 6e 27 3a 0a 20 20 09 se 'return':. .
1e200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e210 20 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e statemen
1e220 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 52 65 t = this.parseRe
1e230 74 75 72 6e 53 74 61 74 65 6d 65 6e 74 28 29 3b turnStatement();
1e240 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1e250 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
1e260 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 k;. .
1e270 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 case '
1e280 73 77 69 74 63 68 27 3a 0a 20 20 09 20 20 20 20 switch':. .
1e290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e2a0 20 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d 20 statement =
1e2b0 74 68 69 73 2e 70 61 72 73 65 53 77 69 74 63 68 this.parseSwitch
1e2c0 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 Statement();. .
1e2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e2e0 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
1e2f0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1e300 20 20 20 20 20 20 63 61 73 65 20 27 74 68 72 6f case 'thro
1e310 77 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 w':. .
1e320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
1e330 74 61 74 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e tatement = this.
1e340 70 61 72 73 65 54 68 72 6f 77 53 74 61 74 65 6d parseThrowStatem
1e350 65 6e 74 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ent();. .
1e360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e370 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 break;. .
1e380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e390 63 61 73 65 20 27 74 72 79 27 3a 0a 20 20 09 20 case 'try':. .
1e3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e3b0 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 statement
1e3c0 20 3d 20 74 68 69 73 2e 70 61 72 73 65 54 72 79 = this.parseTry
1e3d0 53 74 61 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 Statement();. .
1e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e3f0 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
1e400 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1e410 20 20 20 20 20 20 63 61 73 65 20 27 76 61 72 27 case 'var'
1e420 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
1e430 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 sta
1e440 74 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e 70 61 tement = this.pa
1e450 72 73 65 56 61 72 69 61 62 6c 65 53 74 61 74 65 rseVariableState
1e460 6d 65 6e 74 28 29 3b 0a 20 20 09 20 20 20 20 20 ment();. .
1e470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e480 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
1e490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e4a0 20 63 61 73 65 20 27 77 68 69 6c 65 27 3a 0a 20 case 'while':.
1e4b0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1e4c0 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 6d statem
1e4d0 65 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 ent = this.parse
1e4e0 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 28 29 WhileStatement()
1e4f0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
1e500 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
1e510 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
1e520 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
1e530 27 77 69 74 68 27 3a 0a 20 20 09 20 20 20 20 20 'with':. .
1e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e550 20 20 20 73 74 61 74 65 6d 65 6e 74 20 3d 20 74 statement = t
1e560 68 69 73 2e 70 61 72 73 65 57 69 74 68 53 74 61 his.parseWithSta
1e570 74 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 20 20 tement();. .
1e580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e590 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
1e5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e5b0 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 20 default:. .
1e5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e5d0 20 20 20 20 20 20 20 73 74 61 74 65 6d 65 6e 74 statement
1e5e0 20 3d 20 74 68 69 73 2e 70 61 72 73 65 45 78 70 = this.parseExp
1e5f0 72 65 73 73 69 6f 6e 53 74 61 74 65 6d 65 6e 74 ressionStatement
1e600 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ();. .
1e610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
1e620 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
1e630 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1e640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
1e650 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
1e660 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 default:. .
1e670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e680 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 this.throwUnexpe
1e690 63 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 2e 6c ctedToken(this.l
1e6a0 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 20 09 20 20 ookahead);. .
1e6b0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1e6c0 20 20 20 72 65 74 75 72 6e 20 73 74 61 74 65 6d return statem
1e6d0 65 6e 74 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 ent;. . };.
1e6e0 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 . // ECMA-26
1e6f0 32 20 31 34 2e 31 20 46 75 6e 63 74 69 6f 6e 20 2 14.1 Function
1e700 44 65 66 69 6e 69 74 69 6f 6e 0a 20 20 09 20 20 Definition. .
1e710 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 Parser.prototy
1e720 70 65 2e 70 61 72 73 65 46 75 6e 63 74 69 6f 6e pe.parseFunction
1e730 53 6f 75 72 63 65 45 6c 65 6d 65 6e 74 73 20 3d SourceElements =
1e740 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
1e750 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 68 . var th
1e760 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 is$1 = this;..
1e770 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 . var nod
1e780 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e e = this.createN
1e790 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ode();. .
1e7a0 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 7b this.expect('{
1e7b0 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ');. . v
1e7c0 61 72 20 62 6f 64 79 20 3d 20 74 68 69 73 2e 70 ar body = this.p
1e7d0 61 72 73 65 44 69 72 65 63 74 69 76 65 50 72 6f arseDirectivePro
1e7e0 6c 6f 67 75 65 73 28 29 3b 0a 20 20 09 20 20 20 logues();. .
1e7f0 20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 var previou
1e800 73 4c 61 62 65 6c 53 65 74 20 3d 20 74 68 69 73 sLabelSet = this
1e810 2e 63 6f 6e 74 65 78 74 2e 6c 61 62 65 6c 53 65 .context.labelSe
1e820 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 t;. . va
1e830 72 20 70 72 65 76 69 6f 75 73 49 6e 49 74 65 72 r previousInIter
1e840 61 74 69 6f 6e 20 3d 20 74 68 69 73 2e 63 6f 6e ation = this.con
1e850 74 65 78 74 2e 69 6e 49 74 65 72 61 74 69 6f 6e text.inIteration
1e860 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
1e870 20 70 72 65 76 69 6f 75 73 49 6e 53 77 69 74 63 previousInSwitc
1e880 68 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 h = this.context
1e890 2e 69 6e 53 77 69 74 63 68 3b 0a 20 20 09 20 20 .inSwitch;. .
1e8a0 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f var previo
1e8b0 75 73 49 6e 46 75 6e 63 74 69 6f 6e 42 6f 64 79 usInFunctionBody
1e8c0 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e = this.context.
1e8d0 69 6e 46 75 6e 63 74 69 6f 6e 42 6f 64 79 3b 0a inFunctionBody;.
1e8e0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
1e8f0 63 6f 6e 74 65 78 74 2e 6c 61 62 65 6c 53 65 74 context.labelSet
1e900 20 3d 20 7b 7d 3b 0a 20 20 09 20 20 20 20 20 20 = {};. .
1e910 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 this.context.i
1e920 6e 49 74 65 72 61 74 69 6f 6e 20 3d 20 66 61 6c nIteration = fal
1e930 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 se;. . t
1e940 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 53 77 his.context.inSw
1e950 69 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 20 20 itch = false;.
1e960 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
1e970 6e 74 65 78 74 2e 69 6e 46 75 6e 63 74 69 6f 6e ntext.inFunction
1e980 42 6f 64 79 20 3d 20 74 72 75 65 3b 0a 20 20 09 Body = true;. .
1e990 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 74 while (t
1e9a0 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e his.startMarker.
1e9b0 69 6e 64 65 78 20 3c 20 74 68 69 73 2e 73 63 61 index < this.sca
1e9c0 6e 6e 65 72 2e 6c 65 6e 67 74 68 29 20 7b 0a 20 nner.length) {.
1e9d0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
1e9e0 20 28 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 (this$1.match('
1e9f0 7d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 }')) {. .
1ea00 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
1ea10 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1ea20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
1ea30 20 62 6f 64 79 2e 70 75 73 68 28 74 68 69 73 24 body.push(this$
1ea40 31 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e 74 1.parseStatement
1ea50 4c 69 73 74 49 74 65 6d 28 29 29 3b 0a 20 20 09 ListItem());. .
1ea60 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
1ea70 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 this.expect
1ea80 28 27 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('}');. .
1ea90 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 6c this.context.l
1eaa0 61 62 65 6c 53 65 74 20 3d 20 70 72 65 76 69 6f abelSet = previo
1eab0 75 73 4c 61 62 65 6c 53 65 74 3b 0a 20 20 09 20 usLabelSet;. .
1eac0 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
1ead0 65 78 74 2e 69 6e 49 74 65 72 61 74 69 6f 6e 20 ext.inIteration
1eae0 3d 20 70 72 65 76 69 6f 75 73 49 6e 49 74 65 72 = previousInIter
1eaf0 61 74 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 ation;. .
1eb00 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 69 this.context.i
1eb10 6e 53 77 69 74 63 68 20 3d 20 70 72 65 76 69 6f nSwitch = previo
1eb20 75 73 49 6e 53 77 69 74 63 68 3b 0a 20 20 09 20 usInSwitch;. .
1eb30 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
1eb40 65 78 74 2e 69 6e 46 75 6e 63 74 69 6f 6e 42 6f ext.inFunctionBo
1eb50 64 79 20 3d 20 70 72 65 76 69 6f 75 73 49 6e 46 dy = previousInF
1eb60 75 6e 63 74 69 6f 6e 42 6f 64 79 3b 0a 20 20 09 unctionBody;. .
1eb70 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 return t
1eb80 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 his.finalize(nod
1eb90 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 42 6c 6f 63 e, new Node.Bloc
1eba0 6b 53 74 61 74 65 6d 65 6e 74 28 62 6f 64 79 29 kStatement(body)
1ebb0 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
1ebc0 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
1ebd0 74 79 70 65 2e 76 61 6c 69 64 61 74 65 50 61 72 type.validatePar
1ebe0 61 6d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6f am = function (o
1ebf0 70 74 69 6f 6e 73 2c 20 70 61 72 61 6d 2c 20 6e ptions, param, n
1ec00 61 6d 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ame) {. .
1ec10 20 20 76 61 72 20 6b 65 79 20 3d 20 27 24 27 20 var key = '$'
1ec20 2b 20 6e 61 6d 65 3b 0a 20 20 09 20 20 20 20 20 + name;. .
1ec30 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 if (this.cont
1ec40 65 78 74 2e 73 74 72 69 63 74 29 20 7b 0a 20 20 ext.strict) {.
1ec50 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
1ec60 28 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 73 (this.scanner.is
1ec70 52 65 73 74 72 69 63 74 65 64 57 6f 72 64 28 6e RestrictedWord(n
1ec80 61 6d 65 29 29 20 7b 0a 20 20 09 20 20 20 20 20 ame)) {. .
1ec90 20 20 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f optio
1eca0 6e 73 2e 73 74 72 69 63 74 65 64 20 3d 20 70 61 ns.stricted = pa
1ecb0 72 61 6d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ram;. .
1ecc0 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 2e options.
1ecd0 6d 65 73 73 61 67 65 20 3d 20 6d 65 73 73 61 67 message = messag
1ece0 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 es_1.Messages.St
1ecf0 72 69 63 74 50 61 72 61 6d 4e 61 6d 65 3b 0a 20 rictParamName;.
1ed00 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
1ed10 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
1ed20 66 20 28 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74 f (Object.protot
1ed30 79 70 65 2e 68 61 73 4f 77 6e 50 72 6f 70 65 72 ype.hasOwnProper
1ed40 74 79 2e 63 61 6c 6c 28 6f 70 74 69 6f 6e 73 2e ty.call(options.
1ed50 70 61 72 61 6d 53 65 74 2c 20 6b 65 79 29 29 20 paramSet, key))
1ed60 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1ed70 20 20 20 20 20 6f 70 74 69 6f 6e 73 2e 73 74 72 options.str
1ed80 69 63 74 65 64 20 3d 20 70 61 72 61 6d 3b 0a 20 icted = param;.
1ed90 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1eda0 20 20 6f 70 74 69 6f 6e 73 2e 6d 65 73 73 61 67 options.messag
1edb0 65 20 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d e = messages_1.M
1edc0 65 73 73 61 67 65 73 2e 53 74 72 69 63 74 50 61 essages.StrictPa
1edd0 72 61 6d 44 75 70 65 3b 0a 20 20 09 20 20 20 20 ramDupe;. .
1ede0 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
1edf0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
1ee00 20 20 65 6c 73 65 20 69 66 20 28 21 6f 70 74 69 else if (!opti
1ee10 6f 6e 73 2e 66 69 72 73 74 52 65 73 74 72 69 63 ons.firstRestric
1ee20 74 65 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ted) {. .
1ee30 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 73 if (this.s
1ee40 63 61 6e 6e 65 72 2e 69 73 52 65 73 74 72 69 63 canner.isRestric
1ee50 74 65 64 57 6f 72 64 28 6e 61 6d 65 29 29 20 7b tedWord(name)) {
1ee60 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1ee70 20 20 20 20 6f 70 74 69 6f 6e 73 2e 66 69 72 73 options.firs
1ee80 74 52 65 73 74 72 69 63 74 65 64 20 3d 20 70 61 tRestricted = pa
1ee90 72 61 6d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ram;. .
1eea0 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 2e options.
1eeb0 6d 65 73 73 61 67 65 20 3d 20 6d 65 73 73 61 67 message = messag
1eec0 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 es_1.Messages.St
1eed0 72 69 63 74 50 61 72 61 6d 4e 61 6d 65 3b 0a 20 rictParamName;.
1eee0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
1eef0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
1ef00 6c 73 65 20 69 66 20 28 74 68 69 73 2e 73 63 61 lse if (this.sca
1ef10 6e 6e 65 72 2e 69 73 53 74 72 69 63 74 4d 6f 64 nner.isStrictMod
1ef20 65 52 65 73 65 72 76 65 64 57 6f 72 64 28 6e 61 eReservedWord(na
1ef30 6d 65 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 me)) {. .
1ef40 20 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e option
1ef50 73 2e 66 69 72 73 74 52 65 73 74 72 69 63 74 65 s.firstRestricte
1ef60 64 20 3d 20 70 61 72 61 6d 3b 0a 20 20 09 20 20 d = param;. .
1ef70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 70 op
1ef80 74 69 6f 6e 73 2e 6d 65 73 73 61 67 65 20 3d 20 tions.message =
1ef90 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 messages_1.Messa
1efa0 67 65 73 2e 53 74 72 69 63 74 52 65 73 65 72 76 ges.StrictReserv
1efb0 65 64 57 6f 72 64 3b 0a 20 20 09 20 20 20 20 20 edWord;. .
1efc0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1efd0 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 else if
1efe0 28 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74 79 70 (Object.prototyp
1eff0 65 2e 68 61 73 4f 77 6e 50 72 6f 70 65 72 74 79 e.hasOwnProperty
1f000 2e 63 61 6c 6c 28 6f 70 74 69 6f 6e 73 2e 70 61 .call(options.pa
1f010 72 61 6d 53 65 74 2c 20 6b 65 79 29 29 20 7b 0a ramSet, key)) {.
1f020 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1f030 20 20 20 6f 70 74 69 6f 6e 73 2e 73 74 72 69 63 options.stric
1f040 74 65 64 20 3d 20 70 61 72 61 6d 3b 0a 20 20 09 ted = param;. .
1f050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1f060 6f 70 74 69 6f 6e 73 2e 6d 65 73 73 61 67 65 20 options.message
1f070 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 = messages_1.Mes
1f080 73 61 67 65 73 2e 53 74 72 69 63 74 50 61 72 61 sages.StrictPara
1f090 6d 44 75 70 65 3b 0a 20 20 09 20 20 20 20 20 20 mDupe;. .
1f0a0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1f0b0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
1f0c0 2f 2a 20 69 73 74 61 6e 62 75 6c 20 69 67 6e 6f /* istanbul igno
1f0d0 72 65 20 6e 65 78 74 20 2a 2f 0a 20 20 09 20 20 re next */. .
1f0e0 20 20 20 20 20 20 69 66 20 28 74 79 70 65 6f 66 if (typeof
1f0f0 20 4f 62 6a 65 63 74 2e 64 65 66 69 6e 65 50 72 Object.definePr
1f100 6f 70 65 72 74 79 20 3d 3d 3d 20 27 66 75 6e 63 operty === 'func
1f110 74 69 6f 6e 27 29 20 7b 0a 20 20 09 20 20 20 20 tion') {. .
1f120 20 20 20 20 20 20 20 20 4f 62 6a 65 63 74 2e 64 Object.d
1f130 65 66 69 6e 65 50 72 6f 70 65 72 74 79 28 6f 70 efineProperty(op
1f140 74 69 6f 6e 73 2e 70 61 72 61 6d 53 65 74 2c 20 tions.paramSet,
1f150 6b 65 79 2c 20 7b 20 76 61 6c 75 65 3a 20 74 72 key, { value: tr
1f160 75 65 2c 20 65 6e 75 6d 65 72 61 62 6c 65 3a 20 ue, enumerable:
1f170 74 72 75 65 2c 20 77 72 69 74 61 62 6c 65 3a 20 true, writable:
1f180 74 72 75 65 2c 20 63 6f 6e 66 69 67 75 72 61 62 true, configurab
1f190 6c 65 3a 20 74 72 75 65 20 7d 29 3b 0a 20 20 09 le: true });. .
1f1a0 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
1f1b0 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 else {. .
1f1c0 20 20 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f optio
1f1d0 6e 73 2e 70 61 72 61 6d 53 65 74 5b 6b 65 79 5d ns.paramSet[key]
1f1e0 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 = true;. .
1f1f0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a }. . };.
1f200 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
1f210 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 52 65 73 ototype.parseRes
1f220 74 45 6c 65 6d 65 6e 74 20 3d 20 66 75 6e 63 74 tElement = funct
1f230 69 6f 6e 20 28 70 61 72 61 6d 73 29 20 7b 0a 20 ion (params) {.
1f240 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f . var no
1f250 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 de = this.create
1f260 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 Node();. .
1f270 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 this.expect('
1f280 2e 2e 2e 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ...');. .
1f290 20 20 76 61 72 20 61 72 67 20 3d 20 74 68 69 73 var arg = this
1f2a0 2e 70 61 72 73 65 50 61 74 74 65 72 6e 28 70 61 .parsePattern(pa
1f2b0 72 61 6d 73 29 3b 0a 20 20 09 20 20 20 20 20 20 rams);. .
1f2c0 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 if (this.match
1f2d0 28 27 3d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 ('=')) {. .
1f2e0 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 this.thr
1f2f0 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 67 65 73 owError(messages
1f300 5f 31 2e 4d 65 73 73 61 67 65 73 2e 44 65 66 61 _1.Messages.Defa
1f310 75 6c 74 52 65 73 74 50 61 72 61 6d 65 74 65 72 ultRestParameter
1f320 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
1f330 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 21 . if (!
1f340 74 68 69 73 2e 6d 61 74 63 68 28 27 29 27 29 29 this.match(')'))
1f350 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
1f360 20 20 74 68 69 73 2e 74 68 72 6f 77 45 72 72 6f this.throwErro
1f370 72 28 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 r(messages_1.Mes
1f380 73 61 67 65 73 2e 50 61 72 61 6d 65 74 65 72 41 sages.ParameterA
1f390 66 74 65 72 52 65 73 74 50 61 72 61 6d 65 74 65 fterRestParamete
1f3a0 72 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d r);. . }
1f3b0 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
1f3c0 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 rn this.finalize
1f3d0 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
1f3e0 52 65 73 74 45 6c 65 6d 65 6e 74 28 61 72 67 29 RestElement(arg)
1f3f0 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
1f400 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
1f410 74 79 70 65 2e 70 61 72 73 65 46 6f 72 6d 61 6c type.parseFormal
1f420 50 61 72 61 6d 65 74 65 72 20 3d 20 66 75 6e 63 Parameter = func
1f430 74 69 6f 6e 20 28 6f 70 74 69 6f 6e 73 29 20 7b tion (options) {
1f440 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
1f450 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a this$1 = this;..
1f460 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 70 . var p
1f470 61 72 61 6d 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 arams = [];. .
1f480 20 20 20 20 20 20 20 76 61 72 20 70 61 72 61 6d var param
1f490 20 3d 20 74 68 69 73 2e 6d 61 74 63 68 28 27 2e = this.match('.
1f4a0 2e 2e 27 29 20 3f 20 74 68 69 73 2e 70 61 72 73 ..') ? this.pars
1f4b0 65 52 65 73 74 45 6c 65 6d 65 6e 74 28 70 61 72 eRestElement(par
1f4c0 61 6d 73 29 20 3a 20 74 68 69 73 2e 70 61 72 73 ams) : this.pars
1f4d0 65 50 61 74 74 65 72 6e 57 69 74 68 44 65 66 61 ePatternWithDefa
1f4e0 75 6c 74 28 70 61 72 61 6d 73 29 3b 0a 20 20 09 ult(params);. .
1f4f0 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 for (var
1f500 20 69 20 3d 20 30 3b 20 69 20 3c 20 70 61 72 61 i = 0; i < para
1f510 6d 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 ms.length; i++)
1f520 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1f530 20 74 68 69 73 24 31 2e 76 61 6c 69 64 61 74 65 this$1.validate
1f540 50 61 72 61 6d 28 6f 70 74 69 6f 6e 73 2c 20 70 Param(options, p
1f550 61 72 61 6d 73 5b 69 5d 2c 20 70 61 72 61 6d 73 arams[i], params
1f560 5b 69 5d 2e 76 61 6c 75 65 29 3b 0a 20 20 09 20 [i].value);. .
1f570 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1f580 20 20 20 20 6f 70 74 69 6f 6e 73 2e 70 61 72 61 options.para
1f590 6d 73 2e 70 75 73 68 28 70 61 72 61 6d 29 3b 0a ms.push(param);.
1f5a0 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
1f5b0 6e 20 21 74 68 69 73 2e 6d 61 74 63 68 28 27 29 n !this.match(')
1f5c0 27 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 ');. . };.
1f5d0 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 . Parser.prot
1f5e0 6f 74 79 70 65 2e 70 61 72 73 65 46 6f 72 6d 61 otype.parseForma
1f5f0 6c 50 61 72 61 6d 65 74 65 72 73 20 3d 20 66 75 lParameters = fu
1f600 6e 63 74 69 6f 6e 20 28 66 69 72 73 74 52 65 73 nction (firstRes
1f610 74 72 69 63 74 65 64 29 20 7b 0a 20 20 09 20 20 tricted) {. .
1f620 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
1f630 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
1f640 20 20 20 20 20 76 61 72 20 6f 70 74 69 6f 6e 73 var options
1f650 3b 0a 20 20 09 20 20 20 20 20 20 20 20 6f 70 74 ;. . opt
1f660 69 6f 6e 73 20 3d 20 7b 0a 20 20 09 20 20 20 20 ions = {. .
1f670 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 3a 20 params:
1f680 5b 5d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 [],. .
1f690 20 20 20 66 69 72 73 74 52 65 73 74 72 69 63 74 firstRestrict
1f6a0 65 64 3a 20 66 69 72 73 74 52 65 73 74 72 69 63 ed: firstRestric
1f6b0 74 65 64 0a 20 20 09 20 20 20 20 20 20 20 20 7d ted. . }
1f6c0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
1f6d0 73 2e 65 78 70 65 63 74 28 27 28 27 29 3b 0a 20 s.expect('(');.
1f6e0 20 09 20 20 20 20 20 20 20 20 69 66 20 28 21 74 . if (!t
1f6f0 68 69 73 2e 6d 61 74 63 68 28 27 29 27 29 29 20 his.match(')'))
1f700 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
1f710 20 6f 70 74 69 6f 6e 73 2e 70 61 72 61 6d 53 65 options.paramSe
1f720 74 20 3d 20 7b 7d 3b 0a 20 20 09 20 20 20 20 20 t = {};. .
1f730 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 74 68 while (th
1f740 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e 69 is.startMarker.i
1f750 6e 64 65 78 20 3c 20 74 68 69 73 2e 73 63 61 6e ndex < this.scan
1f760 6e 65 72 2e 6c 65 6e 67 74 68 29 20 7b 0a 20 20 ner.length) {.
1f770 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1f780 20 69 66 20 28 21 74 68 69 73 24 31 2e 70 61 72 if (!this$1.par
1f790 73 65 46 6f 72 6d 61 6c 50 61 72 61 6d 65 74 65 seFormalParamete
1f7a0 72 28 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 20 20 r(options)) {.
1f7b0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1f7c0 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
1f7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
1f7e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1f7f0 20 20 20 20 74 68 69 73 24 31 2e 65 78 70 65 63 this$1.expec
1f800 74 28 27 2c 27 29 3b 0a 20 20 09 20 20 20 20 20 t(',');. .
1f810 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1f820 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
1f830 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 29 27 this.expect(')'
1f840 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 );. . re
1f850 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 20 20 20 turn {. .
1f860 20 20 20 20 20 20 70 61 72 61 6d 73 3a 20 6f 70 params: op
1f870 74 69 6f 6e 73 2e 70 61 72 61 6d 73 2c 0a 20 20 tions.params,.
1f880 09 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 . str
1f890 69 63 74 65 64 3a 20 6f 70 74 69 6f 6e 73 2e 73 icted: options.s
1f8a0 74 72 69 63 74 65 64 2c 0a 20 20 09 20 20 20 20 tricted,. .
1f8b0 20 20 20 20 20 20 20 20 66 69 72 73 74 52 65 73 firstRes
1f8c0 74 72 69 63 74 65 64 3a 20 6f 70 74 69 6f 6e 73 tricted: options
1f8d0 2e 66 69 72 73 74 52 65 73 74 72 69 63 74 65 64 .firstRestricted
1f8e0 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
1f8f0 20 6d 65 73 73 61 67 65 3a 20 6f 70 74 69 6f 6e message: option
1f900 73 2e 6d 65 73 73 61 67 65 0a 20 20 09 20 20 20 s.message. .
1f910 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 7d };. . }
1f920 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e ;. . Parser.
1f930 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 46 prototype.parseF
1f940 75 6e 63 74 69 6f 6e 44 65 63 6c 61 72 61 74 69 unctionDeclarati
1f950 6f 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 69 on = function (i
1f960 64 65 6e 74 69 66 69 65 72 49 73 4f 70 74 69 6f dentifierIsOptio
1f970 6e 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 20 nal) {. .
1f980 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
1f990 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a s.createNode();.
1f9a0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
1f9b0 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 27 66 expectKeyword('f
1f9c0 75 6e 63 74 69 6f 6e 27 29 3b 0a 20 20 09 20 20 unction');. .
1f9d0 20 20 20 20 20 20 76 61 72 20 69 73 47 65 6e 65 var isGene
1f9e0 72 61 74 6f 72 20 3d 20 74 68 69 73 2e 6d 61 74 rator = this.mat
1f9f0 63 68 28 27 2a 27 29 3b 0a 20 20 09 20 20 20 20 ch('*');. .
1fa00 20 20 20 20 69 66 20 28 69 73 47 65 6e 65 72 61 if (isGenera
1fa10 74 6f 72 29 20 7b 0a 20 20 09 20 20 20 20 20 20 tor) {. .
1fa20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 this.nextT
1fa30 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
1fa40 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
1fa50 76 61 72 20 6d 65 73 73 61 67 65 3b 0a 20 20 09 var message;. .
1fa60 20 20 20 20 20 20 20 20 76 61 72 20 69 64 20 3d var id =
1fa70 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 null;. .
1fa80 20 20 76 61 72 20 66 69 72 73 74 52 65 73 74 72 var firstRestr
1fa90 69 63 74 65 64 20 3d 20 6e 75 6c 6c 3b 0a 20 20 icted = null;.
1faa0 09 20 20 20 20 20 20 20 20 69 66 20 28 21 69 64 . if (!id
1fab0 65 6e 74 69 66 69 65 72 49 73 4f 70 74 69 6f 6e entifierIsOption
1fac0 61 6c 20 7c 7c 20 21 74 68 69 73 2e 6d 61 74 63 al || !this.matc
1fad0 68 28 27 28 27 29 29 20 7b 0a 20 20 09 20 20 20 h('(')) {. .
1fae0 20 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b var tok
1faf0 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 en = this.lookah
1fb00 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ead;. .
1fb10 20 20 20 20 69 64 20 3d 20 74 68 69 73 2e 70 61 id = this.pa
1fb20 72 73 65 56 61 72 69 61 62 6c 65 49 64 65 6e 74 rseVariableIdent
1fb30 69 66 69 65 72 28 29 3b 0a 20 20 09 20 20 20 20 ifier();. .
1fb40 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
1fb50 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 29 .context.strict)
1fb60 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
1fb70 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 73 if (this.s
1fb80 63 61 6e 6e 65 72 2e 69 73 52 65 73 74 72 69 63 canner.isRestric
1fb90 74 65 64 57 6f 72 64 28 74 6f 6b 65 6e 2e 76 61 tedWord(token.va
1fba0 6c 75 65 29 29 20 7b 0a 20 20 09 20 20 20 20 20 lue)) {. .
1fbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
1fbc0 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 his.tolerateUnex
1fbd0 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 6f 6b 65 pectedToken(toke
1fbe0 6e 2c 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 n, messages_1.Me
1fbf0 73 73 61 67 65 73 2e 53 74 72 69 63 74 46 75 6e ssages.StrictFun
1fc00 63 74 69 6f 6e 4e 61 6d 65 29 3b 0a 20 20 09 20 ctionName);. .
1fc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
1fc20 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
1fc30 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
1fc40 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
1fc50 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
1fc60 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 73 52 65 his.scanner.isRe
1fc70 73 74 72 69 63 74 65 64 57 6f 72 64 28 74 6f 6b strictedWord(tok
1fc80 65 6e 2e 76 61 6c 75 65 29 29 20 7b 0a 20 20 09 en.value)) {. .
1fc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1fca0 20 20 20 20 66 69 72 73 74 52 65 73 74 72 69 63 firstRestric
1fcb0 74 65 64 20 3d 20 74 6f 6b 65 6e 3b 0a 20 20 09 ted = token;. .
1fcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1fcd0 20 20 20 20 6d 65 73 73 61 67 65 20 3d 20 6d 65 message = me
1fce0 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 ssages_1.Message
1fcf0 73 2e 53 74 72 69 63 74 46 75 6e 63 74 69 6f 6e s.StrictFunction
1fd00 4e 61 6d 65 3b 0a 20 20 09 20 20 20 20 20 20 20 Name;. .
1fd10 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1fd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c el
1fd30 73 65 20 69 66 20 28 74 68 69 73 2e 73 63 61 6e se if (this.scan
1fd40 6e 65 72 2e 69 73 53 74 72 69 63 74 4d 6f 64 65 ner.isStrictMode
1fd50 52 65 73 65 72 76 65 64 57 6f 72 64 28 74 6f 6b ReservedWord(tok
1fd60 65 6e 2e 76 61 6c 75 65 29 29 20 7b 0a 20 20 09 en.value)) {. .
1fd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1fd80 20 20 20 20 66 69 72 73 74 52 65 73 74 72 69 63 firstRestric
1fd90 74 65 64 20 3d 20 74 6f 6b 65 6e 3b 0a 20 20 09 ted = token;. .
1fda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1fdb0 20 20 20 20 6d 65 73 73 61 67 65 20 3d 20 6d 65 message = me
1fdc0 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 ssages_1.Message
1fdd0 73 2e 53 74 72 69 63 74 52 65 73 65 72 76 65 64 s.StrictReserved
1fde0 57 6f 72 64 3b 0a 20 20 09 20 20 20 20 20 20 20 Word;. .
1fdf0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
1fe00 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
1fe10 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
1fe20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 var previous
1fe30 41 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 74 68 69 AllowYield = thi
1fe40 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 s.context.allowY
1fe50 69 65 6c 64 3b 0a 20 20 09 20 20 20 20 20 20 20 ield;. .
1fe60 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
1fe70 6c 6f 77 59 69 65 6c 64 20 3d 20 21 69 73 47 65 lowYield = !isGe
1fe80 6e 65 72 61 74 6f 72 3b 0a 20 20 09 20 20 20 20 nerator;. .
1fe90 20 20 20 20 76 61 72 20 66 6f 72 6d 61 6c 50 61 var formalPa
1fea0 72 61 6d 65 74 65 72 73 20 3d 20 74 68 69 73 2e rameters = this.
1feb0 70 61 72 73 65 46 6f 72 6d 61 6c 50 61 72 61 6d parseFormalParam
1fec0 65 74 65 72 73 28 66 69 72 73 74 52 65 73 74 72 eters(firstRestr
1fed0 69 63 74 65 64 29 3b 0a 20 20 09 20 20 20 20 20 icted);. .
1fee0 20 20 20 76 61 72 20 70 61 72 61 6d 73 20 3d 20 var params =
1fef0 66 6f 72 6d 61 6c 50 61 72 61 6d 65 74 65 72 73 formalParameters
1ff00 2e 70 61 72 61 6d 73 3b 0a 20 20 09 20 20 20 20 .params;. .
1ff10 20 20 20 20 76 61 72 20 73 74 72 69 63 74 65 64 var stricted
1ff20 20 3d 20 66 6f 72 6d 61 6c 50 61 72 61 6d 65 74 = formalParamet
1ff30 65 72 73 2e 73 74 72 69 63 74 65 64 3b 0a 20 20 ers.stricted;.
1ff40 09 20 20 20 20 20 20 20 20 66 69 72 73 74 52 65 . firstRe
1ff50 73 74 72 69 63 74 65 64 20 3d 20 66 6f 72 6d 61 stricted = forma
1ff60 6c 50 61 72 61 6d 65 74 65 72 73 2e 66 69 72 73 lParameters.firs
1ff70 74 52 65 73 74 72 69 63 74 65 64 3b 0a 20 20 09 tRestricted;. .
1ff80 20 20 20 20 20 20 20 20 69 66 20 28 66 6f 72 6d if (form
1ff90 61 6c 50 61 72 61 6d 65 74 65 72 73 2e 6d 65 73 alParameters.mes
1ffa0 73 61 67 65 29 20 7b 0a 20 20 09 20 20 20 20 20 sage) {. .
1ffb0 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 3d message =
1ffc0 20 66 6f 72 6d 61 6c 50 61 72 61 6d 65 74 65 72 formalParameter
1ffd0 73 2e 6d 65 73 73 61 67 65 3b 0a 20 20 09 20 20 s.message;. .
1ffe0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
1fff0 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 53 var previousS
20000 74 72 69 63 74 20 3d 20 74 68 69 73 2e 63 6f 6e trict = this.con
20010 74 65 78 74 2e 73 74 72 69 63 74 3b 0a 20 20 09 text.strict;. .
20020 20 20 20 20 20 20 20 20 76 61 72 20 62 6f 64 79 var body
20030 20 3d 20 74 68 69 73 2e 70 61 72 73 65 46 75 6e = this.parseFun
20040 63 74 69 6f 6e 53 6f 75 72 63 65 45 6c 65 6d 65 ctionSourceEleme
20050 6e 74 73 28 29 3b 0a 20 20 09 20 20 20 20 20 20 nts();. .
20060 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 if (this.conte
20070 78 74 2e 73 74 72 69 63 74 20 26 26 20 66 69 72 xt.strict && fir
20080 73 74 52 65 73 74 72 69 63 74 65 64 29 20 7b 0a stRestricted) {.
20090 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
200a0 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 his.throwUnexpec
200b0 74 65 64 54 6f 6b 65 6e 28 66 69 72 73 74 52 65 tedToken(firstRe
200c0 73 74 72 69 63 74 65 64 2c 20 6d 65 73 73 61 67 stricted, messag
200d0 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d e);. . }
200e0 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
200f0 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 this.context.str
20100 69 63 74 20 26 26 20 73 74 72 69 63 74 65 64 29 ict && stricted)
20110 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
20120 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 this.tolerateU
20130 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 73 nexpectedToken(s
20140 74 72 69 63 74 65 64 2c 20 6d 65 73 73 61 67 65 tricted, message
20150 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
20160 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
20170 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 3d context.strict =
20180 20 70 72 65 76 69 6f 75 73 53 74 72 69 63 74 3b previousStrict;
20190 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
201a0 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 69 .context.allowYi
201b0 65 6c 64 20 3d 20 70 72 65 76 69 6f 75 73 41 6c eld = previousAl
201c0 6c 6f 77 59 69 65 6c 64 3b 0a 20 20 09 20 20 20 lowYield;. .
201d0 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
201e0 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 .finalize(node,
201f0 6e 65 77 20 4e 6f 64 65 2e 46 75 6e 63 74 69 6f new Node.Functio
20200 6e 44 65 63 6c 61 72 61 74 69 6f 6e 28 69 64 2c nDeclaration(id,
20210 20 70 61 72 61 6d 73 2c 20 62 6f 64 79 2c 20 69 params, body, i
20220 73 47 65 6e 65 72 61 74 6f 72 29 29 3b 0a 20 20 sGenerator));.
20230 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 . };. . P
20240 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
20250 70 61 72 73 65 46 75 6e 63 74 69 6f 6e 45 78 70 parseFunctionExp
20260 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 74 69 ression = functi
20270 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
20280 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
20290 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
202a0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
202b0 2e 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 27 .expectKeyword('
202c0 66 75 6e 63 74 69 6f 6e 27 29 3b 0a 20 20 09 20 function');. .
202d0 20 20 20 20 20 20 20 76 61 72 20 69 73 47 65 6e var isGen
202e0 65 72 61 74 6f 72 20 3d 20 74 68 69 73 2e 6d 61 erator = this.ma
202f0 74 63 68 28 27 2a 27 29 3b 0a 20 20 09 20 20 20 tch('*');. .
20300 20 20 20 20 20 69 66 20 28 69 73 47 65 6e 65 72 if (isGener
20310 61 74 6f 72 29 20 7b 0a 20 20 09 20 20 20 20 20 ator) {. .
20320 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 74 this.next
20330 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
20340 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
20350 20 76 61 72 20 6d 65 73 73 61 67 65 3b 0a 20 20 var message;.
20360 09 20 20 20 20 20 20 20 20 76 61 72 20 69 64 20 . var id
20370 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 = null;. .
20380 20 20 20 76 61 72 20 66 69 72 73 74 52 65 73 74 var firstRest
20390 72 69 63 74 65 64 3b 0a 20 20 09 20 20 20 20 20 ricted;. .
203a0 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 41 var previousA
203b0 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 74 68 69 73 llowYield = this
203c0 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 69 .context.allowYi
203d0 65 6c 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eld;. .
203e0 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c this.context.all
203f0 6f 77 59 69 65 6c 64 20 3d 20 21 69 73 47 65 6e owYield = !isGen
20400 65 72 61 74 6f 72 3b 0a 20 20 09 20 20 20 20 20 erator;. .
20410 20 20 20 69 66 20 28 21 74 68 69 73 2e 6d 61 74 if (!this.mat
20420 63 68 28 27 28 27 29 29 20 7b 0a 20 20 09 20 20 ch('(')) {. .
20430 20 20 20 20 20 20 20 20 20 20 76 61 72 20 74 6f var to
20440 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 ken = this.looka
20450 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 20 head;. .
20460 20 20 20 20 20 69 64 20 3d 20 28 21 74 68 69 73 id = (!this
20470 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 .context.strict
20480 26 26 20 21 69 73 47 65 6e 65 72 61 74 6f 72 20 && !isGenerator
20490 26 26 20 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 && this.matchKey
204a0 77 6f 72 64 28 27 79 69 65 6c 64 27 29 29 20 3f word('yield')) ?
204b0 20 74 68 69 73 2e 70 61 72 73 65 49 64 65 6e 74 this.parseIdent
204c0 69 66 69 65 72 4e 61 6d 65 28 29 20 3a 20 74 68 ifierName() : th
204d0 69 73 2e 70 61 72 73 65 56 61 72 69 61 62 6c 65 is.parseVariable
204e0 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 20 Identifier();.
204f0 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
20500 28 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 (this.context.st
20510 72 69 63 74 29 20 7b 0a 20 20 09 20 20 20 20 20 rict) {. .
20520 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
20530 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 73 52 65 his.scanner.isRe
20540 73 74 72 69 63 74 65 64 57 6f 72 64 28 74 6f 6b strictedWord(tok
20550 65 6e 2e 76 61 6c 75 65 29 29 20 7b 0a 20 20 09 en.value)) {. .
20560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20570 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 this.tolerat
20580 65 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e eUnexpectedToken
20590 28 74 6f 6b 65 6e 2c 20 6d 65 73 73 61 67 65 73 (token, messages
205a0 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 72 69 _1.Messages.Stri
205b0 63 74 46 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 3b ctFunctionName);
205c0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
205d0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
205e0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
205f0 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 else {. .
20600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20610 69 66 20 28 74 68 69 73 2e 73 63 61 6e 6e 65 72 if (this.scanner
20620 2e 69 73 52 65 73 74 72 69 63 74 65 64 57 6f 72 .isRestrictedWor
20630 64 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 29 29 20 d(token.value))
20640 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
20650 20 20 20 20 20 20 20 20 20 66 69 72 73 74 52 65 firstRe
20660 73 74 72 69 63 74 65 64 20 3d 20 74 6f 6b 65 6e stricted = token
20670 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
20680 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 message
20690 20 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 = messages_1.Me
206a0 73 73 61 67 65 73 2e 53 74 72 69 63 74 46 75 6e ssages.StrictFun
206b0 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 09 20 20 ctionName;. .
206c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
206d0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
206e0 20 20 20 65 6c 73 65 20 69 66 20 28 74 68 69 73 else if (this
206f0 2e 73 63 61 6e 6e 65 72 2e 69 73 53 74 72 69 63 .scanner.isStric
20700 74 4d 6f 64 65 52 65 73 65 72 76 65 64 57 6f 72 tModeReservedWor
20710 64 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 29 29 20 d(token.value))
20720 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
20730 20 20 20 20 20 20 20 20 20 66 69 72 73 74 52 65 firstRe
20740 73 74 72 69 63 74 65 64 20 3d 20 74 6f 6b 65 6e stricted = token
20750 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
20760 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 message
20770 20 3d 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 = messages_1.Me
20780 73 73 61 67 65 73 2e 53 74 72 69 63 74 52 65 73 ssages.StrictRes
20790 65 72 76 65 64 57 6f 72 64 3b 0a 20 20 09 20 20 ervedWord;. .
207a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
207b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
207c0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
207d0 09 20 20 20 20 20 20 20 20 76 61 72 20 66 6f 72 . var for
207e0 6d 61 6c 50 61 72 61 6d 65 74 65 72 73 20 3d 20 malParameters =
207f0 74 68 69 73 2e 70 61 72 73 65 46 6f 72 6d 61 6c this.parseFormal
20800 50 61 72 61 6d 65 74 65 72 73 28 66 69 72 73 74 Parameters(first
20810 52 65 73 74 72 69 63 74 65 64 29 3b 0a 20 20 09 Restricted);. .
20820 20 20 20 20 20 20 20 20 76 61 72 20 70 61 72 61 var para
20830 6d 73 20 3d 20 66 6f 72 6d 61 6c 50 61 72 61 6d ms = formalParam
20840 65 74 65 72 73 2e 70 61 72 61 6d 73 3b 0a 20 20 eters.params;.
20850 09 20 20 20 20 20 20 20 20 76 61 72 20 73 74 72 . var str
20860 69 63 74 65 64 20 3d 20 66 6f 72 6d 61 6c 50 61 icted = formalPa
20870 72 61 6d 65 74 65 72 73 2e 73 74 72 69 63 74 65 rameters.stricte
20880 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 66 69 d;. . fi
20890 72 73 74 52 65 73 74 72 69 63 74 65 64 20 3d 20 rstRestricted =
208a0 66 6f 72 6d 61 6c 50 61 72 61 6d 65 74 65 72 73 formalParameters
208b0 2e 66 69 72 73 74 52 65 73 74 72 69 63 74 65 64 .firstRestricted
208c0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
208d0 28 66 6f 72 6d 61 6c 50 61 72 61 6d 65 74 65 72 (formalParameter
208e0 73 2e 6d 65 73 73 61 67 65 29 20 7b 0a 20 20 09 s.message) {. .
208f0 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 mess
20900 61 67 65 20 3d 20 66 6f 72 6d 61 6c 50 61 72 61 age = formalPara
20910 6d 65 74 65 72 73 2e 6d 65 73 73 61 67 65 3b 0a meters.message;.
20920 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
20930 20 20 20 20 20 20 20 20 76 61 72 20 70 72 65 76 var prev
20940 69 6f 75 73 53 74 72 69 63 74 20 3d 20 74 68 69 iousStrict = thi
20950 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 s.context.strict
20960 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
20970 20 62 6f 64 79 20 3d 20 74 68 69 73 2e 70 61 72 body = this.par
20980 73 65 46 75 6e 63 74 69 6f 6e 53 6f 75 72 63 65 seFunctionSource
20990 45 6c 65 6d 65 6e 74 73 28 29 3b 0a 20 20 09 20 Elements();. .
209a0 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
209b0 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 26 context.strict &
209c0 26 20 66 69 72 73 74 52 65 73 74 72 69 63 74 65 & firstRestricte
209d0 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 d) {. .
209e0 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 6e this.throwUn
209f0 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 66 69 expectedToken(fi
20a00 72 73 74 52 65 73 74 72 69 63 74 65 64 2c 20 6d rstRestricted, m
20a10 65 73 73 61 67 65 29 3b 0a 20 20 09 20 20 20 20 essage);. .
20a20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
20a30 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 74 65 78 if (this.contex
20a40 74 2e 73 74 72 69 63 74 20 26 26 20 73 74 72 69 t.strict && stri
20a50 63 74 65 64 29 20 7b 0a 20 20 09 20 20 20 20 20 cted) {. .
20a60 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c 65 this.tole
20a70 72 61 74 65 55 6e 65 78 70 65 63 74 65 64 54 6f rateUnexpectedTo
20a80 6b 65 6e 28 73 74 72 69 63 74 65 64 2c 20 6d 65 ken(stricted, me
20a90 73 73 61 67 65 29 3b 0a 20 20 09 20 20 20 20 20 ssage);. .
20aa0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
20ab0 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 this.context.str
20ac0 69 63 74 20 3d 20 70 72 65 76 69 6f 75 73 53 74 ict = previousSt
20ad0 72 69 63 74 3b 0a 20 20 09 20 20 20 20 20 20 20 rict;. .
20ae0 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
20af0 6c 6f 77 59 69 65 6c 64 20 3d 20 70 72 65 76 69 lowYield = previ
20b00 6f 75 73 41 6c 6c 6f 77 59 69 65 6c 64 3b 0a 20 ousAllowYield;.
20b10 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
20b20 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
20b30 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 46 75 ode, new Node.Fu
20b40 6e 63 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e nctionExpression
20b50 28 69 64 2c 20 70 61 72 61 6d 73 2c 20 62 6f 64 (id, params, bod
20b60 79 2c 20 69 73 47 65 6e 65 72 61 74 6f 72 29 29 y, isGenerator))
20b70 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
20b80 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 // ECMA-262 1
20b90 34 2e 31 2e 31 20 44 69 72 65 63 74 69 76 65 20 4.1.1 Directive
20ba0 50 72 6f 6c 6f 67 75 65 73 0a 20 20 09 20 20 20 Prologues. .
20bb0 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
20bc0 65 2e 70 61 72 73 65 44 69 72 65 63 74 69 76 65 e.parseDirective
20bd0 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
20be0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
20bf0 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f 6f token = this.loo
20c00 6b 61 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 kahead;. .
20c10 20 20 20 76 61 72 20 64 69 72 65 63 74 69 76 65 var directive
20c20 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 = null;. .
20c30 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 var node = t
20c40 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 his.createNode()
20c50 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
20c60 20 65 78 70 72 20 3d 20 74 68 69 73 2e 70 61 72 expr = this.par
20c70 73 65 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a seExpression();.
20c80 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 65 . if (e
20c90 78 70 72 2e 74 79 70 65 20 3d 3d 3d 20 73 79 6e xpr.type === syn
20ca0 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 4c 69 74 tax_1.Syntax.Lit
20cb0 65 72 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 eral) {. .
20cc0 20 20 20 20 20 20 20 64 69 72 65 63 74 69 76 65 directive
20cd0 20 3d 20 74 68 69 73 2e 67 65 74 54 6f 6b 65 6e = this.getToken
20ce0 52 61 77 28 74 6f 6b 65 6e 29 2e 73 6c 69 63 65 Raw(token).slice
20cf0 28 31 2c 20 2d 31 29 3b 0a 20 20 09 20 20 20 20 (1, -1);. .
20d00 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
20d10 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 6d this.consumeSem
20d20 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 20 icolon();. .
20d30 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
20d40 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 .finalize(node,
20d50 64 69 72 65 63 74 69 76 65 20 3f 20 6e 65 77 20 directive ? new
20d60 4e 6f 64 65 2e 44 69 72 65 63 74 69 76 65 28 65 Node.Directive(e
20d70 78 70 72 2c 20 64 69 72 65 63 74 69 76 65 29 20 xpr, directive)
20d80 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
20d90 20 6e 65 77 20 4e 6f 64 65 2e 45 78 70 72 65 73 new Node.Expres
20da0 73 69 6f 6e 53 74 61 74 65 6d 65 6e 74 28 65 78 sionStatement(ex
20db0 70 72 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a pr));. . };.
20dc0 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
20dd0 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 44 69 72 ototype.parseDir
20de0 65 63 74 69 76 65 50 72 6f 6c 6f 67 75 65 73 20 ectivePrologues
20df0 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
20e00 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 . var t
20e10 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 his$1 = this;..
20e20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 66 69 . var fi
20e30 72 73 74 52 65 73 74 72 69 63 74 65 64 20 3d 20 rstRestricted =
20e40 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 null;. .
20e50 20 76 61 72 20 62 6f 64 79 20 3d 20 5b 5d 3b 0a var body = [];.
20e60 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
20e70 20 28 74 72 75 65 29 20 7b 0a 20 20 09 20 20 20 (true) {. .
20e80 20 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b var tok
20e90 65 6e 20 3d 20 74 68 69 73 24 31 2e 6c 6f 6f 6b en = this$1.look
20ea0 61 68 65 61 64 3b 0a 20 20 09 20 20 20 20 20 20 ahead;. .
20eb0 20 20 20 20 20 20 69 66 20 28 74 6f 6b 65 6e 2e if (token.
20ec0 74 79 70 65 20 21 3d 3d 20 74 6f 6b 65 6e 5f 31 type !== token_1
20ed0 2e 54 6f 6b 65 6e 2e 53 74 72 69 6e 67 4c 69 74 .Token.StringLit
20ee0 65 72 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 eral) {. .
20ef0 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
20f00 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
20f10 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
20f20 20 20 76 61 72 20 73 74 61 74 65 6d 65 6e 74 20 var statement
20f30 3d 20 74 68 69 73 24 31 2e 70 61 72 73 65 44 69 = this$1.parseDi
20f40 72 65 63 74 69 76 65 28 29 3b 0a 20 20 09 20 20 rective();. .
20f50 20 20 20 20 20 20 20 20 20 20 62 6f 64 79 2e 70 body.p
20f60 75 73 68 28 73 74 61 74 65 6d 65 6e 74 29 3b 0a ush(statement);.
20f70 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
20f80 61 72 20 64 69 72 65 63 74 69 76 65 20 3d 20 73 ar directive = s
20f90 74 61 74 65 6d 65 6e 74 2e 64 69 72 65 63 74 69 tatement.directi
20fa0 76 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ve;. .
20fb0 20 20 20 69 66 20 28 74 79 70 65 6f 66 20 64 69 if (typeof di
20fc0 72 65 63 74 69 76 65 20 21 3d 3d 20 27 73 74 72 rective !== 'str
20fd0 69 6e 67 27 29 20 7b 0a 20 20 09 20 20 20 20 20 ing') {. .
20fe0 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
20ff0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
21000 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
21010 20 20 69 66 20 28 64 69 72 65 63 74 69 76 65 20 if (directive
21020 3d 3d 3d 20 27 75 73 65 20 73 74 72 69 63 74 27 === 'use strict'
21030 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
21040 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 63 6f this$1.co
21050 6e 74 65 78 74 2e 73 74 72 69 63 74 20 3d 20 74 ntext.strict = t
21060 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 rue;. .
21070 20 20 20 20 20 20 20 20 69 66 20 28 66 69 72 73 if (firs
21080 74 52 65 73 74 72 69 63 74 65 64 29 20 7b 0a 20 tRestricted) {.
21090 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
210a0 20 20 20 20 20 20 74 68 69 73 24 31 2e 74 6f 6c this$1.tol
210b0 65 72 61 74 65 55 6e 65 78 70 65 63 74 65 64 54 erateUnexpectedT
210c0 6f 6b 65 6e 28 66 69 72 73 74 52 65 73 74 72 69 oken(firstRestri
210d0 63 74 65 64 2c 20 6d 65 73 73 61 67 65 73 5f 31 cted, messages_1
210e0 2e 4d 65 73 73 61 67 65 73 2e 53 74 72 69 63 74 .Messages.Strict
210f0 4f 63 74 61 6c 4c 69 74 65 72 61 6c 29 3b 0a 20 OctalLiteral);.
21100 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
21110 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
21120 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
21130 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
21140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 if
21150 20 28 21 66 69 72 73 74 52 65 73 74 72 69 63 74 (!firstRestrict
21160 65 64 20 26 26 20 74 6f 6b 65 6e 2e 6f 63 74 61 ed && token.octa
21170 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 l) {. .
21180 20 20 20 20 20 20 20 20 20 20 20 20 66 69 72 73 firs
21190 74 52 65 73 74 72 69 63 74 65 64 20 3d 20 74 6f tRestricted = to
211a0 6b 65 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ken;. .
211b0 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
211c0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
211d0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
211e0 20 20 20 72 65 74 75 72 6e 20 62 6f 64 79 3b 0a return body;.
211f0 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
21200 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 34 2e // ECMA-262 14.
21210 33 20 4d 65 74 68 6f 64 20 44 65 66 69 6e 69 74 3 Method Definit
21220 69 6f 6e 73 0a 20 20 09 20 20 20 20 50 61 72 73 ions. . Pars
21230 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 71 75 61 er.prototype.qua
21240 6c 69 66 69 65 64 50 72 6f 70 65 72 74 79 4e 61 lifiedPropertyNa
21250 6d 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 74 me = function (t
21260 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 20 20 20 20 oken) {. .
21270 20 20 20 73 77 69 74 63 68 20 28 74 6f 6b 65 6e switch (token
21280 2e 74 79 70 65 29 20 7b 0a 20 20 09 20 20 20 20 .type) {. .
21290 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b case tok
212a0 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 en_1.Token.Ident
212b0 69 66 69 65 72 3a 0a 20 20 09 20 20 20 20 20 20 ifier:. .
212c0 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b 65 6e case token
212d0 5f 31 2e 54 6f 6b 65 6e 2e 53 74 72 69 6e 67 4c _1.Token.StringL
212e0 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 20 20 20 iteral:. .
212f0 20 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b 65 case toke
21300 6e 5f 31 2e 54 6f 6b 65 6e 2e 42 6f 6f 6c 65 61 n_1.Token.Boolea
21310 6e 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 20 nLiteral:. .
21320 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f case to
21330 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e 75 6c 6c ken_1.Token.Null
21340 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 20 20 Literal:. .
21350 20 20 20 20 20 20 20 20 63 61 73 65 20 74 6f 6b case tok
21360 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e 75 6d 65 72 en_1.Token.Numer
21370 69 63 4c 69 74 65 72 61 6c 3a 0a 20 20 09 20 20 icLiteral:. .
21380 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 74 case t
21390 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 oken_1.Token.Key
213a0 77 6f 72 64 3a 0a 20 20 09 20 20 20 20 20 20 20 word:. .
213b0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
213c0 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 true;. .
213d0 20 20 20 20 20 63 61 73 65 20 74 6f 6b 65 6e 5f case token_
213e0 31 2e 54 6f 6b 65 6e 2e 50 75 6e 63 74 75 61 74 1.Token.Punctuat
213f0 6f 72 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 or:. .
21400 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 6f return to
21410 6b 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 5b ken.value === '[
21420 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a ';. . }.
21430 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
21440 6e 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 n false;. .
21450 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 };. . Parser
21460 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 .prototype.parse
21470 47 65 74 74 65 72 4d 65 74 68 6f 64 20 3d 20 66 GetterMethod = f
21480 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
21490 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
214a0 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f = this.createNo
214b0 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 de();. .
214c0 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 28 27 this.expect('('
214d0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 );. . th
214e0 69 73 2e 65 78 70 65 63 74 28 27 29 27 29 3b 0a is.expect(')');.
214f0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 69 . var i
21500 73 47 65 6e 65 72 61 74 6f 72 20 3d 20 66 61 6c sGenerator = fal
21510 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 se;. . v
21520 61 72 20 70 61 72 61 6d 73 20 3d 20 7b 0a 20 20 ar params = {.
21530 09 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 . par
21540 61 6d 73 3a 20 5b 5d 2c 0a 20 20 09 20 20 20 20 ams: [],. .
21550 20 20 20 20 20 20 20 20 73 74 72 69 63 74 65 64 stricted
21560 3a 20 6e 75 6c 6c 2c 0a 20 20 09 20 20 20 20 20 : null,. .
21570 20 20 20 20 20 20 20 66 69 72 73 74 52 65 73 74 firstRest
21580 72 69 63 74 65 64 3a 20 6e 75 6c 6c 2c 0a 20 20 ricted: null,.
21590 09 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 . mes
215a0 73 61 67 65 3a 20 6e 75 6c 6c 0a 20 20 09 20 20 sage: null. .
215b0 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 };. .
215c0 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 var previous
215d0 41 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 74 68 69 AllowYield = thi
215e0 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 s.context.allowY
215f0 69 65 6c 64 3b 0a 20 20 09 20 20 20 20 20 20 20 ield;. .
21600 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
21610 6c 6f 77 59 69 65 6c 64 20 3d 20 66 61 6c 73 65 lowYield = false
21620 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
21630 20 6d 65 74 68 6f 64 20 3d 20 74 68 69 73 2e 70 method = this.p
21640 61 72 73 65 50 72 6f 70 65 72 74 79 4d 65 74 68 arsePropertyMeth
21650 6f 64 28 70 61 72 61 6d 73 29 3b 0a 20 20 09 20 od(params);. .
21660 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 this.cont
21670 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 3d ext.allowYield =
21680 20 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 69 previousAllowYi
21690 65 6c 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eld;. .
216a0 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 return this.fina
216b0 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e lize(node, new N
216c0 6f 64 65 2e 46 75 6e 63 74 69 6f 6e 45 78 70 72 ode.FunctionExpr
216d0 65 73 73 69 6f 6e 28 6e 75 6c 6c 2c 20 70 61 72 ession(null, par
216e0 61 6d 73 2e 70 61 72 61 6d 73 2c 20 6d 65 74 68 ams.params, meth
216f0 6f 64 2c 20 69 73 47 65 6e 65 72 61 74 6f 72 29 od, isGenerator)
21700 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
21710 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
21720 74 79 70 65 2e 70 61 72 73 65 53 65 74 74 65 72 type.parseSetter
21730 4d 65 74 68 6f 64 20 3d 20 66 75 6e 63 74 69 6f Method = functio
21740 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
21750 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
21760 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a s.createNode();.
21770 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6f . var o
21780 70 74 69 6f 6e 73 20 3d 20 7b 0a 20 20 09 20 20 ptions = {. .
21790 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 params
217a0 3a 20 5b 5d 2c 0a 20 20 09 20 20 20 20 20 20 20 : [],. .
217b0 20 20 20 20 20 66 69 72 73 74 52 65 73 74 72 69 firstRestri
217c0 63 74 65 64 3a 20 6e 75 6c 6c 2c 0a 20 20 09 20 cted: null,. .
217d0 20 20 20 20 20 20 20 20 20 20 20 70 61 72 61 6d param
217e0 53 65 74 3a 20 7b 7d 0a 20 20 09 20 20 20 20 20 Set: {}. .
217f0 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 };. .
21800 20 76 61 72 20 69 73 47 65 6e 65 72 61 74 6f 72 var isGenerator
21810 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 = false;. .
21820 20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 var previou
21830 73 41 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 74 68 sAllowYield = th
21840 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 is.context.allow
21850 59 69 65 6c 64 3b 0a 20 20 09 20 20 20 20 20 20 Yield;. .
21860 20 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 this.context.a
21870 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 66 61 6c 73 llowYield = fals
21880 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 e;. . th
21890 69 73 2e 65 78 70 65 63 74 28 27 28 27 29 3b 0a is.expect('(');.
218a0 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 . if (t
218b0 68 69 73 2e 6d 61 74 63 68 28 27 29 27 29 29 20 his.match(')'))
218c0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
218d0 20 74 68 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e this.tolerateUn
218e0 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 68 expectedToken(th
218f0 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 is.lookahead);.
21900 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
21910 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 else {.
21920 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
21930 73 2e 70 61 72 73 65 46 6f 72 6d 61 6c 50 61 72 s.parseFormalPar
21940 61 6d 65 74 65 72 28 6f 70 74 69 6f 6e 73 29 3b ameter(options);
21950 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
21960 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 . this.ex
21970 70 65 63 74 28 27 29 27 29 3b 0a 20 20 09 20 20 pect(')');. .
21980 20 20 20 20 20 20 76 61 72 20 6d 65 74 68 6f 64 var method
21990 20 3d 20 74 68 69 73 2e 70 61 72 73 65 50 72 6f = this.parsePro
219a0 70 65 72 74 79 4d 65 74 68 6f 64 28 6f 70 74 69 pertyMethod(opti
219b0 6f 6e 73 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ons);. .
219c0 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c this.context.al
219d0 6c 6f 77 59 69 65 6c 64 20 3d 20 70 72 65 76 69 lowYield = previ
219e0 6f 75 73 41 6c 6c 6f 77 59 69 65 6c 64 3b 0a 20 ousAllowYield;.
219f0 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
21a00 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
21a10 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 46 75 ode, new Node.Fu
21a20 6e 63 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e nctionExpression
21a30 28 6e 75 6c 6c 2c 20 6f 70 74 69 6f 6e 73 2e 70 (null, options.p
21a40 61 72 61 6d 73 2c 20 6d 65 74 68 6f 64 2c 20 69 arams, method, i
21a50 73 47 65 6e 65 72 61 74 6f 72 29 29 3b 0a 20 20 sGenerator));.
21a60 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 . };. . P
21a70 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
21a80 70 61 72 73 65 47 65 6e 65 72 61 74 6f 72 4d 65 parseGeneratorMe
21a90 74 68 6f 64 20 3d 20 66 75 6e 63 74 69 6f 6e 20 thod = function
21aa0 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
21ab0 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e var node = this.
21ac0 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 createNode();.
21ad0 09 20 20 20 20 20 20 20 20 76 61 72 20 69 73 47 . var isG
21ae0 65 6e 65 72 61 74 6f 72 20 3d 20 74 72 75 65 3b enerator = true;
21af0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
21b00 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 69 65 previousAllowYie
21b10 6c 64 20 3d 20 74 68 69 73 2e 63 6f 6e 74 65 78 ld = this.contex
21b20 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 3b 0a 20 20 t.allowYield;.
21b30 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
21b40 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 ntext.allowYield
21b50 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 = true;. .
21b60 20 20 20 20 76 61 72 20 70 61 72 61 6d 73 20 3d var params =
21b70 20 74 68 69 73 2e 70 61 72 73 65 46 6f 72 6d 61 this.parseForma
21b80 6c 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0a 20 lParameters();.
21b90 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 . this.c
21ba0 6f 6e 74 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c ontext.allowYiel
21bb0 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 d = false;. .
21bc0 20 20 20 20 20 20 76 61 72 20 6d 65 74 68 6f 64 var method
21bd0 20 3d 20 74 68 69 73 2e 70 61 72 73 65 50 72 6f = this.parsePro
21be0 70 65 72 74 79 4d 65 74 68 6f 64 28 70 61 72 61 pertyMethod(para
21bf0 6d 73 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ms);. .
21c00 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c this.context.all
21c10 6f 77 59 69 65 6c 64 20 3d 20 70 72 65 76 69 6f owYield = previo
21c20 75 73 41 6c 6c 6f 77 59 69 65 6c 64 3b 0a 20 20 usAllowYield;.
21c30 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
21c40 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f this.finalize(no
21c50 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 46 75 6e de, new Node.Fun
21c60 63 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 28 ctionExpression(
21c70 6e 75 6c 6c 2c 20 70 61 72 61 6d 73 2e 70 61 72 null, params.par
21c80 61 6d 73 2c 20 6d 65 74 68 6f 64 2c 20 69 73 47 ams, method, isG
21c90 65 6e 65 72 61 74 6f 72 29 29 3b 0a 20 20 09 20 enerator));. .
21ca0 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 };. . //
21cb0 45 43 4d 41 2d 32 36 32 20 31 34 2e 34 20 47 65 ECMA-262 14.4 Ge
21cc0 6e 65 72 61 74 6f 72 20 46 75 6e 63 74 69 6f 6e nerator Function
21cd0 20 44 65 66 69 6e 69 74 69 6f 6e 73 0a 20 20 09 Definitions. .
21ce0 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
21cf0 74 79 70 65 2e 69 73 53 74 61 72 74 4f 66 45 78 type.isStartOfEx
21d00 70 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 74 pression = funct
21d10 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
21d20 20 20 20 20 76 61 72 20 73 74 61 72 74 20 3d 20 var start =
21d30 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 true;. .
21d40 20 76 61 72 20 76 61 6c 75 65 20 3d 20 74 68 69 var value = thi
21d50 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 61 6c 75 s.lookahead.valu
21d60 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 73 77 e;. . sw
21d70 69 74 63 68 20 28 74 68 69 73 2e 6c 6f 6f 6b 61 itch (this.looka
21d80 68 65 61 64 2e 74 79 70 65 29 20 7b 0a 20 20 09 head.type) {. .
21d90 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
21da0 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 50 token_1.Token.P
21db0 75 6e 63 74 75 61 74 6f 72 3a 0a 20 20 09 20 20 unctuator:. .
21dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 st
21dd0 61 72 74 20 3d 20 28 76 61 6c 75 65 20 3d 3d 3d art = (value ===
21de0 20 27 5b 27 29 20 7c 7c 20 28 76 61 6c 75 65 20 '[') || (value
21df0 3d 3d 3d 20 27 28 27 29 20 7c 7c 20 28 76 61 6c === '(') || (val
21e00 75 65 20 3d 3d 3d 20 27 7b 27 29 20 7c 7c 0a 20 ue === '{') ||.
21e10 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
21e20 20 20 20 20 20 20 28 76 61 6c 75 65 20 3d 3d 3d (value ===
21e30 20 27 2b 27 29 20 7c 7c 20 28 76 61 6c 75 65 20 '+') || (value
21e40 3d 3d 3d 20 27 2d 27 29 20 7c 7c 0a 20 20 09 20 === '-') ||. .
21e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21e60 20 20 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 21 (value === '!
21e70 27 29 20 7c 7c 20 28 76 61 6c 75 65 20 3d 3d 3d ') || (value ===
21e80 20 27 7e 27 29 20 7c 7c 0a 20 20 09 20 20 20 20 '~') ||. .
21e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21ea0 28 76 61 6c 75 65 20 3d 3d 3d 20 27 2b 2b 27 29 (value === '++')
21eb0 20 7c 7c 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 || (value === '
21ec0 2d 2d 27 29 20 7c 7c 0a 20 20 09 20 20 20 20 20 --') ||. .
21ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (
21ee0 76 61 6c 75 65 20 3d 3d 3d 20 27 2f 27 29 20 7c value === '/') |
21ef0 7c 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 2f 3d | (value === '/=
21f00 27 29 3b 20 2f 2f 20 72 65 67 75 6c 61 72 20 65 '); // regular e
21f10 78 70 72 65 73 73 69 6f 6e 20 6c 69 74 65 72 61 xpression litera
21f20 6c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 l. .
21f30 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
21f40 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
21f50 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 token_1.Token.Ke
21f60 79 77 6f 72 64 3a 0a 20 20 09 20 20 20 20 20 20 yword:. .
21f70 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 20 start
21f80 3d 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 63 6c = (value === 'cl
21f90 61 73 73 27 29 20 7c 7c 20 28 76 61 6c 75 65 20 ass') || (value
21fa0 3d 3d 3d 20 27 64 65 6c 65 74 65 27 29 20 7c 7c === 'delete') ||
21fb0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
21fc0 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 20 3d (value =
21fd0 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7c == 'function') |
21fe0 7c 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 6c 65 | (value === 'le
21ff0 74 27 29 20 7c 7c 20 28 76 61 6c 75 65 20 3d 3d t') || (value ==
22000 3d 20 27 6e 65 77 27 29 20 7c 7c 0a 20 20 09 20 = 'new') ||. .
22010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
22020 20 20 20 28 76 61 6c 75 65 20 3d 3d 3d 20 27 73 (value === 's
22030 75 70 65 72 27 29 20 7c 7c 20 28 76 61 6c 75 65 uper') || (value
22040 20 3d 3d 3d 20 27 74 68 69 73 27 29 20 7c 7c 20 === 'this') ||
22050 28 76 61 6c 75 65 20 3d 3d 3d 20 27 74 79 70 65 (value === 'type
22060 6f 66 27 29 20 7c 7c 0a 20 20 09 20 20 20 20 20 of') ||. .
22070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (
22080 76 61 6c 75 65 20 3d 3d 3d 20 27 76 6f 69 64 27 value === 'void'
22090 29 20 7c 7c 20 28 76 61 6c 75 65 20 3d 3d 3d 20 ) || (value ===
220a0 27 79 69 65 6c 64 27 29 3b 0a 20 20 09 20 20 20 'yield');. .
220b0 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
220c0 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
220d0 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 20 default:. .
220e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
220f0 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
22100 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
22110 74 75 72 6e 20 73 74 61 72 74 3b 0a 20 20 09 20 turn start;. .
22120 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 };. . Par
22130 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
22140 72 73 65 59 69 65 6c 64 45 78 70 72 65 73 73 69 rseYieldExpressi
22150 6f 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 on = function ()
22160 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
22170 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 r node = this.cr
22180 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 eateNode();. .
22190 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 this.expe
221a0 63 74 4b 65 79 77 6f 72 64 28 27 79 69 65 6c 64 ctKeyword('yield
221b0 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ');. . v
221c0 61 72 20 61 72 67 75 6d 65 6e 74 20 3d 20 6e 75 ar argument = nu
221d0 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ll;. . v
221e0 61 72 20 64 65 6c 65 67 61 74 65 20 3d 20 66 61 ar delegate = fa
221f0 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lse;. .
22200 69 66 20 28 21 74 68 69 73 2e 68 61 73 4c 69 6e if (!this.hasLin
22210 65 54 65 72 6d 69 6e 61 74 6f 72 29 20 7b 0a 20 eTerminator) {.
22220 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
22230 72 20 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 r previousAllowY
22240 69 65 6c 64 20 3d 20 74 68 69 73 2e 63 6f 6e 74 ield = this.cont
22250 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 3b 0a ext.allowYield;.
22260 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
22270 68 69 73 2e 63 6f 6e 74 65 78 74 2e 61 6c 6c 6f his.context.allo
22280 77 59 69 65 6c 64 20 3d 20 66 61 6c 73 65 3b 0a wYield = false;.
22290 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 64 . d
222a0 65 6c 65 67 61 74 65 20 3d 20 74 68 69 73 2e 6d elegate = this.m
222b0 61 74 63 68 28 27 2a 27 29 3b 0a 20 20 09 20 20 atch('*');. .
222c0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 65 if (de
222d0 6c 65 67 61 74 65 29 20 7b 0a 20 20 09 20 20 20 legate) {. .
222e0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
222f0 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
22300 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
22310 20 20 61 72 67 75 6d 65 6e 74 20 3d 20 74 68 69 argument = thi
22320 73 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 6e s.parseAssignmen
22330 74 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a 20 tExpression();.
22340 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
22350 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
22360 6c 73 65 20 69 66 20 28 74 68 69 73 2e 69 73 53 lse if (this.isS
22370 74 61 72 74 4f 66 45 78 70 72 65 73 73 69 6f 6e tartOfExpression
22380 28 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ()) {. .
22390 20 20 20 20 20 20 20 20 20 61 72 67 75 6d 65 6e argumen
223a0 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 41 73 t = this.parseAs
223b0 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 signmentExpressi
223c0 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 on();. .
223d0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
223e0 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 74 65 this.conte
223f0 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 3d 20 xt.allowYield =
22400 70 72 65 76 69 6f 75 73 41 6c 6c 6f 77 59 69 65 previousAllowYie
22410 6c 64 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d ld;. . }
22420 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
22430 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 rn this.finalize
22440 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
22450 59 69 65 6c 64 45 78 70 72 65 73 73 69 6f 6e 28 YieldExpression(
22460 61 72 67 75 6d 65 6e 74 2c 20 64 65 6c 65 67 61 argument, delega
22470 74 65 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a te));. . };.
22480 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 . // ECMA-2
22490 36 32 20 31 34 2e 35 20 43 6c 61 73 73 20 44 65 62 14.5 Class De
224a0 66 69 6e 69 74 69 6f 6e 73 0a 20 20 09 20 20 20 finitions. .
224b0 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 Parser.prototyp
224c0 65 2e 70 61 72 73 65 43 6c 61 73 73 45 6c 65 6d e.parseClassElem
224d0 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ent = function (
224e0 68 61 73 43 6f 6e 73 74 72 75 63 74 6f 72 29 20 hasConstructor)
224f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
22500 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f token = this.lo
22510 6f 6b 61 68 65 61 64 3b 0a 20 20 09 20 20 20 20 okahead;. .
22520 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 var node = t
22530 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 his.createNode()
22540 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
22550 20 6b 69 6e 64 3b 0a 20 20 09 20 20 20 20 20 20 kind;. .
22560 20 20 76 61 72 20 6b 65 79 3b 0a 20 20 09 20 20 var key;. .
22570 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 3b var value;
22580 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
22590 63 6f 6d 70 75 74 65 64 20 3d 20 66 61 6c 73 65 computed = false
225a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
225b0 20 6d 65 74 68 6f 64 20 3d 20 66 61 6c 73 65 3b method = false;
225c0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
225d0 69 73 53 74 61 74 69 63 20 3d 20 66 61 6c 73 65 isStatic = false
225e0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
225f0 28 74 68 69 73 2e 6d 61 74 63 68 28 27 2a 27 29 (this.match('*')
22600 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
22610 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 this.nextToke
22620 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
22630 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 }. . els
22640 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
22650 20 20 20 63 6f 6d 70 75 74 65 64 20 3d 20 74 68 computed = th
22660 69 73 2e 6d 61 74 63 68 28 27 5b 27 29 3b 0a 20 is.match('[');.
22670 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6b 65 . ke
22680 79 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4f 62 y = this.parseOb
22690 6a 65 63 74 50 72 6f 70 65 72 74 79 4b 65 79 28 jectPropertyKey(
226a0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
226b0 20 20 76 61 72 20 69 64 20 3d 20 6b 65 79 3b 0a var id = key;.
226c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
226d0 66 20 28 69 64 2e 6e 61 6d 65 20 3d 3d 3d 20 27 f (id.name === '
226e0 73 74 61 74 69 63 27 20 26 26 20 28 74 68 69 73 static' && (this
226f0 2e 71 75 61 6c 69 66 69 65 64 50 72 6f 70 65 72 .qualifiedProper
22700 74 79 4e 61 6d 65 28 74 68 69 73 2e 6c 6f 6f 6b tyName(this.look
22710 61 68 65 61 64 29 20 7c 7c 20 74 68 69 73 2e 6d ahead) || this.m
22720 61 74 63 68 28 27 2a 27 29 29 29 20 7b 0a 20 20 atch('*'))) {.
22730 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
22740 20 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 6f token = this.lo
22750 6f 6b 61 68 65 61 64 3b 0a 20 20 09 20 20 20 20 okahead;. .
22760 20 20 20 20 20 20 20 20 20 20 20 20 69 73 53 74 isSt
22770 61 74 69 63 20 3d 20 74 72 75 65 3b 0a 20 20 09 atic = true;. .
22780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
22790 63 6f 6d 70 75 74 65 64 20 3d 20 74 68 69 73 2e computed = this.
227a0 6d 61 74 63 68 28 27 5b 27 29 3b 0a 20 20 09 20 match('[');. .
227b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
227c0 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 27 2a f (this.match('*
227d0 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
227e0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
227f0 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
22800 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
22810 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
22820 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 else {.
22830 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
22840 20 20 20 20 20 6b 65 79 20 3d 20 74 68 69 73 2e key = this.
22850 70 61 72 73 65 4f 62 6a 65 63 74 50 72 6f 70 65 parseObjectPrope
22860 72 74 79 4b 65 79 28 29 3b 0a 20 20 09 20 20 20 rtyKey();. .
22870 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
22880 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
22890 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
228a0 20 20 20 20 20 20 20 20 76 61 72 20 6c 6f 6f 6b var look
228b0 61 68 65 61 64 50 72 6f 70 65 72 74 79 4b 65 79 aheadPropertyKey
228c0 20 3d 20 74 68 69 73 2e 71 75 61 6c 69 66 69 65 = this.qualifie
228d0 64 50 72 6f 70 65 72 74 79 4e 61 6d 65 28 74 68 dPropertyName(th
228e0 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 29 3b 0a 20 is.lookahead);.
228f0 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 6f . if (to
22900 6b 65 6e 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b ken.type === tok
22910 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 en_1.Token.Ident
22920 69 66 69 65 72 29 20 7b 0a 20 20 09 20 20 20 20 ifier) {. .
22930 20 20 20 20 20 20 20 20 69 66 20 28 74 6f 6b 65 if (toke
22940 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 67 65 74 n.value === 'get
22950 27 20 26 26 20 6c 6f 6f 6b 61 68 65 61 64 50 72 ' && lookaheadPr
22960 6f 70 65 72 74 79 4b 65 79 29 20 7b 0a 20 20 09 opertyKey) {. .
22970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
22980 6b 69 6e 64 20 3d 20 27 67 65 74 27 3b 0a 20 20 kind = 'get';.
22990 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
229a0 20 63 6f 6d 70 75 74 65 64 20 3d 20 74 68 69 73 computed = this
229b0 2e 6d 61 74 63 68 28 27 5b 27 29 3b 0a 20 20 09 .match('[');. .
229c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
229d0 6b 65 79 20 3d 20 74 68 69 73 2e 70 61 72 73 65 key = this.parse
229e0 4f 62 6a 65 63 74 50 72 6f 70 65 72 74 79 4b 65 ObjectPropertyKe
229f0 79 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 y();. .
22a00 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
22a10 74 65 78 74 2e 61 6c 6c 6f 77 59 69 65 6c 64 20 text.allowYield
22a20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
22a30 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
22a40 65 20 3d 20 74 68 69 73 2e 70 61 72 73 65 47 65 e = this.parseGe
22a50 74 74 65 72 4d 65 74 68 6f 64 28 29 3b 0a 20 20 tterMethod();.
22a60 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
22a70 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c . el
22a80 73 65 20 69 66 20 28 74 6f 6b 65 6e 2e 76 61 6c se if (token.val
22a90 75 65 20 3d 3d 3d 20 27 73 65 74 27 20 26 26 20 ue === 'set' &&
22aa0 6c 6f 6f 6b 61 68 65 61 64 50 72 6f 70 65 72 74 lookaheadPropert
22ab0 79 4b 65 79 29 20 7b 0a 20 20 09 20 20 20 20 20 yKey) {. .
22ac0 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 20 kind
22ad0 3d 20 27 73 65 74 27 3b 0a 20 20 09 20 20 20 20 = 'set';. .
22ae0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d 70 comp
22af0 75 74 65 64 20 3d 20 74 68 69 73 2e 6d 61 74 63 uted = this.matc
22b00 68 28 27 5b 27 29 3b 0a 20 20 09 20 20 20 20 20 h('[');. .
22b10 20 20 20 20 20 20 20 20 20 20 20 6b 65 79 20 3d key =
22b20 20 74 68 69 73 2e 70 61 72 73 65 4f 62 6a 65 63 this.parseObjec
22b30 74 50 72 6f 70 65 72 74 79 4b 65 79 28 29 3b 0a tPropertyKey();.
22b40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
22b50 20 20 20 76 61 6c 75 65 20 3d 20 74 68 69 73 2e value = this.
22b60 70 61 72 73 65 53 65 74 74 65 72 4d 65 74 68 6f parseSetterMetho
22b70 64 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 d();. .
22b80 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
22b90 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c }. . el
22ba0 73 65 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 70 se if (token.typ
22bb0 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f e === token_1.To
22bc0 6b 65 6e 2e 50 75 6e 63 74 75 61 74 6f 72 20 26 ken.Punctuator &
22bd0 26 20 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 3d 3d & token.value ==
22be0 3d 20 27 2a 27 20 26 26 20 6c 6f 6f 6b 61 68 65 = '*' && lookahe
22bf0 61 64 50 72 6f 70 65 72 74 79 4b 65 79 29 20 7b adPropertyKey) {
22c00 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
22c10 6b 69 6e 64 20 3d 20 27 69 6e 69 74 27 3b 0a 20 kind = 'init';.
22c20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 6f . co
22c30 6d 70 75 74 65 64 20 3d 20 74 68 69 73 2e 6d 61 mputed = this.ma
22c40 74 63 68 28 27 5b 27 29 3b 0a 20 20 09 20 20 20 tch('[');. .
22c50 20 20 20 20 20 20 20 20 20 6b 65 79 20 3d 20 74 key = t
22c60 68 69 73 2e 70 61 72 73 65 4f 62 6a 65 63 74 50 his.parseObjectP
22c70 72 6f 70 65 72 74 79 4b 65 79 28 29 3b 0a 20 20 ropertyKey();.
22c80 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c . val
22c90 75 65 20 3d 20 74 68 69 73 2e 70 61 72 73 65 47 ue = this.parseG
22ca0 65 6e 65 72 61 74 6f 72 4d 65 74 68 6f 64 28 29 eneratorMethod()
22cb0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
22cc0 20 6d 65 74 68 6f 64 20 3d 20 74 72 75 65 3b 0a method = true;.
22cd0 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
22ce0 20 20 20 20 20 20 20 20 69 66 20 28 21 6b 69 6e if (!kin
22cf0 64 20 26 26 20 6b 65 79 20 26 26 20 74 68 69 73 d && key && this
22d00 2e 6d 61 74 63 68 28 27 28 27 29 29 20 7b 0a 20 .match('(')) {.
22d10 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 . ki
22d20 6e 64 20 3d 20 27 69 6e 69 74 27 3b 0a 20 20 09 nd = 'init';. .
22d30 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
22d40 65 20 3d 20 74 68 69 73 2e 70 61 72 73 65 50 72 e = this.parsePr
22d50 6f 70 65 72 74 79 4d 65 74 68 6f 64 46 75 6e 63 opertyMethodFunc
22d60 74 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 tion();. .
22d70 20 20 20 20 20 20 20 6d 65 74 68 6f 64 20 3d 20 method =
22d80 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 true;. .
22d90 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 }. . if
22da0 20 28 21 6b 69 6e 64 29 20 7b 0a 20 20 09 20 20 (!kind) {. .
22db0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 this.t
22dc0 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f hrowUnexpectedTo
22dd0 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 ken(this.lookahe
22de0 61 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ad);. .
22df0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 }. . if
22e00 28 6b 69 6e 64 20 3d 3d 3d 20 27 69 6e 69 74 27 (kind === 'init'
22e10 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
22e20 20 20 20 6b 69 6e 64 20 3d 20 27 6d 65 74 68 6f kind = 'metho
22e30 64 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d d';. . }
22e40 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
22e50 21 63 6f 6d 70 75 74 65 64 29 20 7b 0a 20 20 09 !computed) {. .
22e60 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
22e70 69 73 53 74 61 74 69 63 20 26 26 20 74 68 69 73 isStatic && this
22e80 2e 69 73 50 72 6f 70 65 72 74 79 4b 65 79 28 6b .isPropertyKey(k
22e90 65 79 2c 20 27 70 72 6f 74 6f 74 79 70 65 27 29 ey, 'prototype')
22ea0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
22eb0 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f this.thro
22ec0 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e wUnexpectedToken
22ed0 28 74 6f 6b 65 6e 2c 20 6d 65 73 73 61 67 65 73 (token, messages
22ee0 5f 31 2e 4d 65 73 73 61 67 65 73 2e 53 74 61 74 _1.Messages.Stat
22ef0 69 63 50 72 6f 74 6f 74 79 70 65 29 3b 0a 20 20 icPrototype);.
22f00 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
22f10 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
22f20 20 28 21 69 73 53 74 61 74 69 63 20 26 26 20 74 (!isStatic && t
22f30 68 69 73 2e 69 73 50 72 6f 70 65 72 74 79 4b 65 his.isPropertyKe
22f40 79 28 6b 65 79 2c 20 27 63 6f 6e 73 74 72 75 63 y(key, 'construc
22f50 74 6f 72 27 29 29 20 7b 0a 20 20 09 20 20 20 20 tor')) {. .
22f60 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
22f70 6b 69 6e 64 20 21 3d 3d 20 27 6d 65 74 68 6f 64 kind !== 'method
22f80 27 20 7c 7c 20 21 6d 65 74 68 6f 64 20 7c 7c 20 ' || !method ||
22f90 76 61 6c 75 65 2e 67 65 6e 65 72 61 74 6f 72 29 value.generator)
22fa0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
22fb0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 this.t
22fc0 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f hrowUnexpectedTo
22fd0 6b 65 6e 28 74 6f 6b 65 6e 2c 20 6d 65 73 73 61 ken(token, messa
22fe0 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 43 ges_1.Messages.C
22ff0 6f 6e 73 74 72 75 63 74 6f 72 53 70 65 63 69 61 onstructorSpecia
23000 6c 4d 65 74 68 6f 64 29 3b 0a 20 20 09 20 20 20 lMethod);. .
23010 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
23020 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
23030 20 20 69 66 20 28 68 61 73 43 6f 6e 73 74 72 75 if (hasConstru
23040 63 74 6f 72 2e 76 61 6c 75 65 29 20 7b 0a 20 20 ctor.value) {.
23050 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
23060 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
23070 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 nexpectedToken(t
23080 6f 6b 65 6e 2c 20 6d 65 73 73 61 67 65 73 5f 31 oken, messages_1
23090 2e 4d 65 73 73 61 67 65 73 2e 44 75 70 6c 69 63 .Messages.Duplic
230a0 61 74 65 43 6f 6e 73 74 72 75 63 74 6f 72 29 3b ateConstructor);
230b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
230c0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
230d0 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a else {.
230e0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
230f0 20 20 20 20 20 20 20 68 61 73 43 6f 6e 73 74 72 hasConstr
23100 75 63 74 6f 72 2e 76 61 6c 75 65 20 3d 20 74 72 uctor.value = tr
23110 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ue;. .
23120 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
23130 20 20 20 20 20 20 20 20 20 20 20 20 6b 69 6e 64 kind
23140 20 3d 20 27 63 6f 6e 73 74 72 75 63 74 6f 72 27 = 'constructor'
23150 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
23160 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a }. . }.
23170 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
23180 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 n this.finalize(
23190 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 4d node, new Node.M
231a0 65 74 68 6f 64 44 65 66 69 6e 69 74 69 6f 6e 28 ethodDefinition(
231b0 6b 65 79 2c 20 63 6f 6d 70 75 74 65 64 2c 20 76 key, computed, v
231c0 61 6c 75 65 2c 20 6b 69 6e 64 2c 20 69 73 53 74 alue, kind, isSt
231d0 61 74 69 63 29 29 3b 0a 20 20 09 20 20 20 20 7d atic));. . }
231e0 3b 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e ;. . Parser.
231f0 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 43 prototype.parseC
23200 6c 61 73 73 45 6c 65 6d 65 6e 74 4c 69 73 74 20 lassElementList
23210 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
23220 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 . var t
23230 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 his$1 = this;..
23240 20 09 20 20 20 20 20 20 20 20 76 61 72 20 62 6f . var bo
23250 64 79 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 dy = [];. .
23260 20 20 20 20 76 61 72 20 68 61 73 43 6f 6e 73 74 var hasConst
23270 72 75 63 74 6f 72 20 3d 20 7b 20 76 61 6c 75 65 ructor = { value
23280 3a 20 66 61 6c 73 65 20 7d 3b 0a 20 20 09 20 20 : false };. .
23290 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
232a0 74 28 27 7b 27 29 3b 0a 20 20 09 20 20 20 20 20 t('{');. .
232b0 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e while (!this.
232c0 6d 61 74 63 68 28 27 7d 27 29 29 20 7b 0a 20 20 match('}')) {.
232d0 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
232e0 28 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 3b (this$1.match(';
232f0 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
23300 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
23310 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 nextToken();. .
23320 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
23330 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 . els
23340 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
23350 20 20 20 20 20 20 20 62 6f 64 79 2e 70 75 73 68 body.push
23360 28 74 68 69 73 24 31 2e 70 61 72 73 65 43 6c 61 (this$1.parseCla
23370 73 73 45 6c 65 6d 65 6e 74 28 68 61 73 43 6f 6e ssElement(hasCon
23380 73 74 72 75 63 74 6f 72 29 29 3b 0a 20 20 09 20 structor));. .
23390 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
233a0 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
233b0 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 this.expect
233c0 28 27 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('}');. .
233d0 20 20 72 65 74 75 72 6e 20 62 6f 64 79 3b 0a 20 return body;.
233e0 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
233f0 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
23400 2e 70 61 72 73 65 43 6c 61 73 73 42 6f 64 79 20 .parseClassBody
23410 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
23420 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e . var n
23430 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 ode = this.creat
23440 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 eNode();. .
23450 20 20 20 20 76 61 72 20 65 6c 65 6d 65 6e 74 4c var elementL
23460 69 73 74 20 3d 20 74 68 69 73 2e 70 61 72 73 65 ist = this.parse
23470 43 6c 61 73 73 45 6c 65 6d 65 6e 74 4c 69 73 74 ClassElementList
23480 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 ();. . r
23490 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c eturn this.final
234a0 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
234b0 64 65 2e 43 6c 61 73 73 42 6f 64 79 28 65 6c 65 de.ClassBody(ele
234c0 6d 65 6e 74 4c 69 73 74 29 29 3b 0a 20 20 09 20 mentList));. .
234d0 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 50 61 72 };. . Par
234e0 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
234f0 72 73 65 43 6c 61 73 73 44 65 63 6c 61 72 61 74 rseClassDeclarat
23500 69 6f 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ion = function (
23510 69 64 65 6e 74 69 66 69 65 72 49 73 4f 70 74 69 identifierIsOpti
23520 6f 6e 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 onal) {. .
23530 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
23540 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
23550 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
23560 70 72 65 76 69 6f 75 73 53 74 72 69 63 74 20 3d previousStrict =
23570 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 this.context.st
23580 72 69 63 74 3b 0a 20 20 09 20 20 20 20 20 20 20 rict;. .
23590 20 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 this.context.st
235a0 72 69 63 74 20 3d 20 74 72 75 65 3b 0a 20 20 09 rict = true;. .
235b0 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 this.exp
235c0 65 63 74 4b 65 79 77 6f 72 64 28 27 63 6c 61 73 ectKeyword('clas
235d0 73 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 s');. .
235e0 76 61 72 20 69 64 20 3d 20 28 69 64 65 6e 74 69 var id = (identi
235f0 66 69 65 72 49 73 4f 70 74 69 6f 6e 61 6c 20 26 fierIsOptional &
23600 26 20 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 & (this.lookahea
23610 64 2e 74 79 70 65 20 21 3d 3d 20 74 6f 6b 65 6e d.type !== token
23620 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 _1.Token.Identif
23630 69 65 72 29 29 20 3f 20 6e 75 6c 6c 20 3a 20 74 ier)) ? null : t
23640 68 69 73 2e 70 61 72 73 65 56 61 72 69 61 62 6c his.parseVariabl
23650 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 eIdentifier();.
23660 20 09 20 20 20 20 20 20 20 20 76 61 72 20 73 75 . var su
23670 70 65 72 43 6c 61 73 73 20 3d 20 6e 75 6c 6c 3b perClass = null;
23680 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
23690 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 this.matchKeywor
236a0 64 28 27 65 78 74 65 6e 64 73 27 29 29 20 7b 0a d('extends')) {.
236b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
236c0 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b his.nextToken();
236d0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
236e0 73 75 70 65 72 43 6c 61 73 73 20 3d 20 74 68 69 superClass = thi
236f0 73 2e 69 73 6f 6c 61 74 65 43 6f 76 65 72 47 72 s.isolateCoverGr
23700 61 6d 6d 61 72 28 74 68 69 73 2e 70 61 72 73 65 ammar(this.parse
23710 4c 65 66 74 48 61 6e 64 53 69 64 65 45 78 70 72 LeftHandSideExpr
23720 65 73 73 69 6f 6e 41 6c 6c 6f 77 43 61 6c 6c 29 essionAllowCall)
23730 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
23740 20 09 20 20 20 20 20 20 20 20 76 61 72 20 63 6c . var cl
23750 61 73 73 42 6f 64 79 20 3d 20 74 68 69 73 2e 70 assBody = this.p
23760 61 72 73 65 43 6c 61 73 73 42 6f 64 79 28 29 3b arseClassBody();
23770 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
23780 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 63 74 20 .context.strict
23790 3d 20 70 72 65 76 69 6f 75 73 53 74 72 69 63 74 = previousStrict
237a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 ;. . ret
237b0 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
237c0 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
237d0 2e 43 6c 61 73 73 44 65 63 6c 61 72 61 74 69 6f .ClassDeclaratio
237e0 6e 28 69 64 2c 20 73 75 70 65 72 43 6c 61 73 73 n(id, superClass
237f0 2c 20 63 6c 61 73 73 42 6f 64 79 29 29 3b 0a 20 , classBody));.
23800 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
23810 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
23820 2e 70 61 72 73 65 43 6c 61 73 73 45 78 70 72 65 .parseClassExpre
23830 73 73 69 6f 6e 20 3d 20 66 75 6e 63 74 69 6f 6e ssion = function
23840 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 () {. .
23850 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 var node = this
23860 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 .createNode();.
23870 20 09 20 20 20 20 20 20 20 20 76 61 72 20 70 72 . var pr
23880 65 76 69 6f 75 73 53 74 72 69 63 74 20 3d 20 74 eviousStrict = t
23890 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 his.context.stri
238a0 63 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ct;. . t
238b0 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 69 his.context.stri
238c0 63 74 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 ct = true;. .
238d0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
238e0 74 4b 65 79 77 6f 72 64 28 27 63 6c 61 73 73 27 tKeyword('class'
238f0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
23900 72 20 69 64 20 3d 20 28 74 68 69 73 2e 6c 6f 6f r id = (this.loo
23910 6b 61 68 65 61 64 2e 74 79 70 65 20 3d 3d 3d 20 kahead.type ===
23920 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 49 64 token_1.Token.Id
23930 65 6e 74 69 66 69 65 72 29 20 3f 20 74 68 69 73 entifier) ? this
23940 2e 70 61 72 73 65 56 61 72 69 61 62 6c 65 49 64 .parseVariableId
23950 65 6e 74 69 66 69 65 72 28 29 20 3a 20 6e 75 6c entifier() : nul
23960 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 l;. . va
23970 72 20 73 75 70 65 72 43 6c 61 73 73 20 3d 20 6e r superClass = n
23980 75 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ull;. .
23990 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 4b 65 if (this.matchKe
239a0 79 77 6f 72 64 28 27 65 78 74 65 6e 64 73 27 29 yword('extends')
239b0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
239c0 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 this.nextToke
239d0 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
239e0 20 20 20 20 73 75 70 65 72 43 6c 61 73 73 20 3d superClass =
239f0 20 74 68 69 73 2e 69 73 6f 6c 61 74 65 43 6f 76 this.isolateCov
23a00 65 72 47 72 61 6d 6d 61 72 28 74 68 69 73 2e 70 erGrammar(this.p
23a10 61 72 73 65 4c 65 66 74 48 61 6e 64 53 69 64 65 arseLeftHandSide
23a20 45 78 70 72 65 73 73 69 6f 6e 41 6c 6c 6f 77 43 ExpressionAllowC
23a30 61 6c 6c 29 3b 0a 20 20 09 20 20 20 20 20 20 20 all);. .
23a40 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 }. . va
23a50 72 20 63 6c 61 73 73 42 6f 64 79 20 3d 20 74 68 r classBody = th
23a60 69 73 2e 70 61 72 73 65 43 6c 61 73 73 42 6f 64 is.parseClassBod
23a70 79 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 y();. .
23a80 74 68 69 73 2e 63 6f 6e 74 65 78 74 2e 73 74 72 this.context.str
23a90 69 63 74 20 3d 20 70 72 65 76 69 6f 75 73 53 74 ict = previousSt
23aa0 72 69 63 74 3b 0a 20 20 09 20 20 20 20 20 20 20 rict;. .
23ab0 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e return this.fin
23ac0 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 alize(node, new
23ad0 4e 6f 64 65 2e 43 6c 61 73 73 45 78 70 72 65 73 Node.ClassExpres
23ae0 73 69 6f 6e 28 69 64 2c 20 73 75 70 65 72 43 6c sion(id, superCl
23af0 61 73 73 2c 20 63 6c 61 73 73 42 6f 64 79 29 29 ass, classBody))
23b00 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
23b10 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 // ECMA-262 1
23b20 35 2e 31 20 53 63 72 69 70 74 73 0a 20 20 09 20 5.1 Scripts. .
23b30 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 // ECMA-262 1
23b40 35 2e 32 20 4d 6f 64 75 6c 65 73 0a 20 20 09 20 5.2 Modules. .
23b50 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
23b60 79 70 65 2e 70 61 72 73 65 50 72 6f 67 72 61 6d ype.parseProgram
23b70 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
23b80 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
23b90 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a this$1 = this;..
23ba0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e . var n
23bb0 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 ode = this.creat
23bc0 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 eNode();. .
23bd0 20 20 20 20 76 61 72 20 62 6f 64 79 20 3d 20 74 var body = t
23be0 68 69 73 2e 70 61 72 73 65 44 69 72 65 63 74 69 his.parseDirecti
23bf0 76 65 50 72 6f 6c 6f 67 75 65 73 28 29 3b 0a 20 vePrologues();.
23c00 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 . while
23c10 28 74 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 (this.startMarke
23c20 72 2e 69 6e 64 65 78 20 3c 20 74 68 69 73 2e 73 r.index < this.s
23c30 63 61 6e 6e 65 72 2e 6c 65 6e 67 74 68 29 20 7b canner.length) {
23c40 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
23c50 62 6f 64 79 2e 70 75 73 68 28 74 68 69 73 24 31 body.push(this$1
23c60 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e 74 4c .parseStatementL
23c70 69 73 74 49 74 65 6d 28 29 29 3b 0a 20 20 09 20 istItem());. .
23c80 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
23c90 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
23ca0 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
23cb0 65 77 20 4e 6f 64 65 2e 50 72 6f 67 72 61 6d 28 ew Node.Program(
23cc0 62 6f 64 79 2c 20 74 68 69 73 2e 73 6f 75 72 63 body, this.sourc
23cd0 65 54 79 70 65 29 29 3b 0a 20 20 09 20 20 20 20 eType));. .
23ce0 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d };. . // ECM
23cf0 41 2d 32 36 32 20 31 35 2e 32 2e 32 20 49 6d 70 A-262 15.2.2 Imp
23d00 6f 72 74 73 0a 20 20 09 20 20 20 20 50 61 72 73 orts. . Pars
23d10 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 er.prototype.par
23d20 73 65 4d 6f 64 75 6c 65 53 70 65 63 69 66 69 65 seModuleSpecifie
23d30 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 r = function ()
23d40 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
23d50 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
23d60 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 ateNode();. .
23d70 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c if (this.l
23d80 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 20 21 3d ookahead.type !=
23d90 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e = token_1.Token.
23da0 53 74 72 69 6e 67 4c 69 74 65 72 61 6c 29 20 7b StringLiteral) {
23db0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
23dc0 74 68 69 73 2e 74 68 72 6f 77 45 72 72 6f 72 28 this.throwError(
23dd0 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 messages_1.Messa
23de0 67 65 73 2e 49 6e 76 61 6c 69 64 4d 6f 64 75 6c ges.InvalidModul
23df0 65 53 70 65 63 69 66 69 65 72 29 3b 0a 20 20 09 eSpecifier);. .
23e00 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
23e10 20 20 20 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d var token =
23e20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 this.nextToken(
23e30 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
23e40 72 20 72 61 77 20 3d 20 74 68 69 73 2e 67 65 74 r raw = this.get
23e50 54 6f 6b 65 6e 52 61 77 28 74 6f 6b 65 6e 29 3b TokenRaw(token);
23e60 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
23e70 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 rn this.finalize
23e80 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
23e90 4c 69 74 65 72 61 6c 28 74 6f 6b 65 6e 2e 76 61 Literal(token.va
23ea0 6c 75 65 2c 20 72 61 77 29 29 3b 0a 20 20 09 20 lue, raw));. .
23eb0 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 };. . //
23ec0 69 6d 70 6f 72 74 20 7b 3c 66 6f 6f 20 61 73 20 import {<foo as
23ed0 62 61 72 3e 7d 20 2e 2e 2e 3b 0a 20 20 09 20 20 bar>} ...;. .
23ee0 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 Parser.prototy
23ef0 70 65 2e 70 61 72 73 65 49 6d 70 6f 72 74 53 70 pe.parseImportSp
23f00 65 63 69 66 69 65 72 20 3d 20 66 75 6e 63 74 69 ecifier = functi
23f10 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
23f20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
23f30 69 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b is.createNode();
23f40 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
23f50 69 6d 70 6f 72 74 65 64 3b 0a 20 20 09 20 20 20 imported;. .
23f60 20 20 20 20 20 76 61 72 20 6c 6f 63 61 6c 3b 0a var local;.
23f70 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 . if (t
23f80 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 74 79 his.lookahead.ty
23f90 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 pe === token_1.T
23fa0 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 72 29 oken.Identifier)
23fb0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
23fc0 20 20 69 6d 70 6f 72 74 65 64 20 3d 20 74 68 69 imported = thi
23fd0 73 2e 70 61 72 73 65 56 61 72 69 61 62 6c 65 49 s.parseVariableI
23fe0 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 20 09 dentifier();. .
23ff0 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 loca
24000 6c 20 3d 20 69 6d 70 6f 72 74 65 64 3b 0a 20 20 l = imported;.
24010 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
24020 28 74 68 69 73 2e 6d 61 74 63 68 43 6f 6e 74 65 (this.matchConte
24030 78 74 75 61 6c 4b 65 79 77 6f 72 64 28 27 61 73 xtualKeyword('as
24040 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
24050 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 this.ne
24060 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 xtToken();. .
24070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f lo
24080 63 61 6c 20 3d 20 74 68 69 73 2e 70 61 72 73 65 cal = this.parse
24090 56 61 72 69 61 62 6c 65 49 64 65 6e 74 69 66 69 VariableIdentifi
240a0 65 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 er();. .
240b0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
240c0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 }. . e
240d0 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 lse {. .
240e0 20 20 20 20 20 69 6d 70 6f 72 74 65 64 20 3d 20 imported =
240f0 74 68 69 73 2e 70 61 72 73 65 49 64 65 6e 74 69 this.parseIdenti
24100 66 69 65 72 4e 61 6d 65 28 29 3b 0a 20 20 09 20 fierName();. .
24110 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 6c local
24120 20 3d 20 69 6d 70 6f 72 74 65 64 3b 0a 20 20 09 = imported;. .
24130 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
24140 74 68 69 73 2e 6d 61 74 63 68 43 6f 6e 74 65 78 this.matchContex
24150 74 75 61 6c 4b 65 79 77 6f 72 64 28 27 61 73 27 tualKeyword('as'
24160 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
24170 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 this.nex
24180 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 tToken();. .
24190 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 loc
241a0 61 6c 20 3d 20 74 68 69 73 2e 70 61 72 73 65 56 al = this.parseV
241b0 61 72 69 61 62 6c 65 49 64 65 6e 74 69 66 69 65 ariableIdentifie
241c0 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 r();. .
241d0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
241e0 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 else {. .
241f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
24200 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 his.throwUnexpec
24210 74 65 64 54 6f 6b 65 6e 28 74 68 69 73 2e 6e 65 tedToken(this.ne
24220 78 74 54 6f 6b 65 6e 28 29 29 3b 0a 20 20 09 20 xtToken());. .
24230 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
24240 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
24250 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
24260 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 .finalize(node,
24270 6e 65 77 20 4e 6f 64 65 2e 49 6d 70 6f 72 74 53 new Node.ImportS
24280 70 65 63 69 66 69 65 72 28 6c 6f 63 61 6c 2c 20 pecifier(local,
24290 69 6d 70 6f 72 74 65 64 29 29 3b 0a 20 20 09 20 imported));. .
242a0 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 };. . //
242b0 7b 66 6f 6f 2c 20 62 61 72 20 61 73 20 62 61 73 {foo, bar as bas
242c0 7d 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e }. . Parser.
242d0 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 4e prototype.parseN
242e0 61 6d 65 64 49 6d 70 6f 72 74 73 20 3d 20 66 75 amedImports = fu
242f0 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
24300 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 var this$
24310 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 1 = this;.. .
24320 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
24330 74 28 27 7b 27 29 3b 0a 20 20 09 20 20 20 20 20 t('{');. .
24340 20 20 20 76 61 72 20 73 70 65 63 69 66 69 65 72 var specifier
24350 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 s = [];. .
24360 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e while (!this.
24370 6d 61 74 63 68 28 27 7d 27 29 29 20 7b 0a 20 20 match('}')) {.
24380 09 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 . spe
24390 63 69 66 69 65 72 73 2e 70 75 73 68 28 74 68 69 cifiers.push(thi
243a0 73 24 31 2e 70 61 72 73 65 49 6d 70 6f 72 74 53 s$1.parseImportS
243b0 70 65 63 69 66 69 65 72 28 29 29 3b 0a 20 20 09 pecifier());. .
243c0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
243d0 21 74 68 69 73 24 31 2e 6d 61 74 63 68 28 27 7d !this$1.match('}
243e0 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ')) {. .
243f0 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
24400 65 78 70 65 63 74 28 27 2c 27 29 3b 0a 20 20 09 expect(',');. .
24410 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
24420 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
24430 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
24440 74 28 27 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 t('}');. .
24450 20 20 20 72 65 74 75 72 6e 20 73 70 65 63 69 66 return specif
24460 69 65 72 73 3b 0a 20 20 09 20 20 20 20 7d 3b 0a iers;. . };.
24470 20 20 09 20 20 20 20 2f 2f 20 69 6d 70 6f 72 74 . // import
24480 20 3c 66 6f 6f 3e 20 2e 2e 2e 3b 0a 20 20 09 20 <foo> ...;. .
24490 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 Parser.protot
244a0 79 70 65 2e 70 61 72 73 65 49 6d 70 6f 72 74 44 ype.parseImportD
244b0 65 66 61 75 6c 74 53 70 65 63 69 66 69 65 72 20 efaultSpecifier
244c0 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
244d0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e . var n
244e0 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 ode = this.creat
244f0 65 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 eNode();. .
24500 20 20 20 20 76 61 72 20 6c 6f 63 61 6c 20 3d 20 var local =
24510 74 68 69 73 2e 70 61 72 73 65 49 64 65 6e 74 69 this.parseIdenti
24520 66 69 65 72 4e 61 6d 65 28 29 3b 0a 20 20 09 20 fierName();. .
24530 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 return th
24540 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 is.finalize(node
24550 2c 20 6e 65 77 20 4e 6f 64 65 2e 49 6d 70 6f 72 , new Node.Impor
24560 74 44 65 66 61 75 6c 74 53 70 65 63 69 66 69 65 tDefaultSpecifie
24570 72 28 6c 6f 63 61 6c 29 29 3b 0a 20 20 09 20 20 r(local));. .
24580 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 69 };. . // i
24590 6d 70 6f 72 74 20 3c 2a 20 61 73 20 66 6f 6f 3e mport <* as foo>
245a0 20 2e 2e 2e 3b 0a 20 20 09 20 20 20 20 50 61 72 ...;. . Par
245b0 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
245c0 72 73 65 49 6d 70 6f 72 74 4e 61 6d 65 73 70 61 rseImportNamespa
245d0 63 65 53 70 65 63 69 66 69 65 72 20 3d 20 66 75 ceSpecifier = fu
245e0 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
245f0 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 var node
24600 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4e 6f 64 = this.createNod
24610 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 e();. .
24620 74 68 69 73 2e 65 78 70 65 63 74 28 27 2a 27 29 this.expect('*')
24630 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
24640 28 21 74 68 69 73 2e 6d 61 74 63 68 43 6f 6e 74 (!this.matchCont
24650 65 78 74 75 61 6c 4b 65 79 77 6f 72 64 28 27 61 extualKeyword('a
24660 73 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 s')) {. .
24670 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 this.throw
24680 45 72 72 6f 72 28 6d 65 73 73 61 67 65 73 5f 31 Error(messages_1
24690 2e 4d 65 73 73 61 67 65 73 2e 4e 6f 41 73 41 66 .Messages.NoAsAf
246a0 74 65 72 49 6d 70 6f 72 74 4e 61 6d 65 73 70 61 terImportNamespa
246b0 63 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ce);. .
246c0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 }. . thi
246d0 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
246e0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6c 6f . var lo
246f0 63 61 6c 20 3d 20 74 68 69 73 2e 70 61 72 73 65 cal = this.parse
24700 49 64 65 6e 74 69 66 69 65 72 4e 61 6d 65 28 29 IdentifierName()
24710 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 ;. . ret
24720 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
24730 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
24740 2e 49 6d 70 6f 72 74 4e 61 6d 65 73 70 61 63 65 .ImportNamespace
24750 53 70 65 63 69 66 69 65 72 28 6c 6f 63 61 6c 29 Specifier(local)
24760 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
24770 20 20 20 20 50 61 72 73 65 72 2e 70 72 6f 74 6f Parser.proto
24780 74 79 70 65 2e 70 61 72 73 65 49 6d 70 6f 72 74 type.parseImport
24790 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 66 75 Declaration = fu
247a0 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
247b0 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
247c0 63 6f 6e 74 65 78 74 2e 69 6e 46 75 6e 63 74 69 context.inFuncti
247d0 6f 6e 42 6f 64 79 29 20 7b 0a 20 20 09 20 20 20 onBody) {. .
247e0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
247f0 72 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 67 65 rowError(message
24800 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 49 6c 6c s_1.Messages.Ill
24810 65 67 61 6c 49 6d 70 6f 72 74 44 65 63 6c 61 72 egalImportDeclar
24820 61 74 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 20 ation);. .
24830 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
24840 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e var node = this.
24850 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a 20 20 createNode();.
24860 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 . this.ex
24870 70 65 63 74 4b 65 79 77 6f 72 64 28 27 69 6d 70 pectKeyword('imp
24880 6f 72 74 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ort');. .
24890 20 20 76 61 72 20 73 72 63 3b 0a 20 20 09 20 20 var src;. .
248a0 20 20 20 20 20 20 76 61 72 20 73 70 65 63 69 66 var specif
248b0 69 65 72 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 iers = [];. .
248c0 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c if (this.l
248d0 6f 6f 6b 61 68 65 61 64 2e 74 79 70 65 20 3d 3d ookahead.type ==
248e0 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e = token_1.Token.
248f0 53 74 72 69 6e 67 4c 69 74 65 72 61 6c 29 20 7b StringLiteral) {
24900 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
24910 2f 2f 20 69 6d 70 6f 72 74 20 27 66 6f 6f 27 3b // import 'foo';
24920 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
24930 73 72 63 20 3d 20 74 68 69 73 2e 70 61 72 73 65 src = this.parse
24940 4d 6f 64 75 6c 65 53 70 65 63 69 66 69 65 72 28 ModuleSpecifier(
24950 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
24960 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 . else
24970 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
24980 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 28 if (this.match(
24990 27 7b 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 '{')) {. .
249a0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6d // im
249b0 70 6f 72 74 20 7b 62 61 72 7d 0a 20 20 09 20 20 port {bar}. .
249c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 sp
249d0 65 63 69 66 69 65 72 73 20 3d 20 73 70 65 63 69 ecifiers = speci
249e0 66 69 65 72 73 2e 63 6f 6e 63 61 74 28 74 68 69 fiers.concat(thi
249f0 73 2e 70 61 72 73 65 4e 61 6d 65 64 49 6d 70 6f s.parseNamedImpo
24a00 72 74 73 28 29 29 3b 0a 20 20 09 20 20 20 20 20 rts());. .
24a10 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
24a20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 else if
24a30 28 74 68 69 73 2e 6d 61 74 63 68 28 27 2a 27 29 (this.match('*')
24a40 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
24a50 20 20 20 20 20 20 20 2f 2f 20 69 6d 70 6f 72 74 // import
24a60 20 2a 20 61 73 20 66 6f 6f 0a 20 20 09 20 20 20 * as foo. .
24a70 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 spe
24a80 63 69 66 69 65 72 73 2e 70 75 73 68 28 74 68 69 cifiers.push(thi
24a90 73 2e 70 61 72 73 65 49 6d 70 6f 72 74 4e 61 6d s.parseImportNam
24aa0 65 73 70 61 63 65 53 70 65 63 69 66 69 65 72 28 espaceSpecifier(
24ab0 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
24ac0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
24ad0 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 68 69 else if (thi
24ae0 73 2e 69 73 49 64 65 6e 74 69 66 69 65 72 4e 61 s.isIdentifierNa
24af0 6d 65 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 me(this.lookahea
24b00 64 29 20 26 26 20 21 74 68 69 73 2e 6d 61 74 63 d) && !this.matc
24b10 68 4b 65 79 77 6f 72 64 28 27 64 65 66 61 75 6c hKeyword('defaul
24b20 74 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 t')) {. .
24b30 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6d 70 // imp
24b40 6f 72 74 20 66 6f 6f 0a 20 20 09 20 20 20 20 20 ort foo. .
24b50 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 69 speci
24b60 66 69 65 72 73 2e 70 75 73 68 28 74 68 69 73 2e fiers.push(this.
24b70 70 61 72 73 65 49 6d 70 6f 72 74 44 65 66 61 75 parseImportDefau
24b80 6c 74 53 70 65 63 69 66 69 65 72 28 29 29 3b 0a ltSpecifier());.
24b90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
24ba0 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 if (this.matc
24bb0 68 28 27 2c 27 29 29 20 7b 0a 20 20 09 20 20 20 h(',')) {. .
24bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
24bd0 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 this.nextToken(
24be0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
24bf0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 if (th
24c00 69 73 2e 6d 61 74 63 68 28 27 2a 27 29 29 20 7b is.match('*')) {
24c10 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
24c20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 // i
24c30 6d 70 6f 72 74 20 66 6f 6f 2c 20 2a 20 61 73 20 mport foo, * as
24c40 66 6f 6f 0a 20 20 09 20 20 20 20 20 20 20 20 20 foo. .
24c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
24c60 70 65 63 69 66 69 65 72 73 2e 70 75 73 68 28 74 pecifiers.push(t
24c70 68 69 73 2e 70 61 72 73 65 49 6d 70 6f 72 74 4e his.parseImportN
24c80 61 6d 65 73 70 61 63 65 53 70 65 63 69 66 69 65 amespaceSpecifie
24c90 72 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 r());. .
24ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
24cb0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
24cc0 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 else if (t
24cd0 68 69 73 2e 6d 61 74 63 68 28 27 7b 27 29 29 20 his.match('{'))
24ce0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
24cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
24d00 69 6d 70 6f 72 74 20 66 6f 6f 2c 20 7b 62 61 72 import foo, {bar
24d10 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
24d20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 65 spe
24d30 63 69 66 69 65 72 73 20 3d 20 73 70 65 63 69 66 cifiers = specif
24d40 69 65 72 73 2e 63 6f 6e 63 61 74 28 74 68 69 73 iers.concat(this
24d50 2e 70 61 72 73 65 4e 61 6d 65 64 49 6d 70 6f 72 .parseNamedImpor
24d60 74 73 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 ts());. .
24d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
24d80 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
24d90 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 else {.
24da0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
24db0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
24dc0 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b rowUnexpectedTok
24dd0 65 6e 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 en(this.lookahea
24de0 64 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 d);. .
24df0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
24e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
24e10 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
24e20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
24e30 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
24e40 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
24e50 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 .throwUnexpected
24e60 54 6f 6b 65 6e 28 74 68 69 73 2e 6e 65 78 74 54 Token(this.nextT
24e70 6f 6b 65 6e 28 29 29 3b 0a 20 20 09 20 20 20 20 oken());. .
24e80 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
24e90 20 20 20 20 20 20 20 20 20 69 66 20 28 21 74 68 if (!th
24ea0 69 73 2e 6d 61 74 63 68 43 6f 6e 74 65 78 74 75 is.matchContextu
24eb0 61 6c 4b 65 79 77 6f 72 64 28 27 66 72 6f 6d 27 alKeyword('from'
24ec0 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
24ed0 20 20 20 20 20 20 20 20 76 61 72 20 6d 65 73 73 var mess
24ee0 61 67 65 20 3d 20 74 68 69 73 2e 6c 6f 6f 6b 61 age = this.looka
24ef0 68 65 61 64 2e 76 61 6c 75 65 20 3f 20 6d 65 73 head.value ? mes
24f00 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 sages_1.Messages
24f10 2e 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e .UnexpectedToken
24f20 20 3a 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d 65 : messages_1.Me
24f30 73 73 61 67 65 73 2e 4d 69 73 73 69 6e 67 46 72 ssages.MissingFr
24f40 6f 6d 43 6c 61 75 73 65 3b 0a 20 20 09 20 20 20 omClause;. .
24f50 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
24f60 73 2e 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 73 s.throwError(mes
24f70 73 61 67 65 2c 20 74 68 69 73 2e 6c 6f 6f 6b 61 sage, this.looka
24f80 68 65 61 64 2e 76 61 6c 75 65 29 3b 0a 20 20 09 head.value);. .
24f90 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
24fa0 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
24fb0 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
24fc0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 73 72 . sr
24fd0 63 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4d 6f c = this.parseMo
24fe0 64 75 6c 65 53 70 65 63 69 66 69 65 72 28 29 3b duleSpecifier();
24ff0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
25000 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
25010 6e 73 75 6d 65 53 65 6d 69 63 6f 6c 6f 6e 28 29 nsumeSemicolon()
25020 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 ;. . ret
25030 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
25040 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
25050 2e 49 6d 70 6f 72 74 44 65 63 6c 61 72 61 74 69 .ImportDeclarati
25060 6f 6e 28 73 70 65 63 69 66 69 65 72 73 2c 20 73 on(specifiers, s
25070 72 63 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a rc));. . };.
25080 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 . // ECMA-2
25090 36 32 20 31 35 2e 32 2e 33 20 45 78 70 6f 72 74 62 15.2.3 Export
250a0 73 0a 20 20 09 20 20 20 20 50 61 72 73 65 72 2e s. . Parser.
250b0 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 45 prototype.parseE
250c0 78 70 6f 72 74 53 70 65 63 69 66 69 65 72 20 3d xportSpecifier =
250d0 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
250e0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f . var no
250f0 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 de = this.create
25100 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 Node();. .
25110 20 20 20 76 61 72 20 6c 6f 63 61 6c 20 3d 20 74 var local = t
25120 68 69 73 2e 70 61 72 73 65 49 64 65 6e 74 69 66 his.parseIdentif
25130 69 65 72 4e 61 6d 65 28 29 3b 0a 20 20 09 20 20 ierName();. .
25140 20 20 20 20 20 20 76 61 72 20 65 78 70 6f 72 74 var export
25150 65 64 20 3d 20 6c 6f 63 61 6c 3b 0a 20 20 09 20 ed = local;. .
25160 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
25170 6d 61 74 63 68 43 6f 6e 74 65 78 74 75 61 6c 4b matchContextualK
25180 65 79 77 6f 72 64 28 27 61 73 27 29 29 20 7b 0a eyword('as')) {.
25190 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
251a0 68 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b his.nextToken();
251b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
251c0 65 78 70 6f 72 74 65 64 20 3d 20 74 68 69 73 2e exported = this.
251d0 70 61 72 73 65 49 64 65 6e 74 69 66 69 65 72 4e parseIdentifierN
251e0 61 6d 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ame();. .
251f0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 }. . r
25200 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c eturn this.final
25210 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f ize(node, new No
25220 64 65 2e 45 78 70 6f 72 74 53 70 65 63 69 66 69 de.ExportSpecifi
25230 65 72 28 6c 6f 63 61 6c 2c 20 65 78 70 6f 72 74 er(local, export
25240 65 64 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a ed));. . };.
25250 20 20 09 20 20 20 20 50 61 72 73 65 72 2e 70 72 . Parser.pr
25260 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 45 78 70 ototype.parseExp
25270 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d ortDeclaration =
25280 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
25290 20 09 20 20 20 20 20 20 20 20 76 61 72 20 74 68 . var th
252a0 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 is$1 = this;..
252b0 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
252c0 73 2e 63 6f 6e 74 65 78 74 2e 69 6e 46 75 6e 63 s.context.inFunc
252d0 74 69 6f 6e 42 6f 64 79 29 20 7b 0a 20 20 09 20 tionBody) {. .
252e0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
252f0 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 throwError(messa
25300 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 49 ges_1.Messages.I
25310 6c 6c 65 67 61 6c 45 78 70 6f 72 74 44 65 63 6c llegalExportDecl
25320 61 72 61 74 69 6f 6e 29 3b 0a 20 20 09 20 20 20 aration);. .
25330 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
25340 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
25350 73 2e 63 72 65 61 74 65 4e 6f 64 65 28 29 3b 0a s.createNode();.
25360 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
25370 65 78 70 65 63 74 4b 65 79 77 6f 72 64 28 27 65 expectKeyword('e
25380 78 70 6f 72 74 27 29 3b 0a 20 20 09 20 20 20 20 xport');. .
25390 20 20 20 20 76 61 72 20 65 78 70 6f 72 74 44 65 var exportDe
253a0 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 09 20 20 claration;. .
253b0 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d if (this.m
253c0 61 74 63 68 4b 65 79 77 6f 72 64 28 27 64 65 66 atchKeyword('def
253d0 61 75 6c 74 27 29 29 20 7b 0a 20 20 09 20 20 20 ault')) {. .
253e0 20 20 20 20 20 20 20 20 20 2f 2f 20 65 78 70 6f // expo
253f0 72 74 20 64 65 66 61 75 6c 74 20 2e 2e 2e 0a 20 rt default ....
25400 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
25410 69 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a is.nextToken();.
25420 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
25430 66 20 28 74 68 69 73 2e 6d 61 74 63 68 4b 65 79 f (this.matchKey
25440 77 6f 72 64 28 27 66 75 6e 63 74 69 6f 6e 27 29 word('function')
25450 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
25460 20 20 20 20 20 20 20 2f 2f 20 65 78 70 6f 72 74 // export
25470 20 64 65 66 61 75 6c 74 20 66 75 6e 63 74 69 6f default functio
25480 6e 20 66 6f 6f 20 28 29 20 7b 7d 0a 20 20 09 20 n foo () {}. .
25490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
254a0 2f 20 65 78 70 6f 72 74 20 64 65 66 61 75 6c 74 / export default
254b0 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 7d 0a function () {}.
254c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
254d0 20 20 20 76 61 72 20 64 65 63 6c 61 72 61 74 69 var declarati
254e0 6f 6e 20 3d 20 74 68 69 73 2e 70 61 72 73 65 46 on = this.parseF
254f0 75 6e 63 74 69 6f 6e 44 65 63 6c 61 72 61 74 69 unctionDeclarati
25500 6f 6e 28 74 72 75 65 29 3b 0a 20 20 09 20 20 20 on(true);. .
25510 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 exp
25520 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d ortDeclaration =
25530 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e this.finalize(n
25540 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 45 78 ode, new Node.Ex
25550 70 6f 72 74 44 65 66 61 75 6c 74 44 65 63 6c 61 portDefaultDecla
25560 72 61 74 69 6f 6e 28 64 65 63 6c 61 72 61 74 69 ration(declarati
25570 6f 6e 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 on));. .
25580 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
25590 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 else if (t
255a0 68 69 73 2e 6d 61 74 63 68 4b 65 79 77 6f 72 64 his.matchKeyword
255b0 28 27 63 6c 61 73 73 27 29 29 20 7b 0a 20 20 09 ('class')) {. .
255c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
255d0 2f 2f 20 65 78 70 6f 72 74 20 64 65 66 61 75 6c // export defaul
255e0 74 20 63 6c 61 73 73 20 66 6f 6f 20 7b 7d 0a 20 t class foo {}.
255f0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
25600 20 20 76 61 72 20 64 65 63 6c 61 72 61 74 69 6f var declaratio
25610 6e 20 3d 20 74 68 69 73 2e 70 61 72 73 65 43 6c n = this.parseCl
25620 61 73 73 44 65 63 6c 61 72 61 74 69 6f 6e 28 74 assDeclaration(t
25630 72 75 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 rue);. .
25640 20 20 20 20 20 20 20 20 20 65 78 70 6f 72 74 44 exportD
25650 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 74 68 69 eclaration = thi
25660 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c s.finalize(node,
25670 20 6e 65 77 20 4e 6f 64 65 2e 45 78 70 6f 72 74 new Node.Export
25680 44 65 66 61 75 6c 74 44 65 63 6c 61 72 61 74 69 DefaultDeclarati
25690 6f 6e 28 64 65 63 6c 61 72 61 74 69 6f 6e 29 29 on(declaration))
256a0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
256b0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
256c0 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
256d0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
256e0 74 68 69 73 2e 6d 61 74 63 68 43 6f 6e 74 65 78 this.matchContex
256f0 74 75 61 6c 4b 65 79 77 6f 72 64 28 27 66 72 6f tualKeyword('fro
25700 6d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 m')) {. .
25710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
25720 69 73 2e 74 68 72 6f 77 45 72 72 6f 72 28 6d 65 is.throwError(me
25730 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 ssages_1.Message
25740 73 2e 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 s.UnexpectedToke
25750 6e 2c 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 n, this.lookahea
25760 64 2e 76 61 6c 75 65 29 3b 0a 20 20 09 20 20 20 d.value);. .
25770 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
25780 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
25790 20 20 2f 2f 20 65 78 70 6f 72 74 20 64 65 66 61 // export defa
257a0 75 6c 74 20 7b 7d 3b 0a 20 20 09 20 20 20 20 20 ult {};. .
257b0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 78 // ex
257c0 70 6f 72 74 20 64 65 66 61 75 6c 74 20 5b 5d 3b port default [];
257d0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
257e0 20 20 20 20 2f 2f 20 65 78 70 6f 72 74 20 64 65 // export de
257f0 66 61 75 6c 74 20 28 31 20 2b 20 32 29 3b 0a 20 fault (1 + 2);.
25800 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
25810 20 20 76 61 72 20 64 65 63 6c 61 72 61 74 69 6f var declaratio
25820 6e 20 3d 20 74 68 69 73 2e 6d 61 74 63 68 28 27 n = this.match('
25830 7b 27 29 20 3f 20 74 68 69 73 2e 70 61 72 73 65 {') ? this.parse
25840 4f 62 6a 65 63 74 49 6e 69 74 69 61 6c 69 7a 65 ObjectInitialize
25850 72 28 29 20 3a 0a 20 20 09 20 20 20 20 20 20 20 r() :. .
25860 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
25870 73 2e 6d 61 74 63 68 28 27 5b 27 29 20 3f 20 74 s.match('[') ? t
25880 68 69 73 2e 70 61 72 73 65 41 72 72 61 79 49 6e his.parseArrayIn
25890 69 74 69 61 6c 69 7a 65 72 28 29 20 3a 20 74 68 itializer() : th
258a0 69 73 2e 70 61 72 73 65 41 73 73 69 67 6e 6d 65 is.parseAssignme
258b0 6e 74 45 78 70 72 65 73 73 69 6f 6e 28 29 3b 0a ntExpression();.
258c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
258d0 20 20 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 this.consumeS
258e0 65 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 emicolon();. .
258f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
25900 78 70 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e xportDeclaration
25910 20 3d 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 = this.finalize
25920 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 2e (node, new Node.
25930 45 78 70 6f 72 74 44 65 66 61 75 6c 74 44 65 63 ExportDefaultDec
25940 6c 61 72 61 74 69 6f 6e 28 64 65 63 6c 61 72 61 laration(declara
25950 74 69 6f 6e 29 29 3b 0a 20 20 09 20 20 20 20 20 tion));. .
25960 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
25970 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
25980 20 65 6c 73 65 20 69 66 20 28 74 68 69 73 2e 6d else if (this.m
25990 61 74 63 68 28 27 2a 27 29 29 20 7b 0a 20 20 09 atch('*')) {. .
259a0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 // e
259b0 78 70 6f 72 74 20 2a 20 66 72 6f 6d 20 27 66 6f xport * from 'fo
259c0 6f 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 o';. .
259d0 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b 65 this.nextToke
259e0 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
259f0 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 6d 61 if (!this.ma
25a00 74 63 68 43 6f 6e 74 65 78 74 75 61 6c 4b 65 79 tchContextualKey
25a10 77 6f 72 64 28 27 66 72 6f 6d 27 29 29 20 7b 0a word('from')) {.
25a20 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
25a30 20 20 20 76 61 72 20 6d 65 73 73 61 67 65 20 3d var message =
25a40 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e this.lookahead.
25a50 76 61 6c 75 65 20 3f 20 6d 65 73 73 61 67 65 73 value ? messages
25a60 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 6e 65 78 _1.Messages.Unex
25a70 70 65 63 74 65 64 54 6f 6b 65 6e 20 3a 20 6d 65 pectedToken : me
25a80 73 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 ssages_1.Message
25a90 73 2e 4d 69 73 73 69 6e 67 46 72 6f 6d 43 6c 61 s.MissingFromCla
25aa0 75 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 use;. .
25ab0 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 this.thr
25ac0 6f 77 45 72 72 6f 72 28 6d 65 73 73 61 67 65 2c owError(message,
25ad0 20 74 68 69 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e this.lookahead.
25ae0 76 61 6c 75 65 29 3b 0a 20 20 09 20 20 20 20 20 value);. .
25af0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
25b00 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 65 78 this.nex
25b10 74 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 tToken();. .
25b20 20 20 20 20 20 20 20 20 20 76 61 72 20 73 72 63 var src
25b30 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4d 6f 64 = this.parseMod
25b40 75 6c 65 53 70 65 63 69 66 69 65 72 28 29 3b 0a uleSpecifier();.
25b50 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
25b60 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 6d 69 63 his.consumeSemic
25b70 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 olon();. .
25b80 20 20 20 20 20 20 20 65 78 70 6f 72 74 44 65 63 exportDec
25b90 6c 61 72 61 74 69 6f 6e 20 3d 20 74 68 69 73 2e laration = this.
25ba0 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e finalize(node, n
25bb0 65 77 20 4e 6f 64 65 2e 45 78 70 6f 72 74 41 6c ew Node.ExportAl
25bc0 6c 44 65 63 6c 61 72 61 74 69 6f 6e 28 73 72 63 lDeclaration(src
25bd0 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d ));. . }
25be0 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 . . else
25bf0 20 69 66 20 28 74 68 69 73 2e 6c 6f 6f 6b 61 68 if (this.lookah
25c00 65 61 64 2e 74 79 70 65 20 3d 3d 3d 20 74 6f 6b ead.type === tok
25c10 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4b 65 79 77 6f en_1.Token.Keywo
25c20 72 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 rd) {. .
25c30 20 20 20 20 20 2f 2f 20 65 78 70 6f 72 74 20 76 // export v
25c40 61 72 20 66 20 3d 20 31 3b 0a 20 20 09 20 20 20 ar f = 1;. .
25c50 20 20 20 20 20 20 20 20 20 76 61 72 20 64 65 63 var dec
25c60 6c 61 72 61 74 69 6f 6e 20 3d 20 76 6f 69 64 20 laration = void
25c70 30 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 0;. .
25c80 20 20 73 77 69 74 63 68 20 28 74 68 69 73 2e 6c switch (this.l
25c90 6f 6f 6b 61 68 65 61 64 2e 76 61 6c 75 65 29 20 ookahead.value)
25ca0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
25cb0 20 20 20 20 20 63 61 73 65 20 27 6c 65 74 27 3a case 'let':
25cc0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
25cd0 20 20 20 20 63 61 73 65 20 27 63 6f 6e 73 74 27 case 'const'
25ce0 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
25cf0 20 20 20 20 20 20 20 20 20 64 65 63 6c 61 72 61 declara
25d00 74 69 6f 6e 20 3d 20 74 68 69 73 2e 70 61 72 73 tion = this.pars
25d10 65 4c 65 78 69 63 61 6c 44 65 63 6c 61 72 61 74 eLexicalDeclarat
25d20 69 6f 6e 28 7b 20 69 6e 46 6f 72 3a 20 66 61 6c ion({ inFor: fal
25d30 73 65 20 7d 29 3b 0a 20 20 09 20 20 20 20 20 20 se });. .
25d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
25d50 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
25d60 20 20 20 20 20 20 20 20 63 61 73 65 20 27 76 61 case 'va
25d70 72 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 r':. .
25d80 20 20 20 20 20 20 20 63 61 73 65 20 27 63 6c 61 case 'cla
25d90 73 73 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 ss':. .
25da0 20 20 20 20 20 20 20 20 63 61 73 65 20 27 66 75 case 'fu
25db0 6e 63 74 69 6f 6e 27 3a 0a 20 20 09 20 20 20 20 nction':. .
25dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
25dd0 64 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 74 68 declaration = th
25de0 69 73 2e 70 61 72 73 65 53 74 61 74 65 6d 65 6e is.parseStatemen
25df0 74 4c 69 73 74 49 74 65 6d 28 29 3b 0a 20 20 09 tListItem();. .
25e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
25e10 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
25e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 de
25e30 66 61 75 6c 74 3a 0a 20 20 09 20 20 20 20 20 20 fault:. .
25e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
25e50 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 is.throwUnexpect
25e60 65 64 54 6f 6b 65 6e 28 74 68 69 73 2e 6c 6f 6f edToken(this.loo
25e70 6b 61 68 65 61 64 29 3b 0a 20 20 09 20 20 20 20 kahead);. .
25e80 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
25e90 20 20 20 20 20 20 20 20 20 65 78 70 6f 72 74 44 exportD
25ea0 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 74 68 69 eclaration = thi
25eb0 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c s.finalize(node,
25ec0 20 6e 65 77 20 4e 6f 64 65 2e 45 78 70 6f 72 74 new Node.Export
25ed0 4e 61 6d 65 64 44 65 63 6c 61 72 61 74 69 6f 6e NamedDeclaration
25ee0 28 64 65 63 6c 61 72 61 74 69 6f 6e 2c 20 5b 5d (declaration, []
25ef0 2c 20 6e 75 6c 6c 29 29 3b 0a 20 20 09 20 20 20 , null));. .
25f00 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
25f10 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
25f20 20 20 20 20 20 20 20 20 76 61 72 20 73 70 65 63 var spec
25f30 69 66 69 65 72 73 20 3d 20 5b 5d 3b 0a 20 20 09 ifiers = [];. .
25f40 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
25f50 73 6f 75 72 63 65 20 3d 20 6e 75 6c 6c 3b 0a 20 source = null;.
25f60 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
25f70 72 20 69 73 45 78 70 6f 72 74 46 72 6f 6d 49 64 r isExportFromId
25f80 65 6e 74 69 66 69 65 72 20 3d 20 66 61 6c 73 65 entifier = false
25f90 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
25fa0 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 7b 27 this.expect('{'
25fb0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
25fc0 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e 6d while (!this.m
25fd0 61 74 63 68 28 27 7d 27 29 29 20 7b 0a 20 20 09 atch('}')) {. .
25fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
25ff0 69 73 45 78 70 6f 72 74 46 72 6f 6d 49 64 65 6e isExportFromIden
26000 74 69 66 69 65 72 20 3d 20 69 73 45 78 70 6f 72 tifier = isExpor
26010 74 46 72 6f 6d 49 64 65 6e 74 69 66 69 65 72 20 tFromIdentifier
26020 7c 7c 20 74 68 69 73 24 31 2e 6d 61 74 63 68 4b || this$1.matchK
26030 65 79 77 6f 72 64 28 27 64 65 66 61 75 6c 74 27 eyword('default'
26040 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
26050 20 20 20 20 20 20 73 70 65 63 69 66 69 65 72 73 specifiers
26060 2e 70 75 73 68 28 74 68 69 73 24 31 2e 70 61 72 .push(this$1.par
26070 73 65 45 78 70 6f 72 74 53 70 65 63 69 66 69 65 seExportSpecifie
26080 72 28 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 r());. .
26090 20 20 20 20 20 20 20 20 20 69 66 20 28 21 74 68 if (!th
260a0 69 73 24 31 2e 6d 61 74 63 68 28 27 7d 27 29 29 is$1.match('}'))
260b0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
260c0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
260d0 2e 65 78 70 65 63 74 28 27 2c 27 29 3b 0a 20 20 .expect(',');.
260e0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
260f0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
26100 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
26110 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 28 27 this.expect('
26120 7d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 }');. .
26130 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 if (this.mat
26140 63 68 43 6f 6e 74 65 78 74 75 61 6c 4b 65 79 77 chContextualKeyw
26150 6f 72 64 28 27 66 72 6f 6d 27 29 29 20 7b 0a 20 ord('from')) {.
26160 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
26170 20 20 2f 2f 20 65 78 70 6f 72 74 20 7b 64 65 66 // export {def
26180 61 75 6c 74 7d 20 66 72 6f 6d 20 27 66 6f 6f 27 ault} from 'foo'
26190 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
261a0 20 20 20 20 20 2f 2f 20 65 78 70 6f 72 74 20 7b // export {
261b0 66 6f 6f 7d 20 66 72 6f 6d 20 27 66 6f 6f 27 3b foo} from 'foo';
261c0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
261d0 20 20 20 20 74 68 69 73 2e 6e 65 78 74 54 6f 6b this.nextTok
261e0 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
261f0 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 20 source
26200 3d 20 74 68 69 73 2e 70 61 72 73 65 4d 6f 64 75 = this.parseModu
26210 6c 65 53 70 65 63 69 66 69 65 72 28 29 3b 0a 20 leSpecifier();.
26220 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
26230 20 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 this.consumeSe
26240 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 micolon();. .
26250 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
26260 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 else
26270 69 66 20 28 69 73 45 78 70 6f 72 74 46 72 6f 6d if (isExportFrom
26280 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 20 20 Identifier) {.
26290 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
262a0 20 2f 2f 20 65 78 70 6f 72 74 20 7b 64 65 66 61 // export {defa
262b0 75 6c 74 7d 3b 20 2f 2f 20 6d 69 73 73 69 6e 67 ult}; // missing
262c0 20 66 72 6f 6d 43 6c 61 75 73 65 0a 20 20 09 20 fromClause. .
262d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
262e0 61 72 20 6d 65 73 73 61 67 65 20 3d 20 74 68 69 ar message = thi
262f0 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 61 6c 75 s.lookahead.valu
26300 65 20 3f 20 6d 65 73 73 61 67 65 73 5f 31 2e 4d e ? messages_1.M
26310 65 73 73 61 67 65 73 2e 55 6e 65 78 70 65 63 74 essages.Unexpect
26320 65 64 54 6f 6b 65 6e 20 3a 20 6d 65 73 73 61 67 edToken : messag
26330 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 4d 69 es_1.Messages.Mi
26340 73 73 69 6e 67 46 72 6f 6d 43 6c 61 75 73 65 3b ssingFromClause;
26350 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
26360 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 45 72 this.throwEr
26370 72 6f 72 28 6d 65 73 73 61 67 65 2c 20 74 68 69 ror(message, thi
26380 73 2e 6c 6f 6f 6b 61 68 65 61 64 2e 76 61 6c 75 s.lookahead.valu
26390 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e);. .
263a0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
263b0 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
263c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f //
263d0 20 65 78 70 6f 72 74 20 7b 66 6f 6f 7d 3b 0a 20 export {foo};.
263e0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
263f0 20 20 74 68 69 73 2e 63 6f 6e 73 75 6d 65 53 65 this.consumeSe
26400 6d 69 63 6f 6c 6f 6e 28 29 3b 0a 20 20 09 20 20 micolon();. .
26410 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
26420 20 20 20 20 20 20 20 20 20 20 20 65 78 70 6f 72 expor
26430 74 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 74 tDeclaration = t
26440 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 his.finalize(nod
26450 65 2c 20 6e 65 77 20 4e 6f 64 65 2e 45 78 70 6f e, new Node.Expo
26460 72 74 4e 61 6d 65 64 44 65 63 6c 61 72 61 74 69 rtNamedDeclarati
26470 6f 6e 28 6e 75 6c 6c 2c 20 73 70 65 63 69 66 69 on(null, specifi
26480 65 72 73 2c 20 73 6f 75 72 63 65 29 29 3b 0a 20 ers, source));.
26490 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
264a0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 78 return ex
264b0 70 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e 3b portDeclaration;
264c0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
264d0 20 20 72 65 74 75 72 6e 20 50 61 72 73 65 72 3b return Parser;
264e0 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 . .}());. .exp
264f0 6f 72 74 73 2e 50 61 72 73 65 72 20 3d 20 50 61 orts.Parser = Pa
26500 72 73 65 72 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 rser;... /***/
26510 7d 2c 0a 20 20 2f 2a 20 34 20 2a 2f 0a 20 20 2f },. /* 4 */. /
26520 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f 6e 28 6d 6f ***/ function(mo
26530 64 75 6c 65 2c 20 65 78 70 6f 72 74 73 29 20 7b dule, exports) {
26540 0a 20 20 09 66 75 6e 63 74 69 6f 6e 20 61 73 73 . .function ass
26550 65 72 74 28 63 6f 6e 64 69 74 69 6f 6e 2c 20 6d ert(condition, m
26560 65 73 73 61 67 65 29 20 7b 0a 20 20 09 20 20 20 essage) {. .
26570 20 2f 2a 20 69 73 74 61 6e 62 75 6c 20 69 67 6e /* istanbul ign
26580 6f 72 65 20 69 66 20 2a 2f 0a 20 20 09 20 20 20 ore if */. .
26590 20 69 66 20 28 21 63 6f 6e 64 69 74 69 6f 6e 29 if (!condition)
265a0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
265b0 72 6f 77 20 6e 65 77 20 45 72 72 6f 72 28 27 41 row new Error('A
265c0 53 53 45 52 54 3a 20 27 20 2b 20 6d 65 73 73 61 SSERT: ' + messa
265d0 67 65 29 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 ge);. . }.
265e0 09 7d 0a 20 20 09 65 78 70 6f 72 74 73 2e 61 73 .}. .exports.as
265f0 73 65 72 74 20 3d 20 61 73 73 65 72 74 3b 0a 0a sert = assert;..
26600 0a 20 20 2f 2a 2a 2a 2f 20 7d 2c 0a 20 20 2f 2a . /***/ },. /*
26610 20 35 20 2a 2f 0a 20 20 2f 2a 2a 2a 2f 20 66 75 5 */. /***/ fu
26620 6e 63 74 69 6f 6e 28 6d 6f 64 75 6c 65 2c 20 65 nction(module, e
26630 78 70 6f 72 74 73 29 20 7b 0a 20 20 09 2f 2f 20 xports) {. .//
26640 45 72 72 6f 72 20 6d 65 73 73 61 67 65 73 20 73 Error messages s
26650 68 6f 75 6c 64 20 62 65 20 69 64 65 6e 74 69 63 hould be identic
26660 61 6c 20 74 6f 20 56 38 2e 0a 20 20 09 65 78 70 al to V8.. .exp
26670 6f 72 74 73 2e 4d 65 73 73 61 67 65 73 20 3d 20 orts.Messages =
26680 7b 0a 20 20 09 20 20 20 20 55 6e 65 78 70 65 63 {. . Unexpec
26690 74 65 64 54 6f 6b 65 6e 3a 20 27 55 6e 65 78 70 tedToken: 'Unexp
266a0 65 63 74 65 64 20 74 6f 6b 65 6e 20 25 30 27 2c ected token %0',
266b0 0a 20 20 09 20 20 20 20 55 6e 65 78 70 65 63 74 . . Unexpect
266c0 65 64 54 6f 6b 65 6e 49 6c 6c 65 67 61 6c 3a 20 edTokenIllegal:
266d0 27 55 6e 65 78 70 65 63 74 65 64 20 74 6f 6b 65 'Unexpected toke
266e0 6e 20 49 4c 4c 45 47 41 4c 27 2c 0a 20 20 09 20 n ILLEGAL',. .
266f0 20 20 20 55 6e 65 78 70 65 63 74 65 64 4e 75 6d UnexpectedNum
26700 62 65 72 3a 20 27 55 6e 65 78 70 65 63 74 65 64 ber: 'Unexpected
26710 20 6e 75 6d 62 65 72 27 2c 0a 20 20 09 20 20 20 number',. .
26720 20 55 6e 65 78 70 65 63 74 65 64 53 74 72 69 6e UnexpectedStrin
26730 67 3a 20 27 55 6e 65 78 70 65 63 74 65 64 20 73 g: 'Unexpected s
26740 74 72 69 6e 67 27 2c 0a 20 20 09 20 20 20 20 55 tring',. . U
26750 6e 65 78 70 65 63 74 65 64 49 64 65 6e 74 69 66 nexpectedIdentif
26760 69 65 72 3a 20 27 55 6e 65 78 70 65 63 74 65 64 ier: 'Unexpected
26770 20 69 64 65 6e 74 69 66 69 65 72 27 2c 0a 20 20 identifier',.
26780 09 20 20 20 20 55 6e 65 78 70 65 63 74 65 64 52 . UnexpectedR
26790 65 73 65 72 76 65 64 3a 20 27 55 6e 65 78 70 65 eserved: 'Unexpe
267a0 63 74 65 64 20 72 65 73 65 72 76 65 64 20 77 6f cted reserved wo
267b0 72 64 27 2c 0a 20 20 09 20 20 20 20 55 6e 65 78 rd',. . Unex
267c0 70 65 63 74 65 64 54 65 6d 70 6c 61 74 65 3a 20 pectedTemplate:
267d0 27 55 6e 65 78 70 65 63 74 65 64 20 71 75 61 73 'Unexpected quas
267e0 69 20 25 30 27 2c 0a 20 20 09 20 20 20 20 55 6e i %0',. . Un
267f0 65 78 70 65 63 74 65 64 45 4f 53 3a 20 27 55 6e expectedEOS: 'Un
26800 65 78 70 65 63 74 65 64 20 65 6e 64 20 6f 66 20 expected end of
26810 69 6e 70 75 74 27 2c 0a 20 20 09 20 20 20 20 4e input',. . N
26820 65 77 6c 69 6e 65 41 66 74 65 72 54 68 72 6f 77 ewlineAfterThrow
26830 3a 20 27 49 6c 6c 65 67 61 6c 20 6e 65 77 6c 69 : 'Illegal newli
26840 6e 65 20 61 66 74 65 72 20 74 68 72 6f 77 27 2c ne after throw',
26850 0a 20 20 09 20 20 20 20 49 6e 76 61 6c 69 64 52 . . InvalidR
26860 65 67 45 78 70 3a 20 27 49 6e 76 61 6c 69 64 20 egExp: 'Invalid
26870 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 regular expressi
26880 6f 6e 27 2c 0a 20 20 09 20 20 20 20 55 6e 74 65 on',. . Unte
26890 72 6d 69 6e 61 74 65 64 52 65 67 45 78 70 3a 20 rminatedRegExp:
268a0 27 49 6e 76 61 6c 69 64 20 72 65 67 75 6c 61 72 'Invalid regular
268b0 20 65 78 70 72 65 73 73 69 6f 6e 3a 20 6d 69 73 expression: mis
268c0 73 69 6e 67 20 2f 27 2c 0a 20 20 09 20 20 20 20 sing /',. .
268d0 49 6e 76 61 6c 69 64 4c 48 53 49 6e 41 73 73 69 InvalidLHSInAssi
268e0 67 6e 6d 65 6e 74 3a 20 27 49 6e 76 61 6c 69 64 gnment: 'Invalid
268f0 20 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 65 20 left-hand side
26900 69 6e 20 61 73 73 69 67 6e 6d 65 6e 74 27 2c 0a in assignment',.
26910 20 20 09 20 20 20 20 49 6e 76 61 6c 69 64 4c 48 . InvalidLH
26920 53 49 6e 46 6f 72 49 6e 3a 20 27 49 6e 76 61 6c SInForIn: 'Inval
26930 69 64 20 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 id left-hand sid
26940 65 20 69 6e 20 66 6f 72 2d 69 6e 27 2c 0a 20 20 e in for-in',.
26950 09 20 20 20 20 49 6e 76 61 6c 69 64 4c 48 53 49 . InvalidLHSI
26960 6e 46 6f 72 4c 6f 6f 70 3a 20 27 49 6e 76 61 6c nForLoop: 'Inval
26970 69 64 20 6c 65 66 74 2d 68 61 6e 64 20 73 69 64 id left-hand sid
26980 65 20 69 6e 20 66 6f 72 2d 6c 6f 6f 70 27 2c 0a e in for-loop',.
26990 20 20 09 20 20 20 20 4d 75 6c 74 69 70 6c 65 44 . MultipleD
269a0 65 66 61 75 6c 74 73 49 6e 53 77 69 74 63 68 3a efaultsInSwitch:
269b0 20 27 4d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 'More than one
269c0 64 65 66 61 75 6c 74 20 63 6c 61 75 73 65 20 69 default clause i
269d0 6e 20 73 77 69 74 63 68 20 73 74 61 74 65 6d 65 n switch stateme
269e0 6e 74 27 2c 0a 20 20 09 20 20 20 20 4e 6f 43 61 nt',. . NoCa
269f0 74 63 68 4f 72 46 69 6e 61 6c 6c 79 3a 20 27 4d tchOrFinally: 'M
26a00 69 73 73 69 6e 67 20 63 61 74 63 68 20 6f 72 20 issing catch or
26a10 66 69 6e 61 6c 6c 79 20 61 66 74 65 72 20 74 72 finally after tr
26a20 79 27 2c 0a 20 20 09 20 20 20 20 55 6e 6b 6e 6f y',. . Unkno
26a30 77 6e 4c 61 62 65 6c 3a 20 27 55 6e 64 65 66 69 wnLabel: 'Undefi
26a40 6e 65 64 20 6c 61 62 65 6c 20 5c 27 25 30 5c 27 ned label \'%0\'
26a50 27 2c 0a 20 20 09 20 20 20 20 52 65 64 65 63 6c ',. . Redecl
26a60 61 72 61 74 69 6f 6e 3a 20 27 25 30 20 5c 27 25 aration: '%0 \'%
26a70 31 5c 27 20 68 61 73 20 61 6c 72 65 61 64 79 20 1\' has already
26a80 62 65 65 6e 20 64 65 63 6c 61 72 65 64 27 2c 0a been declared',.
26a90 20 20 09 20 20 20 20 49 6c 6c 65 67 61 6c 43 6f . IllegalCo
26aa0 6e 74 69 6e 75 65 3a 20 27 49 6c 6c 65 67 61 6c ntinue: 'Illegal
26ab0 20 63 6f 6e 74 69 6e 75 65 20 73 74 61 74 65 6d continue statem
26ac0 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 49 6c 6c ent',. . Ill
26ad0 65 67 61 6c 42 72 65 61 6b 3a 20 27 49 6c 6c 65 egalBreak: 'Ille
26ae0 67 61 6c 20 62 72 65 61 6b 20 73 74 61 74 65 6d gal break statem
26af0 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 49 6c 6c ent',. . Ill
26b00 65 67 61 6c 52 65 74 75 72 6e 3a 20 27 49 6c 6c egalReturn: 'Ill
26b10 65 67 61 6c 20 72 65 74 75 72 6e 20 73 74 61 74 egal return stat
26b20 65 6d 65 6e 74 27 2c 0a 20 20 09 20 20 20 20 53 ement',. . S
26b30 74 72 69 63 74 4d 6f 64 65 57 69 74 68 3a 20 27 trictModeWith: '
26b40 53 74 72 69 63 74 20 6d 6f 64 65 20 63 6f 64 65 Strict mode code
26b50 20 6d 61 79 20 6e 6f 74 20 69 6e 63 6c 75 64 65 may not include
26b60 20 61 20 77 69 74 68 20 73 74 61 74 65 6d 65 6e a with statemen
26b70 74 27 2c 0a 20 20 09 20 20 20 20 53 74 72 69 63 t',. . Stric
26b80 74 43 61 74 63 68 56 61 72 69 61 62 6c 65 3a 20 tCatchVariable:
26b90 27 43 61 74 63 68 20 76 61 72 69 61 62 6c 65 20 'Catch variable
26ba0 6d 61 79 20 6e 6f 74 20 62 65 20 65 76 61 6c 20 may not be eval
26bb0 6f 72 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 or arguments in
26bc0 73 74 72 69 63 74 20 6d 6f 64 65 27 2c 0a 20 20 strict mode',.
26bd0 09 20 20 20 20 53 74 72 69 63 74 56 61 72 4e 61 . StrictVarNa
26be0 6d 65 3a 20 27 56 61 72 69 61 62 6c 65 20 6e 61 me: 'Variable na
26bf0 6d 65 20 6d 61 79 20 6e 6f 74 20 62 65 20 65 76 me may not be ev
26c00 61 6c 20 6f 72 20 61 72 67 75 6d 65 6e 74 73 20 al or arguments
26c10 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 27 2c in strict mode',
26c20 0a 20 20 09 20 20 20 20 53 74 72 69 63 74 50 61 . . StrictPa
26c30 72 61 6d 4e 61 6d 65 3a 20 27 50 61 72 61 6d 65 ramName: 'Parame
26c40 74 65 72 20 6e 61 6d 65 20 65 76 61 6c 20 6f 72 ter name eval or
26c50 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 6e 6f arguments is no
26c60 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 73 74 72 t allowed in str
26c70 69 63 74 20 6d 6f 64 65 27 2c 0a 20 20 09 20 20 ict mode',. .
26c80 20 20 53 74 72 69 63 74 50 61 72 61 6d 44 75 70 StrictParamDup
26c90 65 3a 20 27 53 74 72 69 63 74 20 6d 6f 64 65 20 e: 'Strict mode
26ca0 66 75 6e 63 74 69 6f 6e 20 6d 61 79 20 6e 6f 74 function may not
26cb0 20 68 61 76 65 20 64 75 70 6c 69 63 61 74 65 20 have duplicate
26cc0 70 61 72 61 6d 65 74 65 72 20 6e 61 6d 65 73 27 parameter names'
26cd0 2c 0a 20 20 09 20 20 20 20 53 74 72 69 63 74 46 ,. . StrictF
26ce0 75 6e 63 74 69 6f 6e 4e 61 6d 65 3a 20 27 46 75 unctionName: 'Fu
26cf0 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 6d 61 79 20 nction name may
26d00 6e 6f 74 20 62 65 20 65 76 61 6c 20 6f 72 20 61 not be eval or a
26d10 72 67 75 6d 65 6e 74 73 20 69 6e 20 73 74 72 69 rguments in stri
26d20 63 74 20 6d 6f 64 65 27 2c 0a 20 20 09 20 20 20 ct mode',. .
26d30 20 53 74 72 69 63 74 4f 63 74 61 6c 4c 69 74 65 StrictOctalLite
26d40 72 61 6c 3a 20 27 4f 63 74 61 6c 20 6c 69 74 65 ral: 'Octal lite
26d50 72 61 6c 73 20 61 72 65 20 6e 6f 74 20 61 6c 6c rals are not all
26d60 6f 77 65 64 20 69 6e 20 73 74 72 69 63 74 20 6d owed in strict m
26d70 6f 64 65 2e 27 2c 0a 20 20 09 20 20 20 20 53 74 ode.',. . St
26d80 72 69 63 74 44 65 6c 65 74 65 3a 20 27 44 65 6c rictDelete: 'Del
26d90 65 74 65 20 6f 66 20 61 6e 20 75 6e 71 75 61 6c ete of an unqual
26da0 69 66 69 65 64 20 69 64 65 6e 74 69 66 69 65 72 ified identifier
26db0 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 2e in strict mode.
26dc0 27 2c 0a 20 20 09 20 20 20 20 53 74 72 69 63 74 ',. . Strict
26dd0 4c 48 53 41 73 73 69 67 6e 6d 65 6e 74 3a 20 27 LHSAssignment: '
26de0 41 73 73 69 67 6e 6d 65 6e 74 20 74 6f 20 65 76 Assignment to ev
26df0 61 6c 20 6f 72 20 61 72 67 75 6d 65 6e 74 73 20 al or arguments
26e00 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 is not allowed i
26e10 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 27 2c 0a n strict mode',.
26e20 20 20 09 20 20 20 20 53 74 72 69 63 74 4c 48 53 . StrictLHS
26e30 50 6f 73 74 66 69 78 3a 20 27 50 6f 73 74 66 69 Postfix: 'Postfi
26e40 78 20 69 6e 63 72 65 6d 65 6e 74 2f 64 65 63 72 x increment/decr
26e50 65 6d 65 6e 74 20 6d 61 79 20 6e 6f 74 20 68 61 ement may not ha
26e60 76 65 20 65 76 61 6c 20 6f 72 20 61 72 67 75 6d ve eval or argum
26e70 65 6e 74 73 20 6f 70 65 72 61 6e 64 20 69 6e 20 ents operand in
26e80 73 74 72 69 63 74 20 6d 6f 64 65 27 2c 0a 20 20 strict mode',.
26e90 09 20 20 20 20 53 74 72 69 63 74 4c 48 53 50 72 . StrictLHSPr
26ea0 65 66 69 78 3a 20 27 50 72 65 66 69 78 20 69 6e efix: 'Prefix in
26eb0 63 72 65 6d 65 6e 74 2f 64 65 63 72 65 6d 65 6e crement/decremen
26ec0 74 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 65 t may not have e
26ed0 76 61 6c 20 6f 72 20 61 72 67 75 6d 65 6e 74 73 val or arguments
26ee0 20 6f 70 65 72 61 6e 64 20 69 6e 20 73 74 72 69 operand in stri
26ef0 63 74 20 6d 6f 64 65 27 2c 0a 20 20 09 20 20 20 ct mode',. .
26f00 20 53 74 72 69 63 74 52 65 73 65 72 76 65 64 57 StrictReservedW
26f10 6f 72 64 3a 20 27 55 73 65 20 6f 66 20 66 75 74 ord: 'Use of fut
26f20 75 72 65 20 72 65 73 65 72 76 65 64 20 77 6f 72 ure reserved wor
26f30 64 20 69 6e 20 73 74 72 69 63 74 20 6d 6f 64 65 d in strict mode
26f40 27 2c 0a 20 20 09 20 20 20 20 54 65 6d 70 6c 61 ',. . Templa
26f50 74 65 4f 63 74 61 6c 4c 69 74 65 72 61 6c 3a 20 teOctalLiteral:
26f60 27 4f 63 74 61 6c 20 6c 69 74 65 72 61 6c 73 20 'Octal literals
26f70 61 72 65 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 are not allowed
26f80 69 6e 20 74 65 6d 70 6c 61 74 65 20 73 74 72 69 in template stri
26f90 6e 67 73 2e 27 2c 0a 20 20 09 20 20 20 20 50 61 ngs.',. . Pa
26fa0 72 61 6d 65 74 65 72 41 66 74 65 72 52 65 73 74 rameterAfterRest
26fb0 50 61 72 61 6d 65 74 65 72 3a 20 27 52 65 73 74 Parameter: 'Rest
26fc0 20 70 61 72 61 6d 65 74 65 72 20 6d 75 73 74 20 parameter must
26fd0 62 65 20 6c 61 73 74 20 66 6f 72 6d 61 6c 20 70 be last formal p
26fe0 61 72 61 6d 65 74 65 72 27 2c 0a 20 20 09 20 20 arameter',. .
26ff0 20 20 44 65 66 61 75 6c 74 52 65 73 74 50 61 72 DefaultRestPar
27000 61 6d 65 74 65 72 3a 20 27 55 6e 65 78 70 65 63 ameter: 'Unexpec
27010 74 65 64 20 74 6f 6b 65 6e 20 3d 27 2c 0a 20 20 ted token =',.
27020 09 20 20 20 20 44 75 70 6c 69 63 61 74 65 50 72 . DuplicatePr
27030 6f 74 6f 50 72 6f 70 65 72 74 79 3a 20 27 44 75 otoProperty: 'Du
27040 70 6c 69 63 61 74 65 20 5f 5f 70 72 6f 74 6f 5f plicate __proto_
27050 5f 20 66 69 65 6c 64 73 20 61 72 65 20 6e 6f 74 _ fields are not
27060 20 61 6c 6c 6f 77 65 64 20 69 6e 20 6f 62 6a 65 allowed in obje
27070 63 74 20 6c 69 74 65 72 61 6c 73 27 2c 0a 20 20 ct literals',.
27080 09 20 20 20 20 43 6f 6e 73 74 72 75 63 74 6f 72 . Constructor
27090 53 70 65 63 69 61 6c 4d 65 74 68 6f 64 3a 20 27 SpecialMethod: '
270a0 43 6c 61 73 73 20 63 6f 6e 73 74 72 75 63 74 6f Class constructo
270b0 72 20 6d 61 79 20 6e 6f 74 20 62 65 20 61 6e 20 r may not be an
270c0 61 63 63 65 73 73 6f 72 27 2c 0a 20 20 09 20 20 accessor',. .
270d0 20 20 44 75 70 6c 69 63 61 74 65 43 6f 6e 73 74 DuplicateConst
270e0 72 75 63 74 6f 72 3a 20 27 41 20 63 6c 61 73 73 ructor: 'A class
270f0 20 6d 61 79 20 6f 6e 6c 79 20 68 61 76 65 20 6f may only have o
27100 6e 65 20 63 6f 6e 73 74 72 75 63 74 6f 72 27 2c ne constructor',
27110 0a 20 20 09 20 20 20 20 53 74 61 74 69 63 50 72 . . StaticPr
27120 6f 74 6f 74 79 70 65 3a 20 27 43 6c 61 73 73 65 ototype: 'Classe
27130 73 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 73 s may not have s
27140 74 61 74 69 63 20 70 72 6f 70 65 72 74 79 20 6e tatic property n
27150 61 6d 65 64 20 70 72 6f 74 6f 74 79 70 65 27 2c amed prototype',
27160 0a 20 20 09 20 20 20 20 4d 69 73 73 69 6e 67 46 . . MissingF
27170 72 6f 6d 43 6c 61 75 73 65 3a 20 27 55 6e 65 78 romClause: 'Unex
27180 70 65 63 74 65 64 20 74 6f 6b 65 6e 27 2c 0a 20 pected token',.
27190 20 09 20 20 20 20 4e 6f 41 73 41 66 74 65 72 49 . NoAsAfterI
271a0 6d 70 6f 72 74 4e 61 6d 65 73 70 61 63 65 3a 20 mportNamespace:
271b0 27 55 6e 65 78 70 65 63 74 65 64 20 74 6f 6b 65 'Unexpected toke
271c0 6e 27 2c 0a 20 20 09 20 20 20 20 49 6e 76 61 6c n',. . Inval
271d0 69 64 4d 6f 64 75 6c 65 53 70 65 63 69 66 69 65 idModuleSpecifie
271e0 72 3a 20 27 55 6e 65 78 70 65 63 74 65 64 20 74 r: 'Unexpected t
271f0 6f 6b 65 6e 27 2c 0a 20 20 09 20 20 20 20 49 6c oken',. . Il
27200 6c 65 67 61 6c 49 6d 70 6f 72 74 44 65 63 6c 61 legalImportDecla
27210 72 61 74 69 6f 6e 3a 20 27 55 6e 65 78 70 65 63 ration: 'Unexpec
27220 74 65 64 20 74 6f 6b 65 6e 27 2c 0a 20 20 09 20 ted token',. .
27230 20 20 20 49 6c 6c 65 67 61 6c 45 78 70 6f 72 74 IllegalExport
27240 44 65 63 6c 61 72 61 74 69 6f 6e 3a 20 27 55 6e Declaration: 'Un
27250 65 78 70 65 63 74 65 64 20 74 6f 6b 65 6e 27 2c expected token',
27260 0a 20 20 09 20 20 20 20 44 75 70 6c 69 63 61 74 . . Duplicat
27270 65 42 69 6e 64 69 6e 67 3a 20 27 44 75 70 6c 69 eBinding: 'Dupli
27280 63 61 74 65 20 62 69 6e 64 69 6e 67 20 25 30 27 cate binding %0'
27290 2c 0a 20 20 09 20 20 20 20 46 6f 72 49 6e 4f 66 ,. . ForInOf
272a0 4c 6f 6f 70 49 6e 69 74 69 61 6c 69 7a 65 72 3a LoopInitializer:
272b0 20 27 25 30 20 6c 6f 6f 70 20 76 61 72 69 61 62 '%0 loop variab
272c0 6c 65 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 6d le declaration m
272d0 61 79 20 6e 6f 74 20 68 61 76 65 20 61 6e 20 69 ay not have an i
272e0 6e 69 74 69 61 6c 69 7a 65 72 27 0a 20 20 09 7d nitializer'. .}
272f0 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d 2c 0a 20 ;... /***/ },.
27300 20 2f 2a 20 36 20 2a 2f 0a 20 20 2f 2a 2a 2a 2f /* 6 */. /***/
27310 20 66 75 6e 63 74 69 6f 6e 28 6d 6f 64 75 6c 65 function(module
27320 2c 20 65 78 70 6f 72 74 73 29 20 7b 0a 20 20 09 , exports) {. .
27330 76 61 72 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 var ErrorHandler
27340 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
27350 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
27360 6e 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 29 n ErrorHandler()
27370 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
27380 69 73 2e 65 72 72 6f 72 73 20 3d 20 5b 5d 3b 0a is.errors = [];.
27390 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
273a0 74 6f 6c 65 72 61 6e 74 20 3d 20 66 61 6c 73 65 tolerant = false
273b0 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 ;. . }. .
273c0 20 20 0a 20 20 09 20 20 20 20 45 72 72 6f 72 48 . . ErrorH
273d0 61 6e 64 6c 65 72 2e 70 72 6f 74 6f 74 79 70 65 andler.prototype
273e0 2e 72 65 63 6f 72 64 45 72 72 6f 72 20 3d 20 66 .recordError = f
273f0 75 6e 63 74 69 6f 6e 20 28 65 72 72 6f 72 29 20 unction (error)
27400 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 {. . thi
27410 73 2e 65 72 72 6f 72 73 2e 70 75 73 68 28 65 72 s.errors.push(er
27420 72 6f 72 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a ror);. . };.
27430 20 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 45 . . . E
27440 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 72 6f 74 rrorHandler.prot
27450 6f 74 79 70 65 2e 74 6f 6c 65 72 61 74 65 20 3d otype.tolerate =
27460 20 66 75 6e 63 74 69 6f 6e 20 28 65 72 72 6f 72 function (error
27470 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 69 ) {. . i
27480 66 20 28 74 68 69 73 2e 74 6f 6c 65 72 61 6e 74 f (this.tolerant
27490 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
274a0 20 20 20 74 68 69 73 2e 72 65 63 6f 72 64 45 72 this.recordEr
274b0 72 6f 72 28 65 72 72 6f 72 29 3b 0a 20 20 09 20 ror(error);. .
274c0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
274d0 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
274e0 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 throw
274f0 65 72 72 6f 72 3b 0a 20 20 09 20 20 20 20 20 20 error;. .
27500 20 20 7d 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 }. . };.
27510 09 20 20 20 20 0a 20 20 09 20 20 20 20 45 72 72 . . . Err
27520 6f 72 48 61 6e 64 6c 65 72 2e 70 72 6f 74 6f 74 orHandler.protot
27530 79 70 65 2e 63 6f 6e 73 74 72 75 63 74 45 72 72 ype.constructErr
27540 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 6d or = function (m
27550 73 67 2c 20 63 6f 6c 75 6d 6e 29 20 7b 0a 20 20 sg, column) {.
27560 09 20 20 20 20 20 20 20 20 76 61 72 20 65 72 72 . var err
27570 6f 72 20 3d 20 6e 65 77 20 45 72 72 6f 72 28 6d or = new Error(m
27580 73 67 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 sg);. .
27590 74 72 79 20 7b 0a 20 20 09 20 20 20 20 20 20 20 try {. .
275a0 20 20 20 20 20 74 68 72 6f 77 20 65 72 72 6f 72 throw error
275b0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
275c0 20 09 20 20 20 20 20 20 20 20 63 61 74 63 68 20 . catch
275d0 28 62 61 73 65 29 20 7b 0a 20 20 09 20 20 20 20 (base) {. .
275e0 20 20 20 20 20 20 20 20 2f 2a 20 69 73 74 61 6e /* istan
275f0 62 75 6c 20 69 67 6e 6f 72 65 20 65 6c 73 65 20 bul ignore else
27600 2a 2f 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 */. .
27610 20 20 69 66 20 28 4f 62 6a 65 63 74 2e 63 72 65 if (Object.cre
27620 61 74 65 20 26 26 20 4f 62 6a 65 63 74 2e 64 65 ate && Object.de
27630 66 69 6e 65 50 72 6f 70 65 72 74 79 29 20 7b 0a fineProperty) {.
27640 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
27650 20 20 20 65 72 72 6f 72 20 3d 20 4f 62 6a 65 63 error = Objec
27660 74 2e 63 72 65 61 74 65 28 62 61 73 65 29 3b 0a t.create(base);.
27670 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
27680 20 20 20 4f 62 6a 65 63 74 2e 64 65 66 69 6e 65 Object.define
27690 50 72 6f 70 65 72 74 79 28 65 72 72 6f 72 2c 20 Property(error,
276a0 27 63 6f 6c 75 6d 6e 27 2c 20 7b 20 76 61 6c 75 'column', { valu
276b0 65 3a 20 63 6f 6c 75 6d 6e 20 7d 29 3b 0a 20 20 e: column });.
276c0 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
276d0 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
276e0 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 7b finally {
276f0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
27700 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 return error;.
27710 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
27720 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 };. . . .
27730 20 20 20 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 ErrorHandler
27740 2e 70 72 6f 74 6f 74 79 70 65 2e 63 72 65 61 74 .prototype.creat
27750 65 45 72 72 6f 72 20 3d 20 66 75 6e 63 74 69 6f eError = functio
27760 6e 20 28 69 6e 64 65 78 2c 20 6c 69 6e 65 2c 20 n (index, line,
27770 63 6f 6c 2c 20 64 65 73 63 72 69 70 74 69 6f 6e col, description
27780 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
27790 61 72 20 6d 73 67 20 3d 20 27 4c 69 6e 65 20 27 ar msg = 'Line '
277a0 20 2b 20 6c 69 6e 65 20 2b 20 27 3a 20 27 20 2b + line + ': ' +
277b0 20 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 20 20 description;.
277c0 09 20 20 20 20 20 20 20 20 76 61 72 20 65 72 72 . var err
277d0 6f 72 20 3d 20 74 68 69 73 2e 63 6f 6e 73 74 72 or = this.constr
277e0 75 63 74 45 72 72 6f 72 28 6d 73 67 2c 20 63 6f uctError(msg, co
277f0 6c 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 65 l);. . e
27800 72 72 6f 72 2e 69 6e 64 65 78 20 3d 20 69 6e 64 rror.index = ind
27810 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 65 ex;. . e
27820 72 72 6f 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 rror.lineNumber
27830 3d 20 6c 69 6e 65 3b 0a 20 20 09 20 20 20 20 20 = line;. .
27840 20 20 20 65 72 72 6f 72 2e 64 65 73 63 72 69 70 error.descrip
27850 74 69 6f 6e 20 3d 20 64 65 73 63 72 69 70 74 69 tion = descripti
27860 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 on;. . r
27870 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 09 eturn error;. .
27880 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 };. . .
27890 20 09 20 20 20 20 45 72 72 6f 72 48 61 6e 64 6c . ErrorHandl
278a0 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 74 68 72 er.prototype.thr
278b0 6f 77 45 72 72 6f 72 20 3d 20 66 75 6e 63 74 69 owError = functi
278c0 6f 6e 20 28 69 6e 64 65 78 2c 20 6c 69 6e 65 2c on (index, line,
278d0 20 63 6f 6c 2c 20 64 65 73 63 72 69 70 74 69 6f col, descriptio
278e0 6e 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 n) {. .
278f0 74 68 72 6f 77 20 74 68 69 73 2e 63 72 65 61 74 throw this.creat
27900 65 45 72 72 6f 72 28 69 6e 64 65 78 2c 20 6c 69 eError(index, li
27910 6e 65 2c 20 63 6f 6c 2c 20 64 65 73 63 72 69 70 ne, col, descrip
27920 74 69 6f 6e 29 3b 0a 20 20 09 20 20 20 20 7d 3b tion);. . };
27930 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 . . . .
27940 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 72 6f ErrorHandler.pro
27950 74 6f 74 79 70 65 2e 74 6f 6c 65 72 61 74 65 45 totype.tolerateE
27960 72 72 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 rror = function
27970 28 69 6e 64 65 78 2c 20 6c 69 6e 65 2c 20 63 6f (index, line, co
27980 6c 2c 20 64 65 73 63 72 69 70 74 69 6f 6e 29 20 l, description)
27990 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
279a0 20 65 72 72 6f 72 20 3d 20 74 68 69 73 2e 63 72 error = this.cr
279b0 65 61 74 65 45 72 72 6f 72 28 69 6e 64 65 78 2c eateError(index,
279c0 20 6c 69 6e 65 2c 20 63 6f 6c 2c 20 64 65 73 63 line, col, desc
279d0 72 69 70 74 69 6f 6e 29 3b 0a 20 20 09 20 20 20 ription);. .
279e0 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 74 6f if (this.to
279f0 6c 65 72 61 6e 74 29 20 7b 0a 20 20 09 20 20 20 lerant) {. .
27a00 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 65 this.re
27a10 63 6f 72 64 45 72 72 6f 72 28 65 72 72 6f 72 29 cordError(error)
27a20 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
27a30 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b . else {
27a40 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
27a50 74 68 72 6f 77 20 65 72 72 6f 72 3b 0a 20 20 09 throw error;. .
27a60 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
27a70 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 };. . . .
27a80 20 20 20 72 65 74 75 72 6e 20 45 72 72 6f 72 48 return ErrorH
27a90 61 6e 64 6c 65 72 3b 0a 20 20 09 7d 28 29 29 3b andler;. .}());
27aa0 0a 20 20 09 65 78 70 6f 72 74 73 2e 45 72 72 6f . .exports.Erro
27ab0 72 48 61 6e 64 6c 65 72 20 3d 20 45 72 72 6f 72 rHandler = Error
27ac0 48 61 6e 64 6c 65 72 3b 0a 0a 0a 20 20 2f 2a 2a Handler;... /**
27ad0 2a 2f 20 7d 2c 0a 20 20 2f 2a 20 37 20 2a 2f 0a */ },. /* 7 */.
27ae0 20 20 2f 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f 6e /***/ function
27af0 28 6d 6f 64 75 6c 65 2c 20 65 78 70 6f 72 74 73 (module, exports
27b00 29 20 7b 0a 20 20 09 28 66 75 6e 63 74 69 6f 6e ) {. .(function
27b10 20 28 54 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 20 (Token) {. .
27b20 20 20 54 6f 6b 65 6e 5b 54 6f 6b 65 6e 5b 22 42 Token[Token["B
27b30 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 6c 22 5d 20 ooleanLiteral"]
27b40 3d 20 31 5d 20 3d 20 22 42 6f 6f 6c 65 61 6e 4c = 1] = "BooleanL
27b50 69 74 65 72 61 6c 22 3b 0a 20 20 09 20 20 20 20 iteral";. .
27b60 54 6f 6b 65 6e 5b 54 6f 6b 65 6e 5b 22 45 4f 46 Token[Token["EOF
27b70 22 5d 20 3d 20 32 5d 20 3d 20 22 45 4f 46 22 3b "] = 2] = "EOF";
27b80 0a 20 20 09 20 20 20 20 54 6f 6b 65 6e 5b 54 6f . . Token[To
27b90 6b 65 6e 5b 22 49 64 65 6e 74 69 66 69 65 72 22 ken["Identifier"
27ba0 5d 20 3d 20 33 5d 20 3d 20 22 49 64 65 6e 74 69 ] = 3] = "Identi
27bb0 66 69 65 72 22 3b 0a 20 20 09 20 20 20 20 54 6f fier";. . To
27bc0 6b 65 6e 5b 54 6f 6b 65 6e 5b 22 4b 65 79 77 6f ken[Token["Keywo
27bd0 72 64 22 5d 20 3d 20 34 5d 20 3d 20 22 4b 65 79 rd"] = 4] = "Key
27be0 77 6f 72 64 22 3b 0a 20 20 09 20 20 20 20 54 6f word";. . To
27bf0 6b 65 6e 5b 54 6f 6b 65 6e 5b 22 4e 75 6c 6c 4c ken[Token["NullL
27c00 69 74 65 72 61 6c 22 5d 20 3d 20 35 5d 20 3d 20 iteral"] = 5] =
27c10 22 4e 75 6c 6c 4c 69 74 65 72 61 6c 22 3b 0a 20 "NullLiteral";.
27c20 20 09 20 20 20 20 54 6f 6b 65 6e 5b 54 6f 6b 65 . Token[Toke
27c30 6e 5b 22 4e 75 6d 65 72 69 63 4c 69 74 65 72 61 n["NumericLitera
27c40 6c 22 5d 20 3d 20 36 5d 20 3d 20 22 4e 75 6d 65 l"] = 6] = "Nume
27c50 72 69 63 4c 69 74 65 72 61 6c 22 3b 0a 20 20 09 ricLiteral";. .
27c60 20 20 20 20 54 6f 6b 65 6e 5b 54 6f 6b 65 6e 5b Token[Token[
27c70 22 50 75 6e 63 74 75 61 74 6f 72 22 5d 20 3d 20 "Punctuator"] =
27c80 37 5d 20 3d 20 22 50 75 6e 63 74 75 61 74 6f 72 7] = "Punctuator
27c90 22 3b 0a 20 20 09 20 20 20 20 54 6f 6b 65 6e 5b ";. . Token[
27ca0 54 6f 6b 65 6e 5b 22 53 74 72 69 6e 67 4c 69 74 Token["StringLit
27cb0 65 72 61 6c 22 5d 20 3d 20 38 5d 20 3d 20 22 53 eral"] = 8] = "S
27cc0 74 72 69 6e 67 4c 69 74 65 72 61 6c 22 3b 0a 20 tringLiteral";.
27cd0 20 09 20 20 20 20 54 6f 6b 65 6e 5b 54 6f 6b 65 . Token[Toke
27ce0 6e 5b 22 52 65 67 75 6c 61 72 45 78 70 72 65 73 n["RegularExpres
27cf0 73 69 6f 6e 22 5d 20 3d 20 39 5d 20 3d 20 22 52 sion"] = 9] = "R
27d00 65 67 75 6c 61 72 45 78 70 72 65 73 73 69 6f 6e egularExpression
27d10 22 3b 0a 20 20 09 20 20 20 20 54 6f 6b 65 6e 5b ";. . Token[
27d20 54 6f 6b 65 6e 5b 22 54 65 6d 70 6c 61 74 65 22 Token["Template"
27d30 5d 20 3d 20 31 30 5d 20 3d 20 22 54 65 6d 70 6c ] = 10] = "Templ
27d40 61 74 65 22 3b 0a 20 20 09 7d 29 28 65 78 70 6f ate";. .})(expo
27d50 72 74 73 2e 54 6f 6b 65 6e 20 7c 7c 20 28 65 78 rts.Token || (ex
27d60 70 6f 72 74 73 2e 54 6f 6b 65 6e 20 3d 20 7b 7d ports.Token = {}
27d70 29 29 3b 0a 20 20 09 76 61 72 20 54 6f 6b 65 6e ));. .var Token
27d80 20 3d 20 65 78 70 6f 72 74 73 2e 54 6f 6b 65 6e = exports.Token
27d90 3b 0a 20 20 09 0a 20 20 09 65 78 70 6f 72 74 73 ;. .. .exports
27da0 2e 54 6f 6b 65 6e 4e 61 6d 65 20 3d 20 7b 7d 3b .TokenName = {};
27db0 0a 20 20 09 65 78 70 6f 72 74 73 2e 54 6f 6b 65 . .exports.Toke
27dc0 6e 4e 61 6d 65 5b 54 6f 6b 65 6e 2e 42 6f 6f 6c nName[Token.Bool
27dd0 65 61 6e 4c 69 74 65 72 61 6c 5d 20 3d 20 27 42 eanLiteral] = 'B
27de0 6f 6f 6c 65 61 6e 27 3b 0a 20 20 09 65 78 70 6f oolean';. .expo
27df0 72 74 73 2e 54 6f 6b 65 6e 4e 61 6d 65 5b 54 6f rts.TokenName[To
27e00 6b 65 6e 2e 45 4f 46 5d 20 3d 20 27 3c 65 6e 64 ken.EOF] = '<end
27e10 3e 27 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 54 >';. .exports.T
27e20 6f 6b 65 6e 4e 61 6d 65 5b 54 6f 6b 65 6e 2e 49 okenName[Token.I
27e30 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 27 49 64 dentifier] = 'Id
27e40 65 6e 74 69 66 69 65 72 27 3b 0a 20 20 09 65 78 entifier';. .ex
27e50 70 6f 72 74 73 2e 54 6f 6b 65 6e 4e 61 6d 65 5b ports.TokenName[
27e60 54 6f 6b 65 6e 2e 4b 65 79 77 6f 72 64 5d 20 3d Token.Keyword] =
27e70 20 27 4b 65 79 77 6f 72 64 27 3b 0a 20 20 09 65 'Keyword';. .e
27e80 78 70 6f 72 74 73 2e 54 6f 6b 65 6e 4e 61 6d 65 xports.TokenName
27e90 5b 54 6f 6b 65 6e 2e 4e 75 6c 6c 4c 69 74 65 72 [Token.NullLiter
27ea0 61 6c 5d 20 3d 20 27 4e 75 6c 6c 27 3b 0a 20 20 al] = 'Null';.
27eb0 09 65 78 70 6f 72 74 73 2e 54 6f 6b 65 6e 4e 61 .exports.TokenNa
27ec0 6d 65 5b 54 6f 6b 65 6e 2e 4e 75 6d 65 72 69 63 me[Token.Numeric
27ed0 4c 69 74 65 72 61 6c 5d 20 3d 20 27 4e 75 6d 65 Literal] = 'Nume
27ee0 72 69 63 27 3b 0a 20 20 09 65 78 70 6f 72 74 73 ric';. .exports
27ef0 2e 54 6f 6b 65 6e 4e 61 6d 65 5b 54 6f 6b 65 6e .TokenName[Token
27f00 2e 50 75 6e 63 74 75 61 74 6f 72 5d 20 3d 20 27 .Punctuator] = '
27f10 50 75 6e 63 74 75 61 74 6f 72 27 3b 0a 20 20 09 Punctuator';. .
27f20 65 78 70 6f 72 74 73 2e 54 6f 6b 65 6e 4e 61 6d exports.TokenNam
27f30 65 5b 54 6f 6b 65 6e 2e 53 74 72 69 6e 67 4c 69 e[Token.StringLi
27f40 74 65 72 61 6c 5d 20 3d 20 27 53 74 72 69 6e 67 teral] = 'String
27f50 27 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 54 6f ';. .exports.To
27f60 6b 65 6e 4e 61 6d 65 5b 54 6f 6b 65 6e 2e 52 65 kenName[Token.Re
27f70 67 75 6c 61 72 45 78 70 72 65 73 73 69 6f 6e 5d gularExpression]
27f80 20 3d 20 27 52 65 67 75 6c 61 72 45 78 70 72 65 = 'RegularExpre
27f90 73 73 69 6f 6e 27 3b 0a 20 20 09 65 78 70 6f 72 ssion';. .expor
27fa0 74 73 2e 54 6f 6b 65 6e 4e 61 6d 65 5b 54 6f 6b ts.TokenName[Tok
27fb0 65 6e 2e 54 65 6d 70 6c 61 74 65 5d 20 3d 20 27 en.Template] = '
27fc0 54 65 6d 70 6c 61 74 65 27 3b 0a 0a 0a 20 20 2f Template';... /
27fd0 2a 2a 2a 2f 20 7d 2c 0a 20 20 2f 2a 20 38 20 2a ***/ },. /* 8 *
27fe0 2f 0a 20 20 2f 2a 2a 2a 2f 20 66 75 6e 63 74 69 /. /***/ functi
27ff0 6f 6e 28 6d 6f 64 75 6c 65 2c 20 65 78 70 6f 72 on(module, expor
28000 74 73 2c 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 ts, __webpack_re
28010 71 75 69 72 65 5f 5f 29 20 7b 0a 20 20 09 76 61 quire__) {. .va
28020 72 20 61 73 73 65 72 74 5f 31 20 3d 20 5f 5f 77 r assert_1 = __w
28030 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f ebpack_require__
28040 28 34 29 3b 0a 20 20 09 76 61 72 20 6d 65 73 73 (4);. .var mess
28050 61 67 65 73 5f 31 20 3d 20 5f 5f 77 65 62 70 61 ages_1 = __webpa
28060 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 35 29 3b ck_require__(5);
28070 0a 20 20 09 76 61 72 20 63 68 61 72 61 63 74 65 . .var characte
28080 72 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f r_1 = __webpack_
28090 72 65 71 75 69 72 65 5f 5f 28 39 29 3b 0a 20 20 require__(9);.
280a0 09 76 61 72 20 74 6f 6b 65 6e 5f 31 20 3d 20 5f .var token_1 = _
280b0 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 _webpack_require
280c0 5f 5f 28 37 29 3b 0a 20 20 09 66 75 6e 63 74 69 __(7);. .functi
280d0 6f 6e 20 68 65 78 56 61 6c 75 65 28 63 68 29 20 on hexValue(ch)
280e0 7b 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 {. . return
280f0 27 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 '0123456789abcde
28100 66 27 2e 69 6e 64 65 78 4f 66 28 63 68 2e 74 6f f'.indexOf(ch.to
28110 4c 6f 77 65 72 43 61 73 65 28 29 29 3b 0a 20 20 LowerCase());.
28120 09 7d 0a 20 20 09 66 75 6e 63 74 69 6f 6e 20 6f .}. .function o
28130 63 74 61 6c 56 61 6c 75 65 28 63 68 29 20 7b 0a ctalValue(ch) {.
28140 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 27 30 . return '0
28150 31 32 33 34 35 36 37 27 2e 69 6e 64 65 78 4f 66 1234567'.indexOf
28160 28 63 68 29 3b 0a 20 20 09 7d 0a 20 20 09 76 61 (ch);. .}. .va
28170 72 20 53 63 61 6e 6e 65 72 20 3d 20 28 66 75 6e r Scanner = (fun
28180 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
28190 20 20 66 75 6e 63 74 69 6f 6e 20 53 63 61 6e 6e function Scann
281a0 65 72 28 63 6f 64 65 2c 20 68 61 6e 64 6c 65 72 er(code, handler
281b0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
281c0 68 69 73 2e 73 6f 75 72 63 65 20 3d 20 63 6f 64 his.source = cod
281d0 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 e;. . th
281e0 69 73 2e 65 72 72 6f 72 48 61 6e 64 6c 65 72 20 is.errorHandler
281f0 3d 20 68 61 6e 64 6c 65 72 3b 0a 20 20 09 20 20 = handler;. .
28200 20 20 20 20 20 20 74 68 69 73 2e 74 72 61 63 6b this.track
28210 43 6f 6d 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b Comment = false;
28220 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
28230 2e 6c 65 6e 67 74 68 20 3d 20 63 6f 64 65 2e 6c .length = code.l
28240 65 6e 67 74 68 3b 0a 20 20 09 20 20 20 20 20 20 ength;. .
28250 20 20 74 68 69 73 2e 69 6e 64 65 78 20 3d 20 30 this.index = 0
28260 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
28270 73 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 3d 20 28 s.lineNumber = (
28280 63 6f 64 65 2e 6c 65 6e 67 74 68 20 3e 20 30 29 code.length > 0)
28290 20 3f 20 31 20 3a 20 30 3b 0a 20 20 09 20 20 20 ? 1 : 0;. .
282a0 20 20 20 20 20 74 68 69 73 2e 6c 69 6e 65 53 74 this.lineSt
282b0 61 72 74 20 3d 20 30 3b 0a 20 20 09 20 20 20 20 art = 0;. .
282c0 20 20 20 20 74 68 69 73 2e 63 75 72 6c 79 53 74 this.curlySt
282d0 61 63 6b 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 ack = [];. .
282e0 20 7d 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 }. . . .
282f0 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 6f 74 Scanner.protot
28300 79 70 65 2e 65 6f 66 20 3d 20 66 75 6e 63 74 69 ype.eof = functi
28310 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
28320 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 69 return this.i
28330 6e 64 65 78 20 3e 3d 20 74 68 69 73 2e 6c 65 6e ndex >= this.len
28340 67 74 68 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 gth;. . };.
28350 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 53 63 . . . Sc
28360 61 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e anner.prototype.
28370 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 throwUnexpectedT
28380 6f 6b 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 oken = function
28390 28 6d 65 73 73 61 67 65 29 20 7b 0a 20 20 09 20 (message) {. .
283a0 20 20 20 20 20 20 20 69 66 20 28 6d 65 73 73 61 if (messa
283b0 67 65 20 3d 3d 3d 20 76 6f 69 64 20 30 29 20 7b ge === void 0) {
283c0 20 6d 65 73 73 61 67 65 20 3d 20 6d 65 73 73 61 message = messa
283d0 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 ges_1.Messages.U
283e0 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 49 6c nexpectedTokenIl
283f0 6c 65 67 61 6c 3b 20 7d 0a 20 20 09 20 20 20 20 legal; }. .
28400 20 20 20 20 74 68 69 73 2e 65 72 72 6f 72 48 61 this.errorHa
28410 6e 64 6c 65 72 2e 74 68 72 6f 77 45 72 72 6f 72 ndler.throwError
28420 28 74 68 69 73 2e 69 6e 64 65 78 2c 20 74 68 69 (this.index, thi
28430 73 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 20 74 68 s.lineNumber, th
28440 69 73 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 2e is.index - this.
28450 6c 69 6e 65 53 74 61 72 74 20 2b 20 31 2c 20 6d lineStart + 1, m
28460 65 73 73 61 67 65 29 3b 0a 20 20 09 20 20 20 20 essage);. .
28470 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 };. . . .
28480 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 6f 74 Scanner.protot
28490 79 70 65 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 ype.tolerateUnex
284a0 70 65 63 74 65 64 54 6f 6b 65 6e 20 3d 20 66 75 pectedToken = fu
284b0 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
284c0 20 20 20 20 20 20 20 74 68 69 73 2e 65 72 72 6f this.erro
284d0 72 48 61 6e 64 6c 65 72 2e 74 6f 6c 65 72 61 74 rHandler.tolerat
284e0 65 45 72 72 6f 72 28 74 68 69 73 2e 69 6e 64 65 eError(this.inde
284f0 78 2c 20 74 68 69 73 2e 6c 69 6e 65 4e 75 6d 62 x, this.lineNumb
28500 65 72 2c 20 74 68 69 73 2e 69 6e 64 65 78 20 2d er, this.index -
28510 20 74 68 69 73 2e 6c 69 6e 65 53 74 61 72 74 20 this.lineStart
28520 2b 20 31 2c 20 6d 65 73 73 61 67 65 73 5f 31 2e + 1, messages_1.
28530 4d 65 73 73 61 67 65 73 2e 55 6e 65 78 70 65 63 Messages.Unexpec
28540 74 65 64 54 6f 6b 65 6e 49 6c 6c 65 67 61 6c 29 tedTokenIllegal)
28550 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
28560 20 20 20 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 . . // EC
28570 4d 41 2d 32 36 32 20 31 31 2e 34 20 43 6f 6d 6d MA-262 11.4 Comm
28580 65 6e 74 73 0a 20 20 09 20 20 20 20 53 63 61 6e ents. . Scan
28590 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 73 6b ner.prototype.sk
285a0 69 70 53 69 6e 67 6c 65 4c 69 6e 65 43 6f 6d 6d ipSingleLineComm
285b0 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ent = function (
285c0 6f 66 66 73 65 74 29 20 7b 0a 20 20 09 20 20 20 offset) {. .
285d0 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 var this$1
285e0 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 = this;.. .
285f0 20 20 20 20 76 61 72 20 63 6f 6d 6d 65 6e 74 73 var comments
28600 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
28610 20 73 74 61 72 74 2c 20 6c 6f 63 3b 0a 20 20 09 start, loc;. .
28620 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
28630 2e 74 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 7b .trackComment) {
28640 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
28650 63 6f 6d 6d 65 6e 74 73 20 3d 20 5b 5d 3b 0a 20 comments = [];.
28660 20 09 20 20 20 20 20 20 20 20 20 20 20 20 73 74 . st
28670 61 72 74 20 3d 20 74 68 69 73 2e 69 6e 64 65 78 art = this.index
28680 20 2d 20 6f 66 66 73 65 74 3b 0a 20 20 09 20 20 - offset;. .
28690 20 20 20 20 20 20 20 20 20 20 6c 6f 63 20 3d 20 loc =
286a0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
286b0 20 20 20 20 20 73 74 61 72 74 3a 20 7b 0a 20 20 start: {.
286c0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
286d0 20 20 20 20 20 6c 69 6e 65 3a 20 74 68 69 73 2e line: this.
286e0 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 lineNumber,. .
286f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28700 20 20 20 63 6f 6c 75 6d 6e 3a 20 74 68 69 73 2e column: this.
28710 69 6e 64 65 78 20 2d 20 74 68 69 73 2e 6c 69 6e index - this.lin
28720 65 53 74 61 72 74 20 2d 20 6f 66 66 73 65 74 0a eStart - offset.
28730 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
28740 20 20 20 7d 2c 0a 20 20 09 20 20 20 20 20 20 20 },. .
28750 20 20 20 20 20 20 20 20 20 65 6e 64 3a 20 7b 7d end: {}
28760 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
28770 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a };. . }.
28780 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
28790 20 28 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b (!this.eof()) {
287a0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
287b0 76 61 72 20 63 68 20 3d 20 74 68 69 73 24 31 2e var ch = this$1.
287c0 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 65 41 source.charCodeA
287d0 74 28 74 68 69 73 24 31 2e 69 6e 64 65 78 29 3b t(this$1.index);
287e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
287f0 2b 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a ++this$1.index;.
28800 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
28810 66 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 f (character_1.C
28820 68 61 72 61 63 74 65 72 2e 69 73 4c 69 6e 65 54 haracter.isLineT
28830 65 72 6d 69 6e 61 74 6f 72 28 63 68 29 29 20 7b erminator(ch)) {
28840 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
28850 20 20 20 20 69 66 20 28 74 68 69 73 24 31 2e 74 if (this$1.t
28860 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 7b 0a 20 rackComment) {.
28870 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
28880 20 20 20 20 20 20 6c 6f 63 2e 65 6e 64 20 3d 20 loc.end =
28890 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
288a0 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e lin
288b0 65 3a 20 74 68 69 73 24 31 2e 6c 69 6e 65 4e 75 e: this$1.lineNu
288c0 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 mber,. .
288d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
288e0 20 63 6f 6c 75 6d 6e 3a 20 74 68 69 73 24 31 2e column: this$1.
288f0 69 6e 64 65 78 20 2d 20 74 68 69 73 24 31 2e 6c index - this$1.l
28900 69 6e 65 53 74 61 72 74 20 2d 20 31 0a 20 20 09 ineStart - 1. .
28910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28920 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 };. .
28930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
28940 72 20 65 6e 74 72 79 20 3d 20 7b 0a 20 20 09 20 r entry = {. .
28950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28960 20 20 20 20 20 20 20 6d 75 6c 74 69 4c 69 6e 65 multiLine
28970 3a 20 66 61 6c 73 65 2c 0a 20 20 09 20 20 20 20 : false,. .
28980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28990 20 20 20 20 73 6c 69 63 65 3a 20 5b 73 74 61 72 slice: [star
289a0 74 20 2b 20 6f 66 66 73 65 74 2c 20 74 68 69 73 t + offset, this
289b0 24 31 2e 69 6e 64 65 78 20 2d 20 31 5d 2c 0a 20 $1.index - 1],.
289c0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
289d0 20 20 20 20 20 20 20 20 20 20 72 61 6e 67 65 3a range:
289e0 20 5b 73 74 61 72 74 2c 20 74 68 69 73 24 31 2e [start, this$1.
289f0 69 6e 64 65 78 20 2d 20 31 5d 2c 0a 20 20 09 20 index - 1],. .
28a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28a10 20 20 20 20 20 20 20 6c 6f 63 3a 20 6c 6f 63 0a loc: loc.
28a20 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
28a30 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
28a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28a50 20 63 6f 6d 6d 65 6e 74 73 2e 70 75 73 68 28 65 comments.push(e
28a60 6e 74 72 79 29 3b 0a 20 20 09 20 20 20 20 20 20 ntry);. .
28a70 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
28a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
28a90 66 20 28 63 68 20 3d 3d 3d 20 31 33 20 26 26 20 f (ch === 13 &&
28aa0 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e 63 68 this$1.source.ch
28ab0 61 72 43 6f 64 65 41 74 28 74 68 69 73 24 31 2e arCodeAt(this$1.
28ac0 69 6e 64 65 78 29 20 3d 3d 3d 20 31 30 29 20 7b index) === 10) {
28ad0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
28ae0 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 24 31 ++this$1
28af0 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
28b00 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
28b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
28b20 2b 2b 74 68 69 73 24 31 2e 6c 69 6e 65 4e 75 6d ++this$1.lineNum
28b30 62 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ber;. .
28b40 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 6c this$1.l
28b50 69 6e 65 53 74 61 72 74 20 3d 20 74 68 69 73 24 ineStart = this$
28b60 31 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 1.index;. .
28b70 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
28b80 72 6e 20 63 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 rn comments;. .
28b90 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
28ba0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
28bb0 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 74 if (this.t
28bc0 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 7b 0a 20 rackComment) {.
28bd0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f . lo
28be0 63 2e 65 6e 64 20 3d 20 7b 0a 20 20 09 20 20 20 c.end = {. .
28bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e lin
28c00 65 3a 20 74 68 69 73 2e 6c 69 6e 65 4e 75 6d 62 e: this.lineNumb
28c10 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 er,. .
28c20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e 3a 20 74 column: t
28c30 68 69 73 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 his.index - this
28c40 2e 6c 69 6e 65 53 74 61 72 74 0a 20 20 09 20 20 .lineStart. .
28c50 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 };. .
28c60 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
28c70 65 6e 74 72 79 20 3d 20 7b 0a 20 20 09 20 20 20 entry = {. .
28c80 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 75 6c mul
28c90 74 69 4c 69 6e 65 3a 20 66 61 6c 73 65 2c 0a 20 tiLine: false,.
28ca0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
28cb0 20 20 73 6c 69 63 65 3a 20 5b 73 74 61 72 74 20 slice: [start
28cc0 2b 20 6f 66 66 73 65 74 2c 20 74 68 69 73 2e 69 + offset, this.i
28cd0 6e 64 65 78 5d 2c 0a 20 20 09 20 20 20 20 20 20 ndex],. .
28ce0 20 20 20 20 20 20 20 20 20 20 72 61 6e 67 65 3a range:
28cf0 20 5b 73 74 61 72 74 2c 20 74 68 69 73 2e 69 6e [start, this.in
28d00 64 65 78 5d 2c 0a 20 20 09 20 20 20 20 20 20 20 dex],. .
28d10 20 20 20 20 20 20 20 20 20 6c 6f 63 3a 20 6c 6f loc: lo
28d20 63 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 c. .
28d30 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 };. .
28d40 20 20 20 63 6f 6d 6d 65 6e 74 73 2e 70 75 73 68 comments.push
28d50 28 65 6e 74 72 79 29 3b 0a 20 20 09 20 20 20 20 (entry);. .
28d60 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
28d70 20 72 65 74 75 72 6e 20 63 6f 6d 6d 65 6e 74 73 return comments
28d80 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
28d90 20 20 20 0a 20 20 09 20 20 20 20 53 63 61 6e 6e . . Scann
28da0 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 73 6b 69 er.prototype.ski
28db0 70 4d 75 6c 74 69 4c 69 6e 65 43 6f 6d 6d 65 6e pMultiLineCommen
28dc0 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 t = function ()
28dd0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
28de0 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a this$1 = this;.
28df0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
28e00 63 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 comments;. .
28e10 20 20 20 20 20 76 61 72 20 73 74 61 72 74 2c 20 var start,
28e20 6c 6f 63 3b 0a 20 20 09 20 20 20 20 20 20 20 20 loc;. .
28e30 69 66 20 28 74 68 69 73 2e 74 72 61 63 6b 43 6f if (this.trackCo
28e40 6d 6d 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 mment) {. .
28e50 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 73 comments
28e60 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 = [];. .
28e70 20 20 20 20 20 20 73 74 61 72 74 20 3d 20 74 68 start = th
28e80 69 73 2e 69 6e 64 65 78 20 2d 20 32 3b 0a 20 20 is.index - 2;.
28e90 09 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 . loc
28ea0 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 = {. .
28eb0 20 20 20 20 20 20 20 20 73 74 61 72 74 3a 20 7b start: {
28ec0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
28ed0 20 20 20 20 20 20 20 20 6c 69 6e 65 3a 20 74 68 line: th
28ee0 69 73 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 is.lineNumber,.
28ef0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
28f00 20 20 20 20 20 20 63 6f 6c 75 6d 6e 3a 20 74 68 column: th
28f10 69 73 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 2e is.index - this.
28f20 6c 69 6e 65 53 74 61 72 74 20 2d 20 32 0a 20 20 lineStart - 2.
28f30 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
28f40 20 7d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 },. .
28f50 20 20 20 20 20 20 20 65 6e 64 3a 20 7b 7d 0a 20 end: {}.
28f60 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b . };
28f70 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
28f80 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 . while (
28f90 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b 0a 20 !this.eof()) {.
28fa0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
28fb0 72 20 63 68 20 3d 20 74 68 69 73 24 31 2e 73 6f r ch = this$1.so
28fc0 75 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 urce.charCodeAt(
28fd0 74 68 69 73 24 31 2e 69 6e 64 65 78 29 3b 0a 20 this$1.index);.
28fe0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
28ff0 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 (character_1.Ch
29000 61 72 61 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 aracter.isLineTe
29010 72 6d 69 6e 61 74 6f 72 28 63 68 29 29 20 7b 0a rminator(ch)) {.
29020 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29030 20 20 20 69 66 20 28 63 68 20 3d 3d 3d 20 30 78 if (ch === 0x
29040 30 44 20 26 26 20 74 68 69 73 24 31 2e 73 6f 75 0D && this$1.sou
29050 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 rce.charCodeAt(t
29060 68 69 73 24 31 2e 69 6e 64 65 78 20 2b 20 31 29 his$1.index + 1)
29070 20 3d 3d 3d 20 30 78 30 41 29 20 7b 0a 20 20 09 === 0x0A) {. .
29080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29090 20 20 20 20 2b 2b 74 68 69 73 24 31 2e 69 6e 64 ++this$1.ind
290a0 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ex;. .
290b0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
290c0 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 ++th
290d0 69 73 24 31 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b is$1.lineNumber;
290e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
290f0 20 20 20 20 2b 2b 74 68 69 73 24 31 2e 69 6e 64 ++this$1.ind
29100 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ex;. .
29110 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 6c 69 this$1.li
29120 6e 65 53 74 61 72 74 20 3d 20 74 68 69 73 24 31 neStart = this$1
29130 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
29140 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
29150 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 else if
29160 28 63 68 20 3d 3d 3d 20 30 78 32 41 29 20 7b 0a (ch === 0x2A) {.
29170 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29180 20 20 20 2f 2f 20 42 6c 6f 63 6b 20 63 6f 6d 6d // Block comm
29190 65 6e 74 20 65 6e 64 73 20 77 69 74 68 20 27 2a ent ends with '*
291a0 2f 27 2e 0a 20 20 09 20 20 20 20 20 20 20 20 20 /'.. .
291b0 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 24 if (this$
291c0 31 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 1.source.charCod
291d0 65 41 74 28 74 68 69 73 24 31 2e 69 6e 64 65 78 eAt(this$1.index
291e0 20 2b 20 31 29 20 3d 3d 3d 20 30 78 32 46 29 20 + 1) === 0x2F)
291f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
29200 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
29210 69 6e 64 65 78 20 2b 3d 20 32 3b 0a 20 20 09 20 index += 2;. .
29220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29230 20 20 20 69 66 20 28 74 68 69 73 24 31 2e 74 72 if (this$1.tr
29240 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 7b 0a 20 20 ackComment) {.
29250 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29260 20 20 20 20 20 20 20 20 20 6c 6f 63 2e 65 6e 64 loc.end
29270 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 = {. .
29280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29290 20 20 20 20 6c 69 6e 65 3a 20 74 68 69 73 24 31 line: this$1
292a0 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 .lineNumber,. .
292b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
292c0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 colu
292d0 6d 6e 3a 20 74 68 69 73 24 31 2e 69 6e 64 65 78 mn: this$1.index
292e0 20 2d 20 74 68 69 73 24 31 2e 6c 69 6e 65 53 74 - this$1.lineSt
292f0 61 72 74 0a 20 20 09 20 20 20 20 20 20 20 20 20 art. .
29300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
29310 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
29320 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 var
29330 20 65 6e 74 72 79 20 3d 20 7b 0a 20 20 09 20 20 entry = {. .
29340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29350 20 20 20 20 20 20 20 20 20 20 6d 75 6c 74 69 4c multiL
29360 69 6e 65 3a 20 74 72 75 65 2c 0a 20 20 09 20 20 ine: true,. .
29370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29380 20 20 20 20 20 20 20 20 20 20 73 6c 69 63 65 3a slice:
29390 20 5b 73 74 61 72 74 20 2b 20 32 2c 20 74 68 69 [start + 2, thi
293a0 73 24 31 2e 69 6e 64 65 78 20 2d 20 32 5d 2c 0a s$1.index - 2],.
293b0 20 20 09 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 72 r
293d0 61 6e 67 65 3a 20 5b 73 74 61 72 74 2c 20 74 68 ange: [start, th
293e0 69 73 24 31 2e 69 6e 64 65 78 5d 2c 0a 20 20 09 is$1.index],. .
293f0 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 6c 6f 63 3a loc:
29410 20 6c 6f 63 0a 20 20 09 20 20 20 20 20 20 20 20 loc. .
29420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29430 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 };. .
29440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f co
29450 6d 6d 65 6e 74 73 2e 70 75 73 68 28 65 6e 74 72 mments.push(entr
29460 79 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 y);. .
29470 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
29480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29490 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6d 6d 65 return comme
294a0 6e 74 73 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nts;. .
294b0 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
294c0 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b 74 ++t
294d0 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 20 09 his$1.index;. .
294e0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
294f0 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 . els
29500 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
29510 20 20 20 20 20 20 20 2b 2b 74 68 69 73 24 31 2e ++this$1.
29520 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 index;. .
29530 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
29540 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
29550 2f 2f 20 52 61 6e 20 6f 66 66 20 74 68 65 20 65 // Ran off the e
29560 6e 64 20 6f 66 20 74 68 65 20 66 69 6c 65 20 2d nd of the file -
29570 20 74 68 65 20 77 68 6f 6c 65 20 74 68 69 6e 67 the whole thing
29580 20 69 73 20 61 20 63 6f 6d 6d 65 6e 74 0a 20 20 is a comment.
29590 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
295a0 73 2e 74 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 s.trackComment)
295b0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
295c0 20 6c 6f 63 2e 65 6e 64 20 3d 20 7b 0a 20 20 09 loc.end = {. .
295d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
295e0 6c 69 6e 65 3a 20 74 68 69 73 2e 6c 69 6e 65 4e line: this.lineN
295f0 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 umber,. .
29600 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e column
29610 3a 20 74 68 69 73 2e 69 6e 64 65 78 20 2d 20 74 : this.index - t
29620 68 69 73 2e 6c 69 6e 65 53 74 61 72 74 0a 20 20 his.lineStart.
29630 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a . };.
29640 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
29650 61 72 20 65 6e 74 72 79 20 3d 20 7b 0a 20 20 09 ar entry = {. .
29660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29670 6d 75 6c 74 69 4c 69 6e 65 3a 20 74 72 75 65 2c multiLine: true,
29680 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
29690 20 20 20 20 73 6c 69 63 65 3a 20 5b 73 74 61 72 slice: [star
296a0 74 20 2b 20 32 2c 20 74 68 69 73 2e 69 6e 64 65 t + 2, this.inde
296b0 78 5d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 x],. .
296c0 20 20 20 20 20 20 20 72 61 6e 67 65 3a 20 5b 73 range: [s
296d0 74 61 72 74 2c 20 74 68 69 73 2e 69 6e 64 65 78 tart, this.index
296e0 5d 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ],. .
296f0 20 20 20 20 20 20 6c 6f 63 3a 20 6c 6f 63 0a 20 loc: loc.
29700 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b . };
29710 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
29720 63 6f 6d 6d 65 6e 74 73 2e 70 75 73 68 28 65 6e comments.push(en
29730 74 72 79 29 3b 0a 20 20 09 20 20 20 20 20 20 20 try);. .
29740 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 }. . th
29750 69 73 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 is.tolerateUnexp
29760 65 63 74 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 ectedToken();.
29770 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
29780 63 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 comments;. .
29790 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 };. . . .
297a0 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 6f Scanner.proto
297b0 74 79 70 65 2e 73 63 61 6e 43 6f 6d 6d 65 6e 74 type.scanComment
297c0 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 s = function ()
297d0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
297e0 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a this$1 = this;.
297f0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
29800 63 6f 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 comments;. .
29810 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 74 72 if (this.tr
29820 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 7b 0a 20 20 ackComment) {.
29830 09 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d . com
29840 6d 65 6e 74 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 ments = [];. .
29850 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
29860 20 20 20 20 76 61 72 20 73 74 61 72 74 20 3d 20 var start =
29870 28 74 68 69 73 2e 69 6e 64 65 78 20 3d 3d 3d 20 (this.index ===
29880 30 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 77 0);. . w
29890 68 69 6c 65 20 28 21 74 68 69 73 2e 65 6f 66 28 hile (!this.eof(
298a0 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
298b0 20 20 20 20 76 61 72 20 63 68 20 3d 20 74 68 69 var ch = thi
298c0 73 24 31 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 s$1.source.charC
298d0 6f 64 65 41 74 28 74 68 69 73 24 31 2e 69 6e 64 odeAt(this$1.ind
298e0 65 78 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ex);. .
298f0 20 20 20 20 69 66 20 28 63 68 61 72 61 63 74 65 if (characte
29900 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 73 r_1.Character.is
29910 57 68 69 74 65 53 70 61 63 65 28 63 68 29 29 20 WhiteSpace(ch))
29920 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
29930 20 20 20 20 20 2b 2b 74 68 69 73 24 31 2e 69 6e ++this$1.in
29940 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 dex;. .
29950 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
29960 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 68 else if (ch
29970 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 aracter_1.Charac
29980 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 6d 69 6e ter.isLineTermin
29990 61 74 6f 72 28 63 68 29 29 20 7b 0a 20 20 09 20 ator(ch)) {. .
299a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b +
299b0 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 +this$1.index;.
299c0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
299d0 20 20 69 66 20 28 63 68 20 3d 3d 3d 20 30 78 30 if (ch === 0x0
299e0 44 20 26 26 20 74 68 69 73 24 31 2e 73 6f 75 72 D && this$1.sour
299f0 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 ce.charCodeAt(th
29a00 69 73 24 31 2e 69 6e 64 65 78 29 20 3d 3d 3d 20 is$1.index) ===
29a10 30 78 30 41 29 20 7b 0a 20 20 09 20 20 20 20 20 0x0A) {. .
29a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b +
29a30 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 +this$1.index;.
29a40 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29a50 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
29a60 20 20 20 20 20 20 20 2b 2b 74 68 69 73 24 31 2e ++this$1.
29a70 6c 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 lineNumber;. .
29a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
29a90 68 69 73 24 31 2e 6c 69 6e 65 53 74 61 72 74 20 his$1.lineStart
29aa0 3d 20 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a = this$1.index;.
29ab0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29ac0 20 20 20 73 74 61 72 74 20 3d 20 74 72 75 65 3b start = true;
29ad0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
29ae0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
29af0 20 65 6c 73 65 20 69 66 20 28 63 68 20 3d 3d 3d else if (ch ===
29b00 20 30 78 32 46 29 20 7b 0a 20 20 09 20 20 20 20 0x2F) {. .
29b10 20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 3d ch =
29b20 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e 63 this$1.source.c
29b30 68 61 72 43 6f 64 65 41 74 28 74 68 69 73 24 31 harCodeAt(this$1
29b40 2e 69 6e 64 65 78 20 2b 20 31 29 3b 0a 20 20 09 .index + 1);. .
29b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29b60 69 66 20 28 63 68 20 3d 3d 3d 20 30 78 32 46 29 if (ch === 0x2F)
29b70 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
29b80 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
29b90 2e 69 6e 64 65 78 20 2b 3d 20 32 3b 0a 20 20 09 .index += 2;. .
29ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29bb0 20 20 20 20 76 61 72 20 63 6f 6d 6d 65 6e 74 20 var comment
29bc0 3d 20 74 68 69 73 24 31 2e 73 6b 69 70 53 69 6e = this$1.skipSin
29bd0 67 6c 65 4c 69 6e 65 43 6f 6d 6d 65 6e 74 28 32 gleLineComment(2
29be0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
29bf0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 if (th
29c00 69 73 24 31 2e 74 72 61 63 6b 43 6f 6d 6d 65 6e is$1.trackCommen
29c10 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 t) {. .
29c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29c30 63 6f 6d 6d 65 6e 74 73 20 3d 20 63 6f 6d 6d 65 comments = comme
29c40 6e 74 73 2e 63 6f 6e 63 61 74 28 63 6f 6d 6d 65 nts.concat(comme
29c50 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nt);. .
29c60 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
29c70 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29c80 20 20 20 20 20 73 74 61 72 74 20 3d 20 74 72 75 start = tru
29c90 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e;. .
29ca0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
29cb0 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 else
29cc0 69 66 20 28 63 68 20 3d 3d 3d 20 30 78 32 41 29 if (ch === 0x2A)
29cd0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
29ce0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
29cf0 2e 69 6e 64 65 78 20 2b 3d 20 32 3b 0a 20 20 09 .index += 2;. .
29d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29d10 20 20 20 20 76 61 72 20 63 6f 6d 6d 65 6e 74 20 var comment
29d20 3d 20 74 68 69 73 24 31 2e 73 6b 69 70 4d 75 6c = this$1.skipMul
29d30 74 69 4c 69 6e 65 43 6f 6d 6d 65 6e 74 28 29 3b tiLineComment();
29d40 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
29d50 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
29d60 24 31 2e 74 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 $1.trackComment)
29d70 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
29d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f co
29d90 6d 6d 65 6e 74 73 20 3d 20 63 6f 6d 6d 65 6e 74 mments = comment
29da0 73 2e 63 6f 6e 63 61 74 28 63 6f 6d 6d 65 6e 74 s.concat(comment
29db0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
29dc0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
29dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
29de0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
29df0 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
29e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29e10 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 break;. .
29e20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
29e30 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
29e40 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c . el
29e50 73 65 20 69 66 20 28 73 74 61 72 74 20 26 26 20 se if (start &&
29e60 63 68 20 3d 3d 3d 20 30 78 32 44 29 20 7b 0a 20 ch === 0x2D) {.
29e70 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29e80 20 20 2f 2f 20 55 2b 30 30 33 45 20 69 73 20 27 // U+003E is '
29e90 3e 27 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 >'. .
29ea0 20 20 20 20 20 20 69 66 20 28 28 74 68 69 73 24 if ((this$
29eb0 31 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 1.source.charCod
29ec0 65 41 74 28 74 68 69 73 24 31 2e 69 6e 64 65 78 eAt(this$1.index
29ed0 20 2b 20 31 29 20 3d 3d 3d 20 30 78 32 44 29 20 + 1) === 0x2D)
29ee0 26 26 20 28 74 68 69 73 24 31 2e 73 6f 75 72 63 && (this$1.sourc
29ef0 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 69 e.charCodeAt(thi
29f00 73 24 31 2e 69 6e 64 65 78 20 2b 20 32 29 20 3d s$1.index + 2) =
29f10 3d 3d 20 30 78 33 45 29 29 20 7b 0a 20 20 09 20 == 0x3E)) {. .
29f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29f30 20 20 20 2f 2f 20 27 2d 2d 3e 27 20 69 73 20 61 // '-->' is a
29f40 20 73 69 6e 67 6c 65 2d 6c 69 6e 65 20 63 6f 6d single-line com
29f50 6d 65 6e 74 0a 20 20 09 20 20 20 20 20 20 20 20 ment. .
29f60 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
29f70 24 31 2e 69 6e 64 65 78 20 2b 3d 20 33 3b 0a 20 $1.index += 3;.
29f80 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
29f90 20 20 20 20 20 20 76 61 72 20 63 6f 6d 6d 65 6e var commen
29fa0 74 20 3d 20 74 68 69 73 24 31 2e 73 6b 69 70 53 t = this$1.skipS
29fb0 69 6e 67 6c 65 4c 69 6e 65 43 6f 6d 6d 65 6e 74 ingleLineComment
29fc0 28 33 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 (3);. .
29fd0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
29fe0 74 68 69 73 24 31 2e 74 72 61 63 6b 43 6f 6d 6d this$1.trackComm
29ff0 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ent) {. .
2a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a010 20 20 63 6f 6d 6d 65 6e 74 73 20 3d 20 63 6f 6d comments = com
2a020 6d 65 6e 74 73 2e 63 6f 6e 63 61 74 28 63 6f 6d ments.concat(com
2a030 6d 65 6e 74 29 3b 0a 20 20 09 20 20 20 20 20 20 ment);. .
2a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
2a050 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2a060 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
2a070 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
2a080 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2a090 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
2a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a0b0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
2a0c0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
2a0d0 20 20 65 6c 73 65 20 69 66 20 28 63 68 20 3d 3d else if (ch ==
2a0e0 3d 20 30 78 33 43 29 20 7b 0a 20 20 09 20 20 20 = 0x3C) {. .
2a0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
2a100 28 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e 73 (this$1.source.s
2a110 6c 69 63 65 28 74 68 69 73 24 31 2e 69 6e 64 65 lice(this$1.inde
2a120 78 20 2b 20 31 2c 20 74 68 69 73 24 31 2e 69 6e x + 1, this$1.in
2a130 64 65 78 20 2b 20 34 29 20 3d 3d 3d 20 27 21 2d dex + 4) === '!-
2a140 2d 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 -') {. .
2a150 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
2a160 73 24 31 2e 69 6e 64 65 78 20 2b 3d 20 34 3b 20 s$1.index += 4;
2a170 2f 2f 20 60 3c 21 2d 2d 60 0a 20 20 09 20 20 20 // `<!--`. .
2a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a190 20 76 61 72 20 63 6f 6d 6d 65 6e 74 20 3d 20 74 var comment = t
2a1a0 68 69 73 24 31 2e 73 6b 69 70 53 69 6e 67 6c 65 his$1.skipSingle
2a1b0 4c 69 6e 65 43 6f 6d 6d 65 6e 74 28 34 29 3b 0a LineComment(4);.
2a1c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2a1d0 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 24 if (this$
2a1e0 31 2e 74 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 1.trackComment)
2a1f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
2a200 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6d com
2a210 6d 65 6e 74 73 20 3d 20 63 6f 6d 6d 65 6e 74 73 ments = comments
2a220 2e 63 6f 6e 63 61 74 28 63 6f 6d 6d 65 6e 74 29 .concat(comment)
2a230 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2a240 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
2a250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
2a260 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2a270 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
2a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a290 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
2a2a0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2a2b0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
2a2c0 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 . els
2a2d0 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
2a2e0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
2a2f0 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
2a300 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
2a310 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 6f return co
2a320 6d 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 20 7d mments;. . }
2a330 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 20 ;. . . .
2a340 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 31 2e // ECMA-262 11.
2a350 36 2e 32 2e 32 20 46 75 74 75 72 65 20 52 65 73 6.2.2 Future Res
2a360 65 72 76 65 64 20 57 6f 72 64 73 0a 20 20 09 20 erved Words. .
2a370 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 6f Scanner.proto
2a380 74 79 70 65 2e 69 73 46 75 74 75 72 65 52 65 73 type.isFutureRes
2a390 65 72 76 65 64 57 6f 72 64 20 3d 20 66 75 6e 63 ervedWord = func
2a3a0 74 69 6f 6e 20 28 69 64 29 20 7b 0a 20 20 09 20 tion (id) {. .
2a3b0 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 69 switch (i
2a3c0 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 d) {. .
2a3d0 20 20 20 20 63 61 73 65 20 27 65 6e 75 6d 27 3a case 'enum':
2a3e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2a3f0 63 61 73 65 20 27 65 78 70 6f 72 74 27 3a 0a 20 case 'export':.
2a400 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
2a410 73 65 20 27 69 6d 70 6f 72 74 27 3a 0a 20 20 09 se 'import':. .
2a420 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
2a430 20 27 73 75 70 65 72 27 3a 0a 20 20 09 20 20 20 'super':. .
2a440 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ret
2a450 75 72 6e 20 74 72 75 65 3b 0a 20 20 09 20 20 20 urn true;. .
2a460 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 default
2a470 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
2a480 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 return fals
2a490 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a e;. . }.
2a4a0 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
2a4b0 20 0a 20 20 09 20 20 20 20 53 63 61 6e 6e 65 72 . . Scanner
2a4c0 2e 70 72 6f 74 6f 74 79 70 65 2e 69 73 53 74 72 .prototype.isStr
2a4d0 69 63 74 4d 6f 64 65 52 65 73 65 72 76 65 64 57 ictModeReservedW
2a4e0 6f 72 64 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ord = function (
2a4f0 69 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 id) {. .
2a500 20 73 77 69 74 63 68 20 28 69 64 29 20 7b 0a 20 switch (id) {.
2a510 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
2a520 73 65 20 27 69 6d 70 6c 65 6d 65 6e 74 73 27 3a se 'implements':
2a530 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2a540 63 61 73 65 20 27 69 6e 74 65 72 66 61 63 65 27 case 'interface'
2a550 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
2a560 20 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a case 'package':
2a570 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2a580 63 61 73 65 20 27 70 72 69 76 61 74 65 27 3a 0a case 'private':.
2a590 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 . c
2a5a0 61 73 65 20 27 70 72 6f 74 65 63 74 65 64 27 3a ase 'protected':
2a5b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2a5c0 63 61 73 65 20 27 70 75 62 6c 69 63 27 3a 0a 20 case 'public':.
2a5d0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 . ca
2a5e0 73 65 20 27 73 74 61 74 69 63 27 3a 0a 20 20 09 se 'static':. .
2a5f0 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
2a600 20 27 79 69 65 6c 64 27 3a 0a 20 20 09 20 20 20 'yield':. .
2a610 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6c case 'l
2a620 65 74 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 et':. .
2a630 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 return t
2a640 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 rue;. .
2a650 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 default:. .
2a660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a670 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 return false;.
2a680 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
2a690 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 };. . . .
2a6a0 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 Scanner.prot
2a6b0 6f 74 79 70 65 2e 69 73 52 65 73 74 72 69 63 74 otype.isRestrict
2a6c0 65 64 57 6f 72 64 20 3d 20 66 75 6e 63 74 69 6f edWord = functio
2a6d0 6e 20 28 69 64 29 20 7b 0a 20 20 09 20 20 20 20 n (id) {. .
2a6e0 20 20 20 20 72 65 74 75 72 6e 20 69 64 20 3d 3d return id ==
2a6f0 3d 20 27 65 76 61 6c 27 20 7c 7c 20 69 64 20 3d = 'eval' || id =
2a700 3d 3d 20 27 61 72 67 75 6d 65 6e 74 73 27 3b 0a == 'arguments';.
2a710 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
2a720 20 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 . . // ECMA
2a730 2d 32 36 32 20 31 31 2e 36 2e 32 2e 31 20 4b 65 -262 11.6.2.1 Ke
2a740 79 77 6f 72 64 73 0a 20 20 09 20 20 20 20 53 63 ywords. . Sc
2a750 61 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e anner.prototype.
2a760 69 73 4b 65 79 77 6f 72 64 20 3d 20 66 75 6e 63 isKeyword = func
2a770 74 69 6f 6e 20 28 69 64 29 20 7b 0a 20 20 09 20 tion (id) {. .
2a780 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 69 switch (i
2a790 64 2e 6c 65 6e 67 74 68 29 20 7b 0a 20 20 09 20 d.length) {. .
2a7a0 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
2a7b0 32 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 2:. .
2a7c0 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 69 64 return (id
2a7d0 20 3d 3d 3d 20 27 69 66 27 29 20 7c 7c 20 28 69 === 'if') || (i
2a7e0 64 20 3d 3d 3d 20 27 69 6e 27 29 20 7c 7c 20 28 d === 'in') || (
2a7f0 69 64 20 3d 3d 3d 20 27 64 6f 27 29 3b 0a 20 20 id === 'do');.
2a800 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
2a810 65 20 33 3a 0a 20 20 09 20 20 20 20 20 20 20 20 e 3:. .
2a820 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 return (
2a830 69 64 20 3d 3d 3d 20 27 76 61 72 27 29 20 7c 7c id === 'var') ||
2a840 20 28 69 64 20 3d 3d 3d 20 27 66 6f 72 27 29 20 (id === 'for')
2a850 7c 7c 20 28 69 64 20 3d 3d 3d 20 27 6e 65 77 27 || (id === 'new'
2a860 29 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 ) ||. .
2a870 20 20 20 20 20 20 20 20 20 20 20 20 28 69 64 20 (id
2a880 3d 3d 3d 20 27 74 72 79 27 29 20 7c 7c 20 28 69 === 'try') || (i
2a890 64 20 3d 3d 3d 20 27 6c 65 74 27 29 3b 0a 20 20 d === 'let');.
2a8a0 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
2a8b0 65 20 34 3a 0a 20 20 09 20 20 20 20 20 20 20 20 e 4:. .
2a8c0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 return (
2a8d0 69 64 20 3d 3d 3d 20 27 74 68 69 73 27 29 20 7c id === 'this') |
2a8e0 7c 20 28 69 64 20 3d 3d 3d 20 27 65 6c 73 65 27 | (id === 'else'
2a8f0 29 20 7c 7c 20 28 69 64 20 3d 3d 3d 20 27 63 61 ) || (id === 'ca
2a900 73 65 27 29 20 7c 7c 0a 20 20 09 20 20 20 20 20 se') ||. .
2a910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 (
2a920 69 64 20 3d 3d 3d 20 27 76 6f 69 64 27 29 20 7c id === 'void') |
2a930 7c 20 28 69 64 20 3d 3d 3d 20 27 77 69 74 68 27 | (id === 'with'
2a940 29 20 7c 7c 20 28 69 64 20 3d 3d 3d 20 27 65 6e ) || (id === 'en
2a950 75 6d 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 um');. .
2a960 20 20 20 20 20 63 61 73 65 20 35 3a 0a 20 20 09 case 5:. .
2a970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a980 72 65 74 75 72 6e 20 28 69 64 20 3d 3d 3d 20 27 return (id === '
2a990 77 68 69 6c 65 27 29 20 7c 7c 20 28 69 64 20 3d while') || (id =
2a9a0 3d 3d 20 27 62 72 65 61 6b 27 29 20 7c 7c 20 28 == 'break') || (
2a9b0 69 64 20 3d 3d 3d 20 27 63 61 74 63 68 27 29 20 id === 'catch')
2a9c0 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
2a9d0 20 20 20 20 20 20 20 20 20 20 28 69 64 20 3d 3d (id ==
2a9e0 3d 20 27 74 68 72 6f 77 27 29 20 7c 7c 20 28 69 = 'throw') || (i
2a9f0 64 20 3d 3d 3d 20 27 63 6f 6e 73 74 27 29 20 7c d === 'const') |
2aa00 7c 20 28 69 64 20 3d 3d 3d 20 27 79 69 65 6c 64 | (id === 'yield
2aa10 27 29 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 ') ||. .
2aa20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 64 (id
2aa30 20 3d 3d 3d 20 27 63 6c 61 73 73 27 29 20 7c 7c === 'class') ||
2aa40 20 28 69 64 20 3d 3d 3d 20 27 73 75 70 65 72 27 (id === 'super'
2aa50 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
2aa60 20 20 63 61 73 65 20 36 3a 0a 20 20 09 20 20 20 case 6:. .
2aa70 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ret
2aa80 75 72 6e 20 28 69 64 20 3d 3d 3d 20 27 72 65 74 urn (id === 'ret
2aa90 75 72 6e 27 29 20 7c 7c 20 28 69 64 20 3d 3d 3d urn') || (id ===
2aaa0 20 27 74 79 70 65 6f 66 27 29 20 7c 7c 20 28 69 'typeof') || (i
2aab0 64 20 3d 3d 3d 20 27 64 65 6c 65 74 65 27 29 20 d === 'delete')
2aac0 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
2aad0 20 20 20 20 20 20 20 20 20 20 28 69 64 20 3d 3d (id ==
2aae0 3d 20 27 73 77 69 74 63 68 27 29 20 7c 7c 20 28 = 'switch') || (
2aaf0 69 64 20 3d 3d 3d 20 27 65 78 70 6f 72 74 27 29 id === 'export')
2ab00 20 7c 7c 20 28 69 64 20 3d 3d 3d 20 27 69 6d 70 || (id === 'imp
2ab10 6f 72 74 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ort');. .
2ab20 20 20 20 20 20 20 63 61 73 65 20 37 3a 0a 20 20 case 7:.
2ab30 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2ab40 20 72 65 74 75 72 6e 20 28 69 64 20 3d 3d 3d 20 return (id ===
2ab50 27 64 65 66 61 75 6c 74 27 29 20 7c 7c 20 28 69 'default') || (i
2ab60 64 20 3d 3d 3d 20 27 66 69 6e 61 6c 6c 79 27 29 d === 'finally')
2ab70 20 7c 7c 20 28 69 64 20 3d 3d 3d 20 27 65 78 74 || (id === 'ext
2ab80 65 6e 64 73 27 29 3b 0a 20 20 09 20 20 20 20 20 ends');. .
2ab90 20 20 20 20 20 20 20 63 61 73 65 20 38 3a 0a 20 case 8:.
2aba0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2abb0 20 20 72 65 74 75 72 6e 20 28 69 64 20 3d 3d 3d return (id ===
2abc0 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7c 7c 20 'function') ||
2abd0 28 69 64 20 3d 3d 3d 20 27 63 6f 6e 74 69 6e 75 (id === 'continu
2abe0 65 27 29 20 7c 7c 20 28 69 64 20 3d 3d 3d 20 27 e') || (id === '
2abf0 64 65 62 75 67 67 65 72 27 29 3b 0a 20 20 09 20 debugger');. .
2ac00 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
2ac10 31 30 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 10:. .
2ac20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 69 return (i
2ac30 64 20 3d 3d 3d 20 27 69 6e 73 74 61 6e 63 65 6f d === 'instanceo
2ac40 66 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 f');. .
2ac50 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 default:. .
2ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2ac70 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 return false;.
2ac80 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
2ac90 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 };. . . .
2aca0 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 Scanner.prot
2acb0 6f 74 79 70 65 2e 63 6f 64 65 50 6f 69 6e 74 41 otype.codePointA
2acc0 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 69 29 t = function (i)
2acd0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
2ace0 72 20 63 70 20 3d 20 74 68 69 73 2e 73 6f 75 72 r cp = this.sour
2acf0 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 69 29 ce.charCodeAt(i)
2ad00 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 ;. . if
2ad10 28 63 70 20 3e 3d 20 30 78 44 38 30 30 20 26 26 (cp >= 0xD800 &&
2ad20 20 63 70 20 3c 3d 20 30 78 44 42 46 46 29 20 7b cp <= 0xDBFF) {
2ad30 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2ad40 76 61 72 20 73 65 63 6f 6e 64 20 3d 20 74 68 69 var second = thi
2ad50 73 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 s.source.charCod
2ad60 65 41 74 28 69 20 2b 20 31 29 3b 0a 20 20 09 20 eAt(i + 1);. .
2ad70 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 if (s
2ad80 65 63 6f 6e 64 20 3e 3d 20 30 78 44 43 30 30 20 econd >= 0xDC00
2ad90 26 26 20 73 65 63 6f 6e 64 20 3c 3d 20 30 78 44 && second <= 0xD
2ada0 46 46 46 29 20 7b 0a 20 20 09 20 20 20 20 20 20 FFF) {. .
2adb0 20 20 20 20 20 20 20 20 20 20 76 61 72 20 66 69 var fi
2adc0 72 73 74 20 3d 20 63 70 3b 0a 20 20 09 20 20 20 rst = cp;. .
2add0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 70 20 cp
2ade0 3d 20 28 66 69 72 73 74 20 2d 20 30 78 44 38 30 = (first - 0xD80
2adf0 30 29 20 2a 20 30 78 34 30 30 20 2b 20 73 65 63 0) * 0x400 + sec
2ae00 6f 6e 64 20 2d 20 30 78 44 43 30 30 20 2b 20 30 ond - 0xDC00 + 0
2ae10 78 31 30 30 30 30 3b 0a 20 20 09 20 20 20 20 20 x10000;. .
2ae20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2ae30 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
2ae40 20 72 65 74 75 72 6e 20 63 70 3b 0a 20 20 09 20 return cp;. .
2ae50 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 };. . .
2ae60 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f . Scanner.pro
2ae70 74 6f 74 79 70 65 2e 73 63 61 6e 48 65 78 45 73 totype.scanHexEs
2ae80 63 61 70 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 cape = function
2ae90 28 70 72 65 66 69 78 29 20 7b 0a 20 20 09 20 20 (prefix) {. .
2aea0 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
2aeb0 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
2aec0 20 20 20 20 20 76 61 72 20 6c 65 6e 20 3d 20 28 var len = (
2aed0 70 72 65 66 69 78 20 3d 3d 3d 20 27 75 27 29 20 prefix === 'u')
2aee0 3f 20 34 20 3a 20 32 3b 0a 20 20 09 20 20 20 20 ? 4 : 2;. .
2aef0 20 20 20 20 76 61 72 20 63 6f 64 65 20 3d 20 30 var code = 0
2af00 3b 0a 20 20 09 20 20 20 20 20 20 20 20 66 6f 72 ;. . for
2af10 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c (var i = 0; i <
2af20 20 6c 65 6e 3b 20 2b 2b 69 29 20 7b 0a 20 20 09 len; ++i) {. .
2af30 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
2af40 21 74 68 69 73 24 31 2e 65 6f 66 28 29 20 26 26 !this$1.eof() &&
2af50 20 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 character_1.Cha
2af60 72 61 63 74 65 72 2e 69 73 48 65 78 44 69 67 69 racter.isHexDigi
2af70 74 28 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e t(this$1.source.
2af80 63 68 61 72 43 6f 64 65 41 74 28 74 68 69 73 24 charCodeAt(this$
2af90 31 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 20 09 1.index))) {. .
2afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2afb0 63 6f 64 65 20 3d 20 63 6f 64 65 20 2a 20 31 36 code = code * 16
2afc0 20 2b 20 68 65 78 56 61 6c 75 65 28 74 68 69 73 + hexValue(this
2afd0 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 31 $1.source[this$1
2afe0 2e 69 6e 64 65 78 2b 2b 5d 29 3b 0a 20 20 09 20 .index++]);. .
2aff0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2b000 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
2b010 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
2b020 20 20 20 20 20 20 72 65 74 75 72 6e 20 27 27 3b return '';
2b030 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2b040 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 }. . }.
2b050 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
2b060 20 53 74 72 69 6e 67 2e 66 72 6f 6d 43 68 61 72 String.fromChar
2b070 43 6f 64 65 28 63 6f 64 65 29 3b 0a 20 20 09 20 Code(code);. .
2b080 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 };. . .
2b090 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f . Scanner.pro
2b0a0 74 6f 74 79 70 65 2e 73 63 61 6e 55 6e 69 63 6f totype.scanUnico
2b0b0 64 65 43 6f 64 65 50 6f 69 6e 74 45 73 63 61 70 deCodePointEscap
2b0c0 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 e = function ()
2b0d0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
2b0e0 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a this$1 = this;.
2b0f0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
2b100 63 68 20 3d 20 74 68 69 73 2e 73 6f 75 72 63 65 ch = this.source
2b110 5b 74 68 69 73 2e 69 6e 64 65 78 5d 3b 0a 20 20 [this.index];.
2b120 09 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 64 . var cod
2b130 65 20 3d 20 30 3b 0a 20 20 09 20 20 20 20 20 20 e = 0;. .
2b140 20 20 2f 2f 20 41 74 20 6c 65 61 73 74 2c 20 6f // At least, o
2b150 6e 65 20 68 65 78 20 64 69 67 69 74 20 69 73 20 ne hex digit is
2b160 72 65 71 75 69 72 65 64 2e 0a 20 20 09 20 20 20 required.. .
2b170 20 20 20 20 20 69 66 20 28 63 68 20 3d 3d 3d 20 if (ch ===
2b180 27 7d 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 '}') {. .
2b190 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 this.throw
2b1a0 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 UnexpectedToken(
2b1b0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
2b1c0 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
2b1d0 20 28 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b (!this.eof()) {
2b1e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2b1f0 63 68 20 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 ch = this$1.sour
2b200 63 65 5b 74 68 69 73 24 31 2e 69 6e 64 65 78 2b ce[this$1.index+
2b210 2b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 +];. .
2b220 20 20 20 69 66 20 28 21 63 68 61 72 61 63 74 65 if (!characte
2b230 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 73 r_1.Character.is
2b240 48 65 78 44 69 67 69 74 28 63 68 2e 63 68 61 72 HexDigit(ch.char
2b250 43 6f 64 65 41 74 28 30 29 29 29 20 7b 0a 20 20 CodeAt(0))) {.
2b260 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2b270 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
2b280 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2b290 20 20 20 20 20 20 20 20 63 6f 64 65 20 3d 20 63 code = c
2b2a0 6f 64 65 20 2a 20 31 36 20 2b 20 68 65 78 56 61 ode * 16 + hexVa
2b2b0 6c 75 65 28 63 68 29 3b 0a 20 20 09 20 20 20 20 lue(ch);. .
2b2c0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
2b2d0 20 69 66 20 28 63 6f 64 65 20 3e 20 30 78 31 30 if (code > 0x10
2b2e0 46 46 46 46 20 7c 7c 20 63 68 20 21 3d 3d 20 27 FFFF || ch !== '
2b2f0 7d 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 }') {. .
2b300 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
2b310 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 29 nexpectedToken()
2b320 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
2b330 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
2b340 20 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 character_1.Cha
2b350 72 61 63 74 65 72 2e 66 72 6f 6d 43 6f 64 65 50 racter.fromCodeP
2b360 6f 69 6e 74 28 63 6f 64 65 29 3b 0a 20 20 09 20 oint(code);. .
2b370 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 };. . .
2b380 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f . Scanner.pro
2b390 74 6f 74 79 70 65 2e 67 65 74 49 64 65 6e 74 69 totype.getIdenti
2b3a0 66 69 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 fier = function
2b3b0 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
2b3c0 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
2b3d0 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 s;.. . v
2b3e0 61 72 20 73 74 61 72 74 20 3d 20 74 68 69 73 2e ar start = this.
2b3f0 69 6e 64 65 78 2b 2b 3b 0a 20 20 09 20 20 20 20 index++;. .
2b400 20 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 while (!this
2b410 2e 65 6f 66 28 29 29 20 7b 0a 20 20 09 20 20 20 .eof()) {. .
2b420 20 20 20 20 20 20 20 20 20 76 61 72 20 63 68 20 var ch
2b430 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e = this$1.source.
2b440 63 68 61 72 43 6f 64 65 41 74 28 74 68 69 73 24 charCodeAt(this$
2b450 31 2e 69 6e 64 65 78 29 3b 0a 20 20 09 20 20 20 1.index);. .
2b460 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 20 if (ch
2b470 3d 3d 3d 20 30 78 35 43 29 20 7b 0a 20 20 09 20 === 0x5C) {. .
2b480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
2b490 2f 20 42 6c 61 63 6b 73 6c 61 73 68 20 28 55 2b / Blackslash (U+
2b4a0 30 30 35 43 29 20 6d 61 72 6b 73 20 55 6e 69 63 005C) marks Unic
2b4b0 6f 64 65 20 65 73 63 61 70 65 20 73 65 71 75 65 ode escape seque
2b4c0 6e 63 65 2e 0a 20 20 09 20 20 20 20 20 20 20 20 nce.. .
2b4d0 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 69 this$1.i
2b4e0 6e 64 65 78 20 3d 20 73 74 61 72 74 3b 0a 20 20 ndex = start;.
2b4f0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2b500 20 72 65 74 75 72 6e 20 74 68 69 73 24 31 2e 67 return this$1.g
2b510 65 74 43 6f 6d 70 6c 65 78 49 64 65 6e 74 69 66 etComplexIdentif
2b520 69 65 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ier();. .
2b530 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2b540 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 else if (
2b550 63 68 20 3e 3d 20 30 78 44 38 30 30 20 26 26 20 ch >= 0xD800 &&
2b560 63 68 20 3c 20 30 78 44 46 46 46 29 20 7b 0a 20 ch < 0xDFFF) {.
2b570 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2b580 20 20 2f 2f 20 4e 65 65 64 20 74 6f 20 68 61 6e // Need to han
2b590 64 6c 65 20 73 75 72 72 6f 67 61 74 65 20 70 61 dle surrogate pa
2b5a0 69 72 73 2e 0a 20 20 09 20 20 20 20 20 20 20 20 irs.. .
2b5b0 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 69 this$1.i
2b5c0 6e 64 65 78 20 3d 20 73 74 61 72 74 3b 0a 20 20 ndex = start;.
2b5d0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2b5e0 20 72 65 74 75 72 6e 20 74 68 69 73 24 31 2e 67 return this$1.g
2b5f0 65 74 43 6f 6d 70 6c 65 78 49 64 65 6e 74 69 66 etComplexIdentif
2b600 69 65 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ier();. .
2b610 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2b620 20 20 20 20 20 20 20 69 66 20 28 63 68 61 72 61 if (chara
2b630 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 cter_1.Character
2b640 2e 69 73 49 64 65 6e 74 69 66 69 65 72 50 61 72 .isIdentifierPar
2b650 74 28 63 68 29 29 20 7b 0a 20 20 09 20 20 20 20 t(ch)) {. .
2b660 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 ++th
2b670 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 20 09 20 is$1.index;. .
2b680 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2b690 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
2b6a0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
2b6b0 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
2b6c0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
2b6d0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
2b6e0 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 return thi
2b6f0 73 2e 73 6f 75 72 63 65 2e 73 6c 69 63 65 28 73 s.source.slice(s
2b700 74 61 72 74 2c 20 74 68 69 73 2e 69 6e 64 65 78 tart, this.index
2b710 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
2b720 20 20 20 20 0a 20 20 09 20 20 20 20 53 63 61 6e . . Scan
2b730 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 ner.prototype.ge
2b740 74 43 6f 6d 70 6c 65 78 49 64 65 6e 74 69 66 69 tComplexIdentifi
2b750 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 er = function ()
2b760 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
2b770 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b r this$1 = this;
2b780 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 .. . var
2b790 20 63 70 20 3d 20 74 68 69 73 2e 63 6f 64 65 50 cp = this.codeP
2b7a0 6f 69 6e 74 41 74 28 74 68 69 73 2e 69 6e 64 65 ointAt(this.inde
2b7b0 78 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 x);. . v
2b7c0 61 72 20 69 64 20 3d 20 63 68 61 72 61 63 74 65 ar id = characte
2b7d0 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 66 72 r_1.Character.fr
2b7e0 6f 6d 43 6f 64 65 50 6f 69 6e 74 28 63 70 29 3b omCodePoint(cp);
2b7f0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
2b800 2e 69 6e 64 65 78 20 2b 3d 20 69 64 2e 6c 65 6e .index += id.len
2b810 67 74 68 3b 0a 20 20 09 20 20 20 20 20 20 20 20 gth;. .
2b820 2f 2f 20 27 5c 75 27 20 28 55 2b 30 30 35 43 2c // '\u' (U+005C,
2b830 20 55 2b 30 30 37 35 29 20 64 65 6e 6f 74 65 73 U+0075) denotes
2b840 20 61 6e 20 65 73 63 61 70 65 64 20 63 68 61 72 an escaped char
2b850 61 63 74 65 72 2e 0a 20 20 09 20 20 20 20 20 20 acter.. .
2b860 20 20 76 61 72 20 63 68 3b 0a 20 20 09 20 20 20 var ch;. .
2b870 20 20 20 20 20 69 66 20 28 63 70 20 3d 3d 3d 20 if (cp ===
2b880 30 78 35 43 29 20 7b 0a 20 20 09 20 20 20 20 20 0x5C) {. .
2b890 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
2b8a0 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 65 41 source.charCodeA
2b8b0 74 28 74 68 69 73 2e 69 6e 64 65 78 29 20 21 3d t(this.index) !=
2b8c0 3d 20 30 78 37 35 29 20 7b 0a 20 20 09 20 20 20 = 0x75) {. .
2b8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
2b8e0 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 s.throwUnexpecte
2b8f0 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 dToken();. .
2b900 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
2b910 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 ++this
2b920 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
2b930 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
2b940 73 6f 75 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 source[this.inde
2b950 78 5d 20 3d 3d 3d 20 27 7b 27 29 20 7b 0a 20 20 x] === '{') {.
2b960 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2b970 20 2b 2b 74 68 69 73 2e 69 6e 64 65 78 3b 0a 20 ++this.index;.
2b980 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2b990 20 20 63 68 20 3d 20 74 68 69 73 2e 73 63 61 6e ch = this.scan
2b9a0 55 6e 69 63 6f 64 65 43 6f 64 65 50 6f 69 6e 74 UnicodeCodePoint
2b9b0 45 73 63 61 70 65 28 29 3b 0a 20 20 09 20 20 20 Escape();. .
2b9c0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
2b9d0 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b else {
2b9e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2b9f0 20 20 20 20 63 68 20 3d 20 74 68 69 73 2e 73 63 ch = this.sc
2ba00 61 6e 48 65 78 45 73 63 61 70 65 28 27 75 27 29 anHexEscape('u')
2ba10 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2ba20 20 20 20 20 20 63 70 20 3d 20 63 68 2e 63 68 61 cp = ch.cha
2ba30 72 43 6f 64 65 41 74 28 30 29 3b 0a 20 20 09 20 rCodeAt(0);. .
2ba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
2ba50 66 20 28 21 63 68 20 7c 7c 20 63 68 20 3d 3d 3d f (!ch || ch ===
2ba60 20 27 5c 5c 27 20 7c 7c 20 21 63 68 61 72 61 63 '\\' || !charac
2ba70 74 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e ter_1.Character.
2ba80 69 73 49 64 65 6e 74 69 66 69 65 72 53 74 61 72 isIdentifierStar
2ba90 74 28 63 70 29 29 20 7b 0a 20 20 09 20 20 20 20 t(cp)) {. .
2baa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2bab0 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 this.throwUnexpe
2bac0 63 74 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 ctedToken();. .
2bad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2bae0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
2baf0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
2bb00 20 20 69 64 20 3d 20 63 68 3b 0a 20 20 09 20 20 id = ch;. .
2bb10 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2bb20 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e while (!this.
2bb30 65 6f 66 28 29 29 20 7b 0a 20 20 09 20 20 20 20 eof()) {. .
2bb40 20 20 20 20 20 20 20 20 63 70 20 3d 20 74 68 69 cp = thi
2bb50 73 24 31 2e 63 6f 64 65 50 6f 69 6e 74 41 74 28 s$1.codePointAt(
2bb60 74 68 69 73 24 31 2e 69 6e 64 65 78 29 3b 0a 20 this$1.index);.
2bb70 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
2bb80 20 28 21 63 68 61 72 61 63 74 65 72 5f 31 2e 43 (!character_1.C
2bb90 68 61 72 61 63 74 65 72 2e 69 73 49 64 65 6e 74 haracter.isIdent
2bba0 69 66 69 65 72 50 61 72 74 28 63 70 29 29 20 7b ifierPart(cp)) {
2bbb0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2bbc0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
2bbd0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
2bbe0 20 20 20 20 20 20 20 20 20 20 20 63 68 20 3d 20 ch =
2bbf0 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 character_1.Char
2bc00 61 63 74 65 72 2e 66 72 6f 6d 43 6f 64 65 50 6f acter.fromCodePo
2bc10 69 6e 74 28 63 70 29 3b 0a 20 20 09 20 20 20 20 int(cp);. .
2bc20 20 20 20 20 20 20 20 20 69 64 20 2b 3d 20 63 68 id += ch
2bc30 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2bc40 20 74 68 69 73 24 31 2e 69 6e 64 65 78 20 2b 3d this$1.index +=
2bc50 20 63 68 2e 6c 65 6e 67 74 68 3b 0a 20 20 09 20 ch.length;. .
2bc60 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 27 5c // '\
2bc70 75 27 20 28 55 2b 30 30 35 43 2c 20 55 2b 30 30 u' (U+005C, U+00
2bc80 37 35 29 20 64 65 6e 6f 74 65 73 20 61 6e 20 65 75) denotes an e
2bc90 73 63 61 70 65 64 20 63 68 61 72 61 63 74 65 72 scaped character
2bca0 2e 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 .. .
2bcb0 20 69 66 20 28 63 70 20 3d 3d 3d 20 30 78 35 43 if (cp === 0x5C
2bcc0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
2bcd0 20 20 20 20 20 20 20 69 64 20 3d 20 69 64 2e 73 id = id.s
2bce0 75 62 73 74 72 28 30 2c 20 69 64 2e 6c 65 6e 67 ubstr(0, id.leng
2bcf0 74 68 20 2d 20 31 29 3b 0a 20 20 09 20 20 20 20 th - 1);. .
2bd00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
2bd10 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e 63 68 this$1.source.ch
2bd20 61 72 43 6f 64 65 41 74 28 74 68 69 73 24 31 2e arCodeAt(this$1.
2bd30 69 6e 64 65 78 29 20 21 3d 3d 20 30 78 37 35 29 index) !== 0x75)
2bd40 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
2bd50 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
2bd60 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 .throwUnexpected
2bd70 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
2bd80 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
2bd90 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2bda0 20 2b 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b ++this$1.index;
2bdb0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2bdc0 20 20 20 20 69 66 20 28 74 68 69 73 24 31 2e 73 if (this$1.s
2bdd0 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 6e 64 ource[this$1.ind
2bde0 65 78 5d 20 3d 3d 3d 20 27 7b 27 29 20 7b 0a 20 ex] === '{') {.
2bdf0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2be00 20 20 20 20 20 20 2b 2b 74 68 69 73 24 31 2e 69 ++this$1.i
2be10 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 ndex;. .
2be20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 ch
2be30 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 55 6e 69 = this$1.scanUni
2be40 63 6f 64 65 43 6f 64 65 50 6f 69 6e 74 45 73 63 codeCodePointEsc
2be50 61 70 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ape();. .
2be60 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
2be70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
2be80 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 lse {. .
2be90 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 ch
2bea0 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 48 65 78 = this$1.scanHex
2beb0 45 73 63 61 70 65 28 27 75 27 29 3b 0a 20 20 09 Escape('u');. .
2bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2bed0 20 20 20 20 63 70 20 3d 20 63 68 2e 63 68 61 72 cp = ch.char
2bee0 43 6f 64 65 41 74 28 30 29 3b 0a 20 20 09 20 20 CodeAt(0);. .
2bef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2bf00 20 20 69 66 20 28 21 63 68 20 7c 7c 20 63 68 20 if (!ch || ch
2bf10 3d 3d 3d 20 27 5c 5c 27 20 7c 7c 20 21 63 68 61 === '\\' || !cha
2bf20 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 racter_1.Charact
2bf30 65 72 2e 69 73 49 64 65 6e 74 69 66 69 65 72 50 er.isIdentifierP
2bf40 61 72 74 28 63 70 29 29 20 7b 0a 20 20 09 20 20 art(cp)) {. .
2bf50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2bf60 20 20 20 20 20 20 74 68 69 73 24 31 2e 74 68 72 this$1.thr
2bf70 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 owUnexpectedToke
2bf80 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 n();. .
2bf90 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
2bfa0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2bfb0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
2bfc0 20 20 20 20 20 20 69 64 20 2b 3d 20 63 68 3b 0a id += ch;.
2bfd0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
2bfe0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
2bff0 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
2c000 69 64 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 id;. . };.
2c010 09 20 20 20 20 0a 20 20 09 20 20 20 20 53 63 61 . . . Sca
2c020 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6f nner.prototype.o
2c030 63 74 61 6c 54 6f 44 65 63 69 6d 61 6c 20 3d 20 ctalToDecimal =
2c040 66 75 6e 63 74 69 6f 6e 20 28 63 68 29 20 7b 0a function (ch) {.
2c050 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 5c 30 . // \0
2c060 20 69 73 20 6e 6f 74 20 6f 63 74 61 6c 20 65 73 is not octal es
2c070 63 61 70 65 20 73 65 71 75 65 6e 63 65 0a 20 20 cape sequence.
2c080 09 20 20 20 20 20 20 20 20 76 61 72 20 6f 63 74 . var oct
2c090 61 6c 20 3d 20 28 63 68 20 21 3d 3d 20 27 30 27 al = (ch !== '0'
2c0a0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
2c0b0 72 20 63 6f 64 65 20 3d 20 6f 63 74 61 6c 56 61 r code = octalVa
2c0c0 6c 75 65 28 63 68 29 3b 0a 20 20 09 20 20 20 20 lue(ch);. .
2c0d0 20 20 20 20 69 66 20 28 21 74 68 69 73 2e 65 6f if (!this.eo
2c0e0 66 28 29 20 26 26 20 63 68 61 72 61 63 74 65 72 f() && character
2c0f0 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 73 4f _1.Character.isO
2c100 63 74 61 6c 44 69 67 69 74 28 74 68 69 73 2e 73 ctalDigit(this.s
2c110 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 ource.charCodeAt
2c120 28 74 68 69 73 2e 69 6e 64 65 78 29 29 29 20 7b (this.index))) {
2c130 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2c140 6f 63 74 61 6c 20 3d 20 74 72 75 65 3b 0a 20 20 octal = true;.
2c150 09 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 . cod
2c160 65 20 3d 20 63 6f 64 65 20 2a 20 38 20 2b 20 6f e = code * 8 + o
2c170 63 74 61 6c 56 61 6c 75 65 28 74 68 69 73 2e 73 ctalValue(this.s
2c180 6f 75 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 78 ource[this.index
2c190 2b 2b 5d 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ++]);. .
2c1a0 20 20 20 20 20 2f 2f 20 33 20 64 69 67 69 74 73 // 3 digits
2c1b0 20 61 72 65 20 6f 6e 6c 79 20 61 6c 6c 6f 77 65 are only allowe
2c1c0 64 20 77 68 65 6e 20 73 74 72 69 6e 67 20 73 74 d when string st
2c1d0 61 72 74 73 0a 20 20 09 20 20 20 20 20 20 20 20 arts. .
2c1e0 20 20 20 20 2f 2f 20 77 69 74 68 20 30 2c 20 31 // with 0, 1
2c1f0 2c 20 32 2c 20 33 0a 20 20 09 20 20 20 20 20 20 , 2, 3. .
2c200 20 20 20 20 20 20 69 66 20 28 27 30 31 32 33 27 if ('0123'
2c210 2e 69 6e 64 65 78 4f 66 28 63 68 29 20 3e 3d 20 .indexOf(ch) >=
2c220 30 20 26 26 20 21 74 68 69 73 2e 65 6f 66 28 29 0 && !this.eof()
2c230 20 26 26 20 63 68 61 72 61 63 74 65 72 5f 31 2e && character_1.
2c240 43 68 61 72 61 63 74 65 72 2e 69 73 4f 63 74 61 Character.isOcta
2c250 6c 44 69 67 69 74 28 74 68 69 73 2e 73 6f 75 72 lDigit(this.sour
2c260 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 ce.charCodeAt(th
2c270 69 73 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 20 is.index))) {.
2c280 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2c290 20 63 6f 64 65 20 3d 20 63 6f 64 65 20 2a 20 38 code = code * 8
2c2a0 20 2b 20 6f 63 74 61 6c 56 61 6c 75 65 28 74 68 + octalValue(th
2c2b0 69 73 2e 73 6f 75 72 63 65 5b 74 68 69 73 2e 69 is.source[this.i
2c2c0 6e 64 65 78 2b 2b 5d 29 3b 0a 20 20 09 20 20 20 ndex++]);. .
2c2d0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
2c2e0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2c2f0 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 return {. .
2c300 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 3a code:
2c310 20 63 6f 64 65 2c 0a 20 20 09 20 20 20 20 20 20 code,. .
2c320 20 20 20 20 20 20 6f 63 74 61 6c 3a 20 6f 63 74 octal: oct
2c330 61 6c 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b al. . };
2c340 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
2c350 20 20 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d . . // ECM
2c360 41 2d 32 36 32 20 31 31 2e 36 20 4e 61 6d 65 73 A-262 11.6 Names
2c370 20 61 6e 64 20 4b 65 79 77 6f 72 64 73 0a 20 20 and Keywords.
2c380 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f . Scanner.pro
2c390 74 6f 74 79 70 65 2e 73 63 61 6e 49 64 65 6e 74 totype.scanIdent
2c3a0 69 66 69 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e ifier = function
2c3b0 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 () {. .
2c3c0 20 76 61 72 20 74 79 70 65 3b 0a 20 20 09 20 20 var type;. .
2c3d0 20 20 20 20 20 20 76 61 72 20 73 74 61 72 74 20 var start
2c3e0 3d 20 74 68 69 73 2e 69 6e 64 65 78 3b 0a 20 20 = this.index;.
2c3f0 09 20 20 20 20 20 20 20 20 2f 2f 20 42 61 63 6b . // Back
2c400 73 6c 61 73 68 20 28 55 2b 30 30 35 43 29 20 73 slash (U+005C) s
2c410 74 61 72 74 73 20 61 6e 20 65 73 63 61 70 65 64 tarts an escaped
2c420 20 63 68 61 72 61 63 74 65 72 2e 0a 20 20 09 20 character.. .
2c430 20 20 20 20 20 20 20 76 61 72 20 69 64 20 3d 20 var id =
2c440 28 74 68 69 73 2e 73 6f 75 72 63 65 2e 63 68 61 (this.source.cha
2c450 72 43 6f 64 65 41 74 28 73 74 61 72 74 29 20 3d rCodeAt(start) =
2c460 3d 3d 20 30 78 35 43 29 20 3f 20 74 68 69 73 2e == 0x5C) ? this.
2c470 67 65 74 43 6f 6d 70 6c 65 78 49 64 65 6e 74 69 getComplexIdenti
2c480 66 69 65 72 28 29 20 3a 20 74 68 69 73 2e 67 65 fier() : this.ge
2c490 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 tIdentifier();.
2c4a0 20 09 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 . // The
2c4b0 72 65 20 69 73 20 6e 6f 20 6b 65 79 77 6f 72 64 re is no keyword
2c4c0 20 6f 72 20 6c 69 74 65 72 61 6c 20 77 69 74 68 or literal with
2c4d0 20 6f 6e 6c 79 20 6f 6e 65 20 63 68 61 72 61 63 only one charac
2c4e0 74 65 72 2e 0a 20 20 09 20 20 20 20 20 20 20 20 ter.. .
2c4f0 2f 2f 20 54 68 75 73 2c 20 69 74 20 6d 75 73 74 // Thus, it must
2c500 20 62 65 20 61 6e 20 69 64 65 6e 74 69 66 69 65 be an identifie
2c510 72 2e 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 r.. . if
2c520 20 28 69 64 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 (id.length ===
2c530 31 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 1) {. .
2c540 20 20 20 20 74 79 70 65 20 3d 20 74 6f 6b 65 6e type = token
2c550 5f 31 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 _1.Token.Identif
2c560 69 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ier;. .
2c570 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 }. . els
2c580 65 20 69 66 20 28 74 68 69 73 2e 69 73 4b 65 79 e if (this.isKey
2c590 77 6f 72 64 28 69 64 29 29 20 7b 0a 20 20 09 20 word(id)) {. .
2c5a0 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 20 type
2c5b0 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e = token_1.Token.
2c5c0 4b 65 79 77 6f 72 64 3b 0a 20 20 09 20 20 20 20 Keyword;. .
2c5d0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
2c5e0 20 65 6c 73 65 20 69 66 20 28 69 64 20 3d 3d 3d else if (id ===
2c5f0 20 27 6e 75 6c 6c 27 29 20 7b 0a 20 20 09 20 20 'null') {. .
2c600 20 20 20 20 20 20 20 20 20 20 74 79 70 65 20 3d type =
2c610 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e token_1.Token.N
2c620 75 6c 6c 4c 69 74 65 72 61 6c 3b 0a 20 20 09 20 ullLiteral;. .
2c630 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2c640 20 20 20 20 65 6c 73 65 20 69 66 20 28 69 64 20 else if (id
2c650 3d 3d 3d 20 27 74 72 75 65 27 20 7c 7c 20 69 64 === 'true' || id
2c660 20 3d 3d 3d 20 27 66 61 6c 73 65 27 29 20 7b 0a === 'false') {.
2c670 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
2c680 79 70 65 20 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f ype = token_1.To
2c690 6b 65 6e 2e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 ken.BooleanLiter
2c6a0 61 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d al;. . }
2c6b0 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 65 . . else
2c6c0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
2c6d0 20 20 74 79 70 65 20 3d 20 74 6f 6b 65 6e 5f 31 type = token_1
2c6e0 2e 54 6f 6b 65 6e 2e 49 64 65 6e 74 69 66 69 65 .Token.Identifie
2c6f0 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a r;. . }.
2c700 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
2c710 6e 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 n {. .
2c720 20 20 20 74 79 70 65 3a 20 74 79 70 65 2c 0a 20 type: type,.
2c730 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
2c740 6c 75 65 3a 20 69 64 2c 0a 20 20 09 20 20 20 20 lue: id,. .
2c750 20 20 20 20 20 20 20 20 6c 69 6e 65 4e 75 6d 62 lineNumb
2c760 65 72 3a 20 74 68 69 73 2e 6c 69 6e 65 4e 75 6d er: this.lineNum
2c770 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 ber,. .
2c780 20 20 20 20 6c 69 6e 65 53 74 61 72 74 3a 20 74 lineStart: t
2c790 68 69 73 2e 6c 69 6e 65 53 74 61 72 74 2c 0a 20 his.lineStart,.
2c7a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 73 74 . st
2c7b0 61 72 74 3a 20 73 74 61 72 74 2c 0a 20 20 09 20 art: start,. .
2c7c0 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3a 20 end:
2c7d0 74 68 69 73 2e 69 6e 64 65 78 0a 20 20 09 20 20 this.index. .
2c7e0 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 };. .
2c7f0 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 };. . . .
2c800 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 31 // ECMA-262 11
2c810 2e 37 20 50 75 6e 63 74 75 61 74 6f 72 73 0a 20 .7 Punctuators.
2c820 20 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 . Scanner.pr
2c830 6f 74 6f 74 79 70 65 2e 73 63 61 6e 50 75 6e 63 ototype.scanPunc
2c840 74 75 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f tuator = functio
2c850 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
2c860 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d 20 7b 0a var token = {.
2c870 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
2c880 79 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b ype: token_1.Tok
2c890 65 6e 2e 50 75 6e 63 74 75 61 74 6f 72 2c 0a 20 en.Punctuator,.
2c8a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
2c8b0 6c 75 65 3a 20 27 27 2c 0a 20 20 09 20 20 20 20 lue: '',. .
2c8c0 20 20 20 20 20 20 20 20 6c 69 6e 65 4e 75 6d 62 lineNumb
2c8d0 65 72 3a 20 74 68 69 73 2e 6c 69 6e 65 4e 75 6d er: this.lineNum
2c8e0 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 ber,. .
2c8f0 20 20 20 20 6c 69 6e 65 53 74 61 72 74 3a 20 74 lineStart: t
2c900 68 69 73 2e 6c 69 6e 65 53 74 61 72 74 2c 0a 20 his.lineStart,.
2c910 20 09 20 20 20 20 20 20 20 20 20 20 20 20 73 74 . st
2c920 61 72 74 3a 20 74 68 69 73 2e 69 6e 64 65 78 2c art: this.index,
2c930 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2c940 65 6e 64 3a 20 74 68 69 73 2e 69 6e 64 65 78 0a end: this.index.
2c950 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 . };.
2c960 09 20 20 20 20 20 20 20 20 2f 2f 20 43 68 65 63 . // Chec
2c970 6b 20 66 6f 72 20 6d 6f 73 74 20 63 6f 6d 6d 6f k for most commo
2c980 6e 20 73 69 6e 67 6c 65 2d 63 68 61 72 61 63 74 n single-charact
2c990 65 72 20 70 75 6e 63 74 75 61 74 6f 72 73 2e 0a er punctuators..
2c9a0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 73 . var s
2c9b0 74 72 20 3d 20 74 68 69 73 2e 73 6f 75 72 63 65 tr = this.source
2c9c0 5b 74 68 69 73 2e 69 6e 64 65 78 5d 3b 0a 20 20 [this.index];.
2c9d0 09 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 . switch
2c9e0 28 73 74 72 29 20 7b 0a 20 20 09 20 20 20 20 20 (str) {. .
2c9f0 20 20 20 20 20 20 20 63 61 73 65 20 27 28 27 3a case '(':
2ca00 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2ca10 63 61 73 65 20 27 7b 27 3a 0a 20 20 09 20 20 20 case '{':. .
2ca20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
2ca30 28 73 74 72 20 3d 3d 3d 20 27 7b 27 29 20 7b 0a (str === '{') {.
2ca40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2ca50 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 6c this.curl
2ca60 79 53 74 61 63 6b 2e 70 75 73 68 28 27 7b 27 29 yStack.push('{')
2ca70 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2ca80 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
2ca90 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 ++this
2caa0 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
2cab0 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
2cac0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2cad0 20 63 61 73 65 20 27 2e 27 3a 0a 20 20 09 20 20 case '.':. .
2cae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b ++
2caf0 74 68 69 73 2e 69 6e 64 65 78 3b 0a 20 20 09 20 this.index;. .
2cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
2cb10 66 20 28 74 68 69 73 2e 73 6f 75 72 63 65 5b 74 f (this.source[t
2cb20 68 69 73 2e 69 6e 64 65 78 5d 20 3d 3d 3d 20 27 his.index] === '
2cb30 2e 27 20 26 26 20 74 68 69 73 2e 73 6f 75 72 63 .' && this.sourc
2cb40 65 5b 74 68 69 73 2e 69 6e 64 65 78 20 2b 20 31 e[this.index + 1
2cb50 5d 20 3d 3d 3d 20 27 2e 27 29 20 7b 0a 20 20 09 ] === '.') {. .
2cb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cb70 20 20 20 20 2f 2f 20 53 70 72 65 61 64 20 6f 70 // Spread op
2cb80 65 72 61 74 6f 72 3a 20 2e 2e 2e 0a 20 20 09 20 erator: .... .
2cb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cba0 20 20 20 74 68 69 73 2e 69 6e 64 65 78 20 2b 3d this.index +=
2cbb0 20 32 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 2;. .
2cbc0 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20 3d str =
2cbd0 20 27 2e 2e 2e 27 3b 0a 20 20 09 20 20 20 20 20 '...';. .
2cbe0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2cbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cc00 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 break;. .
2cc10 20 20 20 20 20 20 63 61 73 65 20 27 7d 27 3a 0a case '}':.
2cc20 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2cc30 20 20 20 2b 2b 74 68 69 73 2e 69 6e 64 65 78 3b ++this.index;
2cc40 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2cc50 20 20 20 20 74 68 69 73 2e 63 75 72 6c 79 53 74 this.curlySt
2cc60 61 63 6b 2e 70 6f 70 28 29 3b 0a 20 20 09 20 20 ack.pop();. .
2cc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
2cc80 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
2cc90 20 20 20 20 63 61 73 65 20 27 29 27 3a 0a 20 20 case ')':.
2cca0 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
2ccb0 65 20 27 3b 27 3a 0a 20 20 09 20 20 20 20 20 20 e ';':. .
2ccc0 20 20 20 20 20 20 63 61 73 65 20 27 2c 27 3a 0a case ',':.
2ccd0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 . c
2cce0 61 73 65 20 27 5b 27 3a 0a 20 20 09 20 20 20 20 ase '[':. .
2ccf0 20 20 20 20 20 20 20 20 63 61 73 65 20 27 5d 27 case ']'
2cd00 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
2cd10 20 63 61 73 65 20 27 3a 27 3a 0a 20 20 09 20 20 case ':':. .
2cd20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 case '
2cd30 3f 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 ?':. .
2cd40 20 20 20 63 61 73 65 20 27 7e 27 3a 0a 20 20 09 case '~':. .
2cd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cd60 2b 2b 74 68 69 73 2e 69 6e 64 65 78 3b 0a 20 20 ++this.index;.
2cd70 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2cd80 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
2cd90 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a default:.
2cda0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2cdb0 20 20 20 2f 2f 20 34 2d 63 68 61 72 61 63 74 65 // 4-characte
2cdc0 72 20 70 75 6e 63 74 75 61 74 6f 72 2e 0a 20 20 r punctuator..
2cdd0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2cde0 20 73 74 72 20 3d 20 74 68 69 73 2e 73 6f 75 72 str = this.sour
2cdf0 63 65 2e 73 75 62 73 74 72 28 74 68 69 73 2e 69 ce.substr(this.i
2ce00 6e 64 65 78 2c 20 34 29 3b 0a 20 20 09 20 20 20 ndex, 4);. .
2ce10 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 if
2ce20 28 73 74 72 20 3d 3d 3d 20 27 3e 3e 3e 3d 27 29 (str === '>>>=')
2ce30 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
2ce40 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 this.i
2ce50 6e 64 65 78 20 2b 3d 20 34 3b 0a 20 20 09 20 20 ndex += 4;. .
2ce60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
2ce70 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2ce80 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
2ce90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cea0 20 2f 2f 20 33 2d 63 68 61 72 61 63 74 65 72 20 // 3-character
2ceb0 70 75 6e 63 74 75 61 74 6f 72 73 2e 0a 20 20 09 punctuators.. .
2cec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2ced0 20 20 20 20 73 74 72 20 3d 20 73 74 72 2e 73 75 str = str.su
2cee0 62 73 74 72 28 30 2c 20 33 29 3b 0a 20 20 09 20 bstr(0, 3);. .
2cef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cf00 20 20 20 69 66 20 28 73 74 72 20 3d 3d 3d 20 27 if (str === '
2cf10 3d 3d 3d 27 20 7c 7c 20 73 74 72 20 3d 3d 3d 20 ===' || str ===
2cf20 27 21 3d 3d 27 20 7c 7c 20 73 74 72 20 3d 3d 3d '!==' || str ===
2cf30 20 27 3e 3e 3e 27 20 7c 7c 0a 20 20 09 20 20 20 '>>>' ||. .
2cf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cf50 20 20 20 20 20 73 74 72 20 3d 3d 3d 20 27 3c 3c str === '<<
2cf60 3d 27 20 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 3e =' || str === '>
2cf70 3e 3d 27 20 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 >=' || str === '
2cf80 2a 2a 3d 27 29 20 7b 0a 20 20 09 20 20 20 20 20 **=') {. .
2cf90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cfa0 20 20 20 74 68 69 73 2e 69 6e 64 65 78 20 2b 3d this.index +=
2cfb0 20 33 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 3;. .
2cfc0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2cfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2cfe0 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
2cff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d000 20 20 20 20 20 20 2f 2f 20 32 2d 63 68 61 72 61 // 2-chara
2d010 63 74 65 72 20 70 75 6e 63 74 75 61 74 6f 72 73 cter punctuators
2d020 2e 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 .. .
2d030 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 str
2d040 20 3d 20 73 74 72 2e 73 75 62 73 74 72 28 30 2c = str.substr(0,
2d050 20 32 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 2);. .
2d060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d070 69 66 20 28 73 74 72 20 3d 3d 3d 20 27 26 26 27 if (str === '&&'
2d080 20 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 7c 7c 27 || str === '||'
2d090 20 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 3d 3d 27 || str === '=='
2d0a0 20 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 21 3d 27 || str === '!='
2d0b0 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 ||. .
2d0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d0d0 20 20 20 73 74 72 20 3d 3d 3d 20 27 2b 3d 27 20 str === '+='
2d0e0 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 2d 3d 27 20 || str === '-='
2d0f0 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 2a 3d 27 20 || str === '*='
2d100 7c 7c 20 73 74 72 20 3d 3d 3d 20 27 2f 3d 27 20 || str === '/='
2d110 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
2d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d130 20 20 73 74 72 20 3d 3d 3d 20 27 2b 2b 27 20 7c str === '++' |
2d140 7c 20 73 74 72 20 3d 3d 3d 20 27 2d 2d 27 20 7c | str === '--' |
2d150 7c 20 73 74 72 20 3d 3d 3d 20 27 3c 3c 27 20 7c | str === '<<' |
2d160 7c 20 73 74 72 20 3d 3d 3d 20 27 3e 3e 27 20 7c | str === '>>' |
2d170 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 |. .
2d180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d190 20 73 74 72 20 3d 3d 3d 20 27 26 3d 27 20 7c 7c str === '&=' ||
2d1a0 20 73 74 72 20 3d 3d 3d 20 27 7c 3d 27 20 7c 7c str === '|=' ||
2d1b0 20 73 74 72 20 3d 3d 3d 20 27 5e 3d 27 20 7c 7c str === '^=' ||
2d1c0 20 73 74 72 20 3d 3d 3d 20 27 25 3d 27 20 7c 7c str === '%=' ||
2d1d0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2d1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d1f0 73 74 72 20 3d 3d 3d 20 27 3c 3d 27 20 7c 7c 20 str === '<=' ||
2d200 73 74 72 20 3d 3d 3d 20 27 3e 3d 27 20 7c 7c 20 str === '>=' ||
2d210 73 74 72 20 3d 3d 3d 20 27 3d 3e 27 20 7c 7c 20 str === '=>' ||
2d220 73 74 72 20 3d 3d 3d 20 27 2a 2a 27 29 20 7b 0a str === '**') {.
2d230 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
2d250 68 69 73 2e 69 6e 64 65 78 20 2b 3d 20 32 3b 0a his.index += 2;.
2d260 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d270 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2d280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d290 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
2d2a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f //
2d2c0 20 31 2d 63 68 61 72 61 63 74 65 72 20 70 75 6e 1-character pun
2d2d0 63 74 75 61 74 6f 72 73 2e 0a 20 20 09 20 20 20 ctuators.. .
2d2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d2f0 20 20 20 20 20 20 20 20 20 73 74 72 20 3d 20 74 str = t
2d300 68 69 73 2e 73 6f 75 72 63 65 5b 74 68 69 73 2e his.source[this.
2d310 69 6e 64 65 78 5d 3b 0a 20 20 09 20 20 20 20 20 index];. .
2d320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d330 20 20 20 20 20 20 20 69 66 20 28 27 3c 3e 3d 21 if ('<>=!
2d340 2b 2d 2a 25 26 7c 5e 2f 27 2e 69 6e 64 65 78 4f +-*%&|^/'.indexO
2d350 66 28 73 74 72 29 20 3e 3d 20 30 29 20 7b 0a 20 f(str) >= 0) {.
2d360 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2d380 20 20 2b 2b 74 68 69 73 2e 69 6e 64 65 78 3b 0a ++this.index;.
2d390 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
2d3b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2d3c0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
2d3d0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d3e0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
2d3f0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
2d400 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2d410 20 20 20 20 69 66 20 28 74 68 69 73 2e 69 6e 64 if (this.ind
2d420 65 78 20 3d 3d 3d 20 74 6f 6b 65 6e 2e 73 74 61 ex === token.sta
2d430 72 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 rt) {. .
2d440 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
2d450 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 29 nexpectedToken()
2d460 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
2d470 20 09 20 20 20 20 20 20 20 20 74 6f 6b 65 6e 2e . token.
2d480 65 6e 64 20 3d 20 74 68 69 73 2e 69 6e 64 65 78 end = this.index
2d490 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 6f 6b ;. . tok
2d4a0 65 6e 2e 76 61 6c 75 65 20 3d 20 73 74 72 3b 0a en.value = str;.
2d4b0 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
2d4c0 6e 20 74 6f 6b 65 6e 3b 0a 20 20 09 20 20 20 20 n token;. .
2d4d0 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 };. . . .
2d4e0 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 31 31 // ECMA-262 11
2d4f0 2e 38 2e 33 20 4e 75 6d 65 72 69 63 20 4c 69 74 .8.3 Numeric Lit
2d500 65 72 61 6c 73 0a 20 20 09 20 20 20 20 53 63 61 erals. . Sca
2d510 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 73 nner.prototype.s
2d520 63 61 6e 48 65 78 4c 69 74 65 72 61 6c 20 3d 20 canHexLiteral =
2d530 66 75 6e 63 74 69 6f 6e 20 28 73 74 61 72 74 29 function (start)
2d540 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
2d550 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b r this$1 = this;
2d560 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 .. . var
2d570 20 6e 75 6d 62 65 72 20 3d 20 27 27 3b 0a 20 20 number = '';.
2d580 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 . while (
2d590 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b 0a 20 !this.eof()) {.
2d5a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
2d5b0 20 28 21 63 68 61 72 61 63 74 65 72 5f 31 2e 43 (!character_1.C
2d5c0 68 61 72 61 63 74 65 72 2e 69 73 48 65 78 44 69 haracter.isHexDi
2d5d0 67 69 74 28 74 68 69 73 24 31 2e 73 6f 75 72 63 git(this$1.sourc
2d5e0 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 69 e.charCodeAt(thi
2d5f0 73 24 31 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 s$1.index))) {.
2d600 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d610 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 break;. .
2d620 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
2d630 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 20 number
2d640 2b 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 += this$1.source
2d650 5b 74 68 69 73 24 31 2e 69 6e 64 65 78 2b 2b 5d [this$1.index++]
2d660 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
2d670 20 09 20 20 20 20 20 20 20 20 69 66 20 28 6e 75 . if (nu
2d680 6d 62 65 72 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 mber.length ===
2d690 30 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 0) {. .
2d6a0 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 6e this.throwUn
2d6b0 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 29 3b expectedToken();
2d6c0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
2d6d0 09 20 20 20 20 20 20 20 20 69 66 20 28 63 68 61 . if (cha
2d6e0 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 racter_1.Charact
2d6f0 65 72 2e 69 73 49 64 65 6e 74 69 66 69 65 72 53 er.isIdentifierS
2d700 74 61 72 74 28 74 68 69 73 2e 73 6f 75 72 63 65 tart(this.source
2d710 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 69 73 .charCodeAt(this
2d720 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 20 09 20 .index))) {. .
2d730 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
2d740 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 throwUnexpectedT
2d750 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
2d760 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
2d770 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 20 return {. .
2d780 20 20 20 20 20 20 20 20 74 79 70 65 3a 20 74 6f type: to
2d790 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e 75 6d 65 ken_1.Token.Nume
2d7a0 72 69 63 4c 69 74 65 72 61 6c 2c 0a 20 20 09 20 ricLiteral,. .
2d7b0 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 value
2d7c0 3a 20 70 61 72 73 65 49 6e 74 28 27 30 78 27 20 : parseInt('0x'
2d7d0 2b 20 6e 75 6d 62 65 72 2c 20 31 36 29 2c 0a 20 + number, 16),.
2d7e0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 . li
2d7f0 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e 6c neNumber: this.l
2d800 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 ineNumber,. .
2d810 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 lineSt
2d820 61 72 74 3a 20 74 68 69 73 2e 6c 69 6e 65 53 74 art: this.lineSt
2d830 61 72 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 art,. .
2d840 20 20 20 20 73 74 61 72 74 3a 20 73 74 61 72 74 start: start
2d850 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
2d860 20 65 6e 64 3a 20 74 68 69 73 2e 69 6e 64 65 78 end: this.index
2d870 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 . . };.
2d880 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
2d890 0a 20 20 09 20 20 20 20 53 63 61 6e 6e 65 72 2e . . Scanner.
2d8a0 70 72 6f 74 6f 74 79 70 65 2e 73 63 61 6e 42 69 prototype.scanBi
2d8b0 6e 61 72 79 4c 69 74 65 72 61 6c 20 3d 20 66 75 naryLiteral = fu
2d8c0 6e 63 74 69 6f 6e 20 28 73 74 61 72 74 29 20 7b nction (start) {
2d8d0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
2d8e0 74 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a this$1 = this;..
2d8f0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6e . var n
2d900 75 6d 62 65 72 20 3d 20 27 27 3b 0a 20 20 09 20 umber = '';. .
2d910 20 20 20 20 20 20 20 76 61 72 20 63 68 3b 0a 20 var ch;.
2d920 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 . while
2d930 28 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b 0a (!this.eof()) {.
2d940 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 63 . c
2d950 68 20 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 63 h = this$1.sourc
2d960 65 5b 74 68 69 73 24 31 2e 69 6e 64 65 78 5d 3b e[this$1.index];
2d970 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2d980 69 66 20 28 63 68 20 21 3d 3d 20 27 30 27 20 26 if (ch !== '0' &
2d990 26 20 63 68 20 21 3d 3d 20 27 31 27 29 20 7b 0a & ch !== '1') {.
2d9a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2d9b0 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
2d9c0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
2d9d0 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 number
2d9e0 20 2b 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 63 += this$1.sourc
2d9f0 65 5b 74 68 69 73 24 31 2e 69 6e 64 65 78 2b 2b e[this$1.index++
2da00 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a ];. . }.
2da10 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 6e . if (n
2da20 75 6d 62 65 72 2e 6c 65 6e 67 74 68 20 3d 3d 3d umber.length ===
2da30 20 30 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 0) {. .
2da40 20 20 20 20 20 2f 2f 20 6f 6e 6c 79 20 30 62 20 // only 0b
2da50 6f 72 20 30 42 0a 20 20 09 20 20 20 20 20 20 20 or 0B. .
2da60 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
2da70 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 29 nexpectedToken()
2da80 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
2da90 20 09 20 20 20 20 20 20 20 20 69 66 20 28 21 74 . if (!t
2daa0 68 69 73 2e 65 6f 66 28 29 29 20 7b 0a 20 20 09 his.eof()) {. .
2dab0 20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 3d ch =
2dac0 20 74 68 69 73 2e 73 6f 75 72 63 65 2e 63 68 61 this.source.cha
2dad0 72 43 6f 64 65 41 74 28 74 68 69 73 2e 69 6e 64 rCodeAt(this.ind
2dae0 65 78 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ex);. .
2daf0 20 20 20 20 2f 2a 20 69 73 74 61 6e 62 75 6c 20 /* istanbul
2db00 69 67 6e 6f 72 65 20 65 6c 73 65 20 2a 2f 0a 20 ignore else */.
2db10 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
2db20 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 (character_1.Ch
2db30 61 72 61 63 74 65 72 2e 69 73 49 64 65 6e 74 69 aracter.isIdenti
2db40 66 69 65 72 53 74 61 72 74 28 63 68 29 20 7c 7c fierStart(ch) ||
2db50 20 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 character_1.Cha
2db60 72 61 63 74 65 72 2e 69 73 44 65 63 69 6d 61 6c racter.isDecimal
2db70 44 69 67 69 74 28 63 68 29 29 20 7b 0a 20 20 09 Digit(ch)) {. .
2db80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2db90 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 this.throwUnexpe
2dba0 63 74 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 ctedToken();. .
2dbb0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
2dbc0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
2dbd0 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 return {.
2dbe0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 79 . ty
2dbf0 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 pe: token_1.Toke
2dc00 6e 2e 4e 75 6d 65 72 69 63 4c 69 74 65 72 61 6c n.NumericLiteral
2dc10 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
2dc20 20 76 61 6c 75 65 3a 20 70 61 72 73 65 49 6e 74 value: parseInt
2dc30 28 6e 75 6d 62 65 72 2c 20 32 29 2c 0a 20 20 09 (number, 2),. .
2dc40 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
2dc50 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e 6c 69 6e Number: this.lin
2dc60 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 eNumber,. .
2dc70 20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 61 72 lineStar
2dc80 74 3a 20 74 68 69 73 2e 6c 69 6e 65 53 74 61 72 t: this.lineStar
2dc90 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 t,. .
2dca0 20 20 73 74 61 72 74 3a 20 73 74 61 72 74 2c 0a start: start,.
2dcb0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
2dcc0 6e 64 3a 20 74 68 69 73 2e 69 6e 64 65 78 0a 20 nd: this.index.
2dcd0 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 . };. .
2dce0 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 };. . .
2dcf0 20 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 . Scanner.pr
2dd00 6f 74 6f 74 79 70 65 2e 73 63 61 6e 4f 63 74 61 ototype.scanOcta
2dd10 6c 4c 69 74 65 72 61 6c 20 3d 20 66 75 6e 63 74 lLiteral = funct
2dd20 69 6f 6e 20 28 70 72 65 66 69 78 2c 20 73 74 61 ion (prefix, sta
2dd30 72 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 rt) {. .
2dd40 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 var this$1 = th
2dd50 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 is;.. .
2dd60 76 61 72 20 6e 75 6d 62 65 72 20 3d 20 27 27 3b var number = '';
2dd70 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
2dd80 6f 63 74 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 20 octal = false;.
2dd90 20 09 20 20 20 20 20 20 20 20 69 66 20 28 63 68 . if (ch
2dda0 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 aracter_1.Charac
2ddb0 74 65 72 2e 69 73 4f 63 74 61 6c 44 69 67 69 74 ter.isOctalDigit
2ddc0 28 70 72 65 66 69 78 2e 63 68 61 72 43 6f 64 65 (prefix.charCode
2ddd0 41 74 28 30 29 29 29 20 7b 0a 20 20 09 20 20 20 At(0))) {. .
2dde0 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 20 3d octal =
2ddf0 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 true;. .
2de00 20 20 20 20 20 20 6e 75 6d 62 65 72 20 3d 20 27 number = '
2de10 30 27 20 2b 20 74 68 69 73 2e 73 6f 75 72 63 65 0' + this.source
2de20 5b 74 68 69 73 2e 69 6e 64 65 78 2b 2b 5d 3b 0a [this.index++];.
2de30 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
2de40 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
2de50 20 09 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b . ++
2de60 74 68 69 73 2e 69 6e 64 65 78 3b 0a 20 20 09 20 this.index;. .
2de70 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2de80 20 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 while (!this
2de90 2e 65 6f 66 28 29 29 20 7b 0a 20 20 09 20 20 20 .eof()) {. .
2dea0 20 20 20 20 20 20 20 20 20 69 66 20 28 21 63 68 if (!ch
2deb0 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 aracter_1.Charac
2dec0 74 65 72 2e 69 73 4f 63 74 61 6c 44 69 67 69 74 ter.isOctalDigit
2ded0 28 74 68 69 73 24 31 2e 73 6f 75 72 63 65 2e 63 (this$1.source.c
2dee0 68 61 72 43 6f 64 65 41 74 28 74 68 69 73 24 31 harCodeAt(this$1
2def0 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 20 09 20 .index))) {. .
2df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
2df10 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
2df20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
2df30 20 20 20 20 20 20 6e 75 6d 62 65 72 20 2b 3d 20 number +=
2df40 74 68 69 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 this$1.source[th
2df50 69 73 24 31 2e 69 6e 64 65 78 2b 2b 5d 3b 0a 20 is$1.index++];.
2df60 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
2df70 20 20 20 20 20 20 20 69 66 20 28 21 6f 63 74 61 if (!octa
2df80 6c 20 26 26 20 6e 75 6d 62 65 72 2e 6c 65 6e 67 l && number.leng
2df90 74 68 20 3d 3d 3d 20 30 29 20 7b 0a 20 20 09 20 th === 0) {. .
2dfa0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 6e // on
2dfb0 6c 79 20 30 6f 20 6f 72 20 30 4f 0a 20 20 09 20 ly 0o or 0O. .
2dfc0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
2dfd0 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 throwUnexpectedT
2dfe0 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 oken();. .
2dff0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
2e000 69 66 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e if (character_1.
2e010 43 68 61 72 61 63 74 65 72 2e 69 73 49 64 65 6e Character.isIden
2e020 74 69 66 69 65 72 53 74 61 72 74 28 74 68 69 73 tifierStart(this
2e030 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 65 .source.charCode
2e040 41 74 28 74 68 69 73 2e 69 6e 64 65 78 29 29 20 At(this.index))
2e050 7c 7c 20 63 68 61 72 61 63 74 65 72 5f 31 2e 43 || character_1.C
2e060 68 61 72 61 63 74 65 72 2e 69 73 44 65 63 69 6d haracter.isDecim
2e070 61 6c 44 69 67 69 74 28 74 68 69 73 2e 73 6f 75 alDigit(this.sou
2e080 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 rce.charCodeAt(t
2e090 68 69 73 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 his.index))) {.
2e0a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
2e0b0 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 is.throwUnexpect
2e0c0 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 edToken();. .
2e0d0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2e0e0 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 return {. .
2e0f0 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 3a type:
2e100 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 4e token_1.Token.N
2e110 75 6d 65 72 69 63 4c 69 74 65 72 61 6c 2c 0a 20 umericLiteral,.
2e120 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
2e130 6c 75 65 3a 20 70 61 72 73 65 49 6e 74 28 6e 75 lue: parseInt(nu
2e140 6d 62 65 72 2c 20 38 29 2c 0a 20 20 09 20 20 20 mber, 8),. .
2e150 20 20 20 20 20 20 20 20 20 6f 63 74 61 6c 3a 20 octal:
2e160 6f 63 74 61 6c 2c 0a 20 20 09 20 20 20 20 20 20 octal,. .
2e170 20 20 20 20 20 20 6c 69 6e 65 4e 75 6d 62 65 72 lineNumber
2e180 3a 20 74 68 69 73 2e 6c 69 6e 65 4e 75 6d 62 65 : this.lineNumbe
2e190 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 r,. .
2e1a0 20 20 6c 69 6e 65 53 74 61 72 74 3a 20 74 68 69 lineStart: thi
2e1b0 73 2e 6c 69 6e 65 53 74 61 72 74 2c 0a 20 20 09 s.lineStart,. .
2e1c0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 star
2e1d0 74 3a 20 73 74 61 72 74 2c 0a 20 20 09 20 20 20 t: start,. .
2e1e0 20 20 20 20 20 20 20 20 20 65 6e 64 3a 20 74 68 end: th
2e1f0 69 73 2e 69 6e 64 65 78 0a 20 20 09 20 20 20 20 is.index. .
2e200 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 7d 3b };. . };
2e210 0a 20 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 . . . .
2e220 53 63 61 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 Scanner.prototyp
2e230 65 2e 69 73 49 6d 70 6c 69 63 69 74 4f 63 74 61 e.isImplicitOcta
2e240 6c 4c 69 74 65 72 61 6c 20 3d 20 66 75 6e 63 74 lLiteral = funct
2e250 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
2e260 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d var this$1 =
2e270 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 this;.. .
2e280 20 20 20 2f 2f 20 49 6d 70 6c 69 63 69 74 20 6f // Implicit o
2e290 63 74 61 6c 2c 20 75 6e 6c 65 73 73 20 74 68 65 ctal, unless the
2e2a0 72 65 20 69 73 20 61 20 6e 6f 6e 2d 6f 63 74 61 re is a non-octa
2e2b0 6c 20 64 69 67 69 74 2e 0a 20 20 09 20 20 20 20 l digit.. .
2e2c0 20 20 20 20 2f 2f 20 28 41 6e 6e 65 78 20 42 2e // (Annex B.
2e2d0 31 2e 31 20 6f 6e 20 4e 75 6d 65 72 69 63 20 4c 1.1 on Numeric L
2e2e0 69 74 65 72 61 6c 73 29 0a 20 20 09 20 20 20 20 iterals). .
2e2f0 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d for (var i =
2e300 20 74 68 69 73 2e 69 6e 64 65 78 20 2b 20 31 3b this.index + 1;
2e310 20 69 20 3c 20 74 68 69 73 2e 6c 65 6e 67 74 68 i < this.length
2e320 3b 20 2b 2b 69 29 20 7b 0a 20 20 09 20 20 20 20 ; ++i) {. .
2e330 20 20 20 20 20 20 20 20 76 61 72 20 63 68 20 3d var ch =
2e340 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 5b 69 this$1.source[i
2e350 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ];. .
2e360 20 20 69 66 20 28 63 68 20 3d 3d 3d 20 27 38 27 if (ch === '8'
2e370 20 7c 7c 20 63 68 20 3d 3d 3d 20 27 39 27 29 20 || ch === '9')
2e380 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
2e390 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 return fals
2e3a0 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 e;. .
2e3b0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
2e3c0 20 20 20 69 66 20 28 21 63 68 61 72 61 63 74 65 if (!characte
2e3d0 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 73 r_1.Character.is
2e3e0 4f 63 74 61 6c 44 69 67 69 74 28 63 68 2e 63 68 OctalDigit(ch.ch
2e3f0 61 72 43 6f 64 65 41 74 28 30 29 29 29 20 7b 0a arCodeAt(0))) {.
2e400 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2e410 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a return true;.
2e420 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
2e430 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
2e440 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
2e450 74 72 75 65 3b 0a 20 20 09 20 20 20 20 7d 3b 0a true;. . };.
2e460 20 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 53 . . . S
2e470 63 61 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 canner.prototype
2e480 2e 73 63 61 6e 4e 75 6d 65 72 69 63 4c 69 74 65 .scanNumericLite
2e490 72 61 6c 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ral = function (
2e4a0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
2e4b0 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 ar this$1 = this
2e4c0 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 ;.. . va
2e4d0 72 20 73 74 61 72 74 20 3d 20 74 68 69 73 2e 69 r start = this.i
2e4e0 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 ndex;. .
2e4f0 20 76 61 72 20 63 68 20 3d 20 74 68 69 73 2e 73 var ch = this.s
2e500 6f 75 72 63 65 5b 73 74 61 72 74 5d 3b 0a 20 20 ource[start];.
2e510 09 20 20 20 20 20 20 20 20 61 73 73 65 72 74 5f . assert_
2e520 31 2e 61 73 73 65 72 74 28 63 68 61 72 61 63 74 1.assert(charact
2e530 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 er_1.Character.i
2e540 73 44 65 63 69 6d 61 6c 44 69 67 69 74 28 63 68 sDecimalDigit(ch
2e550 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 29 20 .charCodeAt(0))
2e560 7c 7c 20 28 63 68 20 3d 3d 3d 20 27 2e 27 29 2c || (ch === '.'),
2e570 20 27 4e 75 6d 65 72 69 63 20 6c 69 74 65 72 61 'Numeric litera
2e580 6c 20 6d 75 73 74 20 73 74 61 72 74 20 77 69 74 l must start wit
2e590 68 20 61 20 64 65 63 69 6d 61 6c 20 64 69 67 69 h a decimal digi
2e5a0 74 20 6f 72 20 61 20 64 65 63 69 6d 61 6c 20 70 t or a decimal p
2e5b0 6f 69 6e 74 27 29 3b 0a 20 20 09 20 20 20 20 20 oint');. .
2e5c0 20 20 20 76 61 72 20 6e 75 6d 62 65 72 20 3d 20 var number =
2e5d0 27 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 '';. . i
2e5e0 66 20 28 63 68 20 21 3d 3d 20 27 2e 27 29 20 7b f (ch !== '.') {
2e5f0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2e600 6e 75 6d 62 65 72 20 3d 20 74 68 69 73 2e 73 6f number = this.so
2e610 75 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 78 2b urce[this.index+
2e620 2b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 +];. .
2e630 20 20 20 63 68 20 3d 20 74 68 69 73 2e 73 6f 75 ch = this.sou
2e640 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 78 5d 3b rce[this.index];
2e650 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2e660 2f 2f 20 48 65 78 20 6e 75 6d 62 65 72 20 73 74 // Hex number st
2e670 61 72 74 73 20 77 69 74 68 20 27 30 78 27 2e 0a arts with '0x'..
2e680 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 2f . /
2e690 2f 20 4f 63 74 61 6c 20 6e 75 6d 62 65 72 20 73 / Octal number s
2e6a0 74 61 72 74 73 20 77 69 74 68 20 27 30 27 2e 0a tarts with '0'..
2e6b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 2f . /
2e6c0 2f 20 4f 63 74 61 6c 20 6e 75 6d 62 65 72 20 69 / Octal number i
2e6d0 6e 20 45 53 36 20 73 74 61 72 74 73 20 77 69 74 n ES6 starts wit
2e6e0 68 20 27 30 6f 27 2e 0a 20 20 09 20 20 20 20 20 h '0o'.. .
2e6f0 20 20 20 20 20 20 20 2f 2f 20 42 69 6e 61 72 79 // Binary
2e700 20 6e 75 6d 62 65 72 20 69 6e 20 45 53 36 20 73 number in ES6 s
2e710 74 61 72 74 73 20 77 69 74 68 20 27 30 62 27 2e tarts with '0b'.
2e720 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2e730 69 66 20 28 6e 75 6d 62 65 72 20 3d 3d 3d 20 27 if (number === '
2e740 30 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 0') {. .
2e750 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 20 if (ch
2e760 3d 3d 3d 20 27 78 27 20 7c 7c 20 63 68 20 3d 3d === 'x' || ch ==
2e770 3d 20 27 58 27 29 20 7b 0a 20 20 09 20 20 20 20 = 'X') {. .
2e780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2e790 2b 2b 74 68 69 73 2e 69 6e 64 65 78 3b 0a 20 20 ++this.index;.
2e7a0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2e7b0 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
2e7c0 2e 73 63 61 6e 48 65 78 4c 69 74 65 72 61 6c 28 .scanHexLiteral(
2e7d0 73 74 61 72 74 29 3b 0a 20 20 09 20 20 20 20 20 start);. .
2e7e0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2e7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2e800 69 66 20 28 63 68 20 3d 3d 3d 20 27 62 27 20 7c if (ch === 'b' |
2e810 7c 20 63 68 20 3d 3d 3d 20 27 42 27 29 20 7b 0a | ch === 'B') {.
2e820 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2e830 20 20 20 20 20 20 20 2b 2b 74 68 69 73 2e 69 6e ++this.in
2e840 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 dex;. .
2e850 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
2e860 72 6e 20 74 68 69 73 2e 73 63 61 6e 42 69 6e 61 rn this.scanBina
2e870 72 79 4c 69 74 65 72 61 6c 28 73 74 61 72 74 29 ryLiteral(start)
2e880 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2e890 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
2e8a0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 if (ch
2e8b0 20 3d 3d 3d 20 27 6f 27 20 7c 7c 20 63 68 20 3d === 'o' || ch =
2e8c0 3d 3d 20 27 4f 27 29 20 7b 0a 20 20 09 20 20 20 == 'O') {. .
2e8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2e8e0 20 72 65 74 75 72 6e 20 74 68 69 73 2e 73 63 61 return this.sca
2e8f0 6e 4f 63 74 61 6c 4c 69 74 65 72 61 6c 28 63 68 nOctalLiteral(ch
2e900 2c 20 73 74 61 72 74 29 3b 0a 20 20 09 20 20 20 , start);. .
2e910 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
2e920 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2e930 20 20 69 66 20 28 63 68 20 26 26 20 63 68 61 72 if (ch && char
2e940 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 65 acter_1.Characte
2e950 72 2e 69 73 4f 63 74 61 6c 44 69 67 69 74 28 63 r.isOctalDigit(c
2e960 68 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 29 h.charCodeAt(0))
2e970 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
2e980 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
2e990 68 69 73 2e 69 73 49 6d 70 6c 69 63 69 74 4f 63 his.isImplicitOc
2e9a0 74 61 6c 4c 69 74 65 72 61 6c 28 29 29 20 7b 0a talLiteral()) {.
2e9b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2e9c0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
2e9d0 6e 20 74 68 69 73 2e 73 63 61 6e 4f 63 74 61 6c n this.scanOctal
2e9e0 4c 69 74 65 72 61 6c 28 63 68 2c 20 73 74 61 72 Literal(ch, star
2e9f0 74 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 t);. .
2ea00 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2ea10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2ea20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
2ea30 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
2ea40 20 20 77 68 69 6c 65 20 28 63 68 61 72 61 63 74 while (charact
2ea50 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 er_1.Character.i
2ea60 73 44 65 63 69 6d 61 6c 44 69 67 69 74 28 74 68 sDecimalDigit(th
2ea70 69 73 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f is.source.charCo
2ea80 64 65 41 74 28 74 68 69 73 2e 69 6e 64 65 78 29 deAt(this.index)
2ea90 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
2eaa0 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 20 2b number +
2eab0 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 5b = this$1.source[
2eac0 74 68 69 73 24 31 2e 69 6e 64 65 78 2b 2b 5d 3b this$1.index++];
2ead0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2eae0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
2eaf0 20 63 68 20 3d 20 74 68 69 73 2e 73 6f 75 72 63 ch = this.sourc
2eb00 65 5b 74 68 69 73 2e 69 6e 64 65 78 5d 3b 0a 20 e[this.index];.
2eb10 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
2eb20 20 20 20 20 20 20 20 69 66 20 28 63 68 20 3d 3d if (ch ==
2eb30 3d 20 27 2e 27 29 20 7b 0a 20 20 09 20 20 20 20 = '.') {. .
2eb40 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 20 2b number +
2eb50 3d 20 74 68 69 73 2e 73 6f 75 72 63 65 5b 74 68 = this.source[th
2eb60 69 73 2e 69 6e 64 65 78 2b 2b 5d 3b 0a 20 20 09 is.index++];. .
2eb70 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c whil
2eb80 65 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 e (character_1.C
2eb90 68 61 72 61 63 74 65 72 2e 69 73 44 65 63 69 6d haracter.isDecim
2eba0 61 6c 44 69 67 69 74 28 74 68 69 73 2e 73 6f 75 alDigit(this.sou
2ebb0 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 rce.charCodeAt(t
2ebc0 68 69 73 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 his.index))) {.
2ebd0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2ebe0 20 20 6e 75 6d 62 65 72 20 2b 3d 20 74 68 69 73 number += this
2ebf0 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 31 $1.source[this$1
2ec00 2e 69 6e 64 65 78 2b 2b 5d 3b 0a 20 20 09 20 20 .index++];. .
2ec10 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
2ec20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 3d 20 ch =
2ec30 74 68 69 73 2e 73 6f 75 72 63 65 5b 74 68 69 73 this.source[this
2ec40 2e 69 6e 64 65 78 5d 3b 0a 20 20 09 20 20 20 20 .index];. .
2ec50 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
2ec60 20 69 66 20 28 63 68 20 3d 3d 3d 20 27 65 27 20 if (ch === 'e'
2ec70 7c 7c 20 63 68 20 3d 3d 3d 20 27 45 27 29 20 7b || ch === 'E') {
2ec80 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2ec90 6e 75 6d 62 65 72 20 2b 3d 20 74 68 69 73 2e 73 number += this.s
2eca0 6f 75 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 78 ource[this.index
2ecb0 2b 2b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ++];. .
2ecc0 20 20 20 20 63 68 20 3d 20 74 68 69 73 2e 73 6f ch = this.so
2ecd0 75 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 78 5d urce[this.index]
2ece0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2ecf0 20 69 66 20 28 63 68 20 3d 3d 3d 20 27 2b 27 20 if (ch === '+'
2ed00 7c 7c 20 63 68 20 3d 3d 3d 20 27 2d 27 29 20 7b || ch === '-') {
2ed10 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2ed20 20 20 20 20 6e 75 6d 62 65 72 20 2b 3d 20 74 68 number += th
2ed30 69 73 2e 73 6f 75 72 63 65 5b 74 68 69 73 2e 69 is.source[this.i
2ed40 6e 64 65 78 2b 2b 5d 3b 0a 20 20 09 20 20 20 20 ndex++];. .
2ed50 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
2ed60 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 61 if (cha
2ed70 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 racter_1.Charact
2ed80 65 72 2e 69 73 44 65 63 69 6d 61 6c 44 69 67 69 er.isDecimalDigi
2ed90 74 28 74 68 69 73 2e 73 6f 75 72 63 65 2e 63 68 t(this.source.ch
2eda0 61 72 43 6f 64 65 41 74 28 74 68 69 73 2e 69 6e arCodeAt(this.in
2edb0 64 65 78 29 29 29 20 7b 0a 20 20 09 20 20 20 20 dex))) {. .
2edc0 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c whil
2edd0 65 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 e (character_1.C
2ede0 68 61 72 61 63 74 65 72 2e 69 73 44 65 63 69 6d haracter.isDecim
2edf0 61 6c 44 69 67 69 74 28 74 68 69 73 2e 73 6f 75 alDigit(this.sou
2ee00 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 rce.charCodeAt(t
2ee10 68 69 73 2e 69 6e 64 65 78 29 29 29 20 7b 0a 20 his.index))) {.
2ee20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2ee30 20 20 20 20 20 20 6e 75 6d 62 65 72 20 2b 3d 20 number +=
2ee40 74 68 69 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 this$1.source[th
2ee50 69 73 24 31 2e 69 6e 64 65 78 2b 2b 5d 3b 0a 20 is$1.index++];.
2ee60 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2ee70 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
2ee80 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
2ee90 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
2eea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
2eeb0 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 is.throwUnexpect
2eec0 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 edToken();. .
2eed0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
2eee0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2eef0 20 20 20 20 69 66 20 28 63 68 61 72 61 63 74 65 if (characte
2ef00 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 73 r_1.Character.is
2ef10 49 64 65 6e 74 69 66 69 65 72 53 74 61 72 74 28 IdentifierStart(
2ef20 74 68 69 73 2e 73 6f 75 72 63 65 2e 63 68 61 72 this.source.char
2ef30 43 6f 64 65 41 74 28 74 68 69 73 2e 69 6e 64 65 CodeAt(this.inde
2ef40 78 29 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 x))) {. .
2ef50 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 this.throw
2ef60 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 UnexpectedToken(
2ef70 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
2ef80 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
2ef90 6e 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 n {. .
2efa0 20 20 20 74 79 70 65 3a 20 74 6f 6b 65 6e 5f 31 type: token_1
2efb0 2e 54 6f 6b 65 6e 2e 4e 75 6d 65 72 69 63 4c 69 .Token.NumericLi
2efc0 74 65 72 61 6c 2c 0a 20 20 09 20 20 20 20 20 20 teral,. .
2efd0 20 20 20 20 20 20 76 61 6c 75 65 3a 20 70 61 72 value: par
2efe0 73 65 46 6c 6f 61 74 28 6e 75 6d 62 65 72 29 2c seFloat(number),
2eff0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2f000 6c 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 lineNumber: this
2f010 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 .lineNumber,. .
2f020 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
2f030 53 74 61 72 74 3a 20 74 68 69 73 2e 6c 69 6e 65 Start: this.line
2f040 53 74 61 72 74 2c 0a 20 20 09 20 20 20 20 20 20 Start,. .
2f050 20 20 20 20 20 20 73 74 61 72 74 3a 20 73 74 61 start: sta
2f060 72 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 rt,. .
2f070 20 20 20 65 6e 64 3a 20 74 68 69 73 2e 69 6e 64 end: this.ind
2f080 65 78 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b ex. . };
2f090 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
2f0a0 20 20 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d . . // ECM
2f0b0 41 2d 32 36 32 20 31 31 2e 38 2e 34 20 53 74 72 A-262 11.8.4 Str
2f0c0 69 6e 67 20 4c 69 74 65 72 61 6c 73 0a 20 20 09 ing Literals. .
2f0d0 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 Scanner.prot
2f0e0 6f 74 79 70 65 2e 73 63 61 6e 53 74 72 69 6e 67 otype.scanString
2f0f0 4c 69 74 65 72 61 6c 20 3d 20 66 75 6e 63 74 69 Literal = functi
2f100 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
2f110 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 var this$1 =
2f120 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 this;.. .
2f130 20 20 76 61 72 20 73 74 61 72 74 20 3d 20 74 68 var start = th
2f140 69 73 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 is.index;. .
2f150 20 20 20 20 20 76 61 72 20 71 75 6f 74 65 20 3d var quote =
2f160 20 74 68 69 73 2e 73 6f 75 72 63 65 5b 73 74 61 this.source[sta
2f170 72 74 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 rt];. .
2f180 61 73 73 65 72 74 5f 31 2e 61 73 73 65 72 74 28 assert_1.assert(
2f190 28 71 75 6f 74 65 20 3d 3d 3d 20 27 5c 27 27 20 (quote === '\''
2f1a0 7c 7c 20 71 75 6f 74 65 20 3d 3d 3d 20 27 22 27 || quote === '"'
2f1b0 29 2c 20 27 53 74 72 69 6e 67 20 6c 69 74 65 72 ), 'String liter
2f1c0 61 6c 20 6d 75 73 74 20 73 74 61 72 74 73 20 77 al must starts w
2f1d0 69 74 68 20 61 20 71 75 6f 74 65 27 29 3b 0a 20 ith a quote');.
2f1e0 20 09 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 . ++this
2f1f0 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
2f200 20 20 20 76 61 72 20 6f 63 74 61 6c 20 3d 20 66 var octal = f
2f210 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
2f220 20 76 61 72 20 73 74 72 20 3d 20 27 27 3b 0a 20 var str = '';.
2f230 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 . while
2f240 28 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b 0a (!this.eof()) {.
2f250 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
2f260 61 72 20 63 68 20 3d 20 74 68 69 73 24 31 2e 73 ar ch = this$1.s
2f270 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 6e 64 ource[this$1.ind
2f280 65 78 2b 2b 5d 3b 0a 20 20 09 20 20 20 20 20 20 ex++];. .
2f290 20 20 20 20 20 20 69 66 20 28 63 68 20 3d 3d 3d if (ch ===
2f2a0 20 71 75 6f 74 65 29 20 7b 0a 20 20 09 20 20 20 quote) {. .
2f2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 71 75 6f quo
2f2c0 74 65 20 3d 20 27 27 3b 0a 20 20 09 20 20 20 20 te = '';. .
2f2d0 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
2f2e0 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 k;. .
2f2f0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
2f300 20 20 20 65 6c 73 65 20 69 66 20 28 63 68 20 3d else if (ch =
2f310 3d 3d 20 27 5c 5c 27 29 20 7b 0a 20 20 09 20 20 == '\\') {. .
2f320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 ch
2f330 20 3d 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 = this$1.source
2f340 5b 74 68 69 73 24 31 2e 69 6e 64 65 78 2b 2b 5d [this$1.index++]
2f350 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
2f360 20 20 20 20 20 69 66 20 28 21 63 68 20 7c 7c 20 if (!ch ||
2f370 21 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 !character_1.Cha
2f380 72 61 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 racter.isLineTer
2f390 6d 69 6e 61 74 6f 72 28 63 68 2e 63 68 61 72 43 minator(ch.charC
2f3a0 6f 64 65 41 74 28 30 29 29 29 20 7b 0a 20 20 09 odeAt(0))) {. .
2f3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f3c0 20 20 20 20 73 77 69 74 63 68 20 28 63 68 29 20 switch (ch)
2f3d0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
2f3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 cas
2f3f0 65 20 27 75 27 3a 0a 20 20 09 20 20 20 20 20 20 e 'u':. .
2f400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f410 20 20 63 61 73 65 20 27 78 27 3a 0a 20 20 09 20 case 'x':. .
2f420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f430 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
2f440 68 69 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 his$1.source[thi
2f450 73 24 31 2e 69 6e 64 65 78 5d 20 3d 3d 3d 20 27 s$1.index] === '
2f460 7b 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 {') {. .
2f470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f480 20 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 24 ++this$
2f490 31 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 1.index;. .
2f4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f4b0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20 str
2f4c0 2b 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 55 6e += this$1.scanUn
2f4d0 69 63 6f 64 65 43 6f 64 65 50 6f 69 6e 74 45 73 icodeCodePointEs
2f4e0 63 61 70 65 28 29 3b 0a 20 20 09 20 20 20 20 20 cape();. .
2f4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f500 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2f510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f520 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
2f530 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f550 20 20 76 61 72 20 75 6e 65 73 63 61 70 65 64 20 var unescaped
2f560 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 48 65 78 = this$1.scanHex
2f570 45 73 63 61 70 65 28 63 68 29 3b 0a 20 20 09 20 Escape(ch);. .
2f580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
2f5a0 66 20 28 21 75 6e 65 73 63 61 70 65 64 29 20 7b f (!unescaped) {
2f5b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2f5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f5d0 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 74 this$1.t
2f5e0 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f hrowUnexpectedTo
2f5f0 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ken();. .
2f600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f610 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
2f620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
2f640 74 72 20 2b 3d 20 75 6e 65 73 63 61 70 65 64 3b tr += unescaped;
2f650 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2f660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f670 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
2f680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f690 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
2f6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f6b0 20 20 20 63 61 73 65 20 27 6e 27 3a 0a 20 20 09 case 'n':. .
2f6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f6d0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20 str
2f6e0 2b 3d 20 27 5c 6e 27 3b 0a 20 20 09 20 20 20 20 += '\n';. .
2f6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f700 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
2f710 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f720 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 case '
2f730 72 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 r':. .
2f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f750 20 20 20 73 74 72 20 2b 3d 20 27 5c 72 27 3b 0a str += '\r';.
2f760 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
2f780 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
2f790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f7a0 20 63 61 73 65 20 27 74 27 3a 0a 20 20 09 20 20 case 't':. .
2f7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f7c0 20 20 20 20 20 20 20 20 20 20 73 74 72 20 2b 3d str +=
2f7d0 20 27 5c 74 27 3b 0a 20 20 09 20 20 20 20 20 20 '\t';. .
2f7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f7f0 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 break;. .
2f800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f810 20 20 20 20 20 20 20 20 63 61 73 65 20 27 62 27 case 'b'
2f820 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 :. .
2f830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f840 20 73 74 72 20 2b 3d 20 27 5c 62 27 3b 0a 20 20 str += '\b';.
2f850 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f860 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
2f870 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
2f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
2f890 61 73 65 20 27 66 27 3a 0a 20 20 09 20 20 20 20 ase 'f':. .
2f8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f8b0 20 20 20 20 20 20 20 20 73 74 72 20 2b 3d 20 27 str += '
2f8c0 5c 66 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 \f';. .
2f8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f8e0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
2f8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f900 20 20 20 20 20 20 63 61 73 65 20 27 76 27 3a 0a case 'v':.
2f910 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
2f930 74 72 20 2b 3d 20 27 5c 78 30 42 27 3b 0a 20 20 tr += '\x0B';.
2f940 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f950 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
2f960 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
2f970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
2f980 61 73 65 20 27 38 27 3a 0a 20 20 09 20 20 20 20 ase '8':. .
2f990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f9a0 20 20 20 20 63 61 73 65 20 27 39 27 3a 0a 20 20 case '9':.
2f9b0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2f9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 str
2f9d0 20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 += ch;. .
2f9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f9f0 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 74 6f this$1.to
2fa00 6c 65 72 61 74 65 55 6e 65 78 70 65 63 74 65 64 lerateUnexpected
2fa10 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
2fa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fa30 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
2fa40 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2fa50 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c defaul
2fa60 74 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 t:. .
2fa70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fa80 20 20 69 66 20 28 63 68 20 26 26 20 63 68 61 72 if (ch && char
2fa90 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 65 acter_1.Characte
2faa0 72 2e 69 73 4f 63 74 61 6c 44 69 67 69 74 28 63 r.isOctalDigit(c
2fab0 68 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 29 h.charCodeAt(0))
2fac0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
2fad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fae0 20 20 20 20 20 20 20 76 61 72 20 6f 63 74 54 6f var octTo
2faf0 44 65 63 20 3d 20 74 68 69 73 24 31 2e 6f 63 74 Dec = this$1.oct
2fb00 61 6c 54 6f 44 65 63 69 6d 61 6c 28 63 68 29 3b alToDecimal(ch);
2fb10 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2fb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fb30 20 20 20 20 6f 63 74 61 6c 20 3d 20 6f 63 74 54 octal = octT
2fb40 6f 44 65 63 2e 6f 63 74 61 6c 20 7c 7c 20 6f 63 oDec.octal || oc
2fb50 74 61 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 tal;. .
2fb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fb70 20 20 20 20 20 20 20 20 73 74 72 20 2b 3d 20 53 str += S
2fb80 74 72 69 6e 67 2e 66 72 6f 6d 43 68 61 72 43 6f tring.fromCharCo
2fb90 64 65 28 6f 63 74 54 6f 44 65 63 2e 63 6f 64 65 de(octToDec.code
2fba0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
2fbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fbc0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
2fbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fbe0 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
2fbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fc00 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 str
2fc10 20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 += ch;. .
2fc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fc30 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2fc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fc50 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
2fc60 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2fc70 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2fc80 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
2fc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fca0 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
2fcb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b ++
2fcc0 74 68 69 73 24 31 2e 6c 69 6e 65 4e 75 6d 62 65 this$1.lineNumbe
2fcd0 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 r;. .
2fce0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 if (ch
2fcf0 20 3d 3d 3d 20 27 5c 72 27 20 26 26 20 74 68 69 === '\r' && thi
2fd00 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 s$1.source[this$
2fd10 31 2e 69 6e 64 65 78 5d 20 3d 3d 3d 20 27 5c 6e 1.index] === '\n
2fd20 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 ') {. .
2fd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fd40 2b 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a ++this$1.index;.
2fd50 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2fd60 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
2fd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2fd80 74 68 69 73 24 31 2e 6c 69 6e 65 53 74 61 72 74 this$1.lineStart
2fd90 20 3d 20 74 68 69 73 24 31 2e 69 6e 64 65 78 3b = this$1.index;
2fda0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2fdb0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
2fdc0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
2fdd0 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 else if (c
2fde0 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 haracter_1.Chara
2fdf0 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 6d 69 cter.isLineTermi
2fe00 6e 61 74 6f 72 28 63 68 2e 63 68 61 72 43 6f 64 nator(ch.charCod
2fe10 65 41 74 28 30 29 29 29 20 7b 0a 20 20 09 20 20 eAt(0))) {. .
2fe20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
2fe30 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
2fe40 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
2fe50 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 else {. .
2fe60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
2fe70 74 72 20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 tr += ch;. .
2fe80 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
2fe90 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
2fea0 20 20 20 69 66 20 28 71 75 6f 74 65 20 21 3d 3d if (quote !==
2feb0 20 27 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 '') {. .
2fec0 20 20 20 20 20 20 74 68 69 73 2e 69 6e 64 65 78 this.index
2fed0 20 3d 20 73 74 61 72 74 3b 0a 20 20 09 20 20 20 = start;. .
2fee0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 this.th
2fef0 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b rowUnexpectedTok
2ff00 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 en();. .
2ff10 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 }. . re
2ff20 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 20 20 20 turn {. .
2ff30 20 20 20 20 20 20 74 79 70 65 3a 20 74 6f 6b 65 type: toke
2ff40 6e 5f 31 2e 54 6f 6b 65 6e 2e 53 74 72 69 6e 67 n_1.Token.String
2ff50 4c 69 74 65 72 61 6c 2c 0a 20 20 09 20 20 20 20 Literal,. .
2ff60 20 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 73 value: s
2ff70 74 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 tr,. .
2ff80 20 20 20 6f 63 74 61 6c 3a 20 6f 63 74 61 6c 2c octal: octal,
2ff90 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
2ffa0 6c 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 lineNumber: this
2ffb0 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 .lineNumber,. .
2ffc0 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
2ffd0 53 74 61 72 74 3a 20 74 68 69 73 2e 6c 69 6e 65 Start: this.line
2ffe0 53 74 61 72 74 2c 0a 20 20 09 20 20 20 20 20 20 Start,. .
2fff0 20 20 20 20 20 20 73 74 61 72 74 3a 20 73 74 61 start: sta
30000 72 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 rt,. .
30010 20 20 20 65 6e 64 3a 20 74 68 69 73 2e 69 6e 64 end: this.ind
30020 65 78 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b ex. . };
30030 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
30040 20 20 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d . . // ECM
30050 41 2d 32 36 32 20 31 31 2e 38 2e 36 20 54 65 6d A-262 11.8.6 Tem
30060 70 6c 61 74 65 20 4c 69 74 65 72 61 6c 20 4c 65 plate Literal Le
30070 78 69 63 61 6c 20 43 6f 6d 70 6f 6e 65 6e 74 73 xical Components
30080 0a 20 20 09 20 20 20 20 53 63 61 6e 6e 65 72 2e . . Scanner.
30090 70 72 6f 74 6f 74 79 70 65 2e 73 63 61 6e 54 65 prototype.scanTe
300a0 6d 70 6c 61 74 65 20 3d 20 66 75 6e 63 74 69 6f mplate = functio
300b0 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
300c0 20 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 var this$1 = t
300d0 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 his;.. .
300e0 20 76 61 72 20 63 6f 6f 6b 65 64 20 3d 20 27 27 var cooked = ''
300f0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
30100 20 74 65 72 6d 69 6e 61 74 65 64 20 3d 20 66 61 terminated = fa
30110 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lse;. .
30120 76 61 72 20 73 74 61 72 74 20 3d 20 74 68 69 73 var start = this
30130 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
30140 20 20 20 76 61 72 20 68 65 61 64 20 3d 20 28 74 var head = (t
30150 68 69 73 2e 73 6f 75 72 63 65 5b 73 74 61 72 74 his.source[start
30160 5d 20 3d 3d 3d 20 27 60 27 29 3b 0a 20 20 09 20 ] === '`');. .
30170 20 20 20 20 20 20 20 76 61 72 20 74 61 69 6c 20 var tail
30180 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
30190 20 20 20 20 76 61 72 20 72 61 77 4f 66 66 73 65 var rawOffse
301a0 74 20 3d 20 32 3b 0a 20 20 09 20 20 20 20 20 20 t = 2;. .
301b0 20 20 2b 2b 74 68 69 73 2e 69 6e 64 65 78 3b 0a ++this.index;.
301c0 20 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 . while
301d0 20 28 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b (!this.eof()) {
301e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
301f0 76 61 72 20 63 68 20 3d 20 74 68 69 73 24 31 2e var ch = this$1.
30200 73 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 6e source[this$1.in
30210 64 65 78 2b 2b 5d 3b 0a 20 20 09 20 20 20 20 20 dex++];. .
30220 20 20 20 20 20 20 20 69 66 20 28 63 68 20 3d 3d if (ch ==
30230 3d 20 27 60 27 29 20 7b 0a 20 20 09 20 20 20 20 = '`') {. .
30240 20 20 20 20 20 20 20 20 20 20 20 20 72 61 77 4f rawO
30250 66 66 73 65 74 20 3d 20 31 3b 0a 20 20 09 20 20 ffset = 1;. .
30260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 ta
30270 69 6c 20 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 il = true;. .
30280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 te
30290 72 6d 69 6e 61 74 65 64 20 3d 20 74 72 75 65 3b rminated = true;
302a0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
302b0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
302c0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
302d0 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 else
302e0 69 66 20 28 63 68 20 3d 3d 3d 20 27 24 27 29 20 if (ch === '$')
302f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
30300 20 20 20 20 20 69 66 20 28 74 68 69 73 24 31 2e if (this$1.
30310 73 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 6e source[this$1.in
30320 64 65 78 5d 20 3d 3d 3d 20 27 7b 27 29 20 7b 0a dex] === '{') {.
30330 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30340 20 20 20 20 20 20 20 74 68 69 73 24 31 2e 63 75 this$1.cu
30350 72 6c 79 53 74 61 63 6b 2e 70 75 73 68 28 27 24 rlyStack.push('$
30360 7b 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 {');. .
30370 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 ++th
30380 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 20 09 20 is$1.index;. .
30390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
303a0 20 20 20 74 65 72 6d 69 6e 61 74 65 64 20 3d 20 terminated =
303b0 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 true;. .
303c0 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
303d0 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
303e0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
303f0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6f 6b cook
30400 65 64 20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 ed += ch;. .
30410 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
30420 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 else i
30430 66 20 28 63 68 20 3d 3d 3d 20 27 5c 5c 27 29 20 f (ch === '\\')
30440 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
30450 20 20 20 20 20 63 68 20 3d 20 74 68 69 73 24 31 ch = this$1
30460 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 .source[this$1.i
30470 6e 64 65 78 2b 2b 5d 3b 0a 20 20 09 20 20 20 20 ndex++];. .
30480 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
30490 21 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 !character_1.Cha
304a0 72 61 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 racter.isLineTer
304b0 6d 69 6e 61 74 6f 72 28 63 68 2e 63 68 61 72 43 minator(ch.charC
304c0 6f 64 65 41 74 28 30 29 29 29 20 7b 0a 20 20 09 odeAt(0))) {. .
304d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
304e0 20 20 20 20 73 77 69 74 63 68 20 28 63 68 29 20 switch (ch)
304f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
30500 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 cas
30510 65 20 27 6e 27 3a 0a 20 20 09 20 20 20 20 20 20 e 'n':. .
30520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30530 20 20 20 20 20 20 63 6f 6f 6b 65 64 20 2b 3d 20 cooked +=
30540 27 5c 6e 27 3b 0a 20 20 09 20 20 20 20 20 20 20 '\n';. .
30550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30560 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 break;. .
30570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30580 20 20 20 20 20 20 20 63 61 73 65 20 27 72 27 3a case 'r':
30590 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
305a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
305b0 63 6f 6f 6b 65 64 20 2b 3d 20 27 5c 72 27 3b 0a cooked += '\r';.
305c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
305d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
305e0 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
305f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30600 20 63 61 73 65 20 27 74 27 3a 0a 20 20 09 20 20 case 't':. .
30610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30620 20 20 20 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 cooked
30630 20 2b 3d 20 27 5c 74 27 3b 0a 20 20 09 20 20 20 += '\t';. .
30640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30650 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a break;.
30660 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30670 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
30680 27 75 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 'u':. .
30690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
306a0 63 61 73 65 20 27 78 27 3a 0a 20 20 09 20 20 20 case 'x':. .
306b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
306c0 20 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 if (thi
306d0 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 s$1.source[this$
306e0 31 2e 69 6e 64 65 78 5d 20 3d 3d 3d 20 27 7b 27 1.index] === '{'
306f0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
30700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30710 20 20 20 20 20 20 20 2b 2b 74 68 69 73 24 31 2e ++this$1.
30720 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 index;. .
30730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30740 20 20 20 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 cooked
30750 20 2b 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 55 += this$1.scanU
30760 6e 69 63 6f 64 65 43 6f 64 65 50 6f 69 6e 74 45 nicodeCodePointE
30770 73 63 61 70 65 28 29 3b 0a 20 20 09 20 20 20 20 scape();. .
30780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30790 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
307a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
307b0 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a else {.
307c0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
307d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
307e0 20 20 20 76 61 72 20 72 65 73 74 6f 72 65 20 3d var restore =
307f0 20 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 this$1.index;.
30800 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30820 20 20 76 61 72 20 75 6e 65 73 63 61 70 65 64 20 var unescaped
30830 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 48 65 78 = this$1.scanHex
30840 45 73 63 61 70 65 28 63 68 29 3b 0a 20 20 09 20 Escape(ch);. .
30850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
30870 66 20 28 75 6e 65 73 63 61 70 65 64 29 20 7b 0a f (unescaped) {.
30880 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
308a0 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 20 2b 3d cooked +=
308b0 20 75 6e 65 73 63 61 70 65 64 3b 0a 20 20 09 20 unescaped;. .
308c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
308d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
308e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
308f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30900 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
30910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30930 20 20 74 68 69 73 24 31 2e 69 6e 64 65 78 20 3d this$1.index =
30940 20 72 65 73 74 6f 72 65 3b 0a 20 20 09 20 20 20 restore;. .
30950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30970 20 63 6f 6f 6b 65 64 20 2b 3d 20 63 68 3b 0a 20 cooked += ch;.
30980 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
309a0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
309b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
309c0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
309d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
309e0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 break;. .
309f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30a00 20 20 20 20 20 20 63 61 73 65 20 27 62 27 3a 0a case 'b':.
30a10 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
30a30 6f 6f 6b 65 64 20 2b 3d 20 27 5c 62 27 3b 0a 20 ooked += '\b';.
30a40 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
30a60 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
30a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30a80 63 61 73 65 20 27 66 27 3a 0a 20 20 09 20 20 20 case 'f':. .
30a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30aa0 20 20 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 20 cooked
30ab0 2b 3d 20 27 5c 66 27 3b 0a 20 20 09 20 20 20 20 += '\f';. .
30ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30ad0 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
30ae0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30af0 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 case '
30b00 76 27 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 v':. .
30b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30b20 20 20 20 63 6f 6f 6b 65 64 20 2b 3d 20 27 5c 76 cooked += '\v
30b30 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ';. .
30b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30b50 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 break;. .
30b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30b70 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 09 default:. .
30b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30b90 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
30ba0 63 68 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 20 20 ch === '0') {.
30bb0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30bd0 20 69 66 20 28 63 68 61 72 61 63 74 65 72 5f 31 if (character_1
30be0 2e 43 68 61 72 61 63 74 65 72 2e 69 73 44 65 63 .Character.isDec
30bf0 69 6d 61 6c 44 69 67 69 74 28 74 68 69 73 24 31 imalDigit(this$1
30c00 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 65 .source.charCode
30c10 41 74 28 74 68 69 73 24 31 2e 69 6e 64 65 78 29 At(this$1.index)
30c20 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
30c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30c40 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 49 // I
30c50 6c 6c 65 67 61 6c 3a 20 5c 30 31 20 5c 30 32 20 llegal: \01 \02
30c60 61 6e 64 20 73 6f 20 6f 6e 0a 20 20 09 20 20 20 and so on. .
30c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30c90 20 74 68 69 73 24 31 2e 74 68 72 6f 77 55 6e 65 this$1.throwUne
30ca0 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 6d 65 73 xpectedToken(mes
30cb0 73 61 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 sages_1.Messages
30cc0 2e 54 65 6d 70 6c 61 74 65 4f 63 74 61 6c 4c 69 .TemplateOctalLi
30cd0 74 65 72 61 6c 29 3b 0a 20 20 09 20 20 20 20 20 teral);. .
30ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30cf0 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
30d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30d20 63 6f 6f 6b 65 64 20 2b 3d 20 27 5c 30 27 3b 0a cooked += '\0';.
30d30 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
30d50 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
30d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30d70 65 6c 73 65 20 69 66 20 28 63 68 61 72 61 63 74 else if (charact
30d80 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 er_1.Character.i
30d90 73 4f 63 74 61 6c 44 69 67 69 74 28 63 68 2e 63 sOctalDigit(ch.c
30da0 68 61 72 43 6f 64 65 41 74 28 30 29 29 29 20 7b harCodeAt(0))) {
30db0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
30dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30dd0 20 20 20 20 2f 2f 20 49 6c 6c 65 67 61 6c 3a 20 // Illegal:
30de0 5c 31 20 5c 32 0a 20 20 09 20 20 20 20 20 20 20 \1 \2. .
30df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30e00 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 2e this$1.
30e10 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 throwUnexpectedT
30e20 6f 6b 65 6e 28 6d 65 73 73 61 67 65 73 5f 31 2e oken(messages_1.
30e30 4d 65 73 73 61 67 65 73 2e 54 65 6d 70 6c 61 74 Messages.Templat
30e40 65 4f 63 74 61 6c 4c 69 74 65 72 61 6c 29 3b 0a eOctalLiteral);.
30e50 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
30e70 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
30e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30e90 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
30ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30eb0 20 20 20 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 cooked
30ec0 20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 += ch;. .
30ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30ee0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
30ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30f00 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
30f10 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
30f20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
30f30 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
30f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30f50 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 20 else {. .
30f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b ++
30f70 74 68 69 73 24 31 2e 6c 69 6e 65 4e 75 6d 62 65 this$1.lineNumbe
30f80 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 r;. .
30f90 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 if (ch
30fa0 20 3d 3d 3d 20 27 5c 72 27 20 26 26 20 74 68 69 === '\r' && thi
30fb0 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 s$1.source[this$
30fc0 31 2e 69 6e 64 65 78 5d 20 3d 3d 3d 20 27 5c 6e 1.index] === '\n
30fd0 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 ') {. .
30fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
30ff0 2b 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a ++this$1.index;.
31000 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
31010 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
31020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
31030 74 68 69 73 24 31 2e 6c 69 6e 65 53 74 61 72 74 this$1.lineStart
31040 20 3d 20 74 68 69 73 24 31 2e 69 6e 64 65 78 3b = this$1.index;
31050 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
31060 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
31070 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
31080 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 else if (c
31090 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 haracter_1.Chara
310a0 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 6d 69 cter.isLineTermi
310b0 6e 61 74 6f 72 28 63 68 2e 63 68 61 72 43 6f 64 nator(ch.charCod
310c0 65 41 74 28 30 29 29 29 20 7b 0a 20 20 09 20 20 eAt(0))) {. .
310d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b ++
310e0 74 68 69 73 24 31 2e 6c 69 6e 65 4e 75 6d 62 65 this$1.lineNumbe
310f0 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 r;. .
31100 20 20 20 20 20 20 69 66 20 28 63 68 20 3d 3d 3d if (ch ===
31110 20 27 5c 72 27 20 26 26 20 74 68 69 73 24 31 2e '\r' && this$1.
31120 73 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 6e source[this$1.in
31130 64 65 78 5d 20 3d 3d 3d 20 27 5c 6e 27 29 20 7b dex] === '\n') {
31140 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
31150 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 24 31 ++this$1
31160 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
31170 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
31180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
31190 74 68 69 73 24 31 2e 6c 69 6e 65 53 74 61 72 74 this$1.lineStart
311a0 20 3d 20 74 68 69 73 24 31 2e 69 6e 64 65 78 3b = this$1.index;
311b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
311c0 20 20 20 20 63 6f 6f 6b 65 64 20 2b 3d 20 27 5c cooked += '\
311d0 6e 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 n';. .
311e0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
311f0 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
31200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f co
31210 6f 6b 65 64 20 2b 3d 20 63 68 3b 0a 20 20 09 20 oked += ch;. .
31220 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
31230 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
31240 20 20 20 20 20 69 66 20 28 21 74 65 72 6d 69 6e if (!termin
31250 61 74 65 64 29 20 7b 0a 20 20 09 20 20 20 20 20 ated) {. .
31260 20 20 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f this.thro
31270 77 55 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e wUnexpectedToken
31280 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d ();. . }
31290 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
312a0 21 68 65 61 64 29 20 7b 0a 20 20 09 20 20 20 20 !head) {. .
312b0 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 this.cur
312c0 6c 79 53 74 61 63 6b 2e 70 6f 70 28 29 3b 0a 20 lyStack.pop();.
312d0 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
312e0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a return {.
312f0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
31300 79 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b ype: token_1.Tok
31310 65 6e 2e 54 65 6d 70 6c 61 74 65 2c 0a 20 20 09 en.Template,. .
31320 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
31330 65 3a 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 e: {. .
31340 20 20 20 20 20 20 20 20 63 6f 6f 6b 65 64 3a 20 cooked:
31350 63 6f 6f 6b 65 64 2c 0a 20 20 09 20 20 20 20 20 cooked,. .
31360 20 20 20 20 20 20 20 20 20 20 20 72 61 77 3a 20 raw:
31370 74 68 69 73 2e 73 6f 75 72 63 65 2e 73 6c 69 63 this.source.slic
31380 65 28 73 74 61 72 74 20 2b 20 31 2c 20 74 68 69 e(start + 1, thi
31390 73 2e 69 6e 64 65 78 20 2d 20 72 61 77 4f 66 66 s.index - rawOff
313a0 73 65 74 29 0a 20 20 09 20 20 20 20 20 20 20 20 set). .
313b0 20 20 20 20 7d 2c 0a 20 20 09 20 20 20 20 20 20 },. .
313c0 20 20 20 20 20 20 68 65 61 64 3a 20 68 65 61 64 head: head
313d0 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
313e0 20 74 61 69 6c 3a 20 74 61 69 6c 2c 0a 20 20 09 tail: tail,. .
313f0 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
31400 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e 6c 69 6e Number: this.lin
31410 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 eNumber,. .
31420 20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 61 72 lineStar
31430 74 3a 20 74 68 69 73 2e 6c 69 6e 65 53 74 61 72 t: this.lineStar
31440 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 t,. .
31450 20 20 73 74 61 72 74 3a 20 73 74 61 72 74 2c 0a start: start,.
31460 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 . e
31470 6e 64 3a 20 74 68 69 73 2e 69 6e 64 65 78 0a 20 nd: this.index.
31480 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 . };. .
31490 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 };. . .
314a0 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 . // ECMA-26
314b0 32 20 31 31 2e 38 2e 35 20 52 65 67 75 6c 61 72 2 11.8.5 Regular
314c0 20 45 78 70 72 65 73 73 69 6f 6e 20 4c 69 74 65 Expression Lite
314d0 72 61 6c 73 0a 20 20 09 20 20 20 20 53 63 61 6e rals. . Scan
314e0 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 74 65 ner.prototype.te
314f0 73 74 52 65 67 45 78 70 20 3d 20 66 75 6e 63 74 stRegExp = funct
31500 69 6f 6e 20 28 70 61 74 74 65 72 6e 2c 20 66 6c ion (pattern, fl
31510 61 67 73 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ags) {. .
31520 20 20 2f 2f 20 54 68 65 20 42 4d 50 20 63 68 61 // The BMP cha
31530 72 61 63 74 65 72 20 74 6f 20 75 73 65 20 61 73 racter to use as
31540 20 61 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 66 a replacement f
31550 6f 72 20 61 73 74 72 61 6c 20 73 79 6d 62 6f 6c or astral symbol
31560 73 20 77 68 65 6e 0a 20 20 09 20 20 20 20 20 20 s when. .
31570 20 20 2f 2f 20 74 72 61 6e 73 6c 61 74 69 6e 67 // translating
31580 20 61 6e 20 45 53 36 20 22 75 22 2d 66 6c 61 67 an ES6 "u"-flag
31590 67 65 64 20 70 61 74 74 65 72 6e 20 74 6f 20 61 ged pattern to a
315a0 6e 20 45 53 35 2d 63 6f 6d 70 61 74 69 62 6c 65 n ES5-compatible
315b0 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 61 . . // a
315c0 70 70 72 6f 78 69 6d 61 74 69 6f 6e 2e 0a 20 20 pproximation..
315d0 09 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 74 65 . // Note
315e0 3a 20 72 65 70 6c 61 63 69 6e 67 20 77 69 74 68 : replacing with
315f0 20 27 5c 75 46 46 46 46 27 20 65 6e 61 62 6c 65 '\uFFFF' enable
31600 73 20 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 s false positive
31610 73 20 69 6e 20 75 6e 6c 69 6b 65 6c 79 0a 20 20 s in unlikely.
31620 09 20 20 20 20 20 20 20 20 2f 2f 20 73 63 65 6e . // scen
31630 61 72 69 6f 73 2e 20 46 6f 72 20 65 78 61 6d 70 arios. For examp
31640 6c 65 2c 20 60 5b 5c 75 7b 31 30 34 34 66 7d 2d le, `[\u{1044f}-
31650 5c 75 7b 31 30 34 34 30 7d 5d 60 20 69 73 20 61 \u{10440}]` is a
31660 6e 20 69 6e 76 61 6c 69 64 0a 20 20 09 20 20 20 n invalid. .
31670 20 20 20 20 20 2f 2f 20 70 61 74 74 65 72 6e 20 // pattern
31680 74 68 61 74 20 77 6f 75 6c 64 20 6e 6f 74 20 62 that would not b
31690 65 20 64 65 74 65 63 74 65 64 20 62 79 20 74 68 e detected by th
316a0 69 73 20 73 75 62 73 74 69 74 75 74 69 6f 6e 2e is substitution.
316b0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
316c0 61 73 74 72 61 6c 53 75 62 73 74 69 74 75 74 65 astralSubstitute
316d0 20 3d 20 27 5c 75 46 46 46 46 27 3b 0a 20 20 09 = '\uFFFF';. .
316e0 20 20 20 20 20 20 20 20 76 61 72 20 74 6d 70 20 var tmp
316f0 3d 20 70 61 74 74 65 72 6e 3b 0a 20 20 09 20 20 = pattern;. .
31700 20 20 20 20 20 20 76 61 72 20 73 65 6c 66 20 3d var self =
31710 20 74 68 69 73 3b 0a 20 20 09 20 20 20 20 20 20 this;. .
31720 20 20 69 66 20 28 66 6c 61 67 73 2e 69 6e 64 65 if (flags.inde
31730 78 4f 66 28 27 75 27 29 20 3e 3d 20 30 29 20 7b xOf('u') >= 0) {
31740 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
31750 74 6d 70 20 3d 20 74 6d 70 0a 20 20 09 20 20 20 tmp = tmp. .
31760 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 72 65 .re
31770 70 6c 61 63 65 28 2f 5c 5c 75 5c 7b 28 5b 30 2d place(/\\u\{([0-
31780 39 61 2d 66 41 2d 46 5d 2b 29 5c 7d 7c 5c 5c 75 9a-fA-F]+)\}|\\u
31790 28 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 29 ([a-fA-F0-9]{4})
317a0 2f 67 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 30 /g, function ($0
317b0 2c 20 24 31 2c 20 24 32 29 20 7b 0a 20 20 09 20 , $1, $2) {. .
317c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
317d0 61 72 20 63 6f 64 65 50 6f 69 6e 74 20 3d 20 70 ar codePoint = p
317e0 61 72 73 65 49 6e 74 28 24 31 20 7c 7c 20 24 32 arseInt($1 || $2
317f0 2c 20 31 36 29 3b 0a 20 20 09 20 20 20 20 20 20 , 16);. .
31800 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 6f if (co
31810 64 65 50 6f 69 6e 74 20 3e 20 30 78 31 30 46 46 dePoint > 0x10FF
31820 46 46 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 FF) {. .
31830 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c sel
31840 66 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 f.throwUnexpecte
31850 64 54 6f 6b 65 6e 28 6d 65 73 73 61 67 65 73 5f dToken(messages_
31860 31 2e 4d 65 73 73 61 67 65 73 2e 49 6e 76 61 6c 1.Messages.Inval
31870 69 64 52 65 67 45 78 70 29 3b 0a 20 20 09 20 20 idRegExp);. .
31880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a }.
31890 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
318a0 20 20 20 69 66 20 28 63 6f 64 65 50 6f 69 6e 74 if (codePoint
318b0 20 3c 3d 20 30 78 46 46 46 46 29 20 7b 0a 20 20 <= 0xFFFF) {.
318c0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
318d0 20 20 20 20 20 72 65 74 75 72 6e 20 53 74 72 69 return Stri
318e0 6e 67 2e 66 72 6f 6d 43 68 61 72 43 6f 64 65 28 ng.fromCharCode(
318f0 63 6f 64 65 50 6f 69 6e 74 29 3b 0a 20 20 09 20 codePoint);. .
31900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
31910 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
31920 20 20 20 20 72 65 74 75 72 6e 20 61 73 74 72 61 return astra
31930 6c 53 75 62 73 74 69 74 75 74 65 3b 0a 20 20 09 lSubstitute;. .
31940 20 20 20 20 20 20 20 20 20 20 20 20 7d 29 0a 20 }).
31950 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
31960 20 20 2e 72 65 70 6c 61 63 65 28 2f 5b 5c 75 44 .replace(/[\uD
31970 38 30 30 2d 5c 75 44 42 46 46 5d 5b 5c 75 44 43 800-\uDBFF][\uDC
31980 30 30 2d 5c 75 44 46 46 46 5d 2f 67 2c 20 61 73 00-\uDFFF]/g, as
31990 74 72 61 6c 53 75 62 73 74 69 74 75 74 65 29 3b tralSubstitute);
319a0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
319b0 09 20 20 20 20 20 20 20 20 2f 2f 20 46 69 72 73 . // Firs
319c0 74 2c 20 64 65 74 65 63 74 20 69 6e 76 61 6c 69 t, detect invali
319d0 64 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 d regular expres
319e0 73 69 6f 6e 73 2e 0a 20 20 09 20 20 20 20 20 20 sions.. .
319f0 20 20 74 72 79 20 7b 0a 20 20 09 20 20 20 20 20 try {. .
31a00 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
31a10 63 61 74 63 68 20 28 65 29 20 7b 0a 20 20 09 20 catch (e) {. .
31a20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
31a30 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 54 throwUnexpectedT
31a40 6f 6b 65 6e 28 6d 65 73 73 61 67 65 73 5f 31 2e oken(messages_1.
31a50 4d 65 73 73 61 67 65 73 2e 49 6e 76 61 6c 69 64 Messages.Invalid
31a60 52 65 67 45 78 70 29 3b 0a 20 20 09 20 20 20 20 RegExp);. .
31a70 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
31a80 20 2f 2f 20 52 65 74 75 72 6e 20 61 20 72 65 67 // Return a reg
31a90 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 ular expression
31aa0 6f 62 6a 65 63 74 20 66 6f 72 20 74 68 69 73 20 object for this
31ab0 70 61 74 74 65 72 6e 2d 66 6c 61 67 20 70 61 69 pattern-flag pai
31ac0 72 2c 20 6f 72 0a 20 20 09 20 20 20 20 20 20 20 r, or. .
31ad0 20 2f 2f 20 60 6e 75 6c 6c 60 20 69 6e 20 63 61 // `null` in ca
31ae0 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 se the current e
31af0 6e 76 69 72 6f 6e 6d 65 6e 74 20 64 6f 65 73 6e nvironment doesn
31b00 27 74 20 73 75 70 70 6f 72 74 20 74 68 65 20 66 't support the f
31b10 6c 61 67 73 20 69 74 0a 20 20 09 20 20 20 20 20 lags it. .
31b20 20 20 20 2f 2f 20 75 73 65 73 2e 0a 20 20 09 20 // uses.. .
31b30 20 20 20 20 20 20 20 74 72 79 20 7b 0a 20 20 09 try {. .
31b40 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
31b50 72 6e 20 6e 65 77 20 52 65 67 45 78 70 28 70 61 rn new RegExp(pa
31b60 74 74 65 72 6e 2c 20 66 6c 61 67 73 29 3b 0a 20 ttern, flags);.
31b70 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
31b80 20 20 20 20 20 20 20 63 61 74 63 68 20 28 65 78 catch (ex
31b90 63 65 70 74 69 6f 6e 29 20 7b 0a 20 20 09 20 20 ception) {. .
31ba0 20 20 20 20 20 20 20 20 20 20 2f 2a 20 69 73 74 /* ist
31bb0 61 6e 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 78 anbul ignore nex
31bc0 74 20 2a 2f 0a 20 20 09 20 20 20 20 20 20 20 20 t */. .
31bd0 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b return null;
31be0 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
31bf0 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 0a . };. . .
31c00 20 20 09 20 20 20 20 53 63 61 6e 6e 65 72 2e 70 . Scanner.p
31c10 72 6f 74 6f 74 79 70 65 2e 73 63 61 6e 52 65 67 rototype.scanReg
31c20 45 78 70 42 6f 64 79 20 3d 20 66 75 6e 63 74 69 ExpBody = functi
31c30 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
31c40 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 var this$1 =
31c50 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 this;.. .
31c60 20 20 76 61 72 20 63 68 20 3d 20 74 68 69 73 2e var ch = this.
31c70 73 6f 75 72 63 65 5b 74 68 69 73 2e 69 6e 64 65 source[this.inde
31c80 78 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 61 x];. . a
31c90 73 73 65 72 74 5f 31 2e 61 73 73 65 72 74 28 63 ssert_1.assert(c
31ca0 68 20 3d 3d 3d 20 27 2f 27 2c 20 27 52 65 67 75 h === '/', 'Regu
31cb0 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 6c lar expression l
31cc0 69 74 65 72 61 6c 20 6d 75 73 74 20 73 74 61 72 iteral must star
31cd0 74 20 77 69 74 68 20 61 20 73 6c 61 73 68 27 29 t with a slash')
31ce0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
31cf0 20 73 74 72 20 3d 20 74 68 69 73 2e 73 6f 75 72 str = this.sour
31d00 63 65 5b 74 68 69 73 2e 69 6e 64 65 78 2b 2b 5d ce[this.index++]
31d10 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 ;. . var
31d20 20 63 6c 61 73 73 4d 61 72 6b 65 72 20 3d 20 66 classMarker = f
31d30 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alse;. .
31d40 20 76 61 72 20 74 65 72 6d 69 6e 61 74 65 64 20 var terminated
31d50 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
31d60 20 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 while (!this
31d70 2e 65 6f 66 28 29 29 20 7b 0a 20 20 09 20 20 20 .eof()) {. .
31d80 20 20 20 20 20 20 20 20 20 63 68 20 3d 20 74 68 ch = th
31d90 69 73 24 31 2e 73 6f 75 72 63 65 5b 74 68 69 73 is$1.source[this
31da0 24 31 2e 69 6e 64 65 78 2b 2b 5d 3b 0a 20 20 09 $1.index++];. .
31db0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20 str
31dc0 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 20 += ch;. .
31dd0 20 20 20 20 20 20 69 66 20 28 63 68 20 3d 3d 3d if (ch ===
31de0 20 27 5c 5c 27 29 20 7b 0a 20 20 09 20 20 20 20 '\\') {. .
31df0 20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 3d ch =
31e00 20 74 68 69 73 24 31 2e 73 6f 75 72 63 65 5b 74 this$1.source[t
31e10 68 69 73 24 31 2e 69 6e 64 65 78 2b 2b 5d 3b 0a his$1.index++];.
31e20 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
31e30 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 20 37 // ECMA-262 7
31e40 2e 38 2e 35 0a 20 20 09 20 20 20 20 20 20 20 20 .8.5. .
31e50 20 20 20 20 20 20 20 20 69 66 20 28 63 68 61 72 if (char
31e60 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 65 acter_1.Characte
31e70 72 2e 69 73 4c 69 6e 65 54 65 72 6d 69 6e 61 74 r.isLineTerminat
31e80 6f 72 28 63 68 2e 63 68 61 72 43 6f 64 65 41 74 or(ch.charCodeAt
31e90 28 30 29 29 29 20 7b 0a 20 20 09 20 20 20 20 20 (0))) {. .
31ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
31eb0 68 69 73 24 31 2e 74 68 72 6f 77 55 6e 65 78 70 his$1.throwUnexp
31ec0 65 63 74 65 64 54 6f 6b 65 6e 28 6d 65 73 73 61 ectedToken(messa
31ed0 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 ges_1.Messages.U
31ee0 6e 74 65 72 6d 69 6e 61 74 65 64 52 65 67 45 78 nterminatedRegEx
31ef0 70 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 p);. .
31f00 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
31f10 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20 str
31f20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 20 += ch;. .
31f30 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
31f40 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 else if (
31f50 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 character_1.Char
31f60 61 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 6d acter.isLineTerm
31f70 69 6e 61 74 6f 72 28 63 68 2e 63 68 61 72 43 6f inator(ch.charCo
31f80 64 65 41 74 28 30 29 29 29 20 7b 0a 20 20 09 20 deAt(0))) {. .
31f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
31fa0 68 69 73 24 31 2e 74 68 72 6f 77 55 6e 65 78 70 his$1.throwUnexp
31fb0 65 63 74 65 64 54 6f 6b 65 6e 28 6d 65 73 73 61 ectedToken(messa
31fc0 67 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 ges_1.Messages.U
31fd0 6e 74 65 72 6d 69 6e 61 74 65 64 52 65 67 45 78 nterminatedRegEx
31fe0 70 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 p);. .
31ff0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
32000 20 20 20 20 65 6c 73 65 20 69 66 20 28 63 6c 61 else if (cla
32010 73 73 4d 61 72 6b 65 72 29 20 7b 0a 20 20 09 20 ssMarker) {. .
32020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
32030 66 20 28 63 68 20 3d 3d 3d 20 27 5d 27 29 20 7b f (ch === ']') {
32040 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
32050 20 20 20 20 20 20 20 20 63 6c 61 73 73 4d 61 72 classMar
32060 6b 65 72 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 ker = false;. .
32070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32080 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
32090 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
320a0 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
320b0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
320c0 63 68 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 20 20 ch === '/') {.
320d0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
320e0 20 20 20 20 20 74 65 72 6d 69 6e 61 74 65 64 20 terminated
320f0 3d 20 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 = true;. .
32100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
32110 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
32120 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
32130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c el
32140 73 65 20 69 66 20 28 63 68 20 3d 3d 3d 20 27 5b se if (ch === '[
32150 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 ') {. .
32160 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 61 73 clas
32170 73 4d 61 72 6b 65 72 20 3d 20 74 72 75 65 3b 0a sMarker = true;.
32180 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
32190 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
321a0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
321b0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 }. . if
321c0 20 28 21 74 65 72 6d 69 6e 61 74 65 64 29 20 7b (!terminated) {
321d0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
321e0 74 68 69 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 this.throwUnexpe
321f0 63 74 65 64 54 6f 6b 65 6e 28 6d 65 73 73 61 67 ctedToken(messag
32200 65 73 5f 31 2e 4d 65 73 73 61 67 65 73 2e 55 6e es_1.Messages.Un
32210 74 65 72 6d 69 6e 61 74 65 64 52 65 67 45 78 70 terminatedRegExp
32220 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
32230 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 45 78 . // Ex
32240 63 6c 75 64 65 20 6c 65 61 64 69 6e 67 20 61 6e clude leading an
32250 64 20 74 72 61 69 6c 69 6e 67 20 73 6c 61 73 68 d trailing slash
32260 2e 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 .. . var
32270 20 62 6f 64 79 20 3d 20 73 74 72 2e 73 75 62 73 body = str.subs
32280 74 72 28 31 2c 20 73 74 72 2e 6c 65 6e 67 74 68 tr(1, str.length
32290 20 2d 20 32 29 3b 0a 20 20 09 20 20 20 20 20 20 - 2);. .
322a0 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 return {. .
322b0 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 3a value:
322c0 20 62 6f 64 79 2c 0a 20 20 09 20 20 20 20 20 20 body,. .
322d0 20 20 20 20 20 20 6c 69 74 65 72 61 6c 3a 20 73 literal: s
322e0 74 72 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b tr. . };
322f0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
32300 20 20 0a 20 20 09 20 20 20 20 53 63 61 6e 6e 65 . . Scanne
32310 72 2e 70 72 6f 74 6f 74 79 70 65 2e 73 63 61 6e r.prototype.scan
32320 52 65 67 45 78 70 46 6c 61 67 73 20 3d 20 66 75 RegExpFlags = fu
32330 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
32340 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 var this$
32350 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 1 = this;.. .
32360 20 20 20 20 20 20 76 61 72 20 73 74 72 20 3d 20 var str =
32370 27 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 '';. . v
32380 61 72 20 66 6c 61 67 73 20 3d 20 27 27 3b 0a 20 ar flags = '';.
32390 20 09 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 . while
323a0 28 21 74 68 69 73 2e 65 6f 66 28 29 29 20 7b 0a (!this.eof()) {.
323b0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
323c0 61 72 20 63 68 20 3d 20 74 68 69 73 24 31 2e 73 ar ch = this$1.s
323d0 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 6e 64 ource[this$1.ind
323e0 65 78 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ex];. .
323f0 20 20 20 20 69 66 20 28 21 63 68 61 72 61 63 74 if (!charact
32400 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 er_1.Character.i
32410 73 49 64 65 6e 74 69 66 69 65 72 50 61 72 74 28 sIdentifierPart(
32420 63 68 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 ch.charCodeAt(0)
32430 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 )) {. .
32440 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 break;.
32450 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
32460 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 2b . +
32470 2b 74 68 69 73 24 31 2e 69 6e 64 65 78 3b 0a 20 +this$1.index;.
32480 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
32490 20 28 63 68 20 3d 3d 3d 20 27 5c 5c 27 20 26 26 (ch === '\\' &&
324a0 20 21 74 68 69 73 24 31 2e 65 6f 66 28 29 29 20 !this$1.eof())
324b0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
324c0 20 20 20 20 20 63 68 20 3d 20 74 68 69 73 24 31 ch = this$1
324d0 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 69 .source[this$1.i
324e0 6e 64 65 78 5d 3b 0a 20 20 09 20 20 20 20 20 20 ndex];. .
324f0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 if (ch
32500 20 3d 3d 3d 20 27 75 27 29 20 7b 0a 20 20 09 20 === 'u') {. .
32510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32520 20 20 20 2b 2b 74 68 69 73 24 31 2e 69 6e 64 65 ++this$1.inde
32530 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 x;. .
32540 20 20 20 20 20 20 20 20 20 20 76 61 72 20 72 65 var re
32550 73 74 6f 72 65 20 3d 20 74 68 69 73 24 31 2e 69 store = this$1.i
32560 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 ndex;. .
32570 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 20 ch
32580 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 48 65 78 = this$1.scanHex
32590 45 73 63 61 70 65 28 27 75 27 29 3b 0a 20 20 09 Escape('u');. .
325a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
325b0 20 20 20 20 69 66 20 28 63 68 29 20 7b 0a 20 20 if (ch) {.
325c0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
325d0 20 20 20 20 20 20 20 20 20 66 6c 61 67 73 20 2b flags +
325e0 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 20 20 = ch;. .
325f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32600 20 66 6f 72 20 28 73 74 72 20 2b 3d 20 27 5c 5c for (str += '\\
32610 75 27 3b 20 72 65 73 74 6f 72 65 20 3c 20 74 68 u'; restore < th
32620 69 73 2e 69 6e 64 65 78 3b 20 2b 2b 72 65 73 74 is.index; ++rest
32630 6f 72 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ore) {. .
32640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32650 20 20 20 20 20 20 73 74 72 20 2b 3d 20 74 68 69 str += thi
32660 73 24 31 2e 73 6f 75 72 63 65 5b 72 65 73 74 6f s$1.source[resto
32670 72 65 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 re];. .
32680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32690 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
326a0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
326b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
326c0 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 else {. .
326d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
326e0 20 20 20 20 74 68 69 73 24 31 2e 69 6e 64 65 78 this$1.index
326f0 20 3d 20 72 65 73 74 6f 72 65 3b 0a 20 20 09 20 = restore;. .
32700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32710 20 20 20 20 20 20 20 66 6c 61 67 73 20 2b 3d 20 flags +=
32720 27 75 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 'u';. .
32730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
32740 73 74 72 20 2b 3d 20 27 5c 5c 75 27 3b 0a 20 20 str += '\\u';.
32750 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
32760 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
32770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 th
32780 69 73 24 31 2e 74 6f 6c 65 72 61 74 65 55 6e 65 is$1.tolerateUne
32790 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 29 3b 0a xpectedToken();.
327a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
327b0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
327c0 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
327d0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
327e0 20 20 20 20 20 20 73 74 72 20 2b 3d 20 27 5c 5c str += '\\
327f0 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ';. .
32800 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
32810 2e 74 6f 6c 65 72 61 74 65 55 6e 65 78 70 65 63 .tolerateUnexpec
32820 74 65 64 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 tedToken();. .
32830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
32840 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
32850 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
32860 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 20 20 else {. .
32870 20 20 20 20 20 20 20 20 20 20 20 66 6c 61 67 73 flags
32880 20 2b 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 += ch;. .
32890 20 20 20 20 20 20 20 20 20 20 20 73 74 72 20 2b str +
328a0 3d 20 63 68 3b 0a 20 20 09 20 20 20 20 20 20 20 = ch;. .
328b0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
328c0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 }. . r
328d0 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 20 20 eturn {. .
328e0 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 66 6c value: fl
328f0 61 67 73 2c 0a 20 20 09 20 20 20 20 20 20 20 20 ags,. .
32900 20 20 20 20 6c 69 74 65 72 61 6c 3a 20 73 74 72 literal: str
32910 0a 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 . . };.
32920 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
32930 0a 20 20 09 20 20 20 20 53 63 61 6e 6e 65 72 2e . . Scanner.
32940 70 72 6f 74 6f 74 79 70 65 2e 73 63 61 6e 52 65 prototype.scanRe
32950 67 45 78 70 20 3d 20 66 75 6e 63 74 69 6f 6e 20 gExp = function
32960 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
32970 76 61 72 20 73 74 61 72 74 20 3d 20 74 68 69 73 var start = this
32980 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
32990 20 20 20 76 61 72 20 62 6f 64 79 20 3d 20 74 68 var body = th
329a0 69 73 2e 73 63 61 6e 52 65 67 45 78 70 42 6f 64 is.scanRegExpBod
329b0 79 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 y();. .
329c0 76 61 72 20 66 6c 61 67 73 20 3d 20 74 68 69 73 var flags = this
329d0 2e 73 63 61 6e 52 65 67 45 78 70 46 6c 61 67 73 .scanRegExpFlags
329e0 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ();. . v
329f0 61 72 20 76 61 6c 75 65 20 3d 20 74 68 69 73 2e ar value = this.
32a00 74 65 73 74 52 65 67 45 78 70 28 62 6f 64 79 2e testRegExp(body.
32a10 76 61 6c 75 65 2c 20 66 6c 61 67 73 2e 76 61 6c value, flags.val
32a20 75 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ue);. .
32a30 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 20 return {. .
32a40 20 20 20 20 20 20 20 20 74 79 70 65 3a 20 74 6f type: to
32a50 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e 52 65 67 75 ken_1.Token.Regu
32a60 6c 61 72 45 78 70 72 65 73 73 69 6f 6e 2c 0a 20 larExpression,.
32a70 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 . va
32a80 6c 75 65 3a 20 76 61 6c 75 65 2c 0a 20 20 09 20 lue: value,. .
32a90 20 20 20 20 20 20 20 20 20 20 20 6c 69 74 65 72 liter
32aa0 61 6c 3a 20 62 6f 64 79 2e 6c 69 74 65 72 61 6c al: body.literal
32ab0 20 2b 20 66 6c 61 67 73 2e 6c 69 74 65 72 61 6c + flags.literal
32ac0 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
32ad0 20 72 65 67 65 78 3a 20 7b 0a 20 20 09 20 20 20 regex: {. .
32ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 74 pat
32af0 74 65 72 6e 3a 20 62 6f 64 79 2e 76 61 6c 75 65 tern: body.value
32b00 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
32b10 20 20 20 20 20 66 6c 61 67 73 3a 20 66 6c 61 67 flags: flag
32b20 73 2e 76 61 6c 75 65 0a 20 20 09 20 20 20 20 20 s.value. .
32b30 20 20 20 20 20 20 20 7d 2c 0a 20 20 09 20 20 20 },. .
32b40 20 20 20 20 20 20 20 20 20 6c 69 6e 65 4e 75 6d lineNum
32b50 62 65 72 3a 20 74 68 69 73 2e 6c 69 6e 65 4e 75 ber: this.lineNu
32b60 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 mber,. .
32b70 20 20 20 20 20 6c 69 6e 65 53 74 61 72 74 3a 20 lineStart:
32b80 74 68 69 73 2e 6c 69 6e 65 53 74 61 72 74 2c 0a this.lineStart,.
32b90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 73 . s
32ba0 74 61 72 74 3a 20 73 74 61 72 74 2c 0a 20 20 09 tart: start,. .
32bb0 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3a end:
32bc0 20 74 68 69 73 2e 69 6e 64 65 78 0a 20 20 09 20 this.index. .
32bd0 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
32be0 20 7d 3b 0a 20 20 09 20 20 20 20 0a 20 20 09 20 };. . . .
32bf0 20 20 20 53 63 61 6e 6e 65 72 2e 70 72 6f 74 6f Scanner.proto
32c00 74 79 70 65 2e 6c 65 78 20 3d 20 66 75 6e 63 74 type.lex = funct
32c10 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
32c20 20 20 20 20 69 66 20 28 74 68 69 73 2e 65 6f 66 if (this.eof
32c30 28 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ()) {. .
32c40 20 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 return {.
32c50 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
32c60 20 74 79 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 type: token_1.T
32c70 6f 6b 65 6e 2e 45 4f 46 2c 0a 20 20 09 20 20 20 oken.EOF,. .
32c80 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e lin
32c90 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e 6c 69 eNumber: this.li
32ca0 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 neNumber,. .
32cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e lin
32cc0 65 53 74 61 72 74 3a 20 74 68 69 73 2e 6c 69 6e eStart: this.lin
32cd0 65 53 74 61 72 74 2c 0a 20 20 09 20 20 20 20 20 eStart,. .
32ce0 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 start
32cf0 3a 20 74 68 69 73 2e 69 6e 64 65 78 2c 0a 20 20 : this.index,.
32d00 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
32d10 20 65 6e 64 3a 20 74 68 69 73 2e 69 6e 64 65 78 end: this.index
32d20 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
32d30 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a };. . }.
32d40 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 63 . var c
32d50 70 20 3d 20 74 68 69 73 2e 73 6f 75 72 63 65 2e p = this.source.
32d60 63 68 61 72 43 6f 64 65 41 74 28 74 68 69 73 2e charCodeAt(this.
32d70 69 6e 64 65 78 29 3b 0a 20 20 09 20 20 20 20 20 index);. .
32d80 20 20 20 69 66 20 28 63 68 61 72 61 63 74 65 72 if (character
32d90 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 73 49 _1.Character.isI
32da0 64 65 6e 74 69 66 69 65 72 53 74 61 72 74 28 63 dentifierStart(c
32db0 70 29 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 p)) {. .
32dc0 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
32dd0 2e 73 63 61 6e 49 64 65 6e 74 69 66 69 65 72 28 .scanIdentifier(
32de0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
32df0 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 56 65 . // Ve
32e00 72 79 20 63 6f 6d 6d 6f 6e 3a 20 28 20 61 6e 64 ry common: ( and
32e10 20 29 20 61 6e 64 20 3b 0a 20 20 09 20 20 20 20 ) and ;. .
32e20 20 20 20 20 69 66 20 28 63 70 20 3d 3d 3d 20 30 if (cp === 0
32e30 78 32 38 20 7c 7c 20 63 70 20 3d 3d 3d 20 30 78 x28 || cp === 0x
32e40 32 39 20 7c 7c 20 63 70 20 3d 3d 3d 20 30 78 33 29 || cp === 0x3
32e50 42 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 B) {. .
32e60 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
32e70 73 63 61 6e 50 75 6e 63 74 75 61 74 6f 72 28 29 scanPunctuator()
32e80 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
32e90 20 09 20 20 20 20 20 20 20 20 2f 2f 20 53 74 72 . // Str
32ea0 69 6e 67 20 6c 69 74 65 72 61 6c 20 73 74 61 72 ing literal star
32eb0 74 73 20 77 69 74 68 20 73 69 6e 67 6c 65 20 71 ts with single q
32ec0 75 6f 74 65 20 28 55 2b 30 30 32 37 29 20 6f 72 uote (U+0027) or
32ed0 20 64 6f 75 62 6c 65 20 71 75 6f 74 65 20 28 55 double quote (U
32ee0 2b 30 30 32 32 29 2e 0a 20 20 09 20 20 20 20 20 +0022).. .
32ef0 20 20 20 69 66 20 28 63 70 20 3d 3d 3d 20 30 78 if (cp === 0x
32f00 32 37 20 7c 7c 20 63 70 20 3d 3d 3d 20 30 78 32 27 || cp === 0x2
32f10 32 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 2) {. .
32f20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
32f30 73 63 61 6e 53 74 72 69 6e 67 4c 69 74 65 72 61 scanStringLitera
32f40 6c 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 l();. .
32f50 7d 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 }. . //
32f60 44 6f 74 20 28 2e 29 20 55 2b 30 30 32 45 20 63 Dot (.) U+002E c
32f70 61 6e 20 61 6c 73 6f 20 73 74 61 72 74 20 61 20 an also start a
32f80 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 20 6e floating-point n
32f90 75 6d 62 65 72 2c 20 68 65 6e 63 65 20 74 68 65 umber, hence the
32fa0 20 6e 65 65 64 0a 20 20 09 20 20 20 20 20 20 20 need. .
32fb0 20 2f 2f 20 74 6f 20 63 68 65 63 6b 20 74 68 65 // to check the
32fc0 20 6e 65 78 74 20 63 68 61 72 61 63 74 65 72 2e next character.
32fd0 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
32fe0 63 70 20 3d 3d 3d 20 30 78 32 45 29 20 7b 0a 20 cp === 0x2E) {.
32ff0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
33000 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 (character_1.Ch
33010 61 72 61 63 74 65 72 2e 69 73 44 65 63 69 6d 61 aracter.isDecima
33020 6c 44 69 67 69 74 28 74 68 69 73 2e 73 6f 75 72 lDigit(this.sour
33030 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 ce.charCodeAt(th
33040 69 73 2e 69 6e 64 65 78 20 2b 20 31 29 29 29 20 is.index + 1)))
33050 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
33060 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
33070 2e 73 63 61 6e 4e 75 6d 65 72 69 63 4c 69 74 65 .scanNumericLite
33080 72 61 6c 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ral();. .
33090 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
330a0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 return th
330b0 69 73 2e 73 63 61 6e 50 75 6e 63 74 75 61 74 6f is.scanPunctuato
330c0 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 r();. .
330d0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 }. . if
330e0 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 (character_1.Cha
330f0 72 61 63 74 65 72 2e 69 73 44 65 63 69 6d 61 6c racter.isDecimal
33100 44 69 67 69 74 28 63 70 29 29 20 7b 0a 20 20 09 Digit(cp)) {. .
33110 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
33120 72 6e 20 74 68 69 73 2e 73 63 61 6e 4e 75 6d 65 rn this.scanNume
33130 72 69 63 4c 69 74 65 72 61 6c 28 29 3b 0a 20 20 ricLiteral();.
33140 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
33150 20 20 20 20 20 20 2f 2f 20 54 65 6d 70 6c 61 74 // Templat
33160 65 20 6c 69 74 65 72 61 6c 73 20 73 74 61 72 74 e literals start
33170 20 77 69 74 68 20 60 20 28 55 2b 30 30 36 30 29 with ` (U+0060)
33180 20 66 6f 72 20 74 65 6d 70 6c 61 74 65 20 68 65 for template he
33190 61 64 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f ad. . //
331a0 20 6f 72 20 7d 20 28 55 2b 30 30 37 44 29 20 66 or } (U+007D) f
331b0 6f 72 20 74 65 6d 70 6c 61 74 65 20 6d 69 64 64 or template midd
331c0 6c 65 20 6f 72 20 74 65 6d 70 6c 61 74 65 20 74 le or template t
331d0 61 69 6c 2e 0a 20 20 09 20 20 20 20 20 20 20 20 ail.. .
331e0 69 66 20 28 63 70 20 3d 3d 3d 20 30 78 36 30 20 if (cp === 0x60
331f0 7c 7c 20 28 63 70 20 3d 3d 3d 20 30 78 37 44 20 || (cp === 0x7D
33200 26 26 20 74 68 69 73 2e 63 75 72 6c 79 53 74 61 && this.curlySta
33210 63 6b 5b 74 68 69 73 2e 63 75 72 6c 79 53 74 61 ck[this.curlySta
33220 63 6b 2e 6c 65 6e 67 74 68 20 2d 20 31 5d 20 3d ck.length - 1] =
33230 3d 3d 20 27 24 7b 27 29 29 20 7b 0a 20 20 09 20 == '${')) {. .
33240 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
33250 6e 20 74 68 69 73 2e 73 63 61 6e 54 65 6d 70 6c n this.scanTempl
33260 61 74 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ate();. .
33270 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 2f }. . /
33280 2f 20 50 6f 73 73 69 62 6c 65 20 69 64 65 6e 74 / Possible ident
33290 69 66 69 65 72 20 73 74 61 72 74 20 69 6e 20 61 ifier start in a
332a0 20 73 75 72 72 6f 67 61 74 65 20 70 61 69 72 2e surrogate pair.
332b0 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
332c0 63 70 20 3e 3d 20 30 78 44 38 30 30 20 26 26 20 cp >= 0xD800 &&
332d0 63 70 20 3c 20 30 78 44 46 46 46 29 20 7b 0a 20 cp < 0xDFFF) {.
332e0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 66 . if
332f0 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 (character_1.Ch
33300 61 72 61 63 74 65 72 2e 69 73 49 64 65 6e 74 69 aracter.isIdenti
33310 66 69 65 72 53 74 61 72 74 28 74 68 69 73 2e 63 fierStart(this.c
33320 6f 64 65 50 6f 69 6e 74 41 74 28 74 68 69 73 2e odePointAt(this.
33330 69 6e 64 65 78 29 29 29 20 7b 0a 20 20 09 20 20 index))) {. .
33340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 re
33350 74 75 72 6e 20 74 68 69 73 2e 73 63 61 6e 49 64 turn this.scanId
33360 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 20 09 20 entifier();. .
33370 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
33380 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
33390 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
333a0 2e 73 63 61 6e 50 75 6e 63 74 75 61 74 6f 72 28 .scanPunctuator(
333b0 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 );. . };. .
333c0 20 20 20 20 0a 20 20 09 20 20 20 20 72 65 74 75 . . retu
333d0 72 6e 20 53 63 61 6e 6e 65 72 3b 0a 20 20 09 7d rn Scanner;. .}
333e0 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e ());. .exports.
333f0 53 63 61 6e 6e 65 72 20 3d 20 53 63 61 6e 6e 65 Scanner = Scanne
33400 72 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d 2c 0a r;... /***/ },.
33410 20 20 2f 2a 20 39 20 2a 2f 0a 20 20 2f 2a 2a 2a /* 9 */. /***
33420 2f 20 66 75 6e 63 74 69 6f 6e 28 6d 6f 64 75 6c / function(modul
33430 65 2c 20 65 78 70 6f 72 74 73 29 20 7b 0a 20 20 e, exports) {.
33440 09 2f 2f 20 53 65 65 20 61 6c 73 6f 20 74 6f 6f .// See also too
33450 6c 73 2f 67 65 6e 65 72 61 74 65 2d 75 6e 69 63 ls/generate-unic
33460 6f 64 65 2d 72 65 67 65 78 2e 6a 73 2e 0a 20 20 ode-regex.js..
33470 09 76 61 72 20 52 65 67 65 78 20 3d 20 7b 0a 20 .var Regex = {.
33480 20 09 20 20 20 20 2f 2f 20 55 6e 69 63 6f 64 65 . // Unicode
33490 20 76 38 2e 30 2e 30 20 4e 6f 6e 41 73 63 69 69 v8.0.0 NonAscii
334a0 49 64 65 6e 74 69 66 69 65 72 53 74 61 72 74 3a IdentifierStart:
334b0 0a 20 20 09 20 20 20 20 4e 6f 6e 41 73 63 69 69 . . NonAscii
334c0 49 64 65 6e 74 69 66 69 65 72 53 74 61 72 74 3a IdentifierStart:
334d0 20 2f 5b 5c 78 41 41 5c 78 42 35 5c 78 42 41 5c /[\xAA\xB5\xBA\
334e0 78 43 30 2d 5c 78 44 36 5c 78 44 38 2d 5c 78 46 xC0-\xD6\xD8-\xF
334f0 36 5c 78 46 38 2d 5c 75 30 32 43 31 5c 75 30 32 6\xF8-\u02C1\u02
33500 43 36 2d 5c 75 30 32 44 31 5c 75 30 32 45 30 2d C6-\u02D1\u02E0-
33510 5c 75 30 32 45 34 5c 75 30 32 45 43 5c 75 30 32 \u02E4\u02EC\u02
33520 45 45 5c 75 30 33 37 30 2d 5c 75 30 33 37 34 5c EE\u0370-\u0374\
33530 75 30 33 37 36 5c 75 30 33 37 37 5c 75 30 33 37 u0376\u0377\u037
33540 41 2d 5c 75 30 33 37 44 5c 75 30 33 37 46 5c 75 A-\u037D\u037F\u
33550 30 33 38 36 5c 75 30 33 38 38 2d 5c 75 30 33 38 0386\u0388-\u038
33560 41 5c 75 30 33 38 43 5c 75 30 33 38 45 2d 5c 75 A\u038C\u038E-\u
33570 30 33 41 31 5c 75 30 33 41 33 2d 5c 75 30 33 46 03A1\u03A3-\u03F
33580 35 5c 75 30 33 46 37 2d 5c 75 30 34 38 31 5c 75 5\u03F7-\u0481\u
33590 30 34 38 41 2d 5c 75 30 35 32 46 5c 75 30 35 33 048A-\u052F\u053
335a0 31 2d 5c 75 30 35 35 36 5c 75 30 35 35 39 5c 75 1-\u0556\u0559\u
335b0 30 35 36 31 2d 5c 75 30 35 38 37 5c 75 30 35 44 0561-\u0587\u05D
335c0 30 2d 5c 75 30 35 45 41 5c 75 30 35 46 30 2d 5c 0-\u05EA\u05F0-\
335d0 75 30 35 46 32 5c 75 30 36 32 30 2d 5c 75 30 36 u05F2\u0620-\u06
335e0 34 41 5c 75 30 36 36 45 5c 75 30 36 36 46 5c 75 4A\u066E\u066F\u
335f0 30 36 37 31 2d 5c 75 30 36 44 33 5c 75 30 36 44 0671-\u06D3\u06D
33600 35 5c 75 30 36 45 35 5c 75 30 36 45 36 5c 75 30 5\u06E5\u06E6\u0
33610 36 45 45 5c 75 30 36 45 46 5c 75 30 36 46 41 2d 6EE\u06EF\u06FA-
33620 5c 75 30 36 46 43 5c 75 30 36 46 46 5c 75 30 37 \u06FC\u06FF\u07
33630 31 30 5c 75 30 37 31 32 2d 5c 75 30 37 32 46 5c 10\u0712-\u072F\
33640 75 30 37 34 44 2d 5c 75 30 37 41 35 5c 75 30 37 u074D-\u07A5\u07
33650 42 31 5c 75 30 37 43 41 2d 5c 75 30 37 45 41 5c B1\u07CA-\u07EA\
33660 75 30 37 46 34 5c 75 30 37 46 35 5c 75 30 37 46 u07F4\u07F5\u07F
33670 41 5c 75 30 38 30 30 2d 5c 75 30 38 31 35 5c 75 A\u0800-\u0815\u
33680 30 38 31 41 5c 75 30 38 32 34 5c 75 30 38 32 38 081A\u0824\u0828
33690 5c 75 30 38 34 30 2d 5c 75 30 38 35 38 5c 75 30 \u0840-\u0858\u0
336a0 38 41 30 2d 5c 75 30 38 42 34 5c 75 30 39 30 34 8A0-\u08B4\u0904
336b0 2d 5c 75 30 39 33 39 5c 75 30 39 33 44 5c 75 30 -\u0939\u093D\u0
336c0 39 35 30 5c 75 30 39 35 38 2d 5c 75 30 39 36 31 950\u0958-\u0961
336d0 5c 75 30 39 37 31 2d 5c 75 30 39 38 30 5c 75 30 \u0971-\u0980\u0
336e0 39 38 35 2d 5c 75 30 39 38 43 5c 75 30 39 38 46 985-\u098C\u098F
336f0 5c 75 30 39 39 30 5c 75 30 39 39 33 2d 5c 75 30 \u0990\u0993-\u0
33700 39 41 38 5c 75 30 39 41 41 2d 5c 75 30 39 42 30 9A8\u09AA-\u09B0
33710 5c 75 30 39 42 32 5c 75 30 39 42 36 2d 5c 75 30 \u09B2\u09B6-\u0
33720 39 42 39 5c 75 30 39 42 44 5c 75 30 39 43 45 5c 9B9\u09BD\u09CE\
33730 75 30 39 44 43 5c 75 30 39 44 44 5c 75 30 39 44 u09DC\u09DD\u09D
33740 46 2d 5c 75 30 39 45 31 5c 75 30 39 46 30 5c 75 F-\u09E1\u09F0\u
33750 30 39 46 31 5c 75 30 41 30 35 2d 5c 75 30 41 30 09F1\u0A05-\u0A0
33760 41 5c 75 30 41 30 46 5c 75 30 41 31 30 5c 75 30 A\u0A0F\u0A10\u0
33770 41 31 33 2d 5c 75 30 41 32 38 5c 75 30 41 32 41 A13-\u0A28\u0A2A
33780 2d 5c 75 30 41 33 30 5c 75 30 41 33 32 5c 75 30 -\u0A30\u0A32\u0
33790 41 33 33 5c 75 30 41 33 35 5c 75 30 41 33 36 5c A33\u0A35\u0A36\
337a0 75 30 41 33 38 5c 75 30 41 33 39 5c 75 30 41 35 u0A38\u0A39\u0A5
337b0 39 2d 5c 75 30 41 35 43 5c 75 30 41 35 45 5c 75 9-\u0A5C\u0A5E\u
337c0 30 41 37 32 2d 5c 75 30 41 37 34 5c 75 30 41 38 0A72-\u0A74\u0A8
337d0 35 2d 5c 75 30 41 38 44 5c 75 30 41 38 46 2d 5c 5-\u0A8D\u0A8F-\
337e0 75 30 41 39 31 5c 75 30 41 39 33 2d 5c 75 30 41 u0A91\u0A93-\u0A
337f0 41 38 5c 75 30 41 41 41 2d 5c 75 30 41 42 30 5c A8\u0AAA-\u0AB0\
33800 75 30 41 42 32 5c 75 30 41 42 33 5c 75 30 41 42 u0AB2\u0AB3\u0AB
33810 35 2d 5c 75 30 41 42 39 5c 75 30 41 42 44 5c 75 5-\u0AB9\u0ABD\u
33820 30 41 44 30 5c 75 30 41 45 30 5c 75 30 41 45 31 0AD0\u0AE0\u0AE1
33830 5c 75 30 41 46 39 5c 75 30 42 30 35 2d 5c 75 30 \u0AF9\u0B05-\u0
33840 42 30 43 5c 75 30 42 30 46 5c 75 30 42 31 30 5c B0C\u0B0F\u0B10\
33850 75 30 42 31 33 2d 5c 75 30 42 32 38 5c 75 30 42 u0B13-\u0B28\u0B
33860 32 41 2d 5c 75 30 42 33 30 5c 75 30 42 33 32 5c 2A-\u0B30\u0B32\
33870 75 30 42 33 33 5c 75 30 42 33 35 2d 5c 75 30 42 u0B33\u0B35-\u0B
33880 33 39 5c 75 30 42 33 44 5c 75 30 42 35 43 5c 75 39\u0B3D\u0B5C\u
33890 30 42 35 44 5c 75 30 42 35 46 2d 5c 75 30 42 36 0B5D\u0B5F-\u0B6
338a0 31 5c 75 30 42 37 31 5c 75 30 42 38 33 5c 75 30 1\u0B71\u0B83\u0
338b0 42 38 35 2d 5c 75 30 42 38 41 5c 75 30 42 38 45 B85-\u0B8A\u0B8E
338c0 2d 5c 75 30 42 39 30 5c 75 30 42 39 32 2d 5c 75 -\u0B90\u0B92-\u
338d0 30 42 39 35 5c 75 30 42 39 39 5c 75 30 42 39 41 0B95\u0B99\u0B9A
338e0 5c 75 30 42 39 43 5c 75 30 42 39 45 5c 75 30 42 \u0B9C\u0B9E\u0B
338f0 39 46 5c 75 30 42 41 33 5c 75 30 42 41 34 5c 75 9F\u0BA3\u0BA4\u
33900 30 42 41 38 2d 5c 75 30 42 41 41 5c 75 30 42 41 0BA8-\u0BAA\u0BA
33910 45 2d 5c 75 30 42 42 39 5c 75 30 42 44 30 5c 75 E-\u0BB9\u0BD0\u
33920 30 43 30 35 2d 5c 75 30 43 30 43 5c 75 30 43 30 0C05-\u0C0C\u0C0
33930 45 2d 5c 75 30 43 31 30 5c 75 30 43 31 32 2d 5c E-\u0C10\u0C12-\
33940 75 30 43 32 38 5c 75 30 43 32 41 2d 5c 75 30 43 u0C28\u0C2A-\u0C
33950 33 39 5c 75 30 43 33 44 5c 75 30 43 35 38 2d 5c 39\u0C3D\u0C58-\
33960 75 30 43 35 41 5c 75 30 43 36 30 5c 75 30 43 36 u0C5A\u0C60\u0C6
33970 31 5c 75 30 43 38 35 2d 5c 75 30 43 38 43 5c 75 1\u0C85-\u0C8C\u
33980 30 43 38 45 2d 5c 75 30 43 39 30 5c 75 30 43 39 0C8E-\u0C90\u0C9
33990 32 2d 5c 75 30 43 41 38 5c 75 30 43 41 41 2d 5c 2-\u0CA8\u0CAA-\
339a0 75 30 43 42 33 5c 75 30 43 42 35 2d 5c 75 30 43 u0CB3\u0CB5-\u0C
339b0 42 39 5c 75 30 43 42 44 5c 75 30 43 44 45 5c 75 B9\u0CBD\u0CDE\u
339c0 30 43 45 30 5c 75 30 43 45 31 5c 75 30 43 46 31 0CE0\u0CE1\u0CF1
339d0 5c 75 30 43 46 32 5c 75 30 44 30 35 2d 5c 75 30 \u0CF2\u0D05-\u0
339e0 44 30 43 5c 75 30 44 30 45 2d 5c 75 30 44 31 30 D0C\u0D0E-\u0D10
339f0 5c 75 30 44 31 32 2d 5c 75 30 44 33 41 5c 75 30 \u0D12-\u0D3A\u0
33a00 44 33 44 5c 75 30 44 34 45 5c 75 30 44 35 46 2d D3D\u0D4E\u0D5F-
33a10 5c 75 30 44 36 31 5c 75 30 44 37 41 2d 5c 75 30 \u0D61\u0D7A-\u0
33a20 44 37 46 5c 75 30 44 38 35 2d 5c 75 30 44 39 36 D7F\u0D85-\u0D96
33a30 5c 75 30 44 39 41 2d 5c 75 30 44 42 31 5c 75 30 \u0D9A-\u0DB1\u0
33a40 44 42 33 2d 5c 75 30 44 42 42 5c 75 30 44 42 44 DB3-\u0DBB\u0DBD
33a50 5c 75 30 44 43 30 2d 5c 75 30 44 43 36 5c 75 30 \u0DC0-\u0DC6\u0
33a60 45 30 31 2d 5c 75 30 45 33 30 5c 75 30 45 33 32 E01-\u0E30\u0E32
33a70 5c 75 30 45 33 33 5c 75 30 45 34 30 2d 5c 75 30 \u0E33\u0E40-\u0
33a80 45 34 36 5c 75 30 45 38 31 5c 75 30 45 38 32 5c E46\u0E81\u0E82\
33a90 75 30 45 38 34 5c 75 30 45 38 37 5c 75 30 45 38 u0E84\u0E87\u0E8
33aa0 38 5c 75 30 45 38 41 5c 75 30 45 38 44 5c 75 30 8\u0E8A\u0E8D\u0
33ab0 45 39 34 2d 5c 75 30 45 39 37 5c 75 30 45 39 39 E94-\u0E97\u0E99
33ac0 2d 5c 75 30 45 39 46 5c 75 30 45 41 31 2d 5c 75 -\u0E9F\u0EA1-\u
33ad0 30 45 41 33 5c 75 30 45 41 35 5c 75 30 45 41 37 0EA3\u0EA5\u0EA7
33ae0 5c 75 30 45 41 41 5c 75 30 45 41 42 5c 75 30 45 \u0EAA\u0EAB\u0E
33af0 41 44 2d 5c 75 30 45 42 30 5c 75 30 45 42 32 5c AD-\u0EB0\u0EB2\
33b00 75 30 45 42 33 5c 75 30 45 42 44 5c 75 30 45 43 u0EB3\u0EBD\u0EC
33b10 30 2d 5c 75 30 45 43 34 5c 75 30 45 43 36 5c 75 0-\u0EC4\u0EC6\u
33b20 30 45 44 43 2d 5c 75 30 45 44 46 5c 75 30 46 30 0EDC-\u0EDF\u0F0
33b30 30 5c 75 30 46 34 30 2d 5c 75 30 46 34 37 5c 75 0\u0F40-\u0F47\u
33b40 30 46 34 39 2d 5c 75 30 46 36 43 5c 75 30 46 38 0F49-\u0F6C\u0F8
33b50 38 2d 5c 75 30 46 38 43 5c 75 31 30 30 30 2d 5c 8-\u0F8C\u1000-\
33b60 75 31 30 32 41 5c 75 31 30 33 46 5c 75 31 30 35 u102A\u103F\u105
33b70 30 2d 5c 75 31 30 35 35 5c 75 31 30 35 41 2d 5c 0-\u1055\u105A-\
33b80 75 31 30 35 44 5c 75 31 30 36 31 5c 75 31 30 36 u105D\u1061\u106
33b90 35 5c 75 31 30 36 36 5c 75 31 30 36 45 2d 5c 75 5\u1066\u106E-\u
33ba0 31 30 37 30 5c 75 31 30 37 35 2d 5c 75 31 30 38 1070\u1075-\u108
33bb0 31 5c 75 31 30 38 45 5c 75 31 30 41 30 2d 5c 75 1\u108E\u10A0-\u
33bc0 31 30 43 35 5c 75 31 30 43 37 5c 75 31 30 43 44 10C5\u10C7\u10CD
33bd0 5c 75 31 30 44 30 2d 5c 75 31 30 46 41 5c 75 31 \u10D0-\u10FA\u1
33be0 30 46 43 2d 5c 75 31 32 34 38 5c 75 31 32 34 41 0FC-\u1248\u124A
33bf0 2d 5c 75 31 32 34 44 5c 75 31 32 35 30 2d 5c 75 -\u124D\u1250-\u
33c00 31 32 35 36 5c 75 31 32 35 38 5c 75 31 32 35 41 1256\u1258\u125A
33c10 2d 5c 75 31 32 35 44 5c 75 31 32 36 30 2d 5c 75 -\u125D\u1260-\u
33c20 31 32 38 38 5c 75 31 32 38 41 2d 5c 75 31 32 38 1288\u128A-\u128
33c30 44 5c 75 31 32 39 30 2d 5c 75 31 32 42 30 5c 75 D\u1290-\u12B0\u
33c40 31 32 42 32 2d 5c 75 31 32 42 35 5c 75 31 32 42 12B2-\u12B5\u12B
33c50 38 2d 5c 75 31 32 42 45 5c 75 31 32 43 30 5c 75 8-\u12BE\u12C0\u
33c60 31 32 43 32 2d 5c 75 31 32 43 35 5c 75 31 32 43 12C2-\u12C5\u12C
33c70 38 2d 5c 75 31 32 44 36 5c 75 31 32 44 38 2d 5c 8-\u12D6\u12D8-\
33c80 75 31 33 31 30 5c 75 31 33 31 32 2d 5c 75 31 33 u1310\u1312-\u13
33c90 31 35 5c 75 31 33 31 38 2d 5c 75 31 33 35 41 5c 15\u1318-\u135A\
33ca0 75 31 33 38 30 2d 5c 75 31 33 38 46 5c 75 31 33 u1380-\u138F\u13
33cb0 41 30 2d 5c 75 31 33 46 35 5c 75 31 33 46 38 2d A0-\u13F5\u13F8-
33cc0 5c 75 31 33 46 44 5c 75 31 34 30 31 2d 5c 75 31 \u13FD\u1401-\u1
33cd0 36 36 43 5c 75 31 36 36 46 2d 5c 75 31 36 37 46 66C\u166F-\u167F
33ce0 5c 75 31 36 38 31 2d 5c 75 31 36 39 41 5c 75 31 \u1681-\u169A\u1
33cf0 36 41 30 2d 5c 75 31 36 45 41 5c 75 31 36 45 45 6A0-\u16EA\u16EE
33d00 2d 5c 75 31 36 46 38 5c 75 31 37 30 30 2d 5c 75 -\u16F8\u1700-\u
33d10 31 37 30 43 5c 75 31 37 30 45 2d 5c 75 31 37 31 170C\u170E-\u171
33d20 31 5c 75 31 37 32 30 2d 5c 75 31 37 33 31 5c 75 1\u1720-\u1731\u
33d30 31 37 34 30 2d 5c 75 31 37 35 31 5c 75 31 37 36 1740-\u1751\u176
33d40 30 2d 5c 75 31 37 36 43 5c 75 31 37 36 45 2d 5c 0-\u176C\u176E-\
33d50 75 31 37 37 30 5c 75 31 37 38 30 2d 5c 75 31 37 u1770\u1780-\u17
33d60 42 33 5c 75 31 37 44 37 5c 75 31 37 44 43 5c 75 B3\u17D7\u17DC\u
33d70 31 38 32 30 2d 5c 75 31 38 37 37 5c 75 31 38 38 1820-\u1877\u188
33d80 30 2d 5c 75 31 38 41 38 5c 75 31 38 41 41 5c 75 0-\u18A8\u18AA\u
33d90 31 38 42 30 2d 5c 75 31 38 46 35 5c 75 31 39 30 18B0-\u18F5\u190
33da0 30 2d 5c 75 31 39 31 45 5c 75 31 39 35 30 2d 5c 0-\u191E\u1950-\
33db0 75 31 39 36 44 5c 75 31 39 37 30 2d 5c 75 31 39 u196D\u1970-\u19
33dc0 37 34 5c 75 31 39 38 30 2d 5c 75 31 39 41 42 5c 74\u1980-\u19AB\
33dd0 75 31 39 42 30 2d 5c 75 31 39 43 39 5c 75 31 41 u19B0-\u19C9\u1A
33de0 30 30 2d 5c 75 31 41 31 36 5c 75 31 41 32 30 2d 00-\u1A16\u1A20-
33df0 5c 75 31 41 35 34 5c 75 31 41 41 37 5c 75 31 42 \u1A54\u1AA7\u1B
33e00 30 35 2d 5c 75 31 42 33 33 5c 75 31 42 34 35 2d 05-\u1B33\u1B45-
33e10 5c 75 31 42 34 42 5c 75 31 42 38 33 2d 5c 75 31 \u1B4B\u1B83-\u1
33e20 42 41 30 5c 75 31 42 41 45 5c 75 31 42 41 46 5c BA0\u1BAE\u1BAF\
33e30 75 31 42 42 41 2d 5c 75 31 42 45 35 5c 75 31 43 u1BBA-\u1BE5\u1C
33e40 30 30 2d 5c 75 31 43 32 33 5c 75 31 43 34 44 2d 00-\u1C23\u1C4D-
33e50 5c 75 31 43 34 46 5c 75 31 43 35 41 2d 5c 75 31 \u1C4F\u1C5A-\u1
33e60 43 37 44 5c 75 31 43 45 39 2d 5c 75 31 43 45 43 C7D\u1CE9-\u1CEC
33e70 5c 75 31 43 45 45 2d 5c 75 31 43 46 31 5c 75 31 \u1CEE-\u1CF1\u1
33e80 43 46 35 5c 75 31 43 46 36 5c 75 31 44 30 30 2d CF5\u1CF6\u1D00-
33e90 5c 75 31 44 42 46 5c 75 31 45 30 30 2d 5c 75 31 \u1DBF\u1E00-\u1
33ea0 46 31 35 5c 75 31 46 31 38 2d 5c 75 31 46 31 44 F15\u1F18-\u1F1D
33eb0 5c 75 31 46 32 30 2d 5c 75 31 46 34 35 5c 75 31 \u1F20-\u1F45\u1
33ec0 46 34 38 2d 5c 75 31 46 34 44 5c 75 31 46 35 30 F48-\u1F4D\u1F50
33ed0 2d 5c 75 31 46 35 37 5c 75 31 46 35 39 5c 75 31 -\u1F57\u1F59\u1
33ee0 46 35 42 5c 75 31 46 35 44 5c 75 31 46 35 46 2d F5B\u1F5D\u1F5F-
33ef0 5c 75 31 46 37 44 5c 75 31 46 38 30 2d 5c 75 31 \u1F7D\u1F80-\u1
33f00 46 42 34 5c 75 31 46 42 36 2d 5c 75 31 46 42 43 FB4\u1FB6-\u1FBC
33f10 5c 75 31 46 42 45 5c 75 31 46 43 32 2d 5c 75 31 \u1FBE\u1FC2-\u1
33f20 46 43 34 5c 75 31 46 43 36 2d 5c 75 31 46 43 43 FC4\u1FC6-\u1FCC
33f30 5c 75 31 46 44 30 2d 5c 75 31 46 44 33 5c 75 31 \u1FD0-\u1FD3\u1
33f40 46 44 36 2d 5c 75 31 46 44 42 5c 75 31 46 45 30 FD6-\u1FDB\u1FE0
33f50 2d 5c 75 31 46 45 43 5c 75 31 46 46 32 2d 5c 75 -\u1FEC\u1FF2-\u
33f60 31 46 46 34 5c 75 31 46 46 36 2d 5c 75 31 46 46 1FF4\u1FF6-\u1FF
33f70 43 5c 75 32 30 37 31 5c 75 32 30 37 46 5c 75 32 C\u2071\u207F\u2
33f80 30 39 30 2d 5c 75 32 30 39 43 5c 75 32 31 30 32 090-\u209C\u2102
33f90 5c 75 32 31 30 37 5c 75 32 31 30 41 2d 5c 75 32 \u2107\u210A-\u2
33fa0 31 31 33 5c 75 32 31 31 35 5c 75 32 31 31 38 2d 113\u2115\u2118-
33fb0 5c 75 32 31 31 44 5c 75 32 31 32 34 5c 75 32 31 \u211D\u2124\u21
33fc0 32 36 5c 75 32 31 32 38 5c 75 32 31 32 41 2d 5c 26\u2128\u212A-\
33fd0 75 32 31 33 39 5c 75 32 31 33 43 2d 5c 75 32 31 u2139\u213C-\u21
33fe0 33 46 5c 75 32 31 34 35 2d 5c 75 32 31 34 39 5c 3F\u2145-\u2149\
33ff0 75 32 31 34 45 5c 75 32 31 36 30 2d 5c 75 32 31 u214E\u2160-\u21
34000 38 38 5c 75 32 43 30 30 2d 5c 75 32 43 32 45 5c 88\u2C00-\u2C2E\
34010 75 32 43 33 30 2d 5c 75 32 43 35 45 5c 75 32 43 u2C30-\u2C5E\u2C
34020 36 30 2d 5c 75 32 43 45 34 5c 75 32 43 45 42 2d 60-\u2CE4\u2CEB-
34030 5c 75 32 43 45 45 5c 75 32 43 46 32 5c 75 32 43 \u2CEE\u2CF2\u2C
34040 46 33 5c 75 32 44 30 30 2d 5c 75 32 44 32 35 5c F3\u2D00-\u2D25\
34050 75 32 44 32 37 5c 75 32 44 32 44 5c 75 32 44 33 u2D27\u2D2D\u2D3
34060 30 2d 5c 75 32 44 36 37 5c 75 32 44 36 46 5c 75 0-\u2D67\u2D6F\u
34070 32 44 38 30 2d 5c 75 32 44 39 36 5c 75 32 44 41 2D80-\u2D96\u2DA
34080 30 2d 5c 75 32 44 41 36 5c 75 32 44 41 38 2d 5c 0-\u2DA6\u2DA8-\
34090 75 32 44 41 45 5c 75 32 44 42 30 2d 5c 75 32 44 u2DAE\u2DB0-\u2D
340a0 42 36 5c 75 32 44 42 38 2d 5c 75 32 44 42 45 5c B6\u2DB8-\u2DBE\
340b0 75 32 44 43 30 2d 5c 75 32 44 43 36 5c 75 32 44 u2DC0-\u2DC6\u2D
340c0 43 38 2d 5c 75 32 44 43 45 5c 75 32 44 44 30 2d C8-\u2DCE\u2DD0-
340d0 5c 75 32 44 44 36 5c 75 32 44 44 38 2d 5c 75 32 \u2DD6\u2DD8-\u2
340e0 44 44 45 5c 75 33 30 30 35 2d 5c 75 33 30 30 37 DDE\u3005-\u3007
340f0 5c 75 33 30 32 31 2d 5c 75 33 30 32 39 5c 75 33 \u3021-\u3029\u3
34100 30 33 31 2d 5c 75 33 30 33 35 5c 75 33 30 33 38 031-\u3035\u3038
34110 2d 5c 75 33 30 33 43 5c 75 33 30 34 31 2d 5c 75 -\u303C\u3041-\u
34120 33 30 39 36 5c 75 33 30 39 42 2d 5c 75 33 30 39 3096\u309B-\u309
34130 46 5c 75 33 30 41 31 2d 5c 75 33 30 46 41 5c 75 F\u30A1-\u30FA\u
34140 33 30 46 43 2d 5c 75 33 30 46 46 5c 75 33 31 30 30FC-\u30FF\u310
34150 35 2d 5c 75 33 31 32 44 5c 75 33 31 33 31 2d 5c 5-\u312D\u3131-\
34160 75 33 31 38 45 5c 75 33 31 41 30 2d 5c 75 33 31 u318E\u31A0-\u31
34170 42 41 5c 75 33 31 46 30 2d 5c 75 33 31 46 46 5c BA\u31F0-\u31FF\
34180 75 33 34 30 30 2d 5c 75 34 44 42 35 5c 75 34 45 u3400-\u4DB5\u4E
34190 30 30 2d 5c 75 39 46 44 35 5c 75 41 30 30 30 2d 00-\u9FD5\uA000-
341a0 5c 75 41 34 38 43 5c 75 41 34 44 30 2d 5c 75 41 \uA48C\uA4D0-\uA
341b0 34 46 44 5c 75 41 35 30 30 2d 5c 75 41 36 30 43 4FD\uA500-\uA60C
341c0 5c 75 41 36 31 30 2d 5c 75 41 36 31 46 5c 75 41 \uA610-\uA61F\uA
341d0 36 32 41 5c 75 41 36 32 42 5c 75 41 36 34 30 2d 62A\uA62B\uA640-
341e0 5c 75 41 36 36 45 5c 75 41 36 37 46 2d 5c 75 41 \uA66E\uA67F-\uA
341f0 36 39 44 5c 75 41 36 41 30 2d 5c 75 41 36 45 46 69D\uA6A0-\uA6EF
34200 5c 75 41 37 31 37 2d 5c 75 41 37 31 46 5c 75 41 \uA717-\uA71F\uA
34210 37 32 32 2d 5c 75 41 37 38 38 5c 75 41 37 38 42 722-\uA788\uA78B
34220 2d 5c 75 41 37 41 44 5c 75 41 37 42 30 2d 5c 75 -\uA7AD\uA7B0-\u
34230 41 37 42 37 5c 75 41 37 46 37 2d 5c 75 41 38 30 A7B7\uA7F7-\uA80
34240 31 5c 75 41 38 30 33 2d 5c 75 41 38 30 35 5c 75 1\uA803-\uA805\u
34250 41 38 30 37 2d 5c 75 41 38 30 41 5c 75 41 38 30 A807-\uA80A\uA80
34260 43 2d 5c 75 41 38 32 32 5c 75 41 38 34 30 2d 5c C-\uA822\uA840-\
34270 75 41 38 37 33 5c 75 41 38 38 32 2d 5c 75 41 38 uA873\uA882-\uA8
34280 42 33 5c 75 41 38 46 32 2d 5c 75 41 38 46 37 5c B3\uA8F2-\uA8F7\
34290 75 41 38 46 42 5c 75 41 38 46 44 5c 75 41 39 30 uA8FB\uA8FD\uA90
342a0 41 2d 5c 75 41 39 32 35 5c 75 41 39 33 30 2d 5c A-\uA925\uA930-\
342b0 75 41 39 34 36 5c 75 41 39 36 30 2d 5c 75 41 39 uA946\uA960-\uA9
342c0 37 43 5c 75 41 39 38 34 2d 5c 75 41 39 42 32 5c 7C\uA984-\uA9B2\
342d0 75 41 39 43 46 5c 75 41 39 45 30 2d 5c 75 41 39 uA9CF\uA9E0-\uA9
342e0 45 34 5c 75 41 39 45 36 2d 5c 75 41 39 45 46 5c E4\uA9E6-\uA9EF\
342f0 75 41 39 46 41 2d 5c 75 41 39 46 45 5c 75 41 41 uA9FA-\uA9FE\uAA
34300 30 30 2d 5c 75 41 41 32 38 5c 75 41 41 34 30 2d 00-\uAA28\uAA40-
34310 5c 75 41 41 34 32 5c 75 41 41 34 34 2d 5c 75 41 \uAA42\uAA44-\uA
34320 41 34 42 5c 75 41 41 36 30 2d 5c 75 41 41 37 36 A4B\uAA60-\uAA76
34330 5c 75 41 41 37 41 5c 75 41 41 37 45 2d 5c 75 41 \uAA7A\uAA7E-\uA
34340 41 41 46 5c 75 41 41 42 31 5c 75 41 41 42 35 5c AAF\uAAB1\uAAB5\
34350 75 41 41 42 36 5c 75 41 41 42 39 2d 5c 75 41 41 uAAB6\uAAB9-\uAA
34360 42 44 5c 75 41 41 43 30 5c 75 41 41 43 32 5c 75 BD\uAAC0\uAAC2\u
34370 41 41 44 42 2d 5c 75 41 41 44 44 5c 75 41 41 45 AADB-\uAADD\uAAE
34380 30 2d 5c 75 41 41 45 41 5c 75 41 41 46 32 2d 5c 0-\uAAEA\uAAF2-\
34390 75 41 41 46 34 5c 75 41 42 30 31 2d 5c 75 41 42 uAAF4\uAB01-\uAB
343a0 30 36 5c 75 41 42 30 39 2d 5c 75 41 42 30 45 5c 06\uAB09-\uAB0E\
343b0 75 41 42 31 31 2d 5c 75 41 42 31 36 5c 75 41 42 uAB11-\uAB16\uAB
343c0 32 30 2d 5c 75 41 42 32 36 5c 75 41 42 32 38 2d 20-\uAB26\uAB28-
343d0 5c 75 41 42 32 45 5c 75 41 42 33 30 2d 5c 75 41 \uAB2E\uAB30-\uA
343e0 42 35 41 5c 75 41 42 35 43 2d 5c 75 41 42 36 35 B5A\uAB5C-\uAB65
343f0 5c 75 41 42 37 30 2d 5c 75 41 42 45 32 5c 75 41 \uAB70-\uABE2\uA
34400 43 30 30 2d 5c 75 44 37 41 33 5c 75 44 37 42 30 C00-\uD7A3\uD7B0
34410 2d 5c 75 44 37 43 36 5c 75 44 37 43 42 2d 5c 75 -\uD7C6\uD7CB-\u
34420 44 37 46 42 5c 75 46 39 30 30 2d 5c 75 46 41 36 D7FB\uF900-\uFA6
34430 44 5c 75 46 41 37 30 2d 5c 75 46 41 44 39 5c 75 D\uFA70-\uFAD9\u
34440 46 42 30 30 2d 5c 75 46 42 30 36 5c 75 46 42 31 FB00-\uFB06\uFB1
34450 33 2d 5c 75 46 42 31 37 5c 75 46 42 31 44 5c 75 3-\uFB17\uFB1D\u
34460 46 42 31 46 2d 5c 75 46 42 32 38 5c 75 46 42 32 FB1F-\uFB28\uFB2
34470 41 2d 5c 75 46 42 33 36 5c 75 46 42 33 38 2d 5c A-\uFB36\uFB38-\
34480 75 46 42 33 43 5c 75 46 42 33 45 5c 75 46 42 34 uFB3C\uFB3E\uFB4
34490 30 5c 75 46 42 34 31 5c 75 46 42 34 33 5c 75 46 0\uFB41\uFB43\uF
344a0 42 34 34 5c 75 46 42 34 36 2d 5c 75 46 42 42 31 B44\uFB46-\uFBB1
344b0 5c 75 46 42 44 33 2d 5c 75 46 44 33 44 5c 75 46 \uFBD3-\uFD3D\uF
344c0 44 35 30 2d 5c 75 46 44 38 46 5c 75 46 44 39 32 D50-\uFD8F\uFD92
344d0 2d 5c 75 46 44 43 37 5c 75 46 44 46 30 2d 5c 75 -\uFDC7\uFDF0-\u
344e0 46 44 46 42 5c 75 46 45 37 30 2d 5c 75 46 45 37 FDFB\uFE70-\uFE7
344f0 34 5c 75 46 45 37 36 2d 5c 75 46 45 46 43 5c 75 4\uFE76-\uFEFC\u
34500 46 46 32 31 2d 5c 75 46 46 33 41 5c 75 46 46 34 FF21-\uFF3A\uFF4
34510 31 2d 5c 75 46 46 35 41 5c 75 46 46 36 36 2d 5c 1-\uFF5A\uFF66-\
34520 75 46 46 42 45 5c 75 46 46 43 32 2d 5c 75 46 46 uFFBE\uFFC2-\uFF
34530 43 37 5c 75 46 46 43 41 2d 5c 75 46 46 43 46 5c C7\uFFCA-\uFFCF\
34540 75 46 46 44 32 2d 5c 75 46 46 44 37 5c 75 46 46 uFFD2-\uFFD7\uFF
34550 44 41 2d 5c 75 46 46 44 43 5d 7c 5c 75 44 38 30 DA-\uFFDC]|\uD80
34560 30 5b 5c 75 44 43 30 30 2d 5c 75 44 43 30 42 5c 0[\uDC00-\uDC0B\
34570 75 44 43 30 44 2d 5c 75 44 43 32 36 5c 75 44 43 uDC0D-\uDC26\uDC
34580 32 38 2d 5c 75 44 43 33 41 5c 75 44 43 33 43 5c 28-\uDC3A\uDC3C\
34590 75 44 43 33 44 5c 75 44 43 33 46 2d 5c 75 44 43 uDC3D\uDC3F-\uDC
345a0 34 44 5c 75 44 43 35 30 2d 5c 75 44 43 35 44 5c 4D\uDC50-\uDC5D\
345b0 75 44 43 38 30 2d 5c 75 44 43 46 41 5c 75 44 44 uDC80-\uDCFA\uDD
345c0 34 30 2d 5c 75 44 44 37 34 5c 75 44 45 38 30 2d 40-\uDD74\uDE80-
345d0 5c 75 44 45 39 43 5c 75 44 45 41 30 2d 5c 75 44 \uDE9C\uDEA0-\uD
345e0 45 44 30 5c 75 44 46 30 30 2d 5c 75 44 46 31 46 ED0\uDF00-\uDF1F
345f0 5c 75 44 46 33 30 2d 5c 75 44 46 34 41 5c 75 44 \uDF30-\uDF4A\uD
34600 46 35 30 2d 5c 75 44 46 37 35 5c 75 44 46 38 30 F50-\uDF75\uDF80
34610 2d 5c 75 44 46 39 44 5c 75 44 46 41 30 2d 5c 75 -\uDF9D\uDFA0-\u
34620 44 46 43 33 5c 75 44 46 43 38 2d 5c 75 44 46 43 DFC3\uDFC8-\uDFC
34630 46 5c 75 44 46 44 31 2d 5c 75 44 46 44 35 5d 7c F\uDFD1-\uDFD5]|
34640 5c 75 44 38 30 31 5b 5c 75 44 43 30 30 2d 5c 75 \uD801[\uDC00-\u
34650 44 43 39 44 5c 75 44 44 30 30 2d 5c 75 44 44 32 DC9D\uDD00-\uDD2
34660 37 5c 75 44 44 33 30 2d 5c 75 44 44 36 33 5c 75 7\uDD30-\uDD63\u
34670 44 45 30 30 2d 5c 75 44 46 33 36 5c 75 44 46 34 DE00-\uDF36\uDF4
34680 30 2d 5c 75 44 46 35 35 5c 75 44 46 36 30 2d 5c 0-\uDF55\uDF60-\
34690 75 44 46 36 37 5d 7c 5c 75 44 38 30 32 5b 5c 75 uDF67]|\uD802[\u
346a0 44 43 30 30 2d 5c 75 44 43 30 35 5c 75 44 43 30 DC00-\uDC05\uDC0
346b0 38 5c 75 44 43 30 41 2d 5c 75 44 43 33 35 5c 75 8\uDC0A-\uDC35\u
346c0 44 43 33 37 5c 75 44 43 33 38 5c 75 44 43 33 43 DC37\uDC38\uDC3C
346d0 5c 75 44 43 33 46 2d 5c 75 44 43 35 35 5c 75 44 \uDC3F-\uDC55\uD
346e0 43 36 30 2d 5c 75 44 43 37 36 5c 75 44 43 38 30 C60-\uDC76\uDC80
346f0 2d 5c 75 44 43 39 45 5c 75 44 43 45 30 2d 5c 75 -\uDC9E\uDCE0-\u
34700 44 43 46 32 5c 75 44 43 46 34 5c 75 44 43 46 35 DCF2\uDCF4\uDCF5
34710 5c 75 44 44 30 30 2d 5c 75 44 44 31 35 5c 75 44 \uDD00-\uDD15\uD
34720 44 32 30 2d 5c 75 44 44 33 39 5c 75 44 44 38 30 D20-\uDD39\uDD80
34730 2d 5c 75 44 44 42 37 5c 75 44 44 42 45 5c 75 44 -\uDDB7\uDDBE\uD
34740 44 42 46 5c 75 44 45 30 30 5c 75 44 45 31 30 2d DBF\uDE00\uDE10-
34750 5c 75 44 45 31 33 5c 75 44 45 31 35 2d 5c 75 44 \uDE13\uDE15-\uD
34760 45 31 37 5c 75 44 45 31 39 2d 5c 75 44 45 33 33 E17\uDE19-\uDE33
34770 5c 75 44 45 36 30 2d 5c 75 44 45 37 43 5c 75 44 \uDE60-\uDE7C\uD
34780 45 38 30 2d 5c 75 44 45 39 43 5c 75 44 45 43 30 E80-\uDE9C\uDEC0
34790 2d 5c 75 44 45 43 37 5c 75 44 45 43 39 2d 5c 75 -\uDEC7\uDEC9-\u
347a0 44 45 45 34 5c 75 44 46 30 30 2d 5c 75 44 46 33 DEE4\uDF00-\uDF3
347b0 35 5c 75 44 46 34 30 2d 5c 75 44 46 35 35 5c 75 5\uDF40-\uDF55\u
347c0 44 46 36 30 2d 5c 75 44 46 37 32 5c 75 44 46 38 DF60-\uDF72\uDF8
347d0 30 2d 5c 75 44 46 39 31 5d 7c 5c 75 44 38 30 33 0-\uDF91]|\uD803
347e0 5b 5c 75 44 43 30 30 2d 5c 75 44 43 34 38 5c 75 [\uDC00-\uDC48\u
347f0 44 43 38 30 2d 5c 75 44 43 42 32 5c 75 44 43 43 DC80-\uDCB2\uDCC
34800 30 2d 5c 75 44 43 46 32 5d 7c 5c 75 44 38 30 34 0-\uDCF2]|\uD804
34810 5b 5c 75 44 43 30 33 2d 5c 75 44 43 33 37 5c 75 [\uDC03-\uDC37\u
34820 44 43 38 33 2d 5c 75 44 43 41 46 5c 75 44 43 44 DC83-\uDCAF\uDCD
34830 30 2d 5c 75 44 43 45 38 5c 75 44 44 30 33 2d 5c 0-\uDCE8\uDD03-\
34840 75 44 44 32 36 5c 75 44 44 35 30 2d 5c 75 44 44 uDD26\uDD50-\uDD
34850 37 32 5c 75 44 44 37 36 5c 75 44 44 38 33 2d 5c 72\uDD76\uDD83-\
34860 75 44 44 42 32 5c 75 44 44 43 31 2d 5c 75 44 44 uDDB2\uDDC1-\uDD
34870 43 34 5c 75 44 44 44 41 5c 75 44 44 44 43 5c 75 C4\uDDDA\uDDDC\u
34880 44 45 30 30 2d 5c 75 44 45 31 31 5c 75 44 45 31 DE00-\uDE11\uDE1
34890 33 2d 5c 75 44 45 32 42 5c 75 44 45 38 30 2d 5c 3-\uDE2B\uDE80-\
348a0 75 44 45 38 36 5c 75 44 45 38 38 5c 75 44 45 38 uDE86\uDE88\uDE8
348b0 41 2d 5c 75 44 45 38 44 5c 75 44 45 38 46 2d 5c A-\uDE8D\uDE8F-\
348c0 75 44 45 39 44 5c 75 44 45 39 46 2d 5c 75 44 45 uDE9D\uDE9F-\uDE
348d0 41 38 5c 75 44 45 42 30 2d 5c 75 44 45 44 45 5c A8\uDEB0-\uDEDE\
348e0 75 44 46 30 35 2d 5c 75 44 46 30 43 5c 75 44 46 uDF05-\uDF0C\uDF
348f0 30 46 5c 75 44 46 31 30 5c 75 44 46 31 33 2d 5c 0F\uDF10\uDF13-\
34900 75 44 46 32 38 5c 75 44 46 32 41 2d 5c 75 44 46 uDF28\uDF2A-\uDF
34910 33 30 5c 75 44 46 33 32 5c 75 44 46 33 33 5c 75 30\uDF32\uDF33\u
34920 44 46 33 35 2d 5c 75 44 46 33 39 5c 75 44 46 33 DF35-\uDF39\uDF3
34930 44 5c 75 44 46 35 30 5c 75 44 46 35 44 2d 5c 75 D\uDF50\uDF5D-\u
34940 44 46 36 31 5d 7c 5c 75 44 38 30 35 5b 5c 75 44 DF61]|\uD805[\uD
34950 43 38 30 2d 5c 75 44 43 41 46 5c 75 44 43 43 34 C80-\uDCAF\uDCC4
34960 5c 75 44 43 43 35 5c 75 44 43 43 37 5c 75 44 44 \uDCC5\uDCC7\uDD
34970 38 30 2d 5c 75 44 44 41 45 5c 75 44 44 44 38 2d 80-\uDDAE\uDDD8-
34980 5c 75 44 44 44 42 5c 75 44 45 30 30 2d 5c 75 44 \uDDDB\uDE00-\uD
34990 45 32 46 5c 75 44 45 34 34 5c 75 44 45 38 30 2d E2F\uDE44\uDE80-
349a0 5c 75 44 45 41 41 5c 75 44 46 30 30 2d 5c 75 44 \uDEAA\uDF00-\uD
349b0 46 31 39 5d 7c 5c 75 44 38 30 36 5b 5c 75 44 43 F19]|\uD806[\uDC
349c0 41 30 2d 5c 75 44 43 44 46 5c 75 44 43 46 46 5c A0-\uDCDF\uDCFF\
349d0 75 44 45 43 30 2d 5c 75 44 45 46 38 5d 7c 5c 75 uDEC0-\uDEF8]|\u
349e0 44 38 30 38 5b 5c 75 44 43 30 30 2d 5c 75 44 46 D808[\uDC00-\uDF
349f0 39 39 5d 7c 5c 75 44 38 30 39 5b 5c 75 44 43 30 99]|\uD809[\uDC0
34a00 30 2d 5c 75 44 43 36 45 5c 75 44 43 38 30 2d 5c 0-\uDC6E\uDC80-\
34a10 75 44 44 34 33 5d 7c 5b 5c 75 44 38 30 43 5c 75 uDD43]|[\uD80C\u
34a20 44 38 34 30 2d 5c 75 44 38 36 38 5c 75 44 38 36 D840-\uD868\uD86
34a30 41 2d 5c 75 44 38 36 43 5c 75 44 38 36 46 2d 5c A-\uD86C\uD86F-\
34a40 75 44 38 37 32 5d 5b 5c 75 44 43 30 30 2d 5c 75 uD872][\uDC00-\u
34a50 44 46 46 46 5d 7c 5c 75 44 38 30 44 5b 5c 75 44 DFFF]|\uD80D[\uD
34a60 43 30 30 2d 5c 75 44 43 32 45 5d 7c 5c 75 44 38 C00-\uDC2E]|\uD8
34a70 31 31 5b 5c 75 44 43 30 30 2d 5c 75 44 45 34 36 11[\uDC00-\uDE46
34a80 5d 7c 5c 75 44 38 31 41 5b 5c 75 44 43 30 30 2d ]|\uD81A[\uDC00-
34a90 5c 75 44 45 33 38 5c 75 44 45 34 30 2d 5c 75 44 \uDE38\uDE40-\uD
34aa0 45 35 45 5c 75 44 45 44 30 2d 5c 75 44 45 45 44 E5E\uDED0-\uDEED
34ab0 5c 75 44 46 30 30 2d 5c 75 44 46 32 46 5c 75 44 \uDF00-\uDF2F\uD
34ac0 46 34 30 2d 5c 75 44 46 34 33 5c 75 44 46 36 33 F40-\uDF43\uDF63
34ad0 2d 5c 75 44 46 37 37 5c 75 44 46 37 44 2d 5c 75 -\uDF77\uDF7D-\u
34ae0 44 46 38 46 5d 7c 5c 75 44 38 31 42 5b 5c 75 44 DF8F]|\uD81B[\uD
34af0 46 30 30 2d 5c 75 44 46 34 34 5c 75 44 46 35 30 F00-\uDF44\uDF50
34b00 5c 75 44 46 39 33 2d 5c 75 44 46 39 46 5d 7c 5c \uDF93-\uDF9F]|\
34b10 75 44 38 32 43 5b 5c 75 44 43 30 30 5c 75 44 43 uD82C[\uDC00\uDC
34b20 30 31 5d 7c 5c 75 44 38 32 46 5b 5c 75 44 43 30 01]|\uD82F[\uDC0
34b30 30 2d 5c 75 44 43 36 41 5c 75 44 43 37 30 2d 5c 0-\uDC6A\uDC70-\
34b40 75 44 43 37 43 5c 75 44 43 38 30 2d 5c 75 44 43 uDC7C\uDC80-\uDC
34b50 38 38 5c 75 44 43 39 30 2d 5c 75 44 43 39 39 5d 88\uDC90-\uDC99]
34b60 7c 5c 75 44 38 33 35 5b 5c 75 44 43 30 30 2d 5c |\uD835[\uDC00-\
34b70 75 44 43 35 34 5c 75 44 43 35 36 2d 5c 75 44 43 uDC54\uDC56-\uDC
34b80 39 43 5c 75 44 43 39 45 5c 75 44 43 39 46 5c 75 9C\uDC9E\uDC9F\u
34b90 44 43 41 32 5c 75 44 43 41 35 5c 75 44 43 41 36 DCA2\uDCA5\uDCA6
34ba0 5c 75 44 43 41 39 2d 5c 75 44 43 41 43 5c 75 44 \uDCA9-\uDCAC\uD
34bb0 43 41 45 2d 5c 75 44 43 42 39 5c 75 44 43 42 42 CAE-\uDCB9\uDCBB
34bc0 5c 75 44 43 42 44 2d 5c 75 44 43 43 33 5c 75 44 \uDCBD-\uDCC3\uD
34bd0 43 43 35 2d 5c 75 44 44 30 35 5c 75 44 44 30 37 CC5-\uDD05\uDD07
34be0 2d 5c 75 44 44 30 41 5c 75 44 44 30 44 2d 5c 75 -\uDD0A\uDD0D-\u
34bf0 44 44 31 34 5c 75 44 44 31 36 2d 5c 75 44 44 31 DD14\uDD16-\uDD1
34c00 43 5c 75 44 44 31 45 2d 5c 75 44 44 33 39 5c 75 C\uDD1E-\uDD39\u
34c10 44 44 33 42 2d 5c 75 44 44 33 45 5c 75 44 44 34 DD3B-\uDD3E\uDD4
34c20 30 2d 5c 75 44 44 34 34 5c 75 44 44 34 36 5c 75 0-\uDD44\uDD46\u
34c30 44 44 34 41 2d 5c 75 44 44 35 30 5c 75 44 44 35 DD4A-\uDD50\uDD5
34c40 32 2d 5c 75 44 45 41 35 5c 75 44 45 41 38 2d 5c 2-\uDEA5\uDEA8-\
34c50 75 44 45 43 30 5c 75 44 45 43 32 2d 5c 75 44 45 uDEC0\uDEC2-\uDE
34c60 44 41 5c 75 44 45 44 43 2d 5c 75 44 45 46 41 5c DA\uDEDC-\uDEFA\
34c70 75 44 45 46 43 2d 5c 75 44 46 31 34 5c 75 44 46 uDEFC-\uDF14\uDF
34c80 31 36 2d 5c 75 44 46 33 34 5c 75 44 46 33 36 2d 16-\uDF34\uDF36-
34c90 5c 75 44 46 34 45 5c 75 44 46 35 30 2d 5c 75 44 \uDF4E\uDF50-\uD
34ca0 46 36 45 5c 75 44 46 37 30 2d 5c 75 44 46 38 38 F6E\uDF70-\uDF88
34cb0 5c 75 44 46 38 41 2d 5c 75 44 46 41 38 5c 75 44 \uDF8A-\uDFA8\uD
34cc0 46 41 41 2d 5c 75 44 46 43 32 5c 75 44 46 43 34 FAA-\uDFC2\uDFC4
34cd0 2d 5c 75 44 46 43 42 5d 7c 5c 75 44 38 33 41 5b -\uDFCB]|\uD83A[
34ce0 5c 75 44 43 30 30 2d 5c 75 44 43 43 34 5d 7c 5c \uDC00-\uDCC4]|\
34cf0 75 44 38 33 42 5b 5c 75 44 45 30 30 2d 5c 75 44 uD83B[\uDE00-\uD
34d00 45 30 33 5c 75 44 45 30 35 2d 5c 75 44 45 31 46 E03\uDE05-\uDE1F
34d10 5c 75 44 45 32 31 5c 75 44 45 32 32 5c 75 44 45 \uDE21\uDE22\uDE
34d20 32 34 5c 75 44 45 32 37 5c 75 44 45 32 39 2d 5c 24\uDE27\uDE29-\
34d30 75 44 45 33 32 5c 75 44 45 33 34 2d 5c 75 44 45 uDE32\uDE34-\uDE
34d40 33 37 5c 75 44 45 33 39 5c 75 44 45 33 42 5c 75 37\uDE39\uDE3B\u
34d50 44 45 34 32 5c 75 44 45 34 37 5c 75 44 45 34 39 DE42\uDE47\uDE49
34d60 5c 75 44 45 34 42 5c 75 44 45 34 44 2d 5c 75 44 \uDE4B\uDE4D-\uD
34d70 45 34 46 5c 75 44 45 35 31 5c 75 44 45 35 32 5c E4F\uDE51\uDE52\
34d80 75 44 45 35 34 5c 75 44 45 35 37 5c 75 44 45 35 uDE54\uDE57\uDE5
34d90 39 5c 75 44 45 35 42 5c 75 44 45 35 44 5c 75 44 9\uDE5B\uDE5D\uD
34da0 45 35 46 5c 75 44 45 36 31 5c 75 44 45 36 32 5c E5F\uDE61\uDE62\
34db0 75 44 45 36 34 5c 75 44 45 36 37 2d 5c 75 44 45 uDE64\uDE67-\uDE
34dc0 36 41 5c 75 44 45 36 43 2d 5c 75 44 45 37 32 5c 6A\uDE6C-\uDE72\
34dd0 75 44 45 37 34 2d 5c 75 44 45 37 37 5c 75 44 45 uDE74-\uDE77\uDE
34de0 37 39 2d 5c 75 44 45 37 43 5c 75 44 45 37 45 5c 79-\uDE7C\uDE7E\
34df0 75 44 45 38 30 2d 5c 75 44 45 38 39 5c 75 44 45 uDE80-\uDE89\uDE
34e00 38 42 2d 5c 75 44 45 39 42 5c 75 44 45 41 31 2d 8B-\uDE9B\uDEA1-
34e10 5c 75 44 45 41 33 5c 75 44 45 41 35 2d 5c 75 44 \uDEA3\uDEA5-\uD
34e20 45 41 39 5c 75 44 45 41 42 2d 5c 75 44 45 42 42 EA9\uDEAB-\uDEBB
34e30 5d 7c 5c 75 44 38 36 39 5b 5c 75 44 43 30 30 2d ]|\uD869[\uDC00-
34e40 5c 75 44 45 44 36 5c 75 44 46 30 30 2d 5c 75 44 \uDED6\uDF00-\uD
34e50 46 46 46 5d 7c 5c 75 44 38 36 44 5b 5c 75 44 43 FFF]|\uD86D[\uDC
34e60 30 30 2d 5c 75 44 46 33 34 5c 75 44 46 34 30 2d 00-\uDF34\uDF40-
34e70 5c 75 44 46 46 46 5d 7c 5c 75 44 38 36 45 5b 5c \uDFFF]|\uD86E[\
34e80 75 44 43 30 30 2d 5c 75 44 43 31 44 5c 75 44 43 uDC00-\uDC1D\uDC
34e90 32 30 2d 5c 75 44 46 46 46 5d 7c 5c 75 44 38 37 20-\uDFFF]|\uD87
34ea0 33 5b 5c 75 44 43 30 30 2d 5c 75 44 45 41 31 5d 3[\uDC00-\uDEA1]
34eb0 7c 5c 75 44 38 37 45 5b 5c 75 44 43 30 30 2d 5c |\uD87E[\uDC00-\
34ec0 75 44 45 31 44 5d 2f 2c 0a 20 20 09 20 20 20 20 uDE1D]/,. .
34ed0 2f 2f 20 55 6e 69 63 6f 64 65 20 76 38 2e 30 2e // Unicode v8.0.
34ee0 30 20 4e 6f 6e 41 73 63 69 69 49 64 65 6e 74 69 0 NonAsciiIdenti
34ef0 66 69 65 72 50 61 72 74 3a 0a 20 20 09 20 20 20 fierPart:. .
34f00 20 4e 6f 6e 41 73 63 69 69 49 64 65 6e 74 69 66 NonAsciiIdentif
34f10 69 65 72 50 61 72 74 3a 20 2f 5b 5c 78 41 41 5c ierPart: /[\xAA\
34f20 78 42 35 5c 78 42 37 5c 78 42 41 5c 78 43 30 2d xB5\xB7\xBA\xC0-
34f30 5c 78 44 36 5c 78 44 38 2d 5c 78 46 36 5c 78 46 \xD6\xD8-\xF6\xF
34f40 38 2d 5c 75 30 32 43 31 5c 75 30 32 43 36 2d 5c 8-\u02C1\u02C6-\
34f50 75 30 32 44 31 5c 75 30 32 45 30 2d 5c 75 30 32 u02D1\u02E0-\u02
34f60 45 34 5c 75 30 32 45 43 5c 75 30 32 45 45 5c 75 E4\u02EC\u02EE\u
34f70 30 33 30 30 2d 5c 75 30 33 37 34 5c 75 30 33 37 0300-\u0374\u037
34f80 36 5c 75 30 33 37 37 5c 75 30 33 37 41 2d 5c 75 6\u0377\u037A-\u
34f90 30 33 37 44 5c 75 30 33 37 46 5c 75 30 33 38 36 037D\u037F\u0386
34fa0 2d 5c 75 30 33 38 41 5c 75 30 33 38 43 5c 75 30 -\u038A\u038C\u0
34fb0 33 38 45 2d 5c 75 30 33 41 31 5c 75 30 33 41 33 38E-\u03A1\u03A3
34fc0 2d 5c 75 30 33 46 35 5c 75 30 33 46 37 2d 5c 75 -\u03F5\u03F7-\u
34fd0 30 34 38 31 5c 75 30 34 38 33 2d 5c 75 30 34 38 0481\u0483-\u048
34fe0 37 5c 75 30 34 38 41 2d 5c 75 30 35 32 46 5c 75 7\u048A-\u052F\u
34ff0 30 35 33 31 2d 5c 75 30 35 35 36 5c 75 30 35 35 0531-\u0556\u055
35000 39 5c 75 30 35 36 31 2d 5c 75 30 35 38 37 5c 75 9\u0561-\u0587\u
35010 30 35 39 31 2d 5c 75 30 35 42 44 5c 75 30 35 42 0591-\u05BD\u05B
35020 46 5c 75 30 35 43 31 5c 75 30 35 43 32 5c 75 30 F\u05C1\u05C2\u0
35030 35 43 34 5c 75 30 35 43 35 5c 75 30 35 43 37 5c 5C4\u05C5\u05C7\
35040 75 30 35 44 30 2d 5c 75 30 35 45 41 5c 75 30 35 u05D0-\u05EA\u05
35050 46 30 2d 5c 75 30 35 46 32 5c 75 30 36 31 30 2d F0-\u05F2\u0610-
35060 5c 75 30 36 31 41 5c 75 30 36 32 30 2d 5c 75 30 \u061A\u0620-\u0
35070 36 36 39 5c 75 30 36 36 45 2d 5c 75 30 36 44 33 669\u066E-\u06D3
35080 5c 75 30 36 44 35 2d 5c 75 30 36 44 43 5c 75 30 \u06D5-\u06DC\u0
35090 36 44 46 2d 5c 75 30 36 45 38 5c 75 30 36 45 41 6DF-\u06E8\u06EA
350a0 2d 5c 75 30 36 46 43 5c 75 30 36 46 46 5c 75 30 -\u06FC\u06FF\u0
350b0 37 31 30 2d 5c 75 30 37 34 41 5c 75 30 37 34 44 710-\u074A\u074D
350c0 2d 5c 75 30 37 42 31 5c 75 30 37 43 30 2d 5c 75 -\u07B1\u07C0-\u
350d0 30 37 46 35 5c 75 30 37 46 41 5c 75 30 38 30 30 07F5\u07FA\u0800
350e0 2d 5c 75 30 38 32 44 5c 75 30 38 34 30 2d 5c 75 -\u082D\u0840-\u
350f0 30 38 35 42 5c 75 30 38 41 30 2d 5c 75 30 38 42 085B\u08A0-\u08B
35100 34 5c 75 30 38 45 33 2d 5c 75 30 39 36 33 5c 75 4\u08E3-\u0963\u
35110 30 39 36 36 2d 5c 75 30 39 36 46 5c 75 30 39 37 0966-\u096F\u097
35120 31 2d 5c 75 30 39 38 33 5c 75 30 39 38 35 2d 5c 1-\u0983\u0985-\
35130 75 30 39 38 43 5c 75 30 39 38 46 5c 75 30 39 39 u098C\u098F\u099
35140 30 5c 75 30 39 39 33 2d 5c 75 30 39 41 38 5c 75 0\u0993-\u09A8\u
35150 30 39 41 41 2d 5c 75 30 39 42 30 5c 75 30 39 42 09AA-\u09B0\u09B
35160 32 5c 75 30 39 42 36 2d 5c 75 30 39 42 39 5c 75 2\u09B6-\u09B9\u
35170 30 39 42 43 2d 5c 75 30 39 43 34 5c 75 30 39 43 09BC-\u09C4\u09C
35180 37 5c 75 30 39 43 38 5c 75 30 39 43 42 2d 5c 75 7\u09C8\u09CB-\u
35190 30 39 43 45 5c 75 30 39 44 37 5c 75 30 39 44 43 09CE\u09D7\u09DC
351a0 5c 75 30 39 44 44 5c 75 30 39 44 46 2d 5c 75 30 \u09DD\u09DF-\u0
351b0 39 45 33 5c 75 30 39 45 36 2d 5c 75 30 39 46 31 9E3\u09E6-\u09F1
351c0 5c 75 30 41 30 31 2d 5c 75 30 41 30 33 5c 75 30 \u0A01-\u0A03\u0
351d0 41 30 35 2d 5c 75 30 41 30 41 5c 75 30 41 30 46 A05-\u0A0A\u0A0F
351e0 5c 75 30 41 31 30 5c 75 30 41 31 33 2d 5c 75 30 \u0A10\u0A13-\u0
351f0 41 32 38 5c 75 30 41 32 41 2d 5c 75 30 41 33 30 A28\u0A2A-\u0A30
35200 5c 75 30 41 33 32 5c 75 30 41 33 33 5c 75 30 41 \u0A32\u0A33\u0A
35210 33 35 5c 75 30 41 33 36 5c 75 30 41 33 38 5c 75 35\u0A36\u0A38\u
35220 30 41 33 39 5c 75 30 41 33 43 5c 75 30 41 33 45 0A39\u0A3C\u0A3E
35230 2d 5c 75 30 41 34 32 5c 75 30 41 34 37 5c 75 30 -\u0A42\u0A47\u0
35240 41 34 38 5c 75 30 41 34 42 2d 5c 75 30 41 34 44 A48\u0A4B-\u0A4D
35250 5c 75 30 41 35 31 5c 75 30 41 35 39 2d 5c 75 30 \u0A51\u0A59-\u0
35260 41 35 43 5c 75 30 41 35 45 5c 75 30 41 36 36 2d A5C\u0A5E\u0A66-
35270 5c 75 30 41 37 35 5c 75 30 41 38 31 2d 5c 75 30 \u0A75\u0A81-\u0
35280 41 38 33 5c 75 30 41 38 35 2d 5c 75 30 41 38 44 A83\u0A85-\u0A8D
35290 5c 75 30 41 38 46 2d 5c 75 30 41 39 31 5c 75 30 \u0A8F-\u0A91\u0
352a0 41 39 33 2d 5c 75 30 41 41 38 5c 75 30 41 41 41 A93-\u0AA8\u0AAA
352b0 2d 5c 75 30 41 42 30 5c 75 30 41 42 32 5c 75 30 -\u0AB0\u0AB2\u0
352c0 41 42 33 5c 75 30 41 42 35 2d 5c 75 30 41 42 39 AB3\u0AB5-\u0AB9
352d0 5c 75 30 41 42 43 2d 5c 75 30 41 43 35 5c 75 30 \u0ABC-\u0AC5\u0
352e0 41 43 37 2d 5c 75 30 41 43 39 5c 75 30 41 43 42 AC7-\u0AC9\u0ACB
352f0 2d 5c 75 30 41 43 44 5c 75 30 41 44 30 5c 75 30 -\u0ACD\u0AD0\u0
35300 41 45 30 2d 5c 75 30 41 45 33 5c 75 30 41 45 36 AE0-\u0AE3\u0AE6
35310 2d 5c 75 30 41 45 46 5c 75 30 41 46 39 5c 75 30 -\u0AEF\u0AF9\u0
35320 42 30 31 2d 5c 75 30 42 30 33 5c 75 30 42 30 35 B01-\u0B03\u0B05
35330 2d 5c 75 30 42 30 43 5c 75 30 42 30 46 5c 75 30 -\u0B0C\u0B0F\u0
35340 42 31 30 5c 75 30 42 31 33 2d 5c 75 30 42 32 38 B10\u0B13-\u0B28
35350 5c 75 30 42 32 41 2d 5c 75 30 42 33 30 5c 75 30 \u0B2A-\u0B30\u0
35360 42 33 32 5c 75 30 42 33 33 5c 75 30 42 33 35 2d B32\u0B33\u0B35-
35370 5c 75 30 42 33 39 5c 75 30 42 33 43 2d 5c 75 30 \u0B39\u0B3C-\u0
35380 42 34 34 5c 75 30 42 34 37 5c 75 30 42 34 38 5c B44\u0B47\u0B48\
35390 75 30 42 34 42 2d 5c 75 30 42 34 44 5c 75 30 42 u0B4B-\u0B4D\u0B
353a0 35 36 5c 75 30 42 35 37 5c 75 30 42 35 43 5c 75 56\u0B57\u0B5C\u
353b0 30 42 35 44 5c 75 30 42 35 46 2d 5c 75 30 42 36 0B5D\u0B5F-\u0B6
353c0 33 5c 75 30 42 36 36 2d 5c 75 30 42 36 46 5c 75 3\u0B66-\u0B6F\u
353d0 30 42 37 31 5c 75 30 42 38 32 5c 75 30 42 38 33 0B71\u0B82\u0B83
353e0 5c 75 30 42 38 35 2d 5c 75 30 42 38 41 5c 75 30 \u0B85-\u0B8A\u0
353f0 42 38 45 2d 5c 75 30 42 39 30 5c 75 30 42 39 32 B8E-\u0B90\u0B92
35400 2d 5c 75 30 42 39 35 5c 75 30 42 39 39 5c 75 30 -\u0B95\u0B99\u0
35410 42 39 41 5c 75 30 42 39 43 5c 75 30 42 39 45 5c B9A\u0B9C\u0B9E\
35420 75 30 42 39 46 5c 75 30 42 41 33 5c 75 30 42 41 u0B9F\u0BA3\u0BA
35430 34 5c 75 30 42 41 38 2d 5c 75 30 42 41 41 5c 75 4\u0BA8-\u0BAA\u
35440 30 42 41 45 2d 5c 75 30 42 42 39 5c 75 30 42 42 0BAE-\u0BB9\u0BB
35450 45 2d 5c 75 30 42 43 32 5c 75 30 42 43 36 2d 5c E-\u0BC2\u0BC6-\
35460 75 30 42 43 38 5c 75 30 42 43 41 2d 5c 75 30 42 u0BC8\u0BCA-\u0B
35470 43 44 5c 75 30 42 44 30 5c 75 30 42 44 37 5c 75 CD\u0BD0\u0BD7\u
35480 30 42 45 36 2d 5c 75 30 42 45 46 5c 75 30 43 30 0BE6-\u0BEF\u0C0
35490 30 2d 5c 75 30 43 30 33 5c 75 30 43 30 35 2d 5c 0-\u0C03\u0C05-\
354a0 75 30 43 30 43 5c 75 30 43 30 45 2d 5c 75 30 43 u0C0C\u0C0E-\u0C
354b0 31 30 5c 75 30 43 31 32 2d 5c 75 30 43 32 38 5c 10\u0C12-\u0C28\
354c0 75 30 43 32 41 2d 5c 75 30 43 33 39 5c 75 30 43 u0C2A-\u0C39\u0C
354d0 33 44 2d 5c 75 30 43 34 34 5c 75 30 43 34 36 2d 3D-\u0C44\u0C46-
354e0 5c 75 30 43 34 38 5c 75 30 43 34 41 2d 5c 75 30 \u0C48\u0C4A-\u0
354f0 43 34 44 5c 75 30 43 35 35 5c 75 30 43 35 36 5c C4D\u0C55\u0C56\
35500 75 30 43 35 38 2d 5c 75 30 43 35 41 5c 75 30 43 u0C58-\u0C5A\u0C
35510 36 30 2d 5c 75 30 43 36 33 5c 75 30 43 36 36 2d 60-\u0C63\u0C66-
35520 5c 75 30 43 36 46 5c 75 30 43 38 31 2d 5c 75 30 \u0C6F\u0C81-\u0
35530 43 38 33 5c 75 30 43 38 35 2d 5c 75 30 43 38 43 C83\u0C85-\u0C8C
35540 5c 75 30 43 38 45 2d 5c 75 30 43 39 30 5c 75 30 \u0C8E-\u0C90\u0
35550 43 39 32 2d 5c 75 30 43 41 38 5c 75 30 43 41 41 C92-\u0CA8\u0CAA
35560 2d 5c 75 30 43 42 33 5c 75 30 43 42 35 2d 5c 75 -\u0CB3\u0CB5-\u
35570 30 43 42 39 5c 75 30 43 42 43 2d 5c 75 30 43 43 0CB9\u0CBC-\u0CC
35580 34 5c 75 30 43 43 36 2d 5c 75 30 43 43 38 5c 75 4\u0CC6-\u0CC8\u
35590 30 43 43 41 2d 5c 75 30 43 43 44 5c 75 30 43 44 0CCA-\u0CCD\u0CD
355a0 35 5c 75 30 43 44 36 5c 75 30 43 44 45 5c 75 30 5\u0CD6\u0CDE\u0
355b0 43 45 30 2d 5c 75 30 43 45 33 5c 75 30 43 45 36 CE0-\u0CE3\u0CE6
355c0 2d 5c 75 30 43 45 46 5c 75 30 43 46 31 5c 75 30 -\u0CEF\u0CF1\u0
355d0 43 46 32 5c 75 30 44 30 31 2d 5c 75 30 44 30 33 CF2\u0D01-\u0D03
355e0 5c 75 30 44 30 35 2d 5c 75 30 44 30 43 5c 75 30 \u0D05-\u0D0C\u0
355f0 44 30 45 2d 5c 75 30 44 31 30 5c 75 30 44 31 32 D0E-\u0D10\u0D12
35600 2d 5c 75 30 44 33 41 5c 75 30 44 33 44 2d 5c 75 -\u0D3A\u0D3D-\u
35610 30 44 34 34 5c 75 30 44 34 36 2d 5c 75 30 44 34 0D44\u0D46-\u0D4
35620 38 5c 75 30 44 34 41 2d 5c 75 30 44 34 45 5c 75 8\u0D4A-\u0D4E\u
35630 30 44 35 37 5c 75 30 44 35 46 2d 5c 75 30 44 36 0D57\u0D5F-\u0D6
35640 33 5c 75 30 44 36 36 2d 5c 75 30 44 36 46 5c 75 3\u0D66-\u0D6F\u
35650 30 44 37 41 2d 5c 75 30 44 37 46 5c 75 30 44 38 0D7A-\u0D7F\u0D8
35660 32 5c 75 30 44 38 33 5c 75 30 44 38 35 2d 5c 75 2\u0D83\u0D85-\u
35670 30 44 39 36 5c 75 30 44 39 41 2d 5c 75 30 44 42 0D96\u0D9A-\u0DB
35680 31 5c 75 30 44 42 33 2d 5c 75 30 44 42 42 5c 75 1\u0DB3-\u0DBB\u
35690 30 44 42 44 5c 75 30 44 43 30 2d 5c 75 30 44 43 0DBD\u0DC0-\u0DC
356a0 36 5c 75 30 44 43 41 5c 75 30 44 43 46 2d 5c 75 6\u0DCA\u0DCF-\u
356b0 30 44 44 34 5c 75 30 44 44 36 5c 75 30 44 44 38 0DD4\u0DD6\u0DD8
356c0 2d 5c 75 30 44 44 46 5c 75 30 44 45 36 2d 5c 75 -\u0DDF\u0DE6-\u
356d0 30 44 45 46 5c 75 30 44 46 32 5c 75 30 44 46 33 0DEF\u0DF2\u0DF3
356e0 5c 75 30 45 30 31 2d 5c 75 30 45 33 41 5c 75 30 \u0E01-\u0E3A\u0
356f0 45 34 30 2d 5c 75 30 45 34 45 5c 75 30 45 35 30 E40-\u0E4E\u0E50
35700 2d 5c 75 30 45 35 39 5c 75 30 45 38 31 5c 75 30 -\u0E59\u0E81\u0
35710 45 38 32 5c 75 30 45 38 34 5c 75 30 45 38 37 5c E82\u0E84\u0E87\
35720 75 30 45 38 38 5c 75 30 45 38 41 5c 75 30 45 38 u0E88\u0E8A\u0E8
35730 44 5c 75 30 45 39 34 2d 5c 75 30 45 39 37 5c 75 D\u0E94-\u0E97\u
35740 30 45 39 39 2d 5c 75 30 45 39 46 5c 75 30 45 41 0E99-\u0E9F\u0EA
35750 31 2d 5c 75 30 45 41 33 5c 75 30 45 41 35 5c 75 1-\u0EA3\u0EA5\u
35760 30 45 41 37 5c 75 30 45 41 41 5c 75 30 45 41 42 0EA7\u0EAA\u0EAB
35770 5c 75 30 45 41 44 2d 5c 75 30 45 42 39 5c 75 30 \u0EAD-\u0EB9\u0
35780 45 42 42 2d 5c 75 30 45 42 44 5c 75 30 45 43 30 EBB-\u0EBD\u0EC0
35790 2d 5c 75 30 45 43 34 5c 75 30 45 43 36 5c 75 30 -\u0EC4\u0EC6\u0
357a0 45 43 38 2d 5c 75 30 45 43 44 5c 75 30 45 44 30 EC8-\u0ECD\u0ED0
357b0 2d 5c 75 30 45 44 39 5c 75 30 45 44 43 2d 5c 75 -\u0ED9\u0EDC-\u
357c0 30 45 44 46 5c 75 30 46 30 30 5c 75 30 46 31 38 0EDF\u0F00\u0F18
357d0 5c 75 30 46 31 39 5c 75 30 46 32 30 2d 5c 75 30 \u0F19\u0F20-\u0
357e0 46 32 39 5c 75 30 46 33 35 5c 75 30 46 33 37 5c F29\u0F35\u0F37\
357f0 75 30 46 33 39 5c 75 30 46 33 45 2d 5c 75 30 46 u0F39\u0F3E-\u0F
35800 34 37 5c 75 30 46 34 39 2d 5c 75 30 46 36 43 5c 47\u0F49-\u0F6C\
35810 75 30 46 37 31 2d 5c 75 30 46 38 34 5c 75 30 46 u0F71-\u0F84\u0F
35820 38 36 2d 5c 75 30 46 39 37 5c 75 30 46 39 39 2d 86-\u0F97\u0F99-
35830 5c 75 30 46 42 43 5c 75 30 46 43 36 5c 75 31 30 \u0FBC\u0FC6\u10
35840 30 30 2d 5c 75 31 30 34 39 5c 75 31 30 35 30 2d 00-\u1049\u1050-
35850 5c 75 31 30 39 44 5c 75 31 30 41 30 2d 5c 75 31 \u109D\u10A0-\u1
35860 30 43 35 5c 75 31 30 43 37 5c 75 31 30 43 44 5c 0C5\u10C7\u10CD\
35870 75 31 30 44 30 2d 5c 75 31 30 46 41 5c 75 31 30 u10D0-\u10FA\u10
35880 46 43 2d 5c 75 31 32 34 38 5c 75 31 32 34 41 2d FC-\u1248\u124A-
35890 5c 75 31 32 34 44 5c 75 31 32 35 30 2d 5c 75 31 \u124D\u1250-\u1
358a0 32 35 36 5c 75 31 32 35 38 5c 75 31 32 35 41 2d 256\u1258\u125A-
358b0 5c 75 31 32 35 44 5c 75 31 32 36 30 2d 5c 75 31 \u125D\u1260-\u1
358c0 32 38 38 5c 75 31 32 38 41 2d 5c 75 31 32 38 44 288\u128A-\u128D
358d0 5c 75 31 32 39 30 2d 5c 75 31 32 42 30 5c 75 31 \u1290-\u12B0\u1
358e0 32 42 32 2d 5c 75 31 32 42 35 5c 75 31 32 42 38 2B2-\u12B5\u12B8
358f0 2d 5c 75 31 32 42 45 5c 75 31 32 43 30 5c 75 31 -\u12BE\u12C0\u1
35900 32 43 32 2d 5c 75 31 32 43 35 5c 75 31 32 43 38 2C2-\u12C5\u12C8
35910 2d 5c 75 31 32 44 36 5c 75 31 32 44 38 2d 5c 75 -\u12D6\u12D8-\u
35920 31 33 31 30 5c 75 31 33 31 32 2d 5c 75 31 33 31 1310\u1312-\u131
35930 35 5c 75 31 33 31 38 2d 5c 75 31 33 35 41 5c 75 5\u1318-\u135A\u
35940 31 33 35 44 2d 5c 75 31 33 35 46 5c 75 31 33 36 135D-\u135F\u136
35950 39 2d 5c 75 31 33 37 31 5c 75 31 33 38 30 2d 5c 9-\u1371\u1380-\
35960 75 31 33 38 46 5c 75 31 33 41 30 2d 5c 75 31 33 u138F\u13A0-\u13
35970 46 35 5c 75 31 33 46 38 2d 5c 75 31 33 46 44 5c F5\u13F8-\u13FD\
35980 75 31 34 30 31 2d 5c 75 31 36 36 43 5c 75 31 36 u1401-\u166C\u16
35990 36 46 2d 5c 75 31 36 37 46 5c 75 31 36 38 31 2d 6F-\u167F\u1681-
359a0 5c 75 31 36 39 41 5c 75 31 36 41 30 2d 5c 75 31 \u169A\u16A0-\u1
359b0 36 45 41 5c 75 31 36 45 45 2d 5c 75 31 36 46 38 6EA\u16EE-\u16F8
359c0 5c 75 31 37 30 30 2d 5c 75 31 37 30 43 5c 75 31 \u1700-\u170C\u1
359d0 37 30 45 2d 5c 75 31 37 31 34 5c 75 31 37 32 30 70E-\u1714\u1720
359e0 2d 5c 75 31 37 33 34 5c 75 31 37 34 30 2d 5c 75 -\u1734\u1740-\u
359f0 31 37 35 33 5c 75 31 37 36 30 2d 5c 75 31 37 36 1753\u1760-\u176
35a00 43 5c 75 31 37 36 45 2d 5c 75 31 37 37 30 5c 75 C\u176E-\u1770\u
35a10 31 37 37 32 5c 75 31 37 37 33 5c 75 31 37 38 30 1772\u1773\u1780
35a20 2d 5c 75 31 37 44 33 5c 75 31 37 44 37 5c 75 31 -\u17D3\u17D7\u1
35a30 37 44 43 5c 75 31 37 44 44 5c 75 31 37 45 30 2d 7DC\u17DD\u17E0-
35a40 5c 75 31 37 45 39 5c 75 31 38 30 42 2d 5c 75 31 \u17E9\u180B-\u1
35a50 38 30 44 5c 75 31 38 31 30 2d 5c 75 31 38 31 39 80D\u1810-\u1819
35a60 5c 75 31 38 32 30 2d 5c 75 31 38 37 37 5c 75 31 \u1820-\u1877\u1
35a70 38 38 30 2d 5c 75 31 38 41 41 5c 75 31 38 42 30 880-\u18AA\u18B0
35a80 2d 5c 75 31 38 46 35 5c 75 31 39 30 30 2d 5c 75 -\u18F5\u1900-\u
35a90 31 39 31 45 5c 75 31 39 32 30 2d 5c 75 31 39 32 191E\u1920-\u192
35aa0 42 5c 75 31 39 33 30 2d 5c 75 31 39 33 42 5c 75 B\u1930-\u193B\u
35ab0 31 39 34 36 2d 5c 75 31 39 36 44 5c 75 31 39 37 1946-\u196D\u197
35ac0 30 2d 5c 75 31 39 37 34 5c 75 31 39 38 30 2d 5c 0-\u1974\u1980-\
35ad0 75 31 39 41 42 5c 75 31 39 42 30 2d 5c 75 31 39 u19AB\u19B0-\u19
35ae0 43 39 5c 75 31 39 44 30 2d 5c 75 31 39 44 41 5c C9\u19D0-\u19DA\
35af0 75 31 41 30 30 2d 5c 75 31 41 31 42 5c 75 31 41 u1A00-\u1A1B\u1A
35b00 32 30 2d 5c 75 31 41 35 45 5c 75 31 41 36 30 2d 20-\u1A5E\u1A60-
35b10 5c 75 31 41 37 43 5c 75 31 41 37 46 2d 5c 75 31 \u1A7C\u1A7F-\u1
35b20 41 38 39 5c 75 31 41 39 30 2d 5c 75 31 41 39 39 A89\u1A90-\u1A99
35b30 5c 75 31 41 41 37 5c 75 31 41 42 30 2d 5c 75 31 \u1AA7\u1AB0-\u1
35b40 41 42 44 5c 75 31 42 30 30 2d 5c 75 31 42 34 42 ABD\u1B00-\u1B4B
35b50 5c 75 31 42 35 30 2d 5c 75 31 42 35 39 5c 75 31 \u1B50-\u1B59\u1
35b60 42 36 42 2d 5c 75 31 42 37 33 5c 75 31 42 38 30 B6B-\u1B73\u1B80
35b70 2d 5c 75 31 42 46 33 5c 75 31 43 30 30 2d 5c 75 -\u1BF3\u1C00-\u
35b80 31 43 33 37 5c 75 31 43 34 30 2d 5c 75 31 43 34 1C37\u1C40-\u1C4
35b90 39 5c 75 31 43 34 44 2d 5c 75 31 43 37 44 5c 75 9\u1C4D-\u1C7D\u
35ba0 31 43 44 30 2d 5c 75 31 43 44 32 5c 75 31 43 44 1CD0-\u1CD2\u1CD
35bb0 34 2d 5c 75 31 43 46 36 5c 75 31 43 46 38 5c 75 4-\u1CF6\u1CF8\u
35bc0 31 43 46 39 5c 75 31 44 30 30 2d 5c 75 31 44 46 1CF9\u1D00-\u1DF
35bd0 35 5c 75 31 44 46 43 2d 5c 75 31 46 31 35 5c 75 5\u1DFC-\u1F15\u
35be0 31 46 31 38 2d 5c 75 31 46 31 44 5c 75 31 46 32 1F18-\u1F1D\u1F2
35bf0 30 2d 5c 75 31 46 34 35 5c 75 31 46 34 38 2d 5c 0-\u1F45\u1F48-\
35c00 75 31 46 34 44 5c 75 31 46 35 30 2d 5c 75 31 46 u1F4D\u1F50-\u1F
35c10 35 37 5c 75 31 46 35 39 5c 75 31 46 35 42 5c 75 57\u1F59\u1F5B\u
35c20 31 46 35 44 5c 75 31 46 35 46 2d 5c 75 31 46 37 1F5D\u1F5F-\u1F7
35c30 44 5c 75 31 46 38 30 2d 5c 75 31 46 42 34 5c 75 D\u1F80-\u1FB4\u
35c40 31 46 42 36 2d 5c 75 31 46 42 43 5c 75 31 46 42 1FB6-\u1FBC\u1FB
35c50 45 5c 75 31 46 43 32 2d 5c 75 31 46 43 34 5c 75 E\u1FC2-\u1FC4\u
35c60 31 46 43 36 2d 5c 75 31 46 43 43 5c 75 31 46 44 1FC6-\u1FCC\u1FD
35c70 30 2d 5c 75 31 46 44 33 5c 75 31 46 44 36 2d 5c 0-\u1FD3\u1FD6-\
35c80 75 31 46 44 42 5c 75 31 46 45 30 2d 5c 75 31 46 u1FDB\u1FE0-\u1F
35c90 45 43 5c 75 31 46 46 32 2d 5c 75 31 46 46 34 5c EC\u1FF2-\u1FF4\
35ca0 75 31 46 46 36 2d 5c 75 31 46 46 43 5c 75 32 30 u1FF6-\u1FFC\u20
35cb0 30 43 5c 75 32 30 30 44 5c 75 32 30 33 46 5c 75 0C\u200D\u203F\u
35cc0 32 30 34 30 5c 75 32 30 35 34 5c 75 32 30 37 31 2040\u2054\u2071
35cd0 5c 75 32 30 37 46 5c 75 32 30 39 30 2d 5c 75 32 \u207F\u2090-\u2
35ce0 30 39 43 5c 75 32 30 44 30 2d 5c 75 32 30 44 43 09C\u20D0-\u20DC
35cf0 5c 75 32 30 45 31 5c 75 32 30 45 35 2d 5c 75 32 \u20E1\u20E5-\u2
35d00 30 46 30 5c 75 32 31 30 32 5c 75 32 31 30 37 5c 0F0\u2102\u2107\
35d10 75 32 31 30 41 2d 5c 75 32 31 31 33 5c 75 32 31 u210A-\u2113\u21
35d20 31 35 5c 75 32 31 31 38 2d 5c 75 32 31 31 44 5c 15\u2118-\u211D\
35d30 75 32 31 32 34 5c 75 32 31 32 36 5c 75 32 31 32 u2124\u2126\u212
35d40 38 5c 75 32 31 32 41 2d 5c 75 32 31 33 39 5c 75 8\u212A-\u2139\u
35d50 32 31 33 43 2d 5c 75 32 31 33 46 5c 75 32 31 34 213C-\u213F\u214
35d60 35 2d 5c 75 32 31 34 39 5c 75 32 31 34 45 5c 75 5-\u2149\u214E\u
35d70 32 31 36 30 2d 5c 75 32 31 38 38 5c 75 32 43 30 2160-\u2188\u2C0
35d80 30 2d 5c 75 32 43 32 45 5c 75 32 43 33 30 2d 5c 0-\u2C2E\u2C30-\
35d90 75 32 43 35 45 5c 75 32 43 36 30 2d 5c 75 32 43 u2C5E\u2C60-\u2C
35da0 45 34 5c 75 32 43 45 42 2d 5c 75 32 43 46 33 5c E4\u2CEB-\u2CF3\
35db0 75 32 44 30 30 2d 5c 75 32 44 32 35 5c 75 32 44 u2D00-\u2D25\u2D
35dc0 32 37 5c 75 32 44 32 44 5c 75 32 44 33 30 2d 5c 27\u2D2D\u2D30-\
35dd0 75 32 44 36 37 5c 75 32 44 36 46 5c 75 32 44 37 u2D67\u2D6F\u2D7
35de0 46 2d 5c 75 32 44 39 36 5c 75 32 44 41 30 2d 5c F-\u2D96\u2DA0-\
35df0 75 32 44 41 36 5c 75 32 44 41 38 2d 5c 75 32 44 u2DA6\u2DA8-\u2D
35e00 41 45 5c 75 32 44 42 30 2d 5c 75 32 44 42 36 5c AE\u2DB0-\u2DB6\
35e10 75 32 44 42 38 2d 5c 75 32 44 42 45 5c 75 32 44 u2DB8-\u2DBE\u2D
35e20 43 30 2d 5c 75 32 44 43 36 5c 75 32 44 43 38 2d C0-\u2DC6\u2DC8-
35e30 5c 75 32 44 43 45 5c 75 32 44 44 30 2d 5c 75 32 \u2DCE\u2DD0-\u2
35e40 44 44 36 5c 75 32 44 44 38 2d 5c 75 32 44 44 45 DD6\u2DD8-\u2DDE
35e50 5c 75 32 44 45 30 2d 5c 75 32 44 46 46 5c 75 33 \u2DE0-\u2DFF\u3
35e60 30 30 35 2d 5c 75 33 30 30 37 5c 75 33 30 32 31 005-\u3007\u3021
35e70 2d 5c 75 33 30 32 46 5c 75 33 30 33 31 2d 5c 75 -\u302F\u3031-\u
35e80 33 30 33 35 5c 75 33 30 33 38 2d 5c 75 33 30 33 3035\u3038-\u303
35e90 43 5c 75 33 30 34 31 2d 5c 75 33 30 39 36 5c 75 C\u3041-\u3096\u
35ea0 33 30 39 39 2d 5c 75 33 30 39 46 5c 75 33 30 41 3099-\u309F\u30A
35eb0 31 2d 5c 75 33 30 46 41 5c 75 33 30 46 43 2d 5c 1-\u30FA\u30FC-\
35ec0 75 33 30 46 46 5c 75 33 31 30 35 2d 5c 75 33 31 u30FF\u3105-\u31
35ed0 32 44 5c 75 33 31 33 31 2d 5c 75 33 31 38 45 5c 2D\u3131-\u318E\
35ee0 75 33 31 41 30 2d 5c 75 33 31 42 41 5c 75 33 31 u31A0-\u31BA\u31
35ef0 46 30 2d 5c 75 33 31 46 46 5c 75 33 34 30 30 2d F0-\u31FF\u3400-
35f00 5c 75 34 44 42 35 5c 75 34 45 30 30 2d 5c 75 39 \u4DB5\u4E00-\u9
35f10 46 44 35 5c 75 41 30 30 30 2d 5c 75 41 34 38 43 FD5\uA000-\uA48C
35f20 5c 75 41 34 44 30 2d 5c 75 41 34 46 44 5c 75 41 \uA4D0-\uA4FD\uA
35f30 35 30 30 2d 5c 75 41 36 30 43 5c 75 41 36 31 30 500-\uA60C\uA610
35f40 2d 5c 75 41 36 32 42 5c 75 41 36 34 30 2d 5c 75 -\uA62B\uA640-\u
35f50 41 36 36 46 5c 75 41 36 37 34 2d 5c 75 41 36 37 A66F\uA674-\uA67
35f60 44 5c 75 41 36 37 46 2d 5c 75 41 36 46 31 5c 75 D\uA67F-\uA6F1\u
35f70 41 37 31 37 2d 5c 75 41 37 31 46 5c 75 41 37 32 A717-\uA71F\uA72
35f80 32 2d 5c 75 41 37 38 38 5c 75 41 37 38 42 2d 5c 2-\uA788\uA78B-\
35f90 75 41 37 41 44 5c 75 41 37 42 30 2d 5c 75 41 37 uA7AD\uA7B0-\uA7
35fa0 42 37 5c 75 41 37 46 37 2d 5c 75 41 38 32 37 5c B7\uA7F7-\uA827\
35fb0 75 41 38 34 30 2d 5c 75 41 38 37 33 5c 75 41 38 uA840-\uA873\uA8
35fc0 38 30 2d 5c 75 41 38 43 34 5c 75 41 38 44 30 2d 80-\uA8C4\uA8D0-
35fd0 5c 75 41 38 44 39 5c 75 41 38 45 30 2d 5c 75 41 \uA8D9\uA8E0-\uA
35fe0 38 46 37 5c 75 41 38 46 42 5c 75 41 38 46 44 5c 8F7\uA8FB\uA8FD\
35ff0 75 41 39 30 30 2d 5c 75 41 39 32 44 5c 75 41 39 uA900-\uA92D\uA9
36000 33 30 2d 5c 75 41 39 35 33 5c 75 41 39 36 30 2d 30-\uA953\uA960-
36010 5c 75 41 39 37 43 5c 75 41 39 38 30 2d 5c 75 41 \uA97C\uA980-\uA
36020 39 43 30 5c 75 41 39 43 46 2d 5c 75 41 39 44 39 9C0\uA9CF-\uA9D9
36030 5c 75 41 39 45 30 2d 5c 75 41 39 46 45 5c 75 41 \uA9E0-\uA9FE\uA
36040 41 30 30 2d 5c 75 41 41 33 36 5c 75 41 41 34 30 A00-\uAA36\uAA40
36050 2d 5c 75 41 41 34 44 5c 75 41 41 35 30 2d 5c 75 -\uAA4D\uAA50-\u
36060 41 41 35 39 5c 75 41 41 36 30 2d 5c 75 41 41 37 AA59\uAA60-\uAA7
36070 36 5c 75 41 41 37 41 2d 5c 75 41 41 43 32 5c 75 6\uAA7A-\uAAC2\u
36080 41 41 44 42 2d 5c 75 41 41 44 44 5c 75 41 41 45 AADB-\uAADD\uAAE
36090 30 2d 5c 75 41 41 45 46 5c 75 41 41 46 32 2d 5c 0-\uAAEF\uAAF2-\
360a0 75 41 41 46 36 5c 75 41 42 30 31 2d 5c 75 41 42 uAAF6\uAB01-\uAB
360b0 30 36 5c 75 41 42 30 39 2d 5c 75 41 42 30 45 5c 06\uAB09-\uAB0E\
360c0 75 41 42 31 31 2d 5c 75 41 42 31 36 5c 75 41 42 uAB11-\uAB16\uAB
360d0 32 30 2d 5c 75 41 42 32 36 5c 75 41 42 32 38 2d 20-\uAB26\uAB28-
360e0 5c 75 41 42 32 45 5c 75 41 42 33 30 2d 5c 75 41 \uAB2E\uAB30-\uA
360f0 42 35 41 5c 75 41 42 35 43 2d 5c 75 41 42 36 35 B5A\uAB5C-\uAB65
36100 5c 75 41 42 37 30 2d 5c 75 41 42 45 41 5c 75 41 \uAB70-\uABEA\uA
36110 42 45 43 5c 75 41 42 45 44 5c 75 41 42 46 30 2d BEC\uABED\uABF0-
36120 5c 75 41 42 46 39 5c 75 41 43 30 30 2d 5c 75 44 \uABF9\uAC00-\uD
36130 37 41 33 5c 75 44 37 42 30 2d 5c 75 44 37 43 36 7A3\uD7B0-\uD7C6
36140 5c 75 44 37 43 42 2d 5c 75 44 37 46 42 5c 75 46 \uD7CB-\uD7FB\uF
36150 39 30 30 2d 5c 75 46 41 36 44 5c 75 46 41 37 30 900-\uFA6D\uFA70
36160 2d 5c 75 46 41 44 39 5c 75 46 42 30 30 2d 5c 75 -\uFAD9\uFB00-\u
36170 46 42 30 36 5c 75 46 42 31 33 2d 5c 75 46 42 31 FB06\uFB13-\uFB1
36180 37 5c 75 46 42 31 44 2d 5c 75 46 42 32 38 5c 75 7\uFB1D-\uFB28\u
36190 46 42 32 41 2d 5c 75 46 42 33 36 5c 75 46 42 33 FB2A-\uFB36\uFB3
361a0 38 2d 5c 75 46 42 33 43 5c 75 46 42 33 45 5c 75 8-\uFB3C\uFB3E\u
361b0 46 42 34 30 5c 75 46 42 34 31 5c 75 46 42 34 33 FB40\uFB41\uFB43
361c0 5c 75 46 42 34 34 5c 75 46 42 34 36 2d 5c 75 46 \uFB44\uFB46-\uF
361d0 42 42 31 5c 75 46 42 44 33 2d 5c 75 46 44 33 44 BB1\uFBD3-\uFD3D
361e0 5c 75 46 44 35 30 2d 5c 75 46 44 38 46 5c 75 46 \uFD50-\uFD8F\uF
361f0 44 39 32 2d 5c 75 46 44 43 37 5c 75 46 44 46 30 D92-\uFDC7\uFDF0
36200 2d 5c 75 46 44 46 42 5c 75 46 45 30 30 2d 5c 75 -\uFDFB\uFE00-\u
36210 46 45 30 46 5c 75 46 45 32 30 2d 5c 75 46 45 32 FE0F\uFE20-\uFE2
36220 46 5c 75 46 45 33 33 5c 75 46 45 33 34 5c 75 46 F\uFE33\uFE34\uF
36230 45 34 44 2d 5c 75 46 45 34 46 5c 75 46 45 37 30 E4D-\uFE4F\uFE70
36240 2d 5c 75 46 45 37 34 5c 75 46 45 37 36 2d 5c 75 -\uFE74\uFE76-\u
36250 46 45 46 43 5c 75 46 46 31 30 2d 5c 75 46 46 31 FEFC\uFF10-\uFF1
36260 39 5c 75 46 46 32 31 2d 5c 75 46 46 33 41 5c 75 9\uFF21-\uFF3A\u
36270 46 46 33 46 5c 75 46 46 34 31 2d 5c 75 46 46 35 FF3F\uFF41-\uFF5
36280 41 5c 75 46 46 36 36 2d 5c 75 46 46 42 45 5c 75 A\uFF66-\uFFBE\u
36290 46 46 43 32 2d 5c 75 46 46 43 37 5c 75 46 46 43 FFC2-\uFFC7\uFFC
362a0 41 2d 5c 75 46 46 43 46 5c 75 46 46 44 32 2d 5c A-\uFFCF\uFFD2-\
362b0 75 46 46 44 37 5c 75 46 46 44 41 2d 5c 75 46 46 uFFD7\uFFDA-\uFF
362c0 44 43 5d 7c 5c 75 44 38 30 30 5b 5c 75 44 43 30 DC]|\uD800[\uDC0
362d0 30 2d 5c 75 44 43 30 42 5c 75 44 43 30 44 2d 5c 0-\uDC0B\uDC0D-\
362e0 75 44 43 32 36 5c 75 44 43 32 38 2d 5c 75 44 43 uDC26\uDC28-\uDC
362f0 33 41 5c 75 44 43 33 43 5c 75 44 43 33 44 5c 75 3A\uDC3C\uDC3D\u
36300 44 43 33 46 2d 5c 75 44 43 34 44 5c 75 44 43 35 DC3F-\uDC4D\uDC5
36310 30 2d 5c 75 44 43 35 44 5c 75 44 43 38 30 2d 5c 0-\uDC5D\uDC80-\
36320 75 44 43 46 41 5c 75 44 44 34 30 2d 5c 75 44 44 uDCFA\uDD40-\uDD
36330 37 34 5c 75 44 44 46 44 5c 75 44 45 38 30 2d 5c 74\uDDFD\uDE80-\
36340 75 44 45 39 43 5c 75 44 45 41 30 2d 5c 75 44 45 uDE9C\uDEA0-\uDE
36350 44 30 5c 75 44 45 45 30 5c 75 44 46 30 30 2d 5c D0\uDEE0\uDF00-\
36360 75 44 46 31 46 5c 75 44 46 33 30 2d 5c 75 44 46 uDF1F\uDF30-\uDF
36370 34 41 5c 75 44 46 35 30 2d 5c 75 44 46 37 41 5c 4A\uDF50-\uDF7A\
36380 75 44 46 38 30 2d 5c 75 44 46 39 44 5c 75 44 46 uDF80-\uDF9D\uDF
36390 41 30 2d 5c 75 44 46 43 33 5c 75 44 46 43 38 2d A0-\uDFC3\uDFC8-
363a0 5c 75 44 46 43 46 5c 75 44 46 44 31 2d 5c 75 44 \uDFCF\uDFD1-\uD
363b0 46 44 35 5d 7c 5c 75 44 38 30 31 5b 5c 75 44 43 FD5]|\uD801[\uDC
363c0 30 30 2d 5c 75 44 43 39 44 5c 75 44 43 41 30 2d 00-\uDC9D\uDCA0-
363d0 5c 75 44 43 41 39 5c 75 44 44 30 30 2d 5c 75 44 \uDCA9\uDD00-\uD
363e0 44 32 37 5c 75 44 44 33 30 2d 5c 75 44 44 36 33 D27\uDD30-\uDD63
363f0 5c 75 44 45 30 30 2d 5c 75 44 46 33 36 5c 75 44 \uDE00-\uDF36\uD
36400 46 34 30 2d 5c 75 44 46 35 35 5c 75 44 46 36 30 F40-\uDF55\uDF60
36410 2d 5c 75 44 46 36 37 5d 7c 5c 75 44 38 30 32 5b -\uDF67]|\uD802[
36420 5c 75 44 43 30 30 2d 5c 75 44 43 30 35 5c 75 44 \uDC00-\uDC05\uD
36430 43 30 38 5c 75 44 43 30 41 2d 5c 75 44 43 33 35 C08\uDC0A-\uDC35
36440 5c 75 44 43 33 37 5c 75 44 43 33 38 5c 75 44 43 \uDC37\uDC38\uDC
36450 33 43 5c 75 44 43 33 46 2d 5c 75 44 43 35 35 5c 3C\uDC3F-\uDC55\
36460 75 44 43 36 30 2d 5c 75 44 43 37 36 5c 75 44 43 uDC60-\uDC76\uDC
36470 38 30 2d 5c 75 44 43 39 45 5c 75 44 43 45 30 2d 80-\uDC9E\uDCE0-
36480 5c 75 44 43 46 32 5c 75 44 43 46 34 5c 75 44 43 \uDCF2\uDCF4\uDC
36490 46 35 5c 75 44 44 30 30 2d 5c 75 44 44 31 35 5c F5\uDD00-\uDD15\
364a0 75 44 44 32 30 2d 5c 75 44 44 33 39 5c 75 44 44 uDD20-\uDD39\uDD
364b0 38 30 2d 5c 75 44 44 42 37 5c 75 44 44 42 45 5c 80-\uDDB7\uDDBE\
364c0 75 44 44 42 46 5c 75 44 45 30 30 2d 5c 75 44 45 uDDBF\uDE00-\uDE
364d0 30 33 5c 75 44 45 30 35 5c 75 44 45 30 36 5c 75 03\uDE05\uDE06\u
364e0 44 45 30 43 2d 5c 75 44 45 31 33 5c 75 44 45 31 DE0C-\uDE13\uDE1
364f0 35 2d 5c 75 44 45 31 37 5c 75 44 45 31 39 2d 5c 5-\uDE17\uDE19-\
36500 75 44 45 33 33 5c 75 44 45 33 38 2d 5c 75 44 45 uDE33\uDE38-\uDE
36510 33 41 5c 75 44 45 33 46 5c 75 44 45 36 30 2d 5c 3A\uDE3F\uDE60-\
36520 75 44 45 37 43 5c 75 44 45 38 30 2d 5c 75 44 45 uDE7C\uDE80-\uDE
36530 39 43 5c 75 44 45 43 30 2d 5c 75 44 45 43 37 5c 9C\uDEC0-\uDEC7\
36540 75 44 45 43 39 2d 5c 75 44 45 45 36 5c 75 44 46 uDEC9-\uDEE6\uDF
36550 30 30 2d 5c 75 44 46 33 35 5c 75 44 46 34 30 2d 00-\uDF35\uDF40-
36560 5c 75 44 46 35 35 5c 75 44 46 36 30 2d 5c 75 44 \uDF55\uDF60-\uD
36570 46 37 32 5c 75 44 46 38 30 2d 5c 75 44 46 39 31 F72\uDF80-\uDF91
36580 5d 7c 5c 75 44 38 30 33 5b 5c 75 44 43 30 30 2d ]|\uD803[\uDC00-
36590 5c 75 44 43 34 38 5c 75 44 43 38 30 2d 5c 75 44 \uDC48\uDC80-\uD
365a0 43 42 32 5c 75 44 43 43 30 2d 5c 75 44 43 46 32 CB2\uDCC0-\uDCF2
365b0 5d 7c 5c 75 44 38 30 34 5b 5c 75 44 43 30 30 2d ]|\uD804[\uDC00-
365c0 5c 75 44 43 34 36 5c 75 44 43 36 36 2d 5c 75 44 \uDC46\uDC66-\uD
365d0 43 36 46 5c 75 44 43 37 46 2d 5c 75 44 43 42 41 C6F\uDC7F-\uDCBA
365e0 5c 75 44 43 44 30 2d 5c 75 44 43 45 38 5c 75 44 \uDCD0-\uDCE8\uD
365f0 43 46 30 2d 5c 75 44 43 46 39 5c 75 44 44 30 30 CF0-\uDCF9\uDD00
36600 2d 5c 75 44 44 33 34 5c 75 44 44 33 36 2d 5c 75 -\uDD34\uDD36-\u
36610 44 44 33 46 5c 75 44 44 35 30 2d 5c 75 44 44 37 DD3F\uDD50-\uDD7
36620 33 5c 75 44 44 37 36 5c 75 44 44 38 30 2d 5c 75 3\uDD76\uDD80-\u
36630 44 44 43 34 5c 75 44 44 43 41 2d 5c 75 44 44 43 DDC4\uDDCA-\uDDC
36640 43 5c 75 44 44 44 30 2d 5c 75 44 44 44 41 5c 75 C\uDDD0-\uDDDA\u
36650 44 44 44 43 5c 75 44 45 30 30 2d 5c 75 44 45 31 DDDC\uDE00-\uDE1
36660 31 5c 75 44 45 31 33 2d 5c 75 44 45 33 37 5c 75 1\uDE13-\uDE37\u
36670 44 45 38 30 2d 5c 75 44 45 38 36 5c 75 44 45 38 DE80-\uDE86\uDE8
36680 38 5c 75 44 45 38 41 2d 5c 75 44 45 38 44 5c 75 8\uDE8A-\uDE8D\u
36690 44 45 38 46 2d 5c 75 44 45 39 44 5c 75 44 45 39 DE8F-\uDE9D\uDE9
366a0 46 2d 5c 75 44 45 41 38 5c 75 44 45 42 30 2d 5c F-\uDEA8\uDEB0-\
366b0 75 44 45 45 41 5c 75 44 45 46 30 2d 5c 75 44 45 uDEEA\uDEF0-\uDE
366c0 46 39 5c 75 44 46 30 30 2d 5c 75 44 46 30 33 5c F9\uDF00-\uDF03\
366d0 75 44 46 30 35 2d 5c 75 44 46 30 43 5c 75 44 46 uDF05-\uDF0C\uDF
366e0 30 46 5c 75 44 46 31 30 5c 75 44 46 31 33 2d 5c 0F\uDF10\uDF13-\
366f0 75 44 46 32 38 5c 75 44 46 32 41 2d 5c 75 44 46 uDF28\uDF2A-\uDF
36700 33 30 5c 75 44 46 33 32 5c 75 44 46 33 33 5c 75 30\uDF32\uDF33\u
36710 44 46 33 35 2d 5c 75 44 46 33 39 5c 75 44 46 33 DF35-\uDF39\uDF3
36720 43 2d 5c 75 44 46 34 34 5c 75 44 46 34 37 5c 75 C-\uDF44\uDF47\u
36730 44 46 34 38 5c 75 44 46 34 42 2d 5c 75 44 46 34 DF48\uDF4B-\uDF4
36740 44 5c 75 44 46 35 30 5c 75 44 46 35 37 5c 75 44 D\uDF50\uDF57\uD
36750 46 35 44 2d 5c 75 44 46 36 33 5c 75 44 46 36 36 F5D-\uDF63\uDF66
36760 2d 5c 75 44 46 36 43 5c 75 44 46 37 30 2d 5c 75 -\uDF6C\uDF70-\u
36770 44 46 37 34 5d 7c 5c 75 44 38 30 35 5b 5c 75 44 DF74]|\uD805[\uD
36780 43 38 30 2d 5c 75 44 43 43 35 5c 75 44 43 43 37 C80-\uDCC5\uDCC7
36790 5c 75 44 43 44 30 2d 5c 75 44 43 44 39 5c 75 44 \uDCD0-\uDCD9\uD
367a0 44 38 30 2d 5c 75 44 44 42 35 5c 75 44 44 42 38 D80-\uDDB5\uDDB8
367b0 2d 5c 75 44 44 43 30 5c 75 44 44 44 38 2d 5c 75 -\uDDC0\uDDD8-\u
367c0 44 44 44 44 5c 75 44 45 30 30 2d 5c 75 44 45 34 DDDD\uDE00-\uDE4
367d0 30 5c 75 44 45 34 34 5c 75 44 45 35 30 2d 5c 75 0\uDE44\uDE50-\u
367e0 44 45 35 39 5c 75 44 45 38 30 2d 5c 75 44 45 42 DE59\uDE80-\uDEB
367f0 37 5c 75 44 45 43 30 2d 5c 75 44 45 43 39 5c 75 7\uDEC0-\uDEC9\u
36800 44 46 30 30 2d 5c 75 44 46 31 39 5c 75 44 46 31 DF00-\uDF19\uDF1
36810 44 2d 5c 75 44 46 32 42 5c 75 44 46 33 30 2d 5c D-\uDF2B\uDF30-\
36820 75 44 46 33 39 5d 7c 5c 75 44 38 30 36 5b 5c 75 uDF39]|\uD806[\u
36830 44 43 41 30 2d 5c 75 44 43 45 39 5c 75 44 43 46 DCA0-\uDCE9\uDCF
36840 46 5c 75 44 45 43 30 2d 5c 75 44 45 46 38 5d 7c F\uDEC0-\uDEF8]|
36850 5c 75 44 38 30 38 5b 5c 75 44 43 30 30 2d 5c 75 \uD808[\uDC00-\u
36860 44 46 39 39 5d 7c 5c 75 44 38 30 39 5b 5c 75 44 DF99]|\uD809[\uD
36870 43 30 30 2d 5c 75 44 43 36 45 5c 75 44 43 38 30 C00-\uDC6E\uDC80
36880 2d 5c 75 44 44 34 33 5d 7c 5b 5c 75 44 38 30 43 -\uDD43]|[\uD80C
36890 5c 75 44 38 34 30 2d 5c 75 44 38 36 38 5c 75 44 \uD840-\uD868\uD
368a0 38 36 41 2d 5c 75 44 38 36 43 5c 75 44 38 36 46 86A-\uD86C\uD86F
368b0 2d 5c 75 44 38 37 32 5d 5b 5c 75 44 43 30 30 2d -\uD872][\uDC00-
368c0 5c 75 44 46 46 46 5d 7c 5c 75 44 38 30 44 5b 5c \uDFFF]|\uD80D[\
368d0 75 44 43 30 30 2d 5c 75 44 43 32 45 5d 7c 5c 75 uDC00-\uDC2E]|\u
368e0 44 38 31 31 5b 5c 75 44 43 30 30 2d 5c 75 44 45 D811[\uDC00-\uDE
368f0 34 36 5d 7c 5c 75 44 38 31 41 5b 5c 75 44 43 30 46]|\uD81A[\uDC0
36900 30 2d 5c 75 44 45 33 38 5c 75 44 45 34 30 2d 5c 0-\uDE38\uDE40-\
36910 75 44 45 35 45 5c 75 44 45 36 30 2d 5c 75 44 45 uDE5E\uDE60-\uDE
36920 36 39 5c 75 44 45 44 30 2d 5c 75 44 45 45 44 5c 69\uDED0-\uDEED\
36930 75 44 45 46 30 2d 5c 75 44 45 46 34 5c 75 44 46 uDEF0-\uDEF4\uDF
36940 30 30 2d 5c 75 44 46 33 36 5c 75 44 46 34 30 2d 00-\uDF36\uDF40-
36950 5c 75 44 46 34 33 5c 75 44 46 35 30 2d 5c 75 44 \uDF43\uDF50-\uD
36960 46 35 39 5c 75 44 46 36 33 2d 5c 75 44 46 37 37 F59\uDF63-\uDF77
36970 5c 75 44 46 37 44 2d 5c 75 44 46 38 46 5d 7c 5c \uDF7D-\uDF8F]|\
36980 75 44 38 31 42 5b 5c 75 44 46 30 30 2d 5c 75 44 uD81B[\uDF00-\uD
36990 46 34 34 5c 75 44 46 35 30 2d 5c 75 44 46 37 45 F44\uDF50-\uDF7E
369a0 5c 75 44 46 38 46 2d 5c 75 44 46 39 46 5d 7c 5c \uDF8F-\uDF9F]|\
369b0 75 44 38 32 43 5b 5c 75 44 43 30 30 5c 75 44 43 uD82C[\uDC00\uDC
369c0 30 31 5d 7c 5c 75 44 38 32 46 5b 5c 75 44 43 30 01]|\uD82F[\uDC0
369d0 30 2d 5c 75 44 43 36 41 5c 75 44 43 37 30 2d 5c 0-\uDC6A\uDC70-\
369e0 75 44 43 37 43 5c 75 44 43 38 30 2d 5c 75 44 43 uDC7C\uDC80-\uDC
369f0 38 38 5c 75 44 43 39 30 2d 5c 75 44 43 39 39 5c 88\uDC90-\uDC99\
36a00 75 44 43 39 44 5c 75 44 43 39 45 5d 7c 5c 75 44 uDC9D\uDC9E]|\uD
36a10 38 33 34 5b 5c 75 44 44 36 35 2d 5c 75 44 44 36 834[\uDD65-\uDD6
36a20 39 5c 75 44 44 36 44 2d 5c 75 44 44 37 32 5c 75 9\uDD6D-\uDD72\u
36a30 44 44 37 42 2d 5c 75 44 44 38 32 5c 75 44 44 38 DD7B-\uDD82\uDD8
36a40 35 2d 5c 75 44 44 38 42 5c 75 44 44 41 41 2d 5c 5-\uDD8B\uDDAA-\
36a50 75 44 44 41 44 5c 75 44 45 34 32 2d 5c 75 44 45 uDDAD\uDE42-\uDE
36a60 34 34 5d 7c 5c 75 44 38 33 35 5b 5c 75 44 43 30 44]|\uD835[\uDC0
36a70 30 2d 5c 75 44 43 35 34 5c 75 44 43 35 36 2d 5c 0-\uDC54\uDC56-\
36a80 75 44 43 39 43 5c 75 44 43 39 45 5c 75 44 43 39 uDC9C\uDC9E\uDC9
36a90 46 5c 75 44 43 41 32 5c 75 44 43 41 35 5c 75 44 F\uDCA2\uDCA5\uD
36aa0 43 41 36 5c 75 44 43 41 39 2d 5c 75 44 43 41 43 CA6\uDCA9-\uDCAC
36ab0 5c 75 44 43 41 45 2d 5c 75 44 43 42 39 5c 75 44 \uDCAE-\uDCB9\uD
36ac0 43 42 42 5c 75 44 43 42 44 2d 5c 75 44 43 43 33 CBB\uDCBD-\uDCC3
36ad0 5c 75 44 43 43 35 2d 5c 75 44 44 30 35 5c 75 44 \uDCC5-\uDD05\uD
36ae0 44 30 37 2d 5c 75 44 44 30 41 5c 75 44 44 30 44 D07-\uDD0A\uDD0D
36af0 2d 5c 75 44 44 31 34 5c 75 44 44 31 36 2d 5c 75 -\uDD14\uDD16-\u
36b00 44 44 31 43 5c 75 44 44 31 45 2d 5c 75 44 44 33 DD1C\uDD1E-\uDD3
36b10 39 5c 75 44 44 33 42 2d 5c 75 44 44 33 45 5c 75 9\uDD3B-\uDD3E\u
36b20 44 44 34 30 2d 5c 75 44 44 34 34 5c 75 44 44 34 DD40-\uDD44\uDD4
36b30 36 5c 75 44 44 34 41 2d 5c 75 44 44 35 30 5c 75 6\uDD4A-\uDD50\u
36b40 44 44 35 32 2d 5c 75 44 45 41 35 5c 75 44 45 41 DD52-\uDEA5\uDEA
36b50 38 2d 5c 75 44 45 43 30 5c 75 44 45 43 32 2d 5c 8-\uDEC0\uDEC2-\
36b60 75 44 45 44 41 5c 75 44 45 44 43 2d 5c 75 44 45 uDEDA\uDEDC-\uDE
36b70 46 41 5c 75 44 45 46 43 2d 5c 75 44 46 31 34 5c FA\uDEFC-\uDF14\
36b80 75 44 46 31 36 2d 5c 75 44 46 33 34 5c 75 44 46 uDF16-\uDF34\uDF
36b90 33 36 2d 5c 75 44 46 34 45 5c 75 44 46 35 30 2d 36-\uDF4E\uDF50-
36ba0 5c 75 44 46 36 45 5c 75 44 46 37 30 2d 5c 75 44 \uDF6E\uDF70-\uD
36bb0 46 38 38 5c 75 44 46 38 41 2d 5c 75 44 46 41 38 F88\uDF8A-\uDFA8
36bc0 5c 75 44 46 41 41 2d 5c 75 44 46 43 32 5c 75 44 \uDFAA-\uDFC2\uD
36bd0 46 43 34 2d 5c 75 44 46 43 42 5c 75 44 46 43 45 FC4-\uDFCB\uDFCE
36be0 2d 5c 75 44 46 46 46 5d 7c 5c 75 44 38 33 36 5b -\uDFFF]|\uD836[
36bf0 5c 75 44 45 30 30 2d 5c 75 44 45 33 36 5c 75 44 \uDE00-\uDE36\uD
36c00 45 33 42 2d 5c 75 44 45 36 43 5c 75 44 45 37 35 E3B-\uDE6C\uDE75
36c10 5c 75 44 45 38 34 5c 75 44 45 39 42 2d 5c 75 44 \uDE84\uDE9B-\uD
36c20 45 39 46 5c 75 44 45 41 31 2d 5c 75 44 45 41 46 E9F\uDEA1-\uDEAF
36c30 5d 7c 5c 75 44 38 33 41 5b 5c 75 44 43 30 30 2d ]|\uD83A[\uDC00-
36c40 5c 75 44 43 43 34 5c 75 44 43 44 30 2d 5c 75 44 \uDCC4\uDCD0-\uD
36c50 43 44 36 5d 7c 5c 75 44 38 33 42 5b 5c 75 44 45 CD6]|\uD83B[\uDE
36c60 30 30 2d 5c 75 44 45 30 33 5c 75 44 45 30 35 2d 00-\uDE03\uDE05-
36c70 5c 75 44 45 31 46 5c 75 44 45 32 31 5c 75 44 45 \uDE1F\uDE21\uDE
36c80 32 32 5c 75 44 45 32 34 5c 75 44 45 32 37 5c 75 22\uDE24\uDE27\u
36c90 44 45 32 39 2d 5c 75 44 45 33 32 5c 75 44 45 33 DE29-\uDE32\uDE3
36ca0 34 2d 5c 75 44 45 33 37 5c 75 44 45 33 39 5c 75 4-\uDE37\uDE39\u
36cb0 44 45 33 42 5c 75 44 45 34 32 5c 75 44 45 34 37 DE3B\uDE42\uDE47
36cc0 5c 75 44 45 34 39 5c 75 44 45 34 42 5c 75 44 45 \uDE49\uDE4B\uDE
36cd0 34 44 2d 5c 75 44 45 34 46 5c 75 44 45 35 31 5c 4D-\uDE4F\uDE51\
36ce0 75 44 45 35 32 5c 75 44 45 35 34 5c 75 44 45 35 uDE52\uDE54\uDE5
36cf0 37 5c 75 44 45 35 39 5c 75 44 45 35 42 5c 75 44 7\uDE59\uDE5B\uD
36d00 45 35 44 5c 75 44 45 35 46 5c 75 44 45 36 31 5c E5D\uDE5F\uDE61\
36d10 75 44 45 36 32 5c 75 44 45 36 34 5c 75 44 45 36 uDE62\uDE64\uDE6
36d20 37 2d 5c 75 44 45 36 41 5c 75 44 45 36 43 2d 5c 7-\uDE6A\uDE6C-\
36d30 75 44 45 37 32 5c 75 44 45 37 34 2d 5c 75 44 45 uDE72\uDE74-\uDE
36d40 37 37 5c 75 44 45 37 39 2d 5c 75 44 45 37 43 5c 77\uDE79-\uDE7C\
36d50 75 44 45 37 45 5c 75 44 45 38 30 2d 5c 75 44 45 uDE7E\uDE80-\uDE
36d60 38 39 5c 75 44 45 38 42 2d 5c 75 44 45 39 42 5c 89\uDE8B-\uDE9B\
36d70 75 44 45 41 31 2d 5c 75 44 45 41 33 5c 75 44 45 uDEA1-\uDEA3\uDE
36d80 41 35 2d 5c 75 44 45 41 39 5c 75 44 45 41 42 2d A5-\uDEA9\uDEAB-
36d90 5c 75 44 45 42 42 5d 7c 5c 75 44 38 36 39 5b 5c \uDEBB]|\uD869[\
36da0 75 44 43 30 30 2d 5c 75 44 45 44 36 5c 75 44 46 uDC00-\uDED6\uDF
36db0 30 30 2d 5c 75 44 46 46 46 5d 7c 5c 75 44 38 36 00-\uDFFF]|\uD86
36dc0 44 5b 5c 75 44 43 30 30 2d 5c 75 44 46 33 34 5c D[\uDC00-\uDF34\
36dd0 75 44 46 34 30 2d 5c 75 44 46 46 46 5d 7c 5c 75 uDF40-\uDFFF]|\u
36de0 44 38 36 45 5b 5c 75 44 43 30 30 2d 5c 75 44 43 D86E[\uDC00-\uDC
36df0 31 44 5c 75 44 43 32 30 2d 5c 75 44 46 46 46 5d 1D\uDC20-\uDFFF]
36e00 7c 5c 75 44 38 37 33 5b 5c 75 44 43 30 30 2d 5c |\uD873[\uDC00-\
36e10 75 44 45 41 31 5d 7c 5c 75 44 38 37 45 5b 5c 75 uDEA1]|\uD87E[\u
36e20 44 43 30 30 2d 5c 75 44 45 31 44 5d 7c 5c 75 44 DC00-\uDE1D]|\uD
36e30 42 34 30 5b 5c 75 44 44 30 30 2d 5c 75 44 44 45 B40[\uDD00-\uDDE
36e40 46 5d 2f 0a 20 20 09 7d 3b 0a 20 20 09 65 78 70 F]/. .};. .exp
36e50 6f 72 74 73 2e 43 68 61 72 61 63 74 65 72 20 3d orts.Character =
36e60 20 7b 0a 20 20 09 20 20 20 20 66 72 6f 6d 43 6f {. . fromCo
36e70 64 65 50 6f 69 6e 74 3a 20 66 75 6e 63 74 69 6f dePoint: functio
36e80 6e 20 28 63 70 29 20 7b 0a 20 20 09 20 20 20 20 n (cp) {. .
36e90 20 20 20 20 72 65 74 75 72 6e 20 28 63 70 20 3c return (cp <
36ea0 20 30 78 31 30 30 30 30 29 20 3f 20 53 74 72 69 0x10000) ? Stri
36eb0 6e 67 2e 66 72 6f 6d 43 68 61 72 43 6f 64 65 28 ng.fromCharCode(
36ec0 63 70 29 20 3a 0a 20 20 09 20 20 20 20 20 20 20 cp) :. .
36ed0 20 20 20 20 20 53 74 72 69 6e 67 2e 66 72 6f 6d String.from
36ee0 43 68 61 72 43 6f 64 65 28 30 78 44 38 30 30 20 CharCode(0xD800
36ef0 2b 20 28 28 63 70 20 2d 20 30 78 31 30 30 30 30 + ((cp - 0x10000
36f00 29 20 3e 3e 20 31 30 29 29 20 2b 0a 20 20 09 20 ) >> 10)) +. .
36f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 S
36f20 74 72 69 6e 67 2e 66 72 6f 6d 43 68 61 72 43 6f tring.fromCharCo
36f30 64 65 28 30 78 44 43 30 30 20 2b 20 28 28 63 70 de(0xDC00 + ((cp
36f40 20 2d 20 30 78 31 30 30 30 30 29 20 26 20 31 30 - 0x10000) & 10
36f50 32 33 29 29 3b 0a 20 20 09 20 20 20 20 7d 2c 0a 23));. . },.
36f60 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 . // ECMA-2
36f70 36 32 20 31 31 2e 32 20 57 68 69 74 65 20 53 70 62 11.2 White Sp
36f80 61 63 65 0a 20 20 09 20 20 20 20 69 73 57 68 69 ace. . isWhi
36f90 74 65 53 70 61 63 65 3a 20 66 75 6e 63 74 69 6f teSpace: functio
36fa0 6e 20 28 63 70 29 20 7b 0a 20 20 09 20 20 20 20 n (cp) {. .
36fb0 20 20 20 20 72 65 74 75 72 6e 20 28 63 70 20 3d return (cp =
36fc0 3d 3d 20 30 78 32 30 29 20 7c 7c 20 28 63 70 20 == 0x20) || (cp
36fd0 3d 3d 3d 20 30 78 30 39 29 20 7c 7c 20 28 63 70 === 0x09) || (cp
36fe0 20 3d 3d 3d 20 30 78 30 42 29 20 7c 7c 20 28 63 === 0x0B) || (c
36ff0 70 20 3d 3d 3d 20 30 78 30 43 29 20 7c 7c 20 28 p === 0x0C) || (
37000 63 70 20 3d 3d 3d 20 30 78 41 30 29 20 7c 7c 0a cp === 0xA0) ||.
37010 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 28 . (
37020 63 70 20 3e 3d 20 30 78 31 36 38 30 20 26 26 20 cp >= 0x1680 &&
37030 5b 30 78 31 36 38 30 2c 20 30 78 32 30 30 30 2c [0x1680, 0x2000,
37040 20 30 78 32 30 30 31 2c 20 30 78 32 30 30 32 2c 0x2001, 0x2002,
37050 20 30 78 32 30 30 33 2c 20 30 78 32 30 30 34 2c 0x2003, 0x2004,
37060 20 30 78 32 30 30 35 2c 20 30 78 32 30 30 36 2c 0x2005, 0x2006,
37070 20 30 78 32 30 30 37 2c 20 30 78 32 30 30 38 2c 0x2007, 0x2008,
37080 20 30 78 32 30 30 39 2c 20 30 78 32 30 30 41 2c 0x2009, 0x200A,
37090 20 30 78 32 30 32 46 2c 20 30 78 32 30 35 46 2c 0x202F, 0x205F,
370a0 20 30 78 33 30 30 30 2c 20 30 78 46 45 46 46 5d 0x3000, 0xFEFF]
370b0 2e 69 6e 64 65 78 4f 66 28 63 70 29 20 3e 3d 20 .indexOf(cp) >=
370c0 30 29 3b 0a 20 20 09 20 20 20 20 7d 2c 0a 20 20 0);. . },.
370d0 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 . // ECMA-262
370e0 20 31 31 2e 33 20 4c 69 6e 65 20 54 65 72 6d 69 11.3 Line Termi
370f0 6e 61 74 6f 72 73 0a 20 20 09 20 20 20 20 69 73 nators. . is
37100 4c 69 6e 65 54 65 72 6d 69 6e 61 74 6f 72 3a 20 LineTerminator:
37110 66 75 6e 63 74 69 6f 6e 20 28 63 70 29 20 7b 0a function (cp) {.
37120 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
37130 6e 20 28 63 70 20 3d 3d 3d 20 30 78 30 41 29 20 n (cp === 0x0A)
37140 7c 7c 20 28 63 70 20 3d 3d 3d 20 30 78 30 44 29 || (cp === 0x0D)
37150 20 7c 7c 20 28 63 70 20 3d 3d 3d 20 30 78 32 30 || (cp === 0x20
37160 32 38 29 20 7c 7c 20 28 63 70 20 3d 3d 3d 20 30 28) || (cp === 0
37170 78 32 30 32 39 29 3b 0a 20 20 09 20 20 20 20 7d x2029);. . }
37180 2c 0a 20 20 09 20 20 20 20 2f 2f 20 45 43 4d 41 ,. . // ECMA
37190 2d 32 36 32 20 31 31 2e 36 20 49 64 65 6e 74 69 -262 11.6 Identi
371a0 66 69 65 72 20 4e 61 6d 65 73 20 61 6e 64 20 49 fier Names and I
371b0 64 65 6e 74 69 66 69 65 72 73 0a 20 20 09 20 20 dentifiers. .
371c0 20 20 69 73 49 64 65 6e 74 69 66 69 65 72 53 74 isIdentifierSt
371d0 61 72 74 3a 20 66 75 6e 63 74 69 6f 6e 20 28 63 art: function (c
371e0 70 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 p) {. .
371f0 72 65 74 75 72 6e 20 28 63 70 20 3d 3d 3d 20 30 return (cp === 0
37200 78 32 34 29 20 7c 7c 20 28 63 70 20 3d 3d 3d 20 x24) || (cp ===
37210 30 78 35 46 29 20 7c 7c 0a 20 20 09 20 20 20 20 0x5F) ||. .
37220 20 20 20 20 20 20 20 20 28 63 70 20 3e 3d 20 30 (cp >= 0
37230 78 34 31 20 26 26 20 63 70 20 3c 3d 20 30 78 35 x41 && cp <= 0x5
37240 41 29 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 A) ||. .
37250 20 20 20 20 20 28 63 70 20 3e 3d 20 30 78 36 31 (cp >= 0x61
37260 20 26 26 20 63 70 20 3c 3d 20 30 78 37 41 29 20 && cp <= 0x7A)
37270 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
37280 20 20 28 63 70 20 3d 3d 3d 20 30 78 35 43 29 20 (cp === 0x5C)
37290 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
372a0 20 20 28 28 63 70 20 3e 3d 20 30 78 38 30 29 20 ((cp >= 0x80)
372b0 26 26 20 52 65 67 65 78 2e 4e 6f 6e 41 73 63 69 && Regex.NonAsci
372c0 69 49 64 65 6e 74 69 66 69 65 72 53 74 61 72 74 iIdentifierStart
372d0 2e 74 65 73 74 28 65 78 70 6f 72 74 73 2e 43 68 .test(exports.Ch
372e0 61 72 61 63 74 65 72 2e 66 72 6f 6d 43 6f 64 65 aracter.fromCode
372f0 50 6f 69 6e 74 28 63 70 29 29 29 3b 0a 20 20 09 Point(cp)));. .
37300 20 20 20 20 7d 2c 0a 20 20 09 20 20 20 20 69 73 },. . is
37310 49 64 65 6e 74 69 66 69 65 72 50 61 72 74 3a 20 IdentifierPart:
37320 66 75 6e 63 74 69 6f 6e 20 28 63 70 29 20 7b 0a function (cp) {.
37330 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
37340 6e 20 28 63 70 20 3d 3d 3d 20 30 78 32 34 29 20 n (cp === 0x24)
37350 7c 7c 20 28 63 70 20 3d 3d 3d 20 30 78 35 46 29 || (cp === 0x5F)
37360 20 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 ||. .
37370 20 20 20 28 63 70 20 3e 3d 20 30 78 34 31 20 26 (cp >= 0x41 &
37380 26 20 63 70 20 3c 3d 20 30 78 35 41 29 20 7c 7c & cp <= 0x5A) ||
37390 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
373a0 28 63 70 20 3e 3d 20 30 78 36 31 20 26 26 20 63 (cp >= 0x61 && c
373b0 70 20 3c 3d 20 30 78 37 41 29 20 7c 7c 0a 20 20 p <= 0x7A) ||.
373c0 09 20 20 20 20 20 20 20 20 20 20 20 20 28 63 70 . (cp
373d0 20 3e 3d 20 30 78 33 30 20 26 26 20 63 70 20 3c >= 0x30 && cp <
373e0 3d 20 30 78 33 39 29 20 7c 7c 0a 20 20 09 20 20 = 0x39) ||. .
373f0 20 20 20 20 20 20 20 20 20 20 28 63 70 20 3d 3d (cp ==
37400 3d 20 30 78 35 43 29 20 7c 7c 0a 20 20 09 20 20 = 0x5C) ||. .
37410 20 20 20 20 20 20 20 20 20 20 28 28 63 70 20 3e ((cp >
37420 3d 20 30 78 38 30 29 20 26 26 20 52 65 67 65 78 = 0x80) && Regex
37430 2e 4e 6f 6e 41 73 63 69 69 49 64 65 6e 74 69 66 .NonAsciiIdentif
37440 69 65 72 50 61 72 74 2e 74 65 73 74 28 65 78 70 ierPart.test(exp
37450 6f 72 74 73 2e 43 68 61 72 61 63 74 65 72 2e 66 orts.Character.f
37460 72 6f 6d 43 6f 64 65 50 6f 69 6e 74 28 63 70 29 romCodePoint(cp)
37470 29 29 3b 0a 20 20 09 20 20 20 20 7d 2c 0a 20 20 ));. . },.
37480 09 20 20 20 20 2f 2f 20 45 43 4d 41 2d 32 36 32 . // ECMA-262
37490 20 31 31 2e 38 2e 33 20 4e 75 6d 65 72 69 63 20 11.8.3 Numeric
374a0 4c 69 74 65 72 61 6c 73 0a 20 20 09 20 20 20 20 Literals. .
374b0 69 73 44 65 63 69 6d 61 6c 44 69 67 69 74 3a 20 isDecimalDigit:
374c0 66 75 6e 63 74 69 6f 6e 20 28 63 70 29 20 7b 0a function (cp) {.
374d0 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
374e0 6e 20 28 63 70 20 3e 3d 20 30 78 33 30 20 26 26 n (cp >= 0x30 &&
374f0 20 63 70 20 3c 3d 20 30 78 33 39 29 3b 20 2f 2f cp <= 0x39); //
37500 20 30 2e 2e 39 0a 20 20 09 20 20 20 20 7d 2c 0a 0..9. . },.
37510 20 20 09 20 20 20 20 69 73 48 65 78 44 69 67 69 . isHexDigi
37520 74 3a 20 66 75 6e 63 74 69 6f 6e 20 28 63 70 29 t: function (cp)
37530 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 {. . re
37540 74 75 72 6e 20 28 63 70 20 3e 3d 20 30 78 33 30 turn (cp >= 0x30
37550 20 26 26 20 63 70 20 3c 3d 20 30 78 33 39 29 20 && cp <= 0x39)
37560 7c 7c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ||. .
37570 20 20 28 63 70 20 3e 3d 20 30 78 34 31 20 26 26 (cp >= 0x41 &&
37580 20 63 70 20 3c 3d 20 30 78 34 36 29 20 7c 7c 0a cp <= 0x46) ||.
37590 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 28 . (
375a0 63 70 20 3e 3d 20 30 78 36 31 20 26 26 20 63 70 cp >= 0x61 && cp
375b0 20 3c 3d 20 30 78 36 36 29 3b 20 2f 2f 20 61 2e <= 0x66); // a.
375c0 2e 66 0a 20 20 09 20 20 20 20 7d 2c 0a 20 20 09 .f. . },. .
375d0 20 20 20 20 69 73 4f 63 74 61 6c 44 69 67 69 74 isOctalDigit
375e0 3a 20 66 75 6e 63 74 69 6f 6e 20 28 63 70 29 20 : function (cp)
375f0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 {. . ret
37600 75 72 6e 20 28 63 70 20 3e 3d 20 30 78 33 30 20 urn (cp >= 0x30
37610 26 26 20 63 70 20 3c 3d 20 30 78 33 37 29 3b 20 && cp <= 0x37);
37620 2f 2f 20 30 2e 2e 37 0a 20 20 09 20 20 20 20 7d // 0..7. . }
37630 0a 20 20 09 7d 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f . .};... /***/
37640 20 7d 2c 0a 20 20 2f 2a 20 31 30 20 2a 2f 0a 20 },. /* 10 */.
37650 20 2f 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f 6e 28 /***/ function(
37660 6d 6f 64 75 6c 65 2c 20 65 78 70 6f 72 74 73 2c module, exports,
37670 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 69 __webpack_requi
37680 72 65 5f 5f 29 20 7b 0a 20 20 09 76 61 72 20 73 re__) {. .var s
37690 79 6e 74 61 78 5f 31 20 3d 20 5f 5f 77 65 62 70 yntax_1 = __webp
376a0 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 32 29 ack_require__(2)
376b0 3b 0a 20 20 09 76 61 72 20 41 72 72 61 79 45 78 ;. .var ArrayEx
376c0 70 72 65 73 73 69 6f 6e 20 3d 20 28 66 75 6e 63 pression = (func
376d0 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
376e0 20 66 75 6e 63 74 69 6f 6e 20 41 72 72 61 79 45 function ArrayE
376f0 78 70 72 65 73 73 69 6f 6e 28 65 6c 65 6d 65 6e xpression(elemen
37700 74 73 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ts) {. .
37710 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e this.type = syn
37720 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 41 72 72 tax_1.Syntax.Arr
37730 61 79 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 ayExpression;.
37740 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 6c . this.el
37750 65 6d 65 6e 74 73 20 3d 20 65 6c 65 6d 65 6e 74 ements = element
37760 73 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 s;. . }. .
37770 20 20 20 72 65 74 75 72 6e 20 41 72 72 61 79 45 return ArrayE
37780 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 7d 28 xpression;. .}(
37790 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 41 ));. .exports.A
377a0 72 72 61 79 45 78 70 72 65 73 73 69 6f 6e 20 3d rrayExpression =
377b0 20 41 72 72 61 79 45 78 70 72 65 73 73 69 6f 6e ArrayExpression
377c0 3b 0a 20 20 09 76 61 72 20 41 72 72 61 79 50 61 ;. .var ArrayPa
377d0 74 74 65 72 6e 20 3d 20 28 66 75 6e 63 74 69 6f ttern = (functio
377e0 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 n () {. . fu
377f0 6e 63 74 69 6f 6e 20 41 72 72 61 79 50 61 74 74 nction ArrayPatt
37800 65 72 6e 28 65 6c 65 6d 65 6e 74 73 29 20 7b 0a ern(elements) {.
37810 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
37820 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
37830 53 79 6e 74 61 78 2e 41 72 72 61 79 50 61 74 74 Syntax.ArrayPatt
37840 65 72 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ern;. .
37850 74 68 69 73 2e 65 6c 65 6d 65 6e 74 73 20 3d 20 this.elements =
37860 65 6c 65 6d 65 6e 74 73 3b 0a 20 20 09 20 20 20 elements;. .
37870 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
37880 20 41 72 72 61 79 50 61 74 74 65 72 6e 3b 0a 20 ArrayPattern;.
37890 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
378a0 74 73 2e 41 72 72 61 79 50 61 74 74 65 72 6e 20 ts.ArrayPattern
378b0 3d 20 41 72 72 61 79 50 61 74 74 65 72 6e 3b 0a = ArrayPattern;.
378c0 20 20 09 76 61 72 20 41 72 72 6f 77 46 75 6e 63 .var ArrowFunc
378d0 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 3d tionExpression =
378e0 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
378f0 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
37900 41 72 72 6f 77 46 75 6e 63 74 69 6f 6e 45 78 70 ArrowFunctionExp
37910 72 65 73 73 69 6f 6e 28 70 61 72 61 6d 73 2c 20 ression(params,
37920 62 6f 64 79 2c 20 65 78 70 72 65 73 73 69 6f 6e body, expression
37930 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
37940 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 his.type = synta
37950 78 5f 31 2e 53 79 6e 74 61 78 2e 41 72 72 6f 77 x_1.Syntax.Arrow
37960 46 75 6e 63 74 69 6f 6e 45 78 70 72 65 73 73 69 FunctionExpressi
37970 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 on;. . t
37980 68 69 73 2e 69 64 20 3d 20 6e 75 6c 6c 3b 0a 20 his.id = null;.
37990 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 70 . this.p
379a0 61 72 61 6d 73 20 3d 20 70 61 72 61 6d 73 3b 0a arams = params;.
379b0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
379c0 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a 20 20 09 body = body;. .
379d0 20 20 20 20 20 20 20 20 74 68 69 73 2e 67 65 6e this.gen
379e0 65 72 61 74 6f 72 20 3d 20 66 61 6c 73 65 3b 0a erator = false;.
379f0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
37a00 65 78 70 72 65 73 73 69 6f 6e 20 3d 20 65 78 70 expression = exp
37a10 72 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 ression;. .
37a20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
37a30 41 72 72 6f 77 46 75 6e 63 74 69 6f 6e 45 78 70 ArrowFunctionExp
37a40 72 65 73 73 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 ression;. .}())
37a50 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 41 72 72 ;. .exports.Arr
37a60 6f 77 46 75 6e 63 74 69 6f 6e 45 78 70 72 65 73 owFunctionExpres
37a70 73 69 6f 6e 20 3d 20 41 72 72 6f 77 46 75 6e 63 sion = ArrowFunc
37a80 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 3b 0a tionExpression;.
37a90 20 20 09 76 61 72 20 41 73 73 69 67 6e 6d 65 6e .var Assignmen
37aa0 74 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 66 tExpression = (f
37ab0 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
37ac0 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 41 73 73 function Ass
37ad0 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f ignmentExpressio
37ae0 6e 28 6f 70 65 72 61 74 6f 72 2c 20 6c 65 66 74 n(operator, left
37af0 2c 20 72 69 67 68 74 29 20 7b 0a 20 20 09 20 20 , right) {. .
37b00 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 this.type
37b10 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
37b20 78 2e 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 x.AssignmentExpr
37b30 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 ession;. .
37b40 20 20 20 74 68 69 73 2e 6f 70 65 72 61 74 6f 72 this.operator
37b50 20 3d 20 6f 70 65 72 61 74 6f 72 3b 0a 20 20 09 = operator;. .
37b60 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 65 66 this.lef
37b70 74 20 3d 20 6c 65 66 74 3b 0a 20 20 09 20 20 20 t = left;. .
37b80 20 20 20 20 20 74 68 69 73 2e 72 69 67 68 74 20 this.right
37b90 3d 20 72 69 67 68 74 3b 0a 20 20 09 20 20 20 20 = right;. .
37ba0 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
37bb0 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 AssignmentExpres
37bc0 73 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 sion;. .}());.
37bd0 20 09 65 78 70 6f 72 74 73 2e 41 73 73 69 67 6e .exports.Assign
37be0 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 20 3d mentExpression =
37bf0 20 41 73 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 AssignmentExpre
37c00 73 73 69 6f 6e 3b 0a 20 20 09 76 61 72 20 41 73 ssion;. .var As
37c10 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 72 6e 20 signmentPattern
37c20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = (function () {
37c30 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e . . function
37c40 20 41 73 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 AssignmentPatte
37c50 72 6e 28 6c 65 66 74 2c 20 72 69 67 68 74 29 20 rn(left, right)
37c60 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 {. . thi
37c70 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f s.type = syntax_
37c80 31 2e 53 79 6e 74 61 78 2e 41 73 73 69 67 6e 6d 1.Syntax.Assignm
37c90 65 6e 74 50 61 74 74 65 72 6e 3b 0a 20 20 09 20 entPattern;. .
37ca0 20 20 20 20 20 20 20 74 68 69 73 2e 6c 65 66 74 this.left
37cb0 20 3d 20 6c 65 66 74 3b 0a 20 20 09 20 20 20 20 = left;. .
37cc0 20 20 20 20 74 68 69 73 2e 72 69 67 68 74 20 3d this.right =
37cd0 20 72 69 67 68 74 3b 0a 20 20 09 20 20 20 20 7d right;. . }
37ce0 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 41 . . return A
37cf0 73 73 69 67 6e 6d 65 6e 74 50 61 74 74 65 72 6e ssignmentPattern
37d00 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 ;. .}());. .ex
37d10 70 6f 72 74 73 2e 41 73 73 69 67 6e 6d 65 6e 74 ports.Assignment
37d20 50 61 74 74 65 72 6e 20 3d 20 41 73 73 69 67 6e Pattern = Assign
37d30 6d 65 6e 74 50 61 74 74 65 72 6e 3b 0a 20 20 09 mentPattern;. .
37d40 76 61 72 20 42 69 6e 61 72 79 45 78 70 72 65 73 var BinaryExpres
37d50 73 69 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e sion = (function
37d60 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e () {. . fun
37d70 63 74 69 6f 6e 20 42 69 6e 61 72 79 45 78 70 72 ction BinaryExpr
37d80 65 73 73 69 6f 6e 28 6f 70 65 72 61 74 6f 72 2c ession(operator,
37d90 20 6c 65 66 74 2c 20 72 69 67 68 74 29 20 7b 0a left, right) {.
37da0 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 6c . var l
37db0 6f 67 69 63 61 6c 20 3d 20 28 6f 70 65 72 61 74 ogical = (operat
37dc0 6f 72 20 3d 3d 3d 20 27 7c 7c 27 20 7c 7c 20 6f or === '||' || o
37dd0 70 65 72 61 74 6f 72 20 3d 3d 3d 20 27 26 26 27 perator === '&&'
37de0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 );. . th
37df0 69 73 2e 74 79 70 65 20 3d 20 6c 6f 67 69 63 61 is.type = logica
37e00 6c 20 3f 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e l ? syntax_1.Syn
37e10 74 61 78 2e 4c 6f 67 69 63 61 6c 45 78 70 72 65 tax.LogicalExpre
37e20 73 73 69 6f 6e 20 3a 20 73 79 6e 74 61 78 5f 31 ssion : syntax_1
37e30 2e 53 79 6e 74 61 78 2e 42 69 6e 61 72 79 45 78 .Syntax.BinaryEx
37e40 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 20 pression;. .
37e50 20 20 20 20 20 74 68 69 73 2e 6f 70 65 72 61 74 this.operat
37e60 6f 72 20 3d 20 6f 70 65 72 61 74 6f 72 3b 0a 20 or = operator;.
37e70 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c . this.l
37e80 65 66 74 20 3d 20 6c 65 66 74 3b 0a 20 20 09 20 eft = left;. .
37e90 20 20 20 20 20 20 20 74 68 69 73 2e 72 69 67 68 this.righ
37ea0 74 20 3d 20 72 69 67 68 74 3b 0a 20 20 09 20 20 t = right;. .
37eb0 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 }. . retur
37ec0 6e 20 42 69 6e 61 72 79 45 78 70 72 65 73 73 69 n BinaryExpressi
37ed0 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 on;. .}());. .
37ee0 65 78 70 6f 72 74 73 2e 42 69 6e 61 72 79 45 78 exports.BinaryEx
37ef0 70 72 65 73 73 69 6f 6e 20 3d 20 42 69 6e 61 72 pression = Binar
37f00 79 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 yExpression;. .
37f10 76 61 72 20 42 6c 6f 63 6b 53 74 61 74 65 6d 65 var BlockStateme
37f20 6e 74 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 nt = (function (
37f30 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 ) {. . funct
37f40 69 6f 6e 20 42 6c 6f 63 6b 53 74 61 74 65 6d 65 ion BlockStateme
37f50 6e 74 28 62 6f 64 79 29 20 7b 0a 20 20 09 20 20 nt(body) {. .
37f60 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 this.type
37f70 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
37f80 78 2e 42 6c 6f 63 6b 53 74 61 74 65 6d 65 6e 74 x.BlockStatement
37f90 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
37fa0 73 2e 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a 20 s.body = body;.
37fb0 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 . }. . r
37fc0 65 74 75 72 6e 20 42 6c 6f 63 6b 53 74 61 74 65 eturn BlockState
37fd0 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 ment;. .}());.
37fe0 20 09 65 78 70 6f 72 74 73 2e 42 6c 6f 63 6b 53 .exports.BlockS
37ff0 74 61 74 65 6d 65 6e 74 20 3d 20 42 6c 6f 63 6b tatement = Block
38000 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 Statement;. .va
38010 72 20 42 72 65 61 6b 53 74 61 74 65 6d 65 6e 74 r BreakStatement
38020 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
38030 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
38040 6e 20 42 72 65 61 6b 53 74 61 74 65 6d 65 6e 74 n BreakStatement
38050 28 6c 61 62 65 6c 29 20 7b 0a 20 20 09 20 20 20 (label) {. .
38060 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
38070 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
38080 2e 42 72 65 61 6b 53 74 61 74 65 6d 65 6e 74 3b .BreakStatement;
38090 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
380a0 2e 6c 61 62 65 6c 20 3d 20 6c 61 62 65 6c 3b 0a .label = label;.
380b0 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 . }. .
380c0 72 65 74 75 72 6e 20 42 72 65 61 6b 53 74 61 74 return BreakStat
380d0 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a ement;. .}());.
380e0 20 20 09 65 78 70 6f 72 74 73 2e 42 72 65 61 6b .exports.Break
380f0 53 74 61 74 65 6d 65 6e 74 20 3d 20 42 72 65 61 Statement = Brea
38100 6b 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 kStatement;. .v
38110 61 72 20 43 61 6c 6c 45 78 70 72 65 73 73 69 6f ar CallExpressio
38120 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 n = (function ()
38130 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
38140 6f 6e 20 43 61 6c 6c 45 78 70 72 65 73 73 69 6f on CallExpressio
38150 6e 28 63 61 6c 6c 65 65 2c 20 61 72 67 73 29 20 n(callee, args)
38160 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 {. . thi
38170 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f s.type = syntax_
38180 31 2e 53 79 6e 74 61 78 2e 43 61 6c 6c 45 78 70 1.Syntax.CallExp
38190 72 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 ression;. .
381a0 20 20 20 20 74 68 69 73 2e 63 61 6c 6c 65 65 20 this.callee
381b0 3d 20 63 61 6c 6c 65 65 3b 0a 20 20 09 20 20 20 = callee;. .
381c0 20 20 20 20 20 74 68 69 73 2e 61 72 67 75 6d 65 this.argume
381d0 6e 74 73 20 3d 20 61 72 67 73 3b 0a 20 20 09 20 nts = args;. .
381e0 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 }. . retu
381f0 72 6e 20 43 61 6c 6c 45 78 70 72 65 73 73 69 6f rn CallExpressio
38200 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 n;. .}());. .e
38210 78 70 6f 72 74 73 2e 43 61 6c 6c 45 78 70 72 65 xports.CallExpre
38220 73 73 69 6f 6e 20 3d 20 43 61 6c 6c 45 78 70 72 ssion = CallExpr
38230 65 73 73 69 6f 6e 3b 0a 20 20 09 76 61 72 20 43 ession;. .var C
38240 61 74 63 68 43 6c 61 75 73 65 20 3d 20 28 66 75 atchClause = (fu
38250 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
38260 20 20 20 66 75 6e 63 74 69 6f 6e 20 43 61 74 63 function Catc
38270 68 43 6c 61 75 73 65 28 70 61 72 61 6d 2c 20 62 hClause(param, b
38280 6f 64 79 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ody) {. .
38290 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 this.type = sy
382a0 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 43 61 ntax_1.Syntax.Ca
382b0 74 63 68 43 6c 61 75 73 65 3b 0a 20 20 09 20 20 tchClause;. .
382c0 20 20 20 20 20 20 74 68 69 73 2e 70 61 72 61 6d this.param
382d0 20 3d 20 70 61 72 61 6d 3b 0a 20 20 09 20 20 20 = param;. .
382e0 20 20 20 20 20 74 68 69 73 2e 62 6f 64 79 20 3d this.body =
382f0 20 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 7d 0a body;. . }.
38300 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 43 61 . return Ca
38310 74 63 68 43 6c 61 75 73 65 3b 0a 20 20 09 7d 28 tchClause;. .}(
38320 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 43 ));. .exports.C
38330 61 74 63 68 43 6c 61 75 73 65 20 3d 20 43 61 74 atchClause = Cat
38340 63 68 43 6c 61 75 73 65 3b 0a 20 20 09 76 61 72 chClause;. .var
38350 20 43 6c 61 73 73 42 6f 64 79 20 3d 20 28 66 75 ClassBody = (fu
38360 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
38370 20 20 20 66 75 6e 63 74 69 6f 6e 20 43 6c 61 73 function Clas
38380 73 42 6f 64 79 28 62 6f 64 79 29 20 7b 0a 20 20 sBody(body) {.
38390 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 . this.ty
383a0 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 pe = syntax_1.Sy
383b0 6e 74 61 78 2e 43 6c 61 73 73 42 6f 64 79 3b 0a ntax.ClassBody;.
383c0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
383d0 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a 20 20 09 body = body;. .
383e0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 }. . ret
383f0 75 72 6e 20 43 6c 61 73 73 42 6f 64 79 3b 0a 20 urn ClassBody;.
38400 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
38410 74 73 2e 43 6c 61 73 73 42 6f 64 79 20 3d 20 43 ts.ClassBody = C
38420 6c 61 73 73 42 6f 64 79 3b 0a 20 20 09 76 61 72 lassBody;. .var
38430 20 43 6c 61 73 73 44 65 63 6c 61 72 61 74 69 6f ClassDeclaratio
38440 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 n = (function ()
38450 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
38460 6f 6e 20 43 6c 61 73 73 44 65 63 6c 61 72 61 74 on ClassDeclarat
38470 69 6f 6e 28 69 64 2c 20 73 75 70 65 72 43 6c 61 ion(id, superCla
38480 73 73 2c 20 62 6f 64 79 29 20 7b 0a 20 20 09 20 ss, body) {. .
38490 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 this.type
384a0 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 = syntax_1.Synt
384b0 61 78 2e 43 6c 61 73 73 44 65 63 6c 61 72 61 74 ax.ClassDeclarat
384c0 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ion;. .
384d0 74 68 69 73 2e 69 64 20 3d 20 69 64 3b 0a 20 20 this.id = id;.
384e0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 75 . this.su
384f0 70 65 72 43 6c 61 73 73 20 3d 20 73 75 70 65 72 perClass = super
38500 43 6c 61 73 73 3b 0a 20 20 09 20 20 20 20 20 20 Class;. .
38510 20 20 74 68 69 73 2e 62 6f 64 79 20 3d 20 62 6f this.body = bo
38520 64 79 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 dy;. . }. .
38530 20 20 20 20 72 65 74 75 72 6e 20 43 6c 61 73 73 return Class
38540 44 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 09 Declaration;. .
38550 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 }());. .exports
38560 2e 43 6c 61 73 73 44 65 63 6c 61 72 61 74 69 6f .ClassDeclaratio
38570 6e 20 3d 20 43 6c 61 73 73 44 65 63 6c 61 72 61 n = ClassDeclara
38580 74 69 6f 6e 3b 0a 20 20 09 76 61 72 20 43 6c 61 tion;. .var Cla
38590 73 73 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 ssExpression = (
385a0 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
385b0 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 43 6c . function Cl
385c0 61 73 73 45 78 70 72 65 73 73 69 6f 6e 28 69 64 assExpression(id
385d0 2c 20 73 75 70 65 72 43 6c 61 73 73 2c 20 62 6f , superClass, bo
385e0 64 79 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 dy) {. .
385f0 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e this.type = syn
38600 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 43 6c 61 tax_1.Syntax.Cla
38610 73 73 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 ssExpression;.
38620 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 64 . this.id
38630 20 3d 20 69 64 3b 0a 20 20 09 20 20 20 20 20 20 = id;. .
38640 20 20 74 68 69 73 2e 73 75 70 65 72 43 6c 61 73 this.superClas
38650 73 20 3d 20 73 75 70 65 72 43 6c 61 73 73 3b 0a s = superClass;.
38660 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
38670 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a 20 20 09 body = body;. .
38680 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 }. . ret
38690 75 72 6e 20 43 6c 61 73 73 45 78 70 72 65 73 73 urn ClassExpress
386a0 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 ion;. .}());.
386b0 09 65 78 70 6f 72 74 73 2e 43 6c 61 73 73 45 78 .exports.ClassEx
386c0 70 72 65 73 73 69 6f 6e 20 3d 20 43 6c 61 73 73 pression = Class
386d0 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 76 Expression;. .v
386e0 61 72 20 43 6f 6d 70 75 74 65 64 4d 65 6d 62 65 ar ComputedMembe
386f0 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 66 rExpression = (f
38700 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
38710 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 43 6f 6d function Com
38720 70 75 74 65 64 4d 65 6d 62 65 72 45 78 70 72 65 putedMemberExpre
38730 73 73 69 6f 6e 28 6f 62 6a 65 63 74 2c 20 70 72 ssion(object, pr
38740 6f 70 65 72 74 79 29 20 7b 0a 20 20 09 20 20 20 operty) {. .
38750 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
38760 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
38770 2e 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f .MemberExpressio
38780 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 n;. . th
38790 69 73 2e 63 6f 6d 70 75 74 65 64 20 3d 20 74 72 is.computed = tr
387a0 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ue;. . t
387b0 68 69 73 2e 6f 62 6a 65 63 74 20 3d 20 6f 62 6a his.object = obj
387c0 65 63 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ect;. .
387d0 74 68 69 73 2e 70 72 6f 70 65 72 74 79 20 3d 20 this.property =
387e0 70 72 6f 70 65 72 74 79 3b 0a 20 20 09 20 20 20 property;. .
387f0 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
38800 20 43 6f 6d 70 75 74 65 64 4d 65 6d 62 65 72 45 ComputedMemberE
38810 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 7d 28 xpression;. .}(
38820 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 43 ));. .exports.C
38830 6f 6d 70 75 74 65 64 4d 65 6d 62 65 72 45 78 70 omputedMemberExp
38840 72 65 73 73 69 6f 6e 20 3d 20 43 6f 6d 70 75 74 ression = Comput
38850 65 64 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 edMemberExpressi
38860 6f 6e 3b 0a 20 20 09 76 61 72 20 43 6f 6e 64 69 on;. .var Condi
38870 74 69 6f 6e 61 6c 45 78 70 72 65 73 73 69 6f 6e tionalExpression
38880 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
38890 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
388a0 6e 20 43 6f 6e 64 69 74 69 6f 6e 61 6c 45 78 70 n ConditionalExp
388b0 72 65 73 73 69 6f 6e 28 74 65 73 74 2c 20 63 6f ression(test, co
388c0 6e 73 65 71 75 65 6e 74 2c 20 61 6c 74 65 72 6e nsequent, altern
388d0 61 74 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ate) {. .
388e0 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 this.type = sy
388f0 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 43 6f ntax_1.Syntax.Co
38900 6e 64 69 74 69 6f 6e 61 6c 45 78 70 72 65 73 73 nditionalExpress
38910 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ion;. .
38920 74 68 69 73 2e 74 65 73 74 20 3d 20 74 65 73 74 this.test = test
38930 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
38940 73 2e 63 6f 6e 73 65 71 75 65 6e 74 20 3d 20 63 s.consequent = c
38950 6f 6e 73 65 71 75 65 6e 74 3b 0a 20 20 09 20 20 onsequent;. .
38960 20 20 20 20 20 20 74 68 69 73 2e 61 6c 74 65 72 this.alter
38970 6e 61 74 65 20 3d 20 61 6c 74 65 72 6e 61 74 65 nate = alternate
38980 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 ;. . }. .
38990 20 20 72 65 74 75 72 6e 20 43 6f 6e 64 69 74 69 return Conditi
389a0 6f 6e 61 6c 45 78 70 72 65 73 73 69 6f 6e 3b 0a onalExpression;.
389b0 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
389c0 72 74 73 2e 43 6f 6e 64 69 74 69 6f 6e 61 6c 45 rts.ConditionalE
389d0 78 70 72 65 73 73 69 6f 6e 20 3d 20 43 6f 6e 64 xpression = Cond
389e0 69 74 69 6f 6e 61 6c 45 78 70 72 65 73 73 69 6f itionalExpressio
389f0 6e 3b 0a 20 20 09 76 61 72 20 43 6f 6e 74 69 6e n;. .var Contin
38a00 75 65 53 74 61 74 65 6d 65 6e 74 20 3d 20 28 66 ueStatement = (f
38a10 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
38a20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 43 6f 6e function Con
38a30 74 69 6e 75 65 53 74 61 74 65 6d 65 6e 74 28 6c tinueStatement(l
38a40 61 62 65 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 abel) {. .
38a50 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 this.type = s
38a60 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 43 yntax_1.Syntax.C
38a70 6f 6e 74 69 6e 75 65 53 74 61 74 65 6d 65 6e 74 ontinueStatement
38a80 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
38a90 73 2e 6c 61 62 65 6c 20 3d 20 6c 61 62 65 6c 3b s.label = label;
38aa0 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 . . }. .
38ab0 20 72 65 74 75 72 6e 20 43 6f 6e 74 69 6e 75 65 return Continue
38ac0 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 Statement;. .}(
38ad0 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 43 ));. .exports.C
38ae0 6f 6e 74 69 6e 75 65 53 74 61 74 65 6d 65 6e 74 ontinueStatement
38af0 20 3d 20 43 6f 6e 74 69 6e 75 65 53 74 61 74 65 = ContinueState
38b00 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 44 65 62 ment;. .var Deb
38b10 75 67 67 65 72 53 74 61 74 65 6d 65 6e 74 20 3d uggerStatement =
38b20 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
38b30 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
38b40 44 65 62 75 67 67 65 72 53 74 61 74 65 6d 65 6e DebuggerStatemen
38b50 74 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 t() {. .
38b60 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e this.type = syn
38b70 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 44 65 62 tax_1.Syntax.Deb
38b80 75 67 67 65 72 53 74 61 74 65 6d 65 6e 74 3b 0a uggerStatement;.
38b90 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 . }. .
38ba0 72 65 74 75 72 6e 20 44 65 62 75 67 67 65 72 53 return DebuggerS
38bb0 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 tatement;. .}()
38bc0 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 44 65 );. .exports.De
38bd0 62 75 67 67 65 72 53 74 61 74 65 6d 65 6e 74 20 buggerStatement
38be0 3d 20 44 65 62 75 67 67 65 72 53 74 61 74 65 6d = DebuggerStatem
38bf0 65 6e 74 3b 0a 20 20 09 76 61 72 20 44 69 72 65 ent;. .var Dire
38c00 63 74 69 76 65 20 3d 20 28 66 75 6e 63 74 69 6f ctive = (functio
38c10 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 n () {. . fu
38c20 6e 63 74 69 6f 6e 20 44 69 72 65 63 74 69 76 65 nction Directive
38c30 28 65 78 70 72 65 73 73 69 6f 6e 2c 20 64 69 72 (expression, dir
38c40 65 63 74 69 76 65 29 20 7b 0a 20 20 09 20 20 20 ective) {. .
38c50 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
38c60 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
38c70 2e 45 78 70 72 65 73 73 69 6f 6e 53 74 61 74 65 .ExpressionState
38c80 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 ment;. .
38c90 20 74 68 69 73 2e 65 78 70 72 65 73 73 69 6f 6e this.expression
38ca0 20 3d 20 65 78 70 72 65 73 73 69 6f 6e 3b 0a 20 = expression;.
38cb0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 64 . this.d
38cc0 69 72 65 63 74 69 76 65 20 3d 20 64 69 72 65 63 irective = direc
38cd0 74 69 76 65 3b 0a 20 20 09 20 20 20 20 7d 0a 20 tive;. . }.
38ce0 20 09 20 20 20 20 72 65 74 75 72 6e 20 44 69 72 . return Dir
38cf0 65 63 74 69 76 65 3b 0a 20 20 09 7d 28 29 29 3b ective;. .}());
38d00 0a 20 20 09 65 78 70 6f 72 74 73 2e 44 69 72 65 . .exports.Dire
38d10 63 74 69 76 65 20 3d 20 44 69 72 65 63 74 69 76 ctive = Directiv
38d20 65 3b 0a 20 20 09 76 61 72 20 44 6f 57 68 69 6c e;. .var DoWhil
38d30 65 53 74 61 74 65 6d 65 6e 74 20 3d 20 28 66 75 eStatement = (fu
38d40 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
38d50 20 20 20 66 75 6e 63 74 69 6f 6e 20 44 6f 57 68 function DoWh
38d60 69 6c 65 53 74 61 74 65 6d 65 6e 74 28 62 6f 64 ileStatement(bod
38d70 79 2c 20 74 65 73 74 29 20 7b 0a 20 20 09 20 20 y, test) {. .
38d80 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 this.type
38d90 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
38da0 78 2e 44 6f 57 68 69 6c 65 53 74 61 74 65 6d 65 x.DoWhileStateme
38db0 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 nt;. . t
38dc0 68 69 73 2e 62 6f 64 79 20 3d 20 62 6f 64 79 3b his.body = body;
38dd0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
38de0 2e 74 65 73 74 20 3d 20 74 65 73 74 3b 0a 20 20 .test = test;.
38df0 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 . }. . re
38e00 74 75 72 6e 20 44 6f 57 68 69 6c 65 53 74 61 74 turn DoWhileStat
38e10 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a ement;. .}());.
38e20 20 20 09 65 78 70 6f 72 74 73 2e 44 6f 57 68 69 .exports.DoWhi
38e30 6c 65 53 74 61 74 65 6d 65 6e 74 20 3d 20 44 6f leStatement = Do
38e40 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 3b 0a WhileStatement;.
38e50 20 20 09 76 61 72 20 45 6d 70 74 79 53 74 61 74 .var EmptyStat
38e60 65 6d 65 6e 74 20 3d 20 28 66 75 6e 63 74 69 6f ement = (functio
38e70 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 n () {. . fu
38e80 6e 63 74 69 6f 6e 20 45 6d 70 74 79 53 74 61 74 nction EmptyStat
38e90 65 6d 65 6e 74 28 29 20 7b 0a 20 20 09 20 20 20 ement() {. .
38ea0 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
38eb0 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
38ec0 2e 45 6d 70 74 79 53 74 61 74 65 6d 65 6e 74 3b .EmptyStatement;
38ed0 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 . . }. .
38ee0 20 72 65 74 75 72 6e 20 45 6d 70 74 79 53 74 61 return EmptySta
38ef0 74 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b tement;. .}());
38f00 0a 20 20 09 65 78 70 6f 72 74 73 2e 45 6d 70 74 . .exports.Empt
38f10 79 53 74 61 74 65 6d 65 6e 74 20 3d 20 45 6d 70 yStatement = Emp
38f20 74 79 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 tyStatement;. .
38f30 76 61 72 20 45 78 70 6f 72 74 41 6c 6c 44 65 63 var ExportAllDec
38f40 6c 61 72 61 74 69 6f 6e 20 3d 20 28 66 75 6e 63 laration = (func
38f50 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
38f60 20 66 75 6e 63 74 69 6f 6e 20 45 78 70 6f 72 74 function Export
38f70 41 6c 6c 44 65 63 6c 61 72 61 74 69 6f 6e 28 73 AllDeclaration(s
38f80 6f 75 72 63 65 29 20 7b 0a 20 20 09 20 20 20 20 ource) {. .
38f90 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 this.type =
38fa0 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e syntax_1.Syntax.
38fb0 45 78 70 6f 72 74 41 6c 6c 44 65 63 6c 61 72 61 ExportAllDeclara
38fc0 74 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 tion;. .
38fd0 20 74 68 69 73 2e 73 6f 75 72 63 65 20 3d 20 73 this.source = s
38fe0 6f 75 72 63 65 3b 0a 20 20 09 20 20 20 20 7d 0a ource;. . }.
38ff0 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 45 78 . return Ex
39000 70 6f 72 74 41 6c 6c 44 65 63 6c 61 72 61 74 69 portAllDeclarati
39010 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 on;. .}());. .
39020 65 78 70 6f 72 74 73 2e 45 78 70 6f 72 74 41 6c exports.ExportAl
39030 6c 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 45 lDeclaration = E
39040 78 70 6f 72 74 41 6c 6c 44 65 63 6c 61 72 61 74 xportAllDeclarat
39050 69 6f 6e 3b 0a 20 20 09 76 61 72 20 45 78 70 6f ion;. .var Expo
39060 72 74 44 65 66 61 75 6c 74 44 65 63 6c 61 72 61 rtDefaultDeclara
39070 74 69 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e tion = (function
39080 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e () {. . fun
39090 63 74 69 6f 6e 20 45 78 70 6f 72 74 44 65 66 61 ction ExportDefa
390a0 75 6c 74 44 65 63 6c 61 72 61 74 69 6f 6e 28 64 ultDeclaration(d
390b0 65 63 6c 61 72 61 74 69 6f 6e 29 20 7b 0a 20 20 eclaration) {.
390c0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 . this.ty
390d0 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 pe = syntax_1.Sy
390e0 6e 74 61 78 2e 45 78 70 6f 72 74 44 65 66 61 75 ntax.ExportDefau
390f0 6c 74 44 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 ltDeclaration;.
39100 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 64 . this.d
39110 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 64 65 63 eclaration = dec
39120 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 09 20 20 20 laration;. .
39130 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
39140 20 45 78 70 6f 72 74 44 65 66 61 75 6c 74 44 65 ExportDefaultDe
39150 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 09 7d 28 claration;. .}(
39160 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 45 ));. .exports.E
39170 78 70 6f 72 74 44 65 66 61 75 6c 74 44 65 63 6c xportDefaultDecl
39180 61 72 61 74 69 6f 6e 20 3d 20 45 78 70 6f 72 74 aration = Export
39190 44 65 66 61 75 6c 74 44 65 63 6c 61 72 61 74 69 DefaultDeclarati
391a0 6f 6e 3b 0a 20 20 09 76 61 72 20 45 78 70 6f 72 on;. .var Expor
391b0 74 4e 61 6d 65 64 44 65 63 6c 61 72 61 74 69 6f tNamedDeclaratio
391c0 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 n = (function ()
391d0 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
391e0 6f 6e 20 45 78 70 6f 72 74 4e 61 6d 65 64 44 65 on ExportNamedDe
391f0 63 6c 61 72 61 74 69 6f 6e 28 64 65 63 6c 61 72 claration(declar
39200 61 74 69 6f 6e 2c 20 73 70 65 63 69 66 69 65 72 ation, specifier
39210 73 2c 20 73 6f 75 72 63 65 29 20 7b 0a 20 20 09 s, source) {. .
39220 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 this.typ
39230 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e e = syntax_1.Syn
39240 74 61 78 2e 45 78 70 6f 72 74 4e 61 6d 65 64 44 tax.ExportNamedD
39250 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 09 20 eclaration;. .
39260 20 20 20 20 20 20 20 74 68 69 73 2e 64 65 63 6c this.decl
39270 61 72 61 74 69 6f 6e 20 3d 20 64 65 63 6c 61 72 aration = declar
39280 61 74 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 ation;. .
39290 20 20 74 68 69 73 2e 73 70 65 63 69 66 69 65 72 this.specifier
392a0 73 20 3d 20 73 70 65 63 69 66 69 65 72 73 3b 0a s = specifiers;.
392b0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
392c0 73 6f 75 72 63 65 20 3d 20 73 6f 75 72 63 65 3b source = source;
392d0 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 . . }. .
392e0 20 72 65 74 75 72 6e 20 45 78 70 6f 72 74 4e 61 return ExportNa
392f0 6d 65 64 44 65 63 6c 61 72 61 74 69 6f 6e 3b 0a medDeclaration;.
39300 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
39310 72 74 73 2e 45 78 70 6f 72 74 4e 61 6d 65 64 44 rts.ExportNamedD
39320 65 63 6c 61 72 61 74 69 6f 6e 20 3d 20 45 78 70 eclaration = Exp
39330 6f 72 74 4e 61 6d 65 64 44 65 63 6c 61 72 61 74 ortNamedDeclarat
39340 69 6f 6e 3b 0a 20 20 09 76 61 72 20 45 78 70 6f ion;. .var Expo
39350 72 74 53 70 65 63 69 66 69 65 72 20 3d 20 28 66 rtSpecifier = (f
39360 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
39370 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 45 78 70 function Exp
39380 6f 72 74 53 70 65 63 69 66 69 65 72 28 6c 6f 63 ortSpecifier(loc
39390 61 6c 2c 20 65 78 70 6f 72 74 65 64 29 20 7b 0a al, exported) {.
393a0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
393b0 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
393c0 53 79 6e 74 61 78 2e 45 78 70 6f 72 74 53 70 65 Syntax.ExportSpe
393d0 63 69 66 69 65 72 3b 0a 20 20 09 20 20 20 20 20 cifier;. .
393e0 20 20 20 74 68 69 73 2e 65 78 70 6f 72 74 65 64 this.exported
393f0 20 3d 20 65 78 70 6f 72 74 65 64 3b 0a 20 20 09 = exported;. .
39400 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 63 this.loc
39410 61 6c 20 3d 20 6c 6f 63 61 6c 3b 0a 20 20 09 20 al = local;. .
39420 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 }. . retu
39430 72 6e 20 45 78 70 6f 72 74 53 70 65 63 69 66 69 rn ExportSpecifi
39440 65 72 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 er;. .}());. .
39450 65 78 70 6f 72 74 73 2e 45 78 70 6f 72 74 53 70 exports.ExportSp
39460 65 63 69 66 69 65 72 20 3d 20 45 78 70 6f 72 74 ecifier = Export
39470 53 70 65 63 69 66 69 65 72 3b 0a 20 20 09 76 61 Specifier;. .va
39480 72 20 45 78 70 72 65 73 73 69 6f 6e 53 74 61 74 r ExpressionStat
39490 65 6d 65 6e 74 20 3d 20 28 66 75 6e 63 74 69 6f ement = (functio
394a0 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 n () {. . fu
394b0 6e 63 74 69 6f 6e 20 45 78 70 72 65 73 73 69 6f nction Expressio
394c0 6e 53 74 61 74 65 6d 65 6e 74 28 65 78 70 72 65 nStatement(expre
394d0 73 73 69 6f 6e 29 20 7b 0a 20 20 09 20 20 20 20 ssion) {. .
394e0 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 this.type =
394f0 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e syntax_1.Syntax.
39500 45 78 70 72 65 73 73 69 6f 6e 53 74 61 74 65 6d ExpressionStatem
39510 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ent;. .
39520 74 68 69 73 2e 65 78 70 72 65 73 73 69 6f 6e 20 this.expression
39530 3d 20 65 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 = expression;.
39540 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 . }. . re
39550 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 53 turn ExpressionS
39560 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 tatement;. .}()
39570 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 45 78 );. .exports.Ex
39580 70 72 65 73 73 69 6f 6e 53 74 61 74 65 6d 65 6e pressionStatemen
39590 74 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 53 74 t = ExpressionSt
395a0 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 atement;. .var
395b0 46 6f 72 49 6e 53 74 61 74 65 6d 65 6e 74 20 3d ForInStatement =
395c0 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
395d0 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
395e0 46 6f 72 49 6e 53 74 61 74 65 6d 65 6e 74 28 6c ForInStatement(l
395f0 65 66 74 2c 20 72 69 67 68 74 2c 20 62 6f 64 79 eft, right, body
39600 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
39610 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 his.type = synta
39620 78 5f 31 2e 53 79 6e 74 61 78 2e 46 6f 72 49 6e x_1.Syntax.ForIn
39630 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 20 20 Statement;. .
39640 20 20 20 20 20 20 74 68 69 73 2e 6c 65 66 74 20 this.left
39650 3d 20 6c 65 66 74 3b 0a 20 20 09 20 20 20 20 20 = left;. .
39660 20 20 20 74 68 69 73 2e 72 69 67 68 74 20 3d 20 this.right =
39670 72 69 67 68 74 3b 0a 20 20 09 20 20 20 20 20 20 right;. .
39680 20 20 74 68 69 73 2e 62 6f 64 79 20 3d 20 62 6f this.body = bo
39690 64 79 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 dy;. . t
396a0 68 69 73 2e 65 61 63 68 20 3d 20 66 61 6c 73 65 his.each = false
396b0 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 ;. . }. .
396c0 20 20 72 65 74 75 72 6e 20 46 6f 72 49 6e 53 74 return ForInSt
396d0 61 74 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 atement;. .}())
396e0 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 46 6f 72 ;. .exports.For
396f0 49 6e 53 74 61 74 65 6d 65 6e 74 20 3d 20 46 6f InStatement = Fo
39700 72 49 6e 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 rInStatement;.
39710 09 76 61 72 20 46 6f 72 4f 66 53 74 61 74 65 6d .var ForOfStatem
39720 65 6e 74 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 ent = (function
39730 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 () {. . func
39740 74 69 6f 6e 20 46 6f 72 4f 66 53 74 61 74 65 6d tion ForOfStatem
39750 65 6e 74 28 6c 65 66 74 2c 20 72 69 67 68 74 2c ent(left, right,
39760 20 62 6f 64 79 29 20 7b 0a 20 20 09 20 20 20 20 body) {. .
39770 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 this.type =
39780 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e syntax_1.Syntax.
39790 46 6f 72 4f 66 53 74 61 74 65 6d 65 6e 74 3b 0a ForOfStatement;.
397a0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
397b0 6c 65 66 74 20 3d 20 6c 65 66 74 3b 0a 20 20 09 left = left;. .
397c0 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 69 67 this.rig
397d0 68 74 20 3d 20 72 69 67 68 74 3b 0a 20 20 09 20 ht = right;. .
397e0 20 20 20 20 20 20 20 74 68 69 73 2e 62 6f 64 79 this.body
397f0 20 3d 20 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 = body;. .
39800 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
39810 46 6f 72 4f 66 53 74 61 74 65 6d 65 6e 74 3b 0a ForOfStatement;.
39820 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
39830 72 74 73 2e 46 6f 72 4f 66 53 74 61 74 65 6d 65 rts.ForOfStateme
39840 6e 74 20 3d 20 46 6f 72 4f 66 53 74 61 74 65 6d nt = ForOfStatem
39850 65 6e 74 3b 0a 20 20 09 76 61 72 20 46 6f 72 53 ent;. .var ForS
39860 74 61 74 65 6d 65 6e 74 20 3d 20 28 66 75 6e 63 tatement = (func
39870 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
39880 20 66 75 6e 63 74 69 6f 6e 20 46 6f 72 53 74 61 function ForSta
39890 74 65 6d 65 6e 74 28 69 6e 69 74 2c 20 74 65 73 tement(init, tes
398a0 74 2c 20 75 70 64 61 74 65 2c 20 62 6f 64 79 29 t, update, body)
398b0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
398c0 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 is.type = syntax
398d0 5f 31 2e 53 79 6e 74 61 78 2e 46 6f 72 53 74 61 _1.Syntax.ForSta
398e0 74 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 tement;. .
398f0 20 20 20 74 68 69 73 2e 69 6e 69 74 20 3d 20 69 this.init = i
39900 6e 69 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 nit;. .
39910 74 68 69 73 2e 74 65 73 74 20 3d 20 74 65 73 74 this.test = test
39920 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
39930 73 2e 75 70 64 61 74 65 20 3d 20 75 70 64 61 74 s.update = updat
39940 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 e;. . th
39950 69 73 2e 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a is.body = body;.
39960 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 . }. .
39970 72 65 74 75 72 6e 20 46 6f 72 53 74 61 74 65 6d return ForStatem
39980 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 ent;. .}());.
39990 09 65 78 70 6f 72 74 73 2e 46 6f 72 53 74 61 74 .exports.ForStat
399a0 65 6d 65 6e 74 20 3d 20 46 6f 72 53 74 61 74 65 ement = ForState
399b0 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 46 75 6e ment;. .var Fun
399c0 63 74 69 6f 6e 44 65 63 6c 61 72 61 74 69 6f 6e ctionDeclaration
399d0 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
399e0 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
399f0 6e 20 46 75 6e 63 74 69 6f 6e 44 65 63 6c 61 72 n FunctionDeclar
39a00 61 74 69 6f 6e 28 69 64 2c 20 70 61 72 61 6d 73 ation(id, params
39a10 2c 20 62 6f 64 79 2c 20 67 65 6e 65 72 61 74 6f , body, generato
39a20 72 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 r) {. .
39a30 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 this.type = synt
39a40 61 78 5f 31 2e 53 79 6e 74 61 78 2e 46 75 6e 63 ax_1.Syntax.Func
39a50 74 69 6f 6e 44 65 63 6c 61 72 61 74 69 6f 6e 3b tionDeclaration;
39a60 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
39a70 2e 69 64 20 3d 20 69 64 3b 0a 20 20 09 20 20 20 .id = id;. .
39a80 20 20 20 20 20 74 68 69 73 2e 70 61 72 61 6d 73 this.params
39a90 20 3d 20 70 61 72 61 6d 73 3b 0a 20 20 09 20 20 = params;. .
39aa0 20 20 20 20 20 20 74 68 69 73 2e 62 6f 64 79 20 this.body
39ab0 3d 20 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 20 = body;. .
39ac0 20 20 20 74 68 69 73 2e 67 65 6e 65 72 61 74 6f this.generato
39ad0 72 20 3d 20 67 65 6e 65 72 61 74 6f 72 3b 0a 20 r = generator;.
39ae0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 . this.e
39af0 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 61 6c 73 xpression = fals
39b00 65 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 e;. . }. .
39b10 20 20 20 72 65 74 75 72 6e 20 46 75 6e 63 74 69 return Functi
39b20 6f 6e 44 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 onDeclaration;.
39b30 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
39b40 74 73 2e 46 75 6e 63 74 69 6f 6e 44 65 63 6c 61 ts.FunctionDecla
39b50 72 61 74 69 6f 6e 20 3d 20 46 75 6e 63 74 69 6f ration = Functio
39b60 6e 44 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 nDeclaration;.
39b70 09 76 61 72 20 46 75 6e 63 74 69 6f 6e 45 78 70 .var FunctionExp
39b80 72 65 73 73 69 6f 6e 20 3d 20 28 66 75 6e 63 74 ression = (funct
39b90 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
39ba0 66 75 6e 63 74 69 6f 6e 20 46 75 6e 63 74 69 6f function Functio
39bb0 6e 45 78 70 72 65 73 73 69 6f 6e 28 69 64 2c 20 nExpression(id,
39bc0 70 61 72 61 6d 73 2c 20 62 6f 64 79 2c 20 67 65 params, body, ge
39bd0 6e 65 72 61 74 6f 72 29 20 7b 0a 20 20 09 20 20 nerator) {. .
39be0 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 this.type
39bf0 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
39c00 78 2e 46 75 6e 63 74 69 6f 6e 45 78 70 72 65 73 x.FunctionExpres
39c10 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 sion;. .
39c20 20 74 68 69 73 2e 69 64 20 3d 20 69 64 3b 0a 20 this.id = id;.
39c30 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 70 . this.p
39c40 61 72 61 6d 73 20 3d 20 70 61 72 61 6d 73 3b 0a arams = params;.
39c50 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
39c60 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a 20 20 09 body = body;. .
39c70 20 20 20 20 20 20 20 20 74 68 69 73 2e 67 65 6e this.gen
39c80 65 72 61 74 6f 72 20 3d 20 67 65 6e 65 72 61 74 erator = generat
39c90 6f 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 or;. . t
39ca0 68 69 73 2e 65 78 70 72 65 73 73 69 6f 6e 20 3d his.expression =
39cb0 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 7d false;. . }
39cc0 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 46 . . return F
39cd0 75 6e 63 74 69 6f 6e 45 78 70 72 65 73 73 69 6f unctionExpressio
39ce0 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 n;. .}());. .e
39cf0 78 70 6f 72 74 73 2e 46 75 6e 63 74 69 6f 6e 45 xports.FunctionE
39d00 78 70 72 65 73 73 69 6f 6e 20 3d 20 46 75 6e 63 xpression = Func
39d10 74 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 3b 0a tionExpression;.
39d20 20 20 09 76 61 72 20 49 64 65 6e 74 69 66 69 65 .var Identifie
39d30 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 r = (function ()
39d40 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
39d50 6f 6e 20 49 64 65 6e 74 69 66 69 65 72 28 6e 61 on Identifier(na
39d60 6d 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 me) {. .
39d70 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e this.type = syn
39d80 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 49 64 65 tax_1.Syntax.Ide
39d90 6e 74 69 66 69 65 72 3b 0a 20 20 09 20 20 20 20 ntifier;. .
39da0 20 20 20 20 74 68 69 73 2e 6e 61 6d 65 20 3d 20 this.name =
39db0 6e 61 6d 65 3b 0a 20 20 09 20 20 20 20 7d 0a 20 name;. . }.
39dc0 20 09 20 20 20 20 72 65 74 75 72 6e 20 49 64 65 . return Ide
39dd0 6e 74 69 66 69 65 72 3b 0a 20 20 09 7d 28 29 29 ntifier;. .}())
39de0 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 49 64 65 ;. .exports.Ide
39df0 6e 74 69 66 69 65 72 20 3d 20 49 64 65 6e 74 69 ntifier = Identi
39e00 66 69 65 72 3b 0a 20 20 09 76 61 72 20 49 66 53 fier;. .var IfS
39e10 74 61 74 65 6d 65 6e 74 20 3d 20 28 66 75 6e 63 tatement = (func
39e20 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
39e30 20 66 75 6e 63 74 69 6f 6e 20 49 66 53 74 61 74 function IfStat
39e40 65 6d 65 6e 74 28 74 65 73 74 2c 20 63 6f 6e 73 ement(test, cons
39e50 65 71 75 65 6e 74 2c 20 61 6c 74 65 72 6e 61 74 equent, alternat
39e60 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 e) {. .
39e70 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 this.type = synt
39e80 61 78 5f 31 2e 53 79 6e 74 61 78 2e 49 66 53 74 ax_1.Syntax.IfSt
39e90 61 74 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 atement;. .
39ea0 20 20 20 20 74 68 69 73 2e 74 65 73 74 20 3d 20 this.test =
39eb0 74 65 73 74 3b 0a 20 20 09 20 20 20 20 20 20 20 test;. .
39ec0 20 74 68 69 73 2e 63 6f 6e 73 65 71 75 65 6e 74 this.consequent
39ed0 20 3d 20 63 6f 6e 73 65 71 75 65 6e 74 3b 0a 20 = consequent;.
39ee0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 61 . this.a
39ef0 6c 74 65 72 6e 61 74 65 20 3d 20 61 6c 74 65 72 lternate = alter
39f00 6e 61 74 65 3b 0a 20 20 09 20 20 20 20 7d 0a 20 nate;. . }.
39f10 20 09 20 20 20 20 72 65 74 75 72 6e 20 49 66 53 . return IfS
39f20 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 tatement;. .}()
39f30 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 49 66 );. .exports.If
39f40 53 74 61 74 65 6d 65 6e 74 20 3d 20 49 66 53 74 Statement = IfSt
39f50 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 atement;. .var
39f60 49 6d 70 6f 72 74 44 65 63 6c 61 72 61 74 69 6f ImportDeclaratio
39f70 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 n = (function ()
39f80 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
39f90 6f 6e 20 49 6d 70 6f 72 74 44 65 63 6c 61 72 61 on ImportDeclara
39fa0 74 69 6f 6e 28 73 70 65 63 69 66 69 65 72 73 2c tion(specifiers,
39fb0 20 73 6f 75 72 63 65 29 20 7b 0a 20 20 09 20 20 source) {. .
39fc0 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 this.type
39fd0 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
39fe0 78 2e 49 6d 70 6f 72 74 44 65 63 6c 61 72 61 74 x.ImportDeclarat
39ff0 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ion;. .
3a000 74 68 69 73 2e 73 70 65 63 69 66 69 65 72 73 20 this.specifiers
3a010 3d 20 73 70 65 63 69 66 69 65 72 73 3b 0a 20 20 = specifiers;.
3a020 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 6f . this.so
3a030 75 72 63 65 20 3d 20 73 6f 75 72 63 65 3b 0a 20 urce = source;.
3a040 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 . }. . r
3a050 65 74 75 72 6e 20 49 6d 70 6f 72 74 44 65 63 6c eturn ImportDecl
3a060 61 72 61 74 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 aration;. .}())
3a070 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 49 6d 70 ;. .exports.Imp
3a080 6f 72 74 44 65 63 6c 61 72 61 74 69 6f 6e 20 3d ortDeclaration =
3a090 20 49 6d 70 6f 72 74 44 65 63 6c 61 72 61 74 69 ImportDeclarati
3a0a0 6f 6e 3b 0a 20 20 09 76 61 72 20 49 6d 70 6f 72 on;. .var Impor
3a0b0 74 44 65 66 61 75 6c 74 53 70 65 63 69 66 69 65 tDefaultSpecifie
3a0c0 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 r = (function ()
3a0d0 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
3a0e0 6f 6e 20 49 6d 70 6f 72 74 44 65 66 61 75 6c 74 on ImportDefault
3a0f0 53 70 65 63 69 66 69 65 72 28 6c 6f 63 61 6c 29 Specifier(local)
3a100 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
3a110 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 is.type = syntax
3a120 5f 31 2e 53 79 6e 74 61 78 2e 49 6d 70 6f 72 74 _1.Syntax.Import
3a130 44 65 66 61 75 6c 74 53 70 65 63 69 66 69 65 72 DefaultSpecifier
3a140 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
3a150 73 2e 6c 6f 63 61 6c 20 3d 20 6c 6f 63 61 6c 3b s.local = local;
3a160 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 . . }. .
3a170 20 72 65 74 75 72 6e 20 49 6d 70 6f 72 74 44 65 return ImportDe
3a180 66 61 75 6c 74 53 70 65 63 69 66 69 65 72 3b 0a faultSpecifier;.
3a190 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
3a1a0 72 74 73 2e 49 6d 70 6f 72 74 44 65 66 61 75 6c rts.ImportDefaul
3a1b0 74 53 70 65 63 69 66 69 65 72 20 3d 20 49 6d 70 tSpecifier = Imp
3a1c0 6f 72 74 44 65 66 61 75 6c 74 53 70 65 63 69 66 ortDefaultSpecif
3a1d0 69 65 72 3b 0a 20 20 09 76 61 72 20 49 6d 70 6f ier;. .var Impo
3a1e0 72 74 4e 61 6d 65 73 70 61 63 65 53 70 65 63 69 rtNamespaceSpeci
3a1f0 66 69 65 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e fier = (function
3a200 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e () {. . fun
3a210 63 74 69 6f 6e 20 49 6d 70 6f 72 74 4e 61 6d 65 ction ImportName
3a220 73 70 61 63 65 53 70 65 63 69 66 69 65 72 28 6c spaceSpecifier(l
3a230 6f 63 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 ocal) {. .
3a240 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 this.type = s
3a250 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 49 yntax_1.Syntax.I
3a260 6d 70 6f 72 74 4e 61 6d 65 73 70 61 63 65 53 70 mportNamespaceSp
3a270 65 63 69 66 69 65 72 3b 0a 20 20 09 20 20 20 20 ecifier;. .
3a280 20 20 20 20 74 68 69 73 2e 6c 6f 63 61 6c 20 3d this.local =
3a290 20 6c 6f 63 61 6c 3b 0a 20 20 09 20 20 20 20 7d local;. . }
3a2a0 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 49 . . return I
3a2b0 6d 70 6f 72 74 4e 61 6d 65 73 70 61 63 65 53 70 mportNamespaceSp
3a2c0 65 63 69 66 69 65 72 3b 0a 20 20 09 7d 28 29 29 ecifier;. .}())
3a2d0 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 49 6d 70 ;. .exports.Imp
3a2e0 6f 72 74 4e 61 6d 65 73 70 61 63 65 53 70 65 63 ortNamespaceSpec
3a2f0 69 66 69 65 72 20 3d 20 49 6d 70 6f 72 74 4e 61 ifier = ImportNa
3a300 6d 65 73 70 61 63 65 53 70 65 63 69 66 69 65 72 mespaceSpecifier
3a310 3b 0a 20 20 09 76 61 72 20 49 6d 70 6f 72 74 53 ;. .var ImportS
3a320 70 65 63 69 66 69 65 72 20 3d 20 28 66 75 6e 63 pecifier = (func
3a330 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
3a340 20 66 75 6e 63 74 69 6f 6e 20 49 6d 70 6f 72 74 function Import
3a350 53 70 65 63 69 66 69 65 72 28 6c 6f 63 61 6c 2c Specifier(local,
3a360 20 69 6d 70 6f 72 74 65 64 29 20 7b 0a 20 20 09 imported) {. .
3a370 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 this.typ
3a380 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e e = syntax_1.Syn
3a390 74 61 78 2e 49 6d 70 6f 72 74 53 70 65 63 69 66 tax.ImportSpecif
3a3a0 69 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ier;. .
3a3b0 74 68 69 73 2e 6c 6f 63 61 6c 20 3d 20 6c 6f 63 this.local = loc
3a3c0 61 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 al;. . t
3a3d0 68 69 73 2e 69 6d 70 6f 72 74 65 64 20 3d 20 69 his.imported = i
3a3e0 6d 70 6f 72 74 65 64 3b 0a 20 20 09 20 20 20 20 mported;. .
3a3f0 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
3a400 49 6d 70 6f 72 74 53 70 65 63 69 66 69 65 72 3b ImportSpecifier;
3a410 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 . .}());. .exp
3a420 6f 72 74 73 2e 49 6d 70 6f 72 74 53 70 65 63 69 orts.ImportSpeci
3a430 66 69 65 72 20 3d 20 49 6d 70 6f 72 74 53 70 65 fier = ImportSpe
3a440 63 69 66 69 65 72 3b 0a 20 20 09 76 61 72 20 4c cifier;. .var L
3a450 61 62 65 6c 65 64 53 74 61 74 65 6d 65 6e 74 20 abeledStatement
3a460 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = (function () {
3a470 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e . . function
3a480 20 4c 61 62 65 6c 65 64 53 74 61 74 65 6d 65 6e LabeledStatemen
3a490 74 28 6c 61 62 65 6c 2c 20 62 6f 64 79 29 20 7b t(label, body) {
3a4a0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3a4b0 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 .type = syntax_1
3a4c0 2e 53 79 6e 74 61 78 2e 4c 61 62 65 6c 65 64 53 .Syntax.LabeledS
3a4d0 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 tatement;. .
3a4e0 20 20 20 20 20 74 68 69 73 2e 6c 61 62 65 6c 20 this.label
3a4f0 3d 20 6c 61 62 65 6c 3b 0a 20 20 09 20 20 20 20 = label;. .
3a500 20 20 20 20 74 68 69 73 2e 62 6f 64 79 20 3d 20 this.body =
3a510 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 7d 0a 20 body;. . }.
3a520 20 09 20 20 20 20 72 65 74 75 72 6e 20 4c 61 62 . return Lab
3a530 65 6c 65 64 53 74 61 74 65 6d 65 6e 74 3b 0a 20 eledStatement;.
3a540 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
3a550 74 73 2e 4c 61 62 65 6c 65 64 53 74 61 74 65 6d ts.LabeledStatem
3a560 65 6e 74 20 3d 20 4c 61 62 65 6c 65 64 53 74 61 ent = LabeledSta
3a570 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 4c tement;. .var L
3a580 69 74 65 72 61 6c 20 3d 20 28 66 75 6e 63 74 69 iteral = (functi
3a590 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 on () {. . f
3a5a0 75 6e 63 74 69 6f 6e 20 4c 69 74 65 72 61 6c 28 unction Literal(
3a5b0 76 61 6c 75 65 2c 20 72 61 77 29 20 7b 0a 20 20 value, raw) {.
3a5c0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 . this.ty
3a5d0 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 pe = syntax_1.Sy
3a5e0 6e 74 61 78 2e 4c 69 74 65 72 61 6c 3b 0a 20 20 ntax.Literal;.
3a5f0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 76 61 . this.va
3a600 6c 75 65 20 3d 20 76 61 6c 75 65 3b 0a 20 20 09 lue = value;. .
3a610 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 61 77 this.raw
3a620 20 3d 20 72 61 77 3b 0a 20 20 09 20 20 20 20 7d = raw;. . }
3a630 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 4c . . return L
3a640 69 74 65 72 61 6c 3b 0a 20 20 09 7d 28 29 29 3b iteral;. .}());
3a650 0a 20 20 09 65 78 70 6f 72 74 73 2e 4c 69 74 65 . .exports.Lite
3a660 72 61 6c 20 3d 20 4c 69 74 65 72 61 6c 3b 0a 20 ral = Literal;.
3a670 20 09 76 61 72 20 4d 65 74 61 50 72 6f 70 65 72 .var MetaProper
3a680 74 79 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 ty = (function (
3a690 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 ) {. . funct
3a6a0 69 6f 6e 20 4d 65 74 61 50 72 6f 70 65 72 74 79 ion MetaProperty
3a6b0 28 6d 65 74 61 2c 20 70 72 6f 70 65 72 74 79 29 (meta, property)
3a6c0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
3a6d0 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 is.type = syntax
3a6e0 5f 31 2e 53 79 6e 74 61 78 2e 4d 65 74 61 50 72 _1.Syntax.MetaPr
3a6f0 6f 70 65 72 74 79 3b 0a 20 20 09 20 20 20 20 20 operty;. .
3a700 20 20 20 74 68 69 73 2e 6d 65 74 61 20 3d 20 6d this.meta = m
3a710 65 74 61 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eta;. .
3a720 74 68 69 73 2e 70 72 6f 70 65 72 74 79 20 3d 20 this.property =
3a730 70 72 6f 70 65 72 74 79 3b 0a 20 20 09 20 20 20 property;. .
3a740 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
3a750 20 4d 65 74 61 50 72 6f 70 65 72 74 79 3b 0a 20 MetaProperty;.
3a760 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
3a770 74 73 2e 4d 65 74 61 50 72 6f 70 65 72 74 79 20 ts.MetaProperty
3a780 3d 20 4d 65 74 61 50 72 6f 70 65 72 74 79 3b 0a = MetaProperty;.
3a790 20 20 09 76 61 72 20 4d 65 74 68 6f 64 44 65 66 .var MethodDef
3a7a0 69 6e 69 74 69 6f 6e 20 3d 20 28 66 75 6e 63 74 inition = (funct
3a7b0 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
3a7c0 66 75 6e 63 74 69 6f 6e 20 4d 65 74 68 6f 64 44 function MethodD
3a7d0 65 66 69 6e 69 74 69 6f 6e 28 6b 65 79 2c 20 63 efinition(key, c
3a7e0 6f 6d 70 75 74 65 64 2c 20 76 61 6c 75 65 2c 20 omputed, value,
3a7f0 6b 69 6e 64 2c 20 69 73 53 74 61 74 69 63 29 20 kind, isStatic)
3a800 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 {. . thi
3a810 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f s.type = syntax_
3a820 31 2e 53 79 6e 74 61 78 2e 4d 65 74 68 6f 64 44 1.Syntax.MethodD
3a830 65 66 69 6e 69 74 69 6f 6e 3b 0a 20 20 09 20 20 efinition;. .
3a840 20 20 20 20 20 20 74 68 69 73 2e 6b 65 79 20 3d this.key =
3a850 20 6b 65 79 3b 0a 20 20 09 20 20 20 20 20 20 20 key;. .
3a860 20 74 68 69 73 2e 63 6f 6d 70 75 74 65 64 20 3d this.computed =
3a870 20 63 6f 6d 70 75 74 65 64 3b 0a 20 20 09 20 20 computed;. .
3a880 20 20 20 20 20 20 74 68 69 73 2e 76 61 6c 75 65 this.value
3a890 20 3d 20 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 = value;. .
3a8a0 20 20 20 20 20 74 68 69 73 2e 6b 69 6e 64 20 3d this.kind =
3a8b0 20 6b 69 6e 64 3b 0a 20 20 09 20 20 20 20 20 20 kind;. .
3a8c0 20 20 74 68 69 73 2e 73 74 61 74 69 63 20 3d 20 this.static =
3a8d0 69 73 53 74 61 74 69 63 3b 0a 20 20 09 20 20 20 isStatic;. .
3a8e0 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
3a8f0 20 4d 65 74 68 6f 64 44 65 66 69 6e 69 74 69 6f MethodDefinitio
3a900 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 n;. .}());. .e
3a910 78 70 6f 72 74 73 2e 4d 65 74 68 6f 64 44 65 66 xports.MethodDef
3a920 69 6e 69 74 69 6f 6e 20 3d 20 4d 65 74 68 6f 64 inition = Method
3a930 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 20 20 09 76 Definition;. .v
3a940 61 72 20 4e 65 77 45 78 70 72 65 73 73 69 6f 6e ar NewExpression
3a950 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
3a960 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
3a970 6e 20 4e 65 77 45 78 70 72 65 73 73 69 6f 6e 28 n NewExpression(
3a980 63 61 6c 6c 65 65 2c 20 61 72 67 73 29 20 7b 0a callee, args) {.
3a990 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3a9a0 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
3a9b0 53 79 6e 74 61 78 2e 4e 65 77 45 78 70 72 65 73 Syntax.NewExpres
3a9c0 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 sion;. .
3a9d0 20 74 68 69 73 2e 63 61 6c 6c 65 65 20 3d 20 63 this.callee = c
3a9e0 61 6c 6c 65 65 3b 0a 20 20 09 20 20 20 20 20 20 allee;. .
3a9f0 20 20 74 68 69 73 2e 61 72 67 75 6d 65 6e 74 73 this.arguments
3aa00 20 3d 20 61 72 67 73 3b 0a 20 20 09 20 20 20 20 = args;. .
3aa10 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
3aa20 4e 65 77 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 NewExpression;.
3aa30 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
3aa40 74 73 2e 4e 65 77 45 78 70 72 65 73 73 69 6f 6e ts.NewExpression
3aa50 20 3d 20 4e 65 77 45 78 70 72 65 73 73 69 6f 6e = NewExpression
3aa60 3b 0a 20 20 09 76 61 72 20 4f 62 6a 65 63 74 45 ;. .var ObjectE
3aa70 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 66 75 6e xpression = (fun
3aa80 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
3aa90 20 20 66 75 6e 63 74 69 6f 6e 20 4f 62 6a 65 63 function Objec
3aaa0 74 45 78 70 72 65 73 73 69 6f 6e 28 70 72 6f 70 tExpression(prop
3aab0 65 72 74 69 65 73 29 20 7b 0a 20 20 09 20 20 20 erties) {. .
3aac0 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
3aad0 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
3aae0 2e 4f 62 6a 65 63 74 45 78 70 72 65 73 73 69 6f .ObjectExpressio
3aaf0 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 n;. . th
3ab00 69 73 2e 70 72 6f 70 65 72 74 69 65 73 20 3d 20 is.properties =
3ab10 70 72 6f 70 65 72 74 69 65 73 3b 0a 20 20 09 20 properties;. .
3ab20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 }. . retu
3ab30 72 6e 20 4f 62 6a 65 63 74 45 78 70 72 65 73 73 rn ObjectExpress
3ab40 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 ion;. .}());.
3ab50 09 65 78 70 6f 72 74 73 2e 4f 62 6a 65 63 74 45 .exports.ObjectE
3ab60 78 70 72 65 73 73 69 6f 6e 20 3d 20 4f 62 6a 65 xpression = Obje
3ab70 63 74 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 ctExpression;.
3ab80 09 76 61 72 20 4f 62 6a 65 63 74 50 61 74 74 65 .var ObjectPatte
3ab90 72 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 rn = (function (
3aba0 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 ) {. . funct
3abb0 69 6f 6e 20 4f 62 6a 65 63 74 50 61 74 74 65 72 ion ObjectPatter
3abc0 6e 28 70 72 6f 70 65 72 74 69 65 73 29 20 7b 0a n(properties) {.
3abd0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3abe0 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
3abf0 53 79 6e 74 61 78 2e 4f 62 6a 65 63 74 50 61 74 Syntax.ObjectPat
3ac00 74 65 72 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 tern;. .
3ac10 20 74 68 69 73 2e 70 72 6f 70 65 72 74 69 65 73 this.properties
3ac20 20 3d 20 70 72 6f 70 65 72 74 69 65 73 3b 0a 20 = properties;.
3ac30 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 . }. . r
3ac40 65 74 75 72 6e 20 4f 62 6a 65 63 74 50 61 74 74 eturn ObjectPatt
3ac50 65 72 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 ern;. .}());.
3ac60 09 65 78 70 6f 72 74 73 2e 4f 62 6a 65 63 74 50 .exports.ObjectP
3ac70 61 74 74 65 72 6e 20 3d 20 4f 62 6a 65 63 74 50 attern = ObjectP
3ac80 61 74 74 65 72 6e 3b 0a 20 20 09 76 61 72 20 50 attern;. .var P
3ac90 72 6f 67 72 61 6d 20 3d 20 28 66 75 6e 63 74 69 rogram = (functi
3aca0 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 on () {. . f
3acb0 75 6e 63 74 69 6f 6e 20 50 72 6f 67 72 61 6d 28 unction Program(
3acc0 62 6f 64 79 2c 20 73 6f 75 72 63 65 54 79 70 65 body, sourceType
3acd0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
3ace0 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 his.type = synta
3acf0 78 5f 31 2e 53 79 6e 74 61 78 2e 50 72 6f 67 72 x_1.Syntax.Progr
3ad00 61 6d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 am;. . t
3ad10 68 69 73 2e 62 6f 64 79 20 3d 20 62 6f 64 79 3b his.body = body;
3ad20 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3ad30 2e 73 6f 75 72 63 65 54 79 70 65 20 3d 20 73 6f .sourceType = so
3ad40 75 72 63 65 54 79 70 65 3b 0a 20 20 09 20 20 20 urceType;. .
3ad50 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
3ad60 20 50 72 6f 67 72 61 6d 3b 0a 20 20 09 7d 28 29 Program;. .}()
3ad70 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 50 72 );. .exports.Pr
3ad80 6f 67 72 61 6d 20 3d 20 50 72 6f 67 72 61 6d 3b ogram = Program;
3ad90 0a 20 20 09 76 61 72 20 50 72 6f 70 65 72 74 79 . .var Property
3ada0 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
3adb0 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
3adc0 6e 20 50 72 6f 70 65 72 74 79 28 6b 69 6e 64 2c n Property(kind,
3add0 20 6b 65 79 2c 20 63 6f 6d 70 75 74 65 64 2c 20 key, computed,
3ade0 76 61 6c 75 65 2c 20 6d 65 74 68 6f 64 2c 20 73 value, method, s
3adf0 68 6f 72 74 68 61 6e 64 29 20 7b 0a 20 20 09 20 horthand) {. .
3ae00 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 this.type
3ae10 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 = syntax_1.Synt
3ae20 61 78 2e 50 72 6f 70 65 72 74 79 3b 0a 20 20 09 ax.Property;. .
3ae30 20 20 20 20 20 20 20 20 74 68 69 73 2e 6b 65 79 this.key
3ae40 20 3d 20 6b 65 79 3b 0a 20 20 09 20 20 20 20 20 = key;. .
3ae50 20 20 20 74 68 69 73 2e 63 6f 6d 70 75 74 65 64 this.computed
3ae60 20 3d 20 63 6f 6d 70 75 74 65 64 3b 0a 20 20 09 = computed;. .
3ae70 20 20 20 20 20 20 20 20 74 68 69 73 2e 76 61 6c this.val
3ae80 75 65 20 3d 20 76 61 6c 75 65 3b 0a 20 20 09 20 ue = value;. .
3ae90 20 20 20 20 20 20 20 74 68 69 73 2e 6b 69 6e 64 this.kind
3aea0 20 3d 20 6b 69 6e 64 3b 0a 20 20 09 20 20 20 20 = kind;. .
3aeb0 20 20 20 20 74 68 69 73 2e 6d 65 74 68 6f 64 20 this.method
3aec0 3d 20 6d 65 74 68 6f 64 3b 0a 20 20 09 20 20 20 = method;. .
3aed0 20 20 20 20 20 74 68 69 73 2e 73 68 6f 72 74 68 this.shorth
3aee0 61 6e 64 20 3d 20 73 68 6f 72 74 68 61 6e 64 3b and = shorthand;
3aef0 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 . . }. .
3af00 20 72 65 74 75 72 6e 20 50 72 6f 70 65 72 74 79 return Property
3af10 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 ;. .}());. .ex
3af20 70 6f 72 74 73 2e 50 72 6f 70 65 72 74 79 20 3d ports.Property =
3af30 20 50 72 6f 70 65 72 74 79 3b 0a 20 20 09 76 61 Property;. .va
3af40 72 20 52 65 67 65 78 4c 69 74 65 72 61 6c 20 3d r RegexLiteral =
3af50 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
3af60 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
3af70 52 65 67 65 78 4c 69 74 65 72 61 6c 28 76 61 6c RegexLiteral(val
3af80 75 65 2c 20 72 61 77 2c 20 72 65 67 65 78 29 20 ue, raw, regex)
3af90 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 {. . thi
3afa0 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f s.type = syntax_
3afb0 31 2e 53 79 6e 74 61 78 2e 4c 69 74 65 72 61 6c 1.Syntax.Literal
3afc0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
3afd0 73 2e 76 61 6c 75 65 20 3d 20 76 61 6c 75 65 3b s.value = value;
3afe0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3aff0 2e 72 61 77 20 3d 20 72 61 77 3b 0a 20 20 09 20 .raw = raw;. .
3b000 20 20 20 20 20 20 20 74 68 69 73 2e 72 65 67 65 this.rege
3b010 78 20 3d 20 72 65 67 65 78 3b 0a 20 20 09 20 20 x = regex;. .
3b020 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 }. . retur
3b030 6e 20 52 65 67 65 78 4c 69 74 65 72 61 6c 3b 0a n RegexLiteral;.
3b040 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
3b050 72 74 73 2e 52 65 67 65 78 4c 69 74 65 72 61 6c rts.RegexLiteral
3b060 20 3d 20 52 65 67 65 78 4c 69 74 65 72 61 6c 3b = RegexLiteral;
3b070 0a 20 20 09 76 61 72 20 52 65 73 74 45 6c 65 6d . .var RestElem
3b080 65 6e 74 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 ent = (function
3b090 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 () {. . func
3b0a0 74 69 6f 6e 20 52 65 73 74 45 6c 65 6d 65 6e 74 tion RestElement
3b0b0 28 61 72 67 75 6d 65 6e 74 29 20 7b 0a 20 20 09 (argument) {. .
3b0c0 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 this.typ
3b0d0 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e e = syntax_1.Syn
3b0e0 74 61 78 2e 52 65 73 74 45 6c 65 6d 65 6e 74 3b tax.RestElement;
3b0f0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3b100 2e 61 72 67 75 6d 65 6e 74 20 3d 20 61 72 67 75 .argument = argu
3b110 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 7d 0a 20 ment;. . }.
3b120 20 09 20 20 20 20 72 65 74 75 72 6e 20 52 65 73 . return Res
3b130 74 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 tElement;. .}()
3b140 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 52 65 );. .exports.Re
3b150 73 74 45 6c 65 6d 65 6e 74 20 3d 20 52 65 73 74 stElement = Rest
3b160 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 Element;. .var
3b170 52 65 74 75 72 6e 53 74 61 74 65 6d 65 6e 74 20 ReturnStatement
3b180 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = (function () {
3b190 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e . . function
3b1a0 20 52 65 74 75 72 6e 53 74 61 74 65 6d 65 6e 74 ReturnStatement
3b1b0 28 61 72 67 75 6d 65 6e 74 29 20 7b 0a 20 20 09 (argument) {. .
3b1c0 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 this.typ
3b1d0 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e e = syntax_1.Syn
3b1e0 74 61 78 2e 52 65 74 75 72 6e 53 74 61 74 65 6d tax.ReturnStatem
3b1f0 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ent;. .
3b200 74 68 69 73 2e 61 72 67 75 6d 65 6e 74 20 3d 20 this.argument =
3b210 61 72 67 75 6d 65 6e 74 3b 0a 20 20 09 20 20 20 argument;. .
3b220 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
3b230 20 52 65 74 75 72 6e 53 74 61 74 65 6d 65 6e 74 ReturnStatement
3b240 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 ;. .}());. .ex
3b250 70 6f 72 74 73 2e 52 65 74 75 72 6e 53 74 61 74 ports.ReturnStat
3b260 65 6d 65 6e 74 20 3d 20 52 65 74 75 72 6e 53 74 ement = ReturnSt
3b270 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 atement;. .var
3b280 53 65 71 75 65 6e 63 65 45 78 70 72 65 73 73 69 SequenceExpressi
3b290 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 on = (function (
3b2a0 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 ) {. . funct
3b2b0 69 6f 6e 20 53 65 71 75 65 6e 63 65 45 78 70 72 ion SequenceExpr
3b2c0 65 73 73 69 6f 6e 28 65 78 70 72 65 73 73 69 6f ession(expressio
3b2d0 6e 73 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ns) {. .
3b2e0 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e this.type = syn
3b2f0 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 53 65 71 tax_1.Syntax.Seq
3b300 75 65 6e 63 65 45 78 70 72 65 73 73 69 6f 6e 3b uenceExpression;
3b310 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3b320 2e 65 78 70 72 65 73 73 69 6f 6e 73 20 3d 20 65 .expressions = e
3b330 78 70 72 65 73 73 69 6f 6e 73 3b 0a 20 20 09 20 xpressions;. .
3b340 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 }. . retu
3b350 72 6e 20 53 65 71 75 65 6e 63 65 45 78 70 72 65 rn SequenceExpre
3b360 73 73 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a ssion;. .}());.
3b370 20 20 09 65 78 70 6f 72 74 73 2e 53 65 71 75 65 .exports.Seque
3b380 6e 63 65 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 nceExpression =
3b390 53 65 71 75 65 6e 63 65 45 78 70 72 65 73 73 69 SequenceExpressi
3b3a0 6f 6e 3b 0a 20 20 09 76 61 72 20 53 70 72 65 61 on;. .var Sprea
3b3b0 64 45 6c 65 6d 65 6e 74 20 3d 20 28 66 75 6e 63 dElement = (func
3b3c0 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
3b3d0 20 66 75 6e 63 74 69 6f 6e 20 53 70 72 65 61 64 function Spread
3b3e0 45 6c 65 6d 65 6e 74 28 61 72 67 75 6d 65 6e 74 Element(argument
3b3f0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
3b400 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 his.type = synta
3b410 78 5f 31 2e 53 79 6e 74 61 78 2e 53 70 72 65 61 x_1.Syntax.Sprea
3b420 64 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 dElement;. .
3b430 20 20 20 20 20 74 68 69 73 2e 61 72 67 75 6d 65 this.argume
3b440 6e 74 20 3d 20 61 72 67 75 6d 65 6e 74 3b 0a 20 nt = argument;.
3b450 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 . }. . r
3b460 65 74 75 72 6e 20 53 70 72 65 61 64 45 6c 65 6d eturn SpreadElem
3b470 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 ent;. .}());.
3b480 09 65 78 70 6f 72 74 73 2e 53 70 72 65 61 64 45 .exports.SpreadE
3b490 6c 65 6d 65 6e 74 20 3d 20 53 70 72 65 61 64 45 lement = SpreadE
3b4a0 6c 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 53 lement;. .var S
3b4b0 74 61 74 69 63 4d 65 6d 62 65 72 45 78 70 72 65 taticMemberExpre
3b4c0 73 73 69 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f ssion = (functio
3b4d0 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 n () {. . fu
3b4e0 6e 63 74 69 6f 6e 20 53 74 61 74 69 63 4d 65 6d nction StaticMem
3b4f0 62 65 72 45 78 70 72 65 73 73 69 6f 6e 28 6f 62 berExpression(ob
3b500 6a 65 63 74 2c 20 70 72 6f 70 65 72 74 79 29 20 ject, property)
3b510 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 {. . thi
3b520 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f s.type = syntax_
3b530 31 2e 53 79 6e 74 61 78 2e 4d 65 6d 62 65 72 45 1.Syntax.MemberE
3b540 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 xpression;. .
3b550 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6d 70 75 this.compu
3b560 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 ted = false;. .
3b570 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 62 6a this.obj
3b580 65 63 74 20 3d 20 6f 62 6a 65 63 74 3b 0a 20 20 ect = object;.
3b590 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 70 72 . this.pr
3b5a0 6f 70 65 72 74 79 20 3d 20 70 72 6f 70 65 72 74 operty = propert
3b5b0 79 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 y;. . }. .
3b5c0 20 20 20 72 65 74 75 72 6e 20 53 74 61 74 69 63 return Static
3b5d0 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f 6e MemberExpression
3b5e0 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 ;. .}());. .ex
3b5f0 70 6f 72 74 73 2e 53 74 61 74 69 63 4d 65 6d 62 ports.StaticMemb
3b600 65 72 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 53 erExpression = S
3b610 74 61 74 69 63 4d 65 6d 62 65 72 45 78 70 72 65 taticMemberExpre
3b620 73 73 69 6f 6e 3b 0a 20 20 09 76 61 72 20 53 75 ssion;. .var Su
3b630 70 65 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 per = (function
3b640 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 () {. . func
3b650 74 69 6f 6e 20 53 75 70 65 72 28 29 20 7b 0a 20 tion Super() {.
3b660 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 . this.t
3b670 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 ype = syntax_1.S
3b680 79 6e 74 61 78 2e 53 75 70 65 72 3b 0a 20 20 09 yntax.Super;. .
3b690 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 }. . ret
3b6a0 75 72 6e 20 53 75 70 65 72 3b 0a 20 20 09 7d 28 urn Super;. .}(
3b6b0 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 53 ));. .exports.S
3b6c0 75 70 65 72 20 3d 20 53 75 70 65 72 3b 0a 20 20 uper = Super;.
3b6d0 09 76 61 72 20 53 77 69 74 63 68 43 61 73 65 20 .var SwitchCase
3b6e0 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = (function () {
3b6f0 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e . . function
3b700 20 53 77 69 74 63 68 43 61 73 65 28 74 65 73 74 SwitchCase(test
3b710 2c 20 63 6f 6e 73 65 71 75 65 6e 74 29 20 7b 0a , consequent) {.
3b720 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3b730 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
3b740 53 79 6e 74 61 78 2e 53 77 69 74 63 68 43 61 73 Syntax.SwitchCas
3b750 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 e;. . th
3b760 69 73 2e 74 65 73 74 20 3d 20 74 65 73 74 3b 0a is.test = test;.
3b770 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3b780 63 6f 6e 73 65 71 75 65 6e 74 20 3d 20 63 6f 6e consequent = con
3b790 73 65 71 75 65 6e 74 3b 0a 20 20 09 20 20 20 20 sequent;. .
3b7a0 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
3b7b0 53 77 69 74 63 68 43 61 73 65 3b 0a 20 20 09 7d SwitchCase;. .}
3b7c0 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e ());. .exports.
3b7d0 53 77 69 74 63 68 43 61 73 65 20 3d 20 53 77 69 SwitchCase = Swi
3b7e0 74 63 68 43 61 73 65 3b 0a 20 20 09 76 61 72 20 tchCase;. .var
3b7f0 53 77 69 74 63 68 53 74 61 74 65 6d 65 6e 74 20 SwitchStatement
3b800 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = (function () {
3b810 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e . . function
3b820 20 53 77 69 74 63 68 53 74 61 74 65 6d 65 6e 74 SwitchStatement
3b830 28 64 69 73 63 72 69 6d 69 6e 61 6e 74 2c 20 63 (discriminant, c
3b840 61 73 65 73 29 20 7b 0a 20 20 09 20 20 20 20 20 ases) {. .
3b850 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 this.type = s
3b860 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 53 yntax_1.Syntax.S
3b870 77 69 74 63 68 53 74 61 74 65 6d 65 6e 74 3b 0a witchStatement;.
3b880 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3b890 64 69 73 63 72 69 6d 69 6e 61 6e 74 20 3d 20 64 discriminant = d
3b8a0 69 73 63 72 69 6d 69 6e 61 6e 74 3b 0a 20 20 09 iscriminant;. .
3b8b0 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 61 73 this.cas
3b8c0 65 73 20 3d 20 63 61 73 65 73 3b 0a 20 20 09 20 es = cases;. .
3b8d0 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 }. . retu
3b8e0 72 6e 20 53 77 69 74 63 68 53 74 61 74 65 6d 65 rn SwitchStateme
3b8f0 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 nt;. .}());. .
3b900 65 78 70 6f 72 74 73 2e 53 77 69 74 63 68 53 74 exports.SwitchSt
3b910 61 74 65 6d 65 6e 74 20 3d 20 53 77 69 74 63 68 atement = Switch
3b920 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 Statement;. .va
3b930 72 20 54 61 67 67 65 64 54 65 6d 70 6c 61 74 65 r TaggedTemplate
3b940 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 66 75 Expression = (fu
3b950 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
3b960 20 20 20 66 75 6e 63 74 69 6f 6e 20 54 61 67 67 function Tagg
3b970 65 64 54 65 6d 70 6c 61 74 65 45 78 70 72 65 73 edTemplateExpres
3b980 73 69 6f 6e 28 74 61 67 2c 20 71 75 61 73 69 29 sion(tag, quasi)
3b990 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
3b9a0 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 is.type = syntax
3b9b0 5f 31 2e 53 79 6e 74 61 78 2e 54 61 67 67 65 64 _1.Syntax.Tagged
3b9c0 54 65 6d 70 6c 61 74 65 45 78 70 72 65 73 73 69 TemplateExpressi
3b9d0 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 on;. . t
3b9e0 68 69 73 2e 74 61 67 20 3d 20 74 61 67 3b 0a 20 his.tag = tag;.
3b9f0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 71 . this.q
3ba00 75 61 73 69 20 3d 20 71 75 61 73 69 3b 0a 20 20 uasi = quasi;.
3ba10 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 . }. . re
3ba20 74 75 72 6e 20 54 61 67 67 65 64 54 65 6d 70 6c turn TaggedTempl
3ba30 61 74 65 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 ateExpression;.
3ba40 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
3ba50 74 73 2e 54 61 67 67 65 64 54 65 6d 70 6c 61 74 ts.TaggedTemplat
3ba60 65 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 54 61 eExpression = Ta
3ba70 67 67 65 64 54 65 6d 70 6c 61 74 65 45 78 70 72 ggedTemplateExpr
3ba80 65 73 73 69 6f 6e 3b 0a 20 20 09 76 61 72 20 54 ession;. .var T
3ba90 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 20 3d emplateElement =
3baa0 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
3bab0 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
3bac0 54 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 28 TemplateElement(
3bad0 76 61 6c 75 65 2c 20 74 61 69 6c 29 20 7b 0a 20 value, tail) {.
3bae0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 . this.t
3baf0 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 ype = syntax_1.S
3bb00 79 6e 74 61 78 2e 54 65 6d 70 6c 61 74 65 45 6c yntax.TemplateEl
3bb10 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 ement;. .
3bb20 20 20 74 68 69 73 2e 76 61 6c 75 65 20 3d 20 76 this.value = v
3bb30 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 alue;. .
3bb40 20 74 68 69 73 2e 74 61 69 6c 20 3d 20 74 61 69 this.tail = tai
3bb50 6c 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 l;. . }. .
3bb60 20 20 20 72 65 74 75 72 6e 20 54 65 6d 70 6c 61 return Templa
3bb70 74 65 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 teElement;. .}(
3bb80 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 54 ));. .exports.T
3bb90 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 20 3d emplateElement =
3bba0 20 54 65 6d 70 6c 61 74 65 45 6c 65 6d 65 6e 74 TemplateElement
3bbb0 3b 0a 20 20 09 76 61 72 20 54 65 6d 70 6c 61 74 ;. .var Templat
3bbc0 65 4c 69 74 65 72 61 6c 20 3d 20 28 66 75 6e 63 eLiteral = (func
3bbd0 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
3bbe0 20 66 75 6e 63 74 69 6f 6e 20 54 65 6d 70 6c 61 function Templa
3bbf0 74 65 4c 69 74 65 72 61 6c 28 71 75 61 73 69 73 teLiteral(quasis
3bc00 2c 20 65 78 70 72 65 73 73 69 6f 6e 73 29 20 7b , expressions) {
3bc10 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3bc20 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 .type = syntax_1
3bc30 2e 53 79 6e 74 61 78 2e 54 65 6d 70 6c 61 74 65 .Syntax.Template
3bc40 4c 69 74 65 72 61 6c 3b 0a 20 20 09 20 20 20 20 Literal;. .
3bc50 20 20 20 20 74 68 69 73 2e 71 75 61 73 69 73 20 this.quasis
3bc60 3d 20 71 75 61 73 69 73 3b 0a 20 20 09 20 20 20 = quasis;. .
3bc70 20 20 20 20 20 74 68 69 73 2e 65 78 70 72 65 73 this.expres
3bc80 73 69 6f 6e 73 20 3d 20 65 78 70 72 65 73 73 69 sions = expressi
3bc90 6f 6e 73 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 ons;. . }.
3bca0 09 20 20 20 20 72 65 74 75 72 6e 20 54 65 6d 70 . return Temp
3bcb0 6c 61 74 65 4c 69 74 65 72 61 6c 3b 0a 20 20 09 lateLiteral;. .
3bcc0 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 }());. .exports
3bcd0 2e 54 65 6d 70 6c 61 74 65 4c 69 74 65 72 61 6c .TemplateLiteral
3bce0 20 3d 20 54 65 6d 70 6c 61 74 65 4c 69 74 65 72 = TemplateLiter
3bcf0 61 6c 3b 0a 20 20 09 76 61 72 20 54 68 69 73 45 al;. .var ThisE
3bd00 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 66 75 6e xpression = (fun
3bd10 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
3bd20 20 20 66 75 6e 63 74 69 6f 6e 20 54 68 69 73 45 function ThisE
3bd30 78 70 72 65 73 73 69 6f 6e 28 29 20 7b 0a 20 20 xpression() {.
3bd40 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 . this.ty
3bd50 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 pe = syntax_1.Sy
3bd60 6e 74 61 78 2e 54 68 69 73 45 78 70 72 65 73 73 ntax.ThisExpress
3bd70 69 6f 6e 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 ion;. . }.
3bd80 09 20 20 20 20 72 65 74 75 72 6e 20 54 68 69 73 . return This
3bd90 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 7d Expression;. .}
3bda0 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e ());. .exports.
3bdb0 54 68 69 73 45 78 70 72 65 73 73 69 6f 6e 20 3d ThisExpression =
3bdc0 20 54 68 69 73 45 78 70 72 65 73 73 69 6f 6e 3b ThisExpression;
3bdd0 0a 20 20 09 76 61 72 20 54 68 72 6f 77 53 74 61 . .var ThrowSta
3bde0 74 65 6d 65 6e 74 20 3d 20 28 66 75 6e 63 74 69 tement = (functi
3bdf0 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 on () {. . f
3be00 75 6e 63 74 69 6f 6e 20 54 68 72 6f 77 53 74 61 unction ThrowSta
3be10 74 65 6d 65 6e 74 28 61 72 67 75 6d 65 6e 74 29 tement(argument)
3be20 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
3be30 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 78 is.type = syntax
3be40 5f 31 2e 53 79 6e 74 61 78 2e 54 68 72 6f 77 53 _1.Syntax.ThrowS
3be50 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 tatement;. .
3be60 20 20 20 20 20 74 68 69 73 2e 61 72 67 75 6d 65 this.argume
3be70 6e 74 20 3d 20 61 72 67 75 6d 65 6e 74 3b 0a 20 nt = argument;.
3be80 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 . }. . r
3be90 65 74 75 72 6e 20 54 68 72 6f 77 53 74 61 74 65 eturn ThrowState
3bea0 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 ment;. .}());.
3beb0 20 09 65 78 70 6f 72 74 73 2e 54 68 72 6f 77 53 .exports.ThrowS
3bec0 74 61 74 65 6d 65 6e 74 20 3d 20 54 68 72 6f 77 tatement = Throw
3bed0 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 76 61 Statement;. .va
3bee0 72 20 54 72 79 53 74 61 74 65 6d 65 6e 74 20 3d r TryStatement =
3bef0 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
3bf00 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
3bf10 54 72 79 53 74 61 74 65 6d 65 6e 74 28 62 6c 6f TryStatement(blo
3bf20 63 6b 2c 20 68 61 6e 64 6c 65 72 2c 20 66 69 6e ck, handler, fin
3bf30 61 6c 69 7a 65 72 29 20 7b 0a 20 20 09 20 20 20 alizer) {. .
3bf40 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
3bf50 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 syntax_1.Syntax
3bf60 2e 54 72 79 53 74 61 74 65 6d 65 6e 74 3b 0a 20 .TryStatement;.
3bf70 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 62 . this.b
3bf80 6c 6f 63 6b 20 3d 20 62 6c 6f 63 6b 3b 0a 20 20 lock = block;.
3bf90 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 68 61 . this.ha
3bfa0 6e 64 6c 65 72 20 3d 20 68 61 6e 64 6c 65 72 3b ndler = handler;
3bfb0 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3bfc0 2e 66 69 6e 61 6c 69 7a 65 72 20 3d 20 66 69 6e .finalizer = fin
3bfd0 61 6c 69 7a 65 72 3b 0a 20 20 09 20 20 20 20 7d alizer;. . }
3bfe0 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 54 . . return T
3bff0 72 79 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 09 ryStatement;. .
3c000 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 }());. .exports
3c010 2e 54 72 79 53 74 61 74 65 6d 65 6e 74 20 3d 20 .TryStatement =
3c020 54 72 79 53 74 61 74 65 6d 65 6e 74 3b 0a 20 20 TryStatement;.
3c030 09 76 61 72 20 55 6e 61 72 79 45 78 70 72 65 73 .var UnaryExpres
3c040 73 69 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e sion = (function
3c050 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e () {. . fun
3c060 63 74 69 6f 6e 20 55 6e 61 72 79 45 78 70 72 65 ction UnaryExpre
3c070 73 73 69 6f 6e 28 6f 70 65 72 61 74 6f 72 2c 20 ssion(operator,
3c080 61 72 67 75 6d 65 6e 74 29 20 7b 0a 20 20 09 20 argument) {. .
3c090 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 this.type
3c0a0 20 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 = syntax_1.Synt
3c0b0 61 78 2e 55 6e 61 72 79 45 78 70 72 65 73 73 69 ax.UnaryExpressi
3c0c0 6f 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 on;. . t
3c0d0 68 69 73 2e 6f 70 65 72 61 74 6f 72 20 3d 20 6f his.operator = o
3c0e0 70 65 72 61 74 6f 72 3b 0a 20 20 09 20 20 20 20 perator;. .
3c0f0 20 20 20 20 74 68 69 73 2e 61 72 67 75 6d 65 6e this.argumen
3c100 74 20 3d 20 61 72 67 75 6d 65 6e 74 3b 0a 20 20 t = argument;.
3c110 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 70 72 . this.pr
3c120 65 66 69 78 20 3d 20 74 72 75 65 3b 0a 20 20 09 efix = true;. .
3c130 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 }. . ret
3c140 75 72 6e 20 55 6e 61 72 79 45 78 70 72 65 73 73 urn UnaryExpress
3c150 69 6f 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 ion;. .}());.
3c160 09 65 78 70 6f 72 74 73 2e 55 6e 61 72 79 45 78 .exports.UnaryEx
3c170 70 72 65 73 73 69 6f 6e 20 3d 20 55 6e 61 72 79 pression = Unary
3c180 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 76 Expression;. .v
3c190 61 72 20 55 70 64 61 74 65 45 78 70 72 65 73 73 ar UpdateExpress
3c1a0 69 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 ion = (function
3c1b0 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 () {. . func
3c1c0 74 69 6f 6e 20 55 70 64 61 74 65 45 78 70 72 65 tion UpdateExpre
3c1d0 73 73 69 6f 6e 28 6f 70 65 72 61 74 6f 72 2c 20 ssion(operator,
3c1e0 61 72 67 75 6d 65 6e 74 2c 20 70 72 65 66 69 78 argument, prefix
3c1f0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
3c200 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 his.type = synta
3c210 78 5f 31 2e 53 79 6e 74 61 78 2e 55 70 64 61 74 x_1.Syntax.Updat
3c220 65 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 eExpression;. .
3c230 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 70 65 this.ope
3c240 72 61 74 6f 72 20 3d 20 6f 70 65 72 61 74 6f 72 rator = operator
3c250 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
3c260 73 2e 61 72 67 75 6d 65 6e 74 20 3d 20 61 72 67 s.argument = arg
3c270 75 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 ument;. .
3c280 20 20 74 68 69 73 2e 70 72 65 66 69 78 20 3d 20 this.prefix =
3c290 70 72 65 66 69 78 3b 0a 20 20 09 20 20 20 20 7d prefix;. . }
3c2a0 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 55 . . return U
3c2b0 70 64 61 74 65 45 78 70 72 65 73 73 69 6f 6e 3b pdateExpression;
3c2c0 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 . .}());. .exp
3c2d0 6f 72 74 73 2e 55 70 64 61 74 65 45 78 70 72 65 orts.UpdateExpre
3c2e0 73 73 69 6f 6e 20 3d 20 55 70 64 61 74 65 45 78 ssion = UpdateEx
3c2f0 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 76 61 72 pression;. .var
3c300 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 VariableDeclara
3c310 74 69 6f 6e 20 3d 20 28 66 75 6e 63 74 69 6f 6e tion = (function
3c320 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e () {. . fun
3c330 63 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 44 65 ction VariableDe
3c340 63 6c 61 72 61 74 69 6f 6e 28 64 65 63 6c 61 72 claration(declar
3c350 61 74 69 6f 6e 73 2c 20 6b 69 6e 64 29 20 7b 0a ations, kind) {.
3c360 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3c370 74 79 70 65 20 3d 20 73 79 6e 74 61 78 5f 31 2e type = syntax_1.
3c380 53 79 6e 74 61 78 2e 56 61 72 69 61 62 6c 65 44 Syntax.VariableD
3c390 65 63 6c 61 72 61 74 69 6f 6e 3b 0a 20 20 09 20 eclaration;. .
3c3a0 20 20 20 20 20 20 20 74 68 69 73 2e 64 65 63 6c this.decl
3c3b0 61 72 61 74 69 6f 6e 73 20 3d 20 64 65 63 6c 61 arations = decla
3c3c0 72 61 74 69 6f 6e 73 3b 0a 20 20 09 20 20 20 20 rations;. .
3c3d0 20 20 20 20 74 68 69 73 2e 6b 69 6e 64 20 3d 20 this.kind =
3c3e0 6b 69 6e 64 3b 0a 20 20 09 20 20 20 20 7d 0a 20 kind;. . }.
3c3f0 20 09 20 20 20 20 72 65 74 75 72 6e 20 56 61 72 . return Var
3c400 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e iableDeclaration
3c410 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 ;. .}());. .ex
3c420 70 6f 72 74 73 2e 56 61 72 69 61 62 6c 65 44 65 ports.VariableDe
3c430 63 6c 61 72 61 74 69 6f 6e 20 3d 20 56 61 72 69 claration = Vari
3c440 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e 3b ableDeclaration;
3c450 0a 20 20 09 76 61 72 20 56 61 72 69 61 62 6c 65 . .var Variable
3c460 44 65 63 6c 61 72 61 74 6f 72 20 3d 20 28 66 75 Declarator = (fu
3c470 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
3c480 20 20 20 66 75 6e 63 74 69 6f 6e 20 56 61 72 69 function Vari
3c490 61 62 6c 65 44 65 63 6c 61 72 61 74 6f 72 28 69 ableDeclarator(i
3c4a0 64 2c 20 69 6e 69 74 29 20 7b 0a 20 20 09 20 20 d, init) {. .
3c4b0 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 this.type
3c4c0 3d 20 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 = syntax_1.Synta
3c4d0 78 2e 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 x.VariableDeclar
3c4e0 61 74 6f 72 3b 0a 20 20 09 20 20 20 20 20 20 20 ator;. .
3c4f0 20 74 68 69 73 2e 69 64 20 3d 20 69 64 3b 0a 20 this.id = id;.
3c500 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 . this.i
3c510 6e 69 74 20 3d 20 69 6e 69 74 3b 0a 20 20 09 20 nit = init;. .
3c520 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 }. . retu
3c530 72 6e 20 56 61 72 69 61 62 6c 65 44 65 63 6c 61 rn VariableDecla
3c540 72 61 74 6f 72 3b 0a 20 20 09 7d 28 29 29 3b 0a rator;. .}());.
3c550 20 20 09 65 78 70 6f 72 74 73 2e 56 61 72 69 61 .exports.Varia
3c560 62 6c 65 44 65 63 6c 61 72 61 74 6f 72 20 3d 20 bleDeclarator =
3c570 56 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 VariableDeclarat
3c580 6f 72 3b 0a 20 20 09 76 61 72 20 57 68 69 6c 65 or;. .var While
3c590 53 74 61 74 65 6d 65 6e 74 20 3d 20 28 66 75 6e Statement = (fun
3c5a0 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
3c5b0 20 20 66 75 6e 63 74 69 6f 6e 20 57 68 69 6c 65 function While
3c5c0 53 74 61 74 65 6d 65 6e 74 28 74 65 73 74 2c 20 Statement(test,
3c5d0 62 6f 64 79 29 20 7b 0a 20 20 09 20 20 20 20 20 body) {. .
3c5e0 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 73 this.type = s
3c5f0 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e 57 yntax_1.Syntax.W
3c600 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 3b 0a 20 hileStatement;.
3c610 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 . this.t
3c620 65 73 74 20 3d 20 74 65 73 74 3b 0a 20 20 09 20 est = test;. .
3c630 20 20 20 20 20 20 20 74 68 69 73 2e 62 6f 64 79 this.body
3c640 20 3d 20 62 6f 64 79 3b 0a 20 20 09 20 20 20 20 = body;. .
3c650 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
3c660 57 68 69 6c 65 53 74 61 74 65 6d 65 6e 74 3b 0a WhileStatement;.
3c670 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
3c680 72 74 73 2e 57 68 69 6c 65 53 74 61 74 65 6d 65 rts.WhileStateme
3c690 6e 74 20 3d 20 57 68 69 6c 65 53 74 61 74 65 6d nt = WhileStatem
3c6a0 65 6e 74 3b 0a 20 20 09 76 61 72 20 57 69 74 68 ent;. .var With
3c6b0 53 74 61 74 65 6d 65 6e 74 20 3d 20 28 66 75 6e Statement = (fun
3c6c0 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
3c6d0 20 20 66 75 6e 63 74 69 6f 6e 20 57 69 74 68 53 function WithS
3c6e0 74 61 74 65 6d 65 6e 74 28 6f 62 6a 65 63 74 2c tatement(object,
3c6f0 20 62 6f 64 79 29 20 7b 0a 20 20 09 20 20 20 20 body) {. .
3c700 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 this.type =
3c710 73 79 6e 74 61 78 5f 31 2e 53 79 6e 74 61 78 2e syntax_1.Syntax.
3c720 57 69 74 68 53 74 61 74 65 6d 65 6e 74 3b 0a 20 WithStatement;.
3c730 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f . this.o
3c740 62 6a 65 63 74 20 3d 20 6f 62 6a 65 63 74 3b 0a bject = object;.
3c750 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3c760 62 6f 64 79 20 3d 20 62 6f 64 79 3b 0a 20 20 09 body = body;. .
3c770 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 }. . ret
3c780 75 72 6e 20 57 69 74 68 53 74 61 74 65 6d 65 6e urn WithStatemen
3c790 74 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 t;. .}());. .e
3c7a0 78 70 6f 72 74 73 2e 57 69 74 68 53 74 61 74 65 xports.WithState
3c7b0 6d 65 6e 74 20 3d 20 57 69 74 68 53 74 61 74 65 ment = WithState
3c7c0 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 59 69 65 ment;. .var Yie
3c7d0 6c 64 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 28 ldExpression = (
3c7e0 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
3c7f0 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 59 69 . function Yi
3c800 65 6c 64 45 78 70 72 65 73 73 69 6f 6e 28 61 72 eldExpression(ar
3c810 67 75 6d 65 6e 74 2c 20 64 65 6c 65 67 61 74 65 gument, delegate
3c820 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
3c830 68 69 73 2e 74 79 70 65 20 3d 20 73 79 6e 74 61 his.type = synta
3c840 78 5f 31 2e 53 79 6e 74 61 78 2e 59 69 65 6c 64 x_1.Syntax.Yield
3c850 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 20 Expression;. .
3c860 20 20 20 20 20 20 20 74 68 69 73 2e 61 72 67 75 this.argu
3c870 6d 65 6e 74 20 3d 20 61 72 67 75 6d 65 6e 74 3b ment = argument;
3c880 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3c890 2e 64 65 6c 65 67 61 74 65 20 3d 20 64 65 6c 65 .delegate = dele
3c8a0 67 61 74 65 3b 0a 20 20 09 20 20 20 20 7d 0a 20 gate;. . }.
3c8b0 20 09 20 20 20 20 72 65 74 75 72 6e 20 59 69 65 . return Yie
3c8c0 6c 64 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 ldExpression;.
3c8d0 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 .}());. .export
3c8e0 73 2e 59 69 65 6c 64 45 78 70 72 65 73 73 69 6f s.YieldExpressio
3c8f0 6e 20 3d 20 59 69 65 6c 64 45 78 70 72 65 73 73 n = YieldExpress
3c900 69 6f 6e 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d ion;... /***/ }
3c910 2c 0a 20 20 2f 2a 20 31 31 20 2a 2f 0a 20 20 2f ,. /* 11 */. /
3c920 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f 6e 28 6d 6f ***/ function(mo
3c930 64 75 6c 65 2c 20 65 78 70 6f 72 74 73 2c 20 5f dule, exports, _
3c940 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 _webpack_require
3c950 5f 5f 29 20 7b 0a 20 20 2f 2a 20 69 73 74 61 6e __) {. /* istan
3c960 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 78 74 20 bul ignore next
3c970 2a 2f 0a 20 20 09 76 61 72 20 5f 5f 65 78 74 65 */. .var __exte
3c980 6e 64 73 20 3d 20 28 74 68 69 73 20 26 26 20 74 nds = (this && t
3c990 68 69 73 2e 5f 5f 65 78 74 65 6e 64 73 29 20 7c his.__extends) |
3c9a0 7c 20 66 75 6e 63 74 69 6f 6e 20 28 64 2c 20 62 | function (d, b
3c9b0 29 20 7b 0a 20 20 09 20 20 20 20 66 6f 72 20 28 ) {. . for (
3c9c0 76 61 72 20 70 20 69 6e 20 62 29 20 7b 20 69 66 var p in b) { if
3c9d0 20 28 62 2e 68 61 73 4f 77 6e 50 72 6f 70 65 72 (b.hasOwnProper
3c9e0 74 79 28 70 29 29 20 7b 20 64 5b 70 5d 20 3d 20 ty(p)) { d[p] =
3c9f0 62 5b 70 5d 3b 20 7d 20 7d 0a 20 20 09 20 20 20 b[p]; } }. .
3ca00 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 28 29 20 7b function __() {
3ca10 20 74 68 69 73 2e 63 6f 6e 73 74 72 75 63 74 6f this.constructo
3ca20 72 20 3d 20 64 3b 20 7d 0a 20 20 09 20 20 20 20 r = d; }. .
3ca30 64 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 62 20 d.prototype = b
3ca40 3d 3d 3d 20 6e 75 6c 6c 20 3f 20 4f 62 6a 65 63 === null ? Objec
3ca50 74 2e 63 72 65 61 74 65 28 62 29 20 3a 20 28 5f t.create(b) : (_
3ca60 5f 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 62 2e _.prototype = b.
3ca70 70 72 6f 74 6f 74 79 70 65 2c 20 6e 65 77 20 5f prototype, new _
3ca80 5f 28 29 29 3b 0a 20 20 09 7d 3b 0a 20 20 09 76 _());. .};. .v
3ca90 61 72 20 63 68 61 72 61 63 74 65 72 5f 31 20 3d ar character_1 =
3caa0 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 69 __webpack_requi
3cab0 72 65 5f 5f 28 39 29 3b 0a 20 20 09 76 61 72 20 re__(9);. .var
3cac0 74 6f 6b 65 6e 5f 31 20 3d 20 5f 5f 77 65 62 70 token_1 = __webp
3cad0 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 37 29 ack_require__(7)
3cae0 3b 0a 20 20 09 76 61 72 20 70 61 72 73 65 72 5f ;. .var parser_
3caf0 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f 72 65 1 = __webpack_re
3cb00 71 75 69 72 65 5f 5f 28 33 29 3b 0a 20 20 09 76 quire__(3);. .v
3cb10 61 72 20 78 68 74 6d 6c 5f 65 6e 74 69 74 69 65 ar xhtml_entitie
3cb20 73 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f s_1 = __webpack_
3cb30 72 65 71 75 69 72 65 5f 5f 28 31 32 29 3b 0a 20 require__(12);.
3cb40 20 09 76 61 72 20 6a 73 78 5f 73 79 6e 74 61 78 .var jsx_syntax
3cb50 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f 72 _1 = __webpack_r
3cb60 65 71 75 69 72 65 5f 5f 28 31 33 29 3b 0a 20 20 equire__(13);.
3cb70 09 76 61 72 20 4e 6f 64 65 20 3d 20 5f 5f 77 65 .var Node = __we
3cb80 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 bpack_require__(
3cb90 31 30 29 3b 0a 20 20 09 76 61 72 20 4a 53 58 4e 10);. .var JSXN
3cba0 6f 64 65 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f ode = __webpack_
3cbb0 72 65 71 75 69 72 65 5f 5f 28 31 34 29 3b 0a 20 require__(14);.
3cbc0 20 09 76 61 72 20 4a 53 58 54 6f 6b 65 6e 3b 0a .var JSXToken;.
3cbd0 20 20 09 28 66 75 6e 63 74 69 6f 6e 20 28 4a 53 .(function (JS
3cbe0 58 54 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 20 20 XToken) {. .
3cbf0 20 4a 53 58 54 6f 6b 65 6e 5b 4a 53 58 54 6f 6b JSXToken[JSXTok
3cc00 65 6e 5b 22 49 64 65 6e 74 69 66 69 65 72 22 5d en["Identifier"]
3cc10 20 3d 20 31 30 30 5d 20 3d 20 22 49 64 65 6e 74 = 100] = "Ident
3cc20 69 66 69 65 72 22 3b 0a 20 20 09 20 20 20 20 4a ifier";. . J
3cc30 53 58 54 6f 6b 65 6e 5b 4a 53 58 54 6f 6b 65 6e SXToken[JSXToken
3cc40 5b 22 54 65 78 74 22 5d 20 3d 20 31 30 31 5d 20 ["Text"] = 101]
3cc50 3d 20 22 54 65 78 74 22 3b 0a 20 20 09 7d 29 28 = "Text";. .})(
3cc60 4a 53 58 54 6f 6b 65 6e 20 7c 7c 20 28 4a 53 58 JSXToken || (JSX
3cc70 54 6f 6b 65 6e 20 3d 20 7b 7d 29 29 3b 0a 20 20 Token = {}));.
3cc80 09 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 4e 61 .token_1.TokenNa
3cc90 6d 65 5b 4a 53 58 54 6f 6b 65 6e 2e 49 64 65 6e me[JSXToken.Iden
3cca0 74 69 66 69 65 72 5d 20 3d 20 27 4a 53 58 49 64 tifier] = 'JSXId
3ccb0 65 6e 74 69 66 69 65 72 27 3b 0a 20 20 09 74 6f entifier';. .to
3ccc0 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 4e 61 6d 65 5b ken_1.TokenName[
3ccd0 4a 53 58 54 6f 6b 65 6e 2e 54 65 78 74 5d 20 3d JSXToken.Text] =
3cce0 20 27 4a 53 58 54 65 78 74 27 3b 0a 20 20 09 2f 'JSXText';. ./
3ccf0 2f 20 46 75 6c 6c 79 20 71 75 61 6c 69 66 69 65 / Fully qualifie
3cd00 64 20 65 6c 65 6d 65 6e 74 20 6e 61 6d 65 2c 20 d element name,
3cd10 65 2e 67 2e 20 3c 73 76 67 3a 70 61 74 68 3e 20 e.g. <svg:path>
3cd20 72 65 74 75 72 6e 73 20 22 73 76 67 3a 70 61 74 returns "svg:pat
3cd30 68 22 0a 20 20 09 66 75 6e 63 74 69 6f 6e 20 67 h". .function g
3cd40 65 74 51 75 61 6c 69 66 69 65 64 45 6c 65 6d 65 etQualifiedEleme
3cd50 6e 74 4e 61 6d 65 28 65 6c 65 6d 65 6e 74 4e 61 ntName(elementNa
3cd60 6d 65 29 20 7b 0a 20 20 09 20 20 20 20 76 61 72 me) {. . var
3cd70 20 71 75 61 6c 69 66 69 65 64 4e 61 6d 65 3b 0a qualifiedName;.
3cd80 20 20 09 20 20 20 20 73 77 69 74 63 68 20 28 65 . switch (e
3cd90 6c 65 6d 65 6e 74 4e 61 6d 65 2e 74 79 70 65 29 lementName.type)
3cda0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 63 61 {. . ca
3cdb0 73 65 20 6a 73 78 5f 73 79 6e 74 61 78 5f 31 2e se jsx_syntax_1.
3cdc0 4a 53 58 53 79 6e 74 61 78 2e 4a 53 58 49 64 65 JSXSyntax.JSXIde
3cdd0 6e 74 69 66 69 65 72 3a 0a 20 20 09 20 20 20 20 ntifier:. .
3cde0 20 20 20 20 20 20 20 20 76 61 72 20 69 64 20 3d var id =
3cdf0 20 28 65 6c 65 6d 65 6e 74 4e 61 6d 65 29 3b 0a (elementName);.
3ce00 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 71 . q
3ce10 75 61 6c 69 66 69 65 64 4e 61 6d 65 20 3d 20 69 ualifiedName = i
3ce20 64 2e 6e 61 6d 65 3b 0a 20 20 09 20 20 20 20 20 d.name;. .
3ce30 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
3ce40 09 20 20 20 20 20 20 20 20 63 61 73 65 20 6a 73 . case js
3ce50 78 5f 73 79 6e 74 61 78 5f 31 2e 4a 53 58 53 79 x_syntax_1.JSXSy
3ce60 6e 74 61 78 2e 4a 53 58 4e 61 6d 65 73 70 61 63 ntax.JSXNamespac
3ce70 65 64 4e 61 6d 65 3a 0a 20 20 09 20 20 20 20 20 edName:. .
3ce80 20 20 20 20 20 20 20 76 61 72 20 6e 73 20 3d 20 var ns =
3ce90 28 65 6c 65 6d 65 6e 74 4e 61 6d 65 29 3b 0a 20 (elementName);.
3cea0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 71 75 . qu
3ceb0 61 6c 69 66 69 65 64 4e 61 6d 65 20 3d 20 67 65 alifiedName = ge
3cec0 74 51 75 61 6c 69 66 69 65 64 45 6c 65 6d 65 6e tQualifiedElemen
3ced0 74 4e 61 6d 65 28 6e 73 2e 6e 61 6d 65 73 70 61 tName(ns.namespa
3cee0 63 65 29 20 2b 20 27 3a 27 20 2b 0a 20 20 09 20 ce) + ':' +. .
3cef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 g
3cf00 65 74 51 75 61 6c 69 66 69 65 64 45 6c 65 6d 65 etQualifiedEleme
3cf10 6e 74 4e 61 6d 65 28 6e 73 2e 6e 61 6d 65 29 3b ntName(ns.name);
3cf20 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3cf30 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 break;. .
3cf40 20 20 63 61 73 65 20 6a 73 78 5f 73 79 6e 74 61 case jsx_synta
3cf50 78 5f 31 2e 4a 53 58 53 79 6e 74 61 78 2e 4a 53 x_1.JSXSyntax.JS
3cf60 58 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f XMemberExpressio
3cf70 6e 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 n:. .
3cf80 20 20 76 61 72 20 65 78 70 72 20 3d 20 28 65 6c var expr = (el
3cf90 65 6d 65 6e 74 4e 61 6d 65 29 3b 0a 20 20 09 20 ementName);. .
3cfa0 20 20 20 20 20 20 20 20 20 20 20 71 75 61 6c 69 quali
3cfb0 66 69 65 64 4e 61 6d 65 20 3d 20 67 65 74 51 75 fiedName = getQu
3cfc0 61 6c 69 66 69 65 64 45 6c 65 6d 65 6e 74 4e 61 alifiedElementNa
3cfd0 6d 65 28 65 78 70 72 2e 6f 62 6a 65 63 74 29 20 me(expr.object)
3cfe0 2b 20 27 2e 27 20 2b 0a 20 20 09 20 20 20 20 20 + '.' +. .
3cff0 20 20 20 20 20 20 20 20 20 20 20 67 65 74 51 75 getQu
3d000 61 6c 69 66 69 65 64 45 6c 65 6d 65 6e 74 4e 61 alifiedElementNa
3d010 6d 65 28 65 78 70 72 2e 70 72 6f 70 65 72 74 79 me(expr.property
3d020 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3d030 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 break;. .
3d040 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 }. . return
3d050 71 75 61 6c 69 66 69 65 64 4e 61 6d 65 3b 0a 20 qualifiedName;.
3d060 20 09 7d 0a 20 20 09 76 61 72 20 4a 53 58 50 61 .}. .var JSXPa
3d070 72 73 65 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e rser = (function
3d080 20 28 5f 73 75 70 65 72 29 20 7b 0a 20 20 09 20 (_super) {. .
3d090 20 20 20 5f 5f 65 78 74 65 6e 64 73 28 4a 53 58 __extends(JSX
3d0a0 50 61 72 73 65 72 2c 20 5f 73 75 70 65 72 29 3b Parser, _super);
3d0b0 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e . . function
3d0c0 20 4a 53 58 50 61 72 73 65 72 28 63 6f 64 65 2c JSXParser(code,
3d0d0 20 6f 70 74 69 6f 6e 73 2c 20 64 65 6c 65 67 61 options, delega
3d0e0 74 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 te) {. .
3d0f0 20 5f 73 75 70 65 72 2e 63 61 6c 6c 28 74 68 69 _super.call(thi
3d100 73 2c 20 63 6f 64 65 2c 20 6f 70 74 69 6f 6e 73 s, code, options
3d110 2c 20 64 65 6c 65 67 61 74 65 29 3b 0a 20 20 09 , delegate);. .
3d120 20 20 20 20 7d 0a 20 20 09 20 20 20 20 4a 53 58 }. . JSX
3d130 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 Parser.prototype
3d140 2e 70 61 72 73 65 50 72 69 6d 61 72 79 45 78 70 .parsePrimaryExp
3d150 72 65 73 73 69 6f 6e 20 3d 20 66 75 6e 63 74 69 ression = functi
3d160 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
3d170 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 6d return this.m
3d180 61 74 63 68 28 27 3c 27 29 20 3f 20 74 68 69 73 atch('<') ? this
3d190 2e 70 61 72 73 65 4a 53 58 52 6f 6f 74 28 29 20 .parseJSXRoot()
3d1a0 3a 20 5f 73 75 70 65 72 2e 70 72 6f 74 6f 74 79 : _super.prototy
3d1b0 70 65 2e 70 61 72 73 65 50 72 69 6d 61 72 79 45 pe.parsePrimaryE
3d1c0 78 70 72 65 73 73 69 6f 6e 2e 63 61 6c 6c 28 74 xpression.call(t
3d1d0 68 69 73 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a his);. . };.
3d1e0 20 20 09 20 20 20 20 4a 53 58 50 61 72 73 65 72 . JSXParser
3d1f0 2e 70 72 6f 74 6f 74 79 70 65 2e 73 74 61 72 74 .prototype.start
3d200 4a 53 58 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 JSX = function (
3d210 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 2f ) {. . /
3d220 2f 20 55 6e 77 69 6e 64 20 74 68 65 20 73 63 61 / Unwind the sca
3d230 6e 6e 65 72 20 62 65 66 6f 72 65 20 74 68 65 20 nner before the
3d240 6c 6f 6f 6b 61 68 65 61 64 20 74 6f 6b 65 6e 2e lookahead token.
3d250 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3d260 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 20 3d .scanner.index =
3d270 20 74 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 this.startMarke
3d280 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 r.index;. .
3d290 20 20 20 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 this.scanner
3d2a0 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 3d 20 74 68 .lineNumber = th
3d2b0 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e 6c is.startMarker.l
3d2c0 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 20 ineNumber;. .
3d2d0 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 6e 6e this.scann
3d2e0 65 72 2e 6c 69 6e 65 53 74 61 72 74 20 3d 20 74 er.lineStart = t
3d2f0 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e his.startMarker.
3d300 6c 69 6e 65 53 74 61 72 74 3b 0a 20 20 09 20 20 lineStart;. .
3d310 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a 53 58 50 };. . JSXP
3d320 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
3d330 66 69 6e 69 73 68 4a 53 58 20 3d 20 66 75 6e 63 finishJSX = func
3d340 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 tion () {. .
3d350 20 20 20 20 20 2f 2f 20 50 72 69 6d 65 20 74 68 // Prime th
3d360 65 20 6e 65 78 74 20 6c 6f 6f 6b 61 68 65 61 64 e next lookahead
3d370 2e 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 .. . thi
3d380 73 2e 6e 65 78 74 54 6f 6b 65 6e 28 29 3b 0a 20 s.nextToken();.
3d390 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
3d3a0 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 JSXParser.protot
3d3b0 79 70 65 2e 72 65 65 6e 74 65 72 4a 53 58 20 3d ype.reenterJSX =
3d3c0 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 function () {.
3d3d0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 . this.s
3d3e0 74 61 72 74 4a 53 58 28 29 3b 0a 20 20 09 20 20 tartJSX();. .
3d3f0 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
3d400 74 4a 53 58 28 27 7d 27 29 3b 0a 20 20 09 20 20 tJSX('}');. .
3d410 20 20 20 20 20 20 2f 2f 20 50 6f 70 20 74 68 65 // Pop the
3d420 20 63 6c 6f 73 69 6e 67 20 27 7d 27 20 61 64 64 closing '}' add
3d430 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 6f 6f 6b ed from the look
3d440 61 68 65 61 64 2e 0a 20 20 09 20 20 20 20 20 20 ahead.. .
3d450 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6e 66 69 if (this.confi
3d460 67 2e 74 6f 6b 65 6e 73 29 20 7b 0a 20 20 09 20 g.tokens) {. .
3d470 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
3d480 74 6f 6b 65 6e 73 2e 70 6f 70 28 29 3b 0a 20 20 tokens.pop();.
3d490 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
3d4a0 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a 53 58 50 };. . JSXP
3d4b0 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
3d4c0 63 72 65 61 74 65 4a 53 58 4e 6f 64 65 20 3d 20 createJSXNode =
3d4d0 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
3d4e0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
3d4f0 6c 6c 65 63 74 43 6f 6d 6d 65 6e 74 73 28 29 3b llectComments();
3d500 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
3d510 72 6e 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 rn {. .
3d520 20 20 20 20 69 6e 64 65 78 3a 20 74 68 69 73 2e index: this.
3d530 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 2c 0a 20 scanner.index,.
3d540 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 . li
3d550 6e 65 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 ne: this.scanner
3d560 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 .lineNumber,. .
3d570 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 colu
3d580 6d 6e 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 mn: this.scanner
3d590 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 2e 73 63 .index - this.sc
3d5a0 61 6e 6e 65 72 2e 6c 69 6e 65 53 74 61 72 74 0a anner.lineStart.
3d5b0 20 20 09 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 . };.
3d5c0 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a . };. . J
3d5d0 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 SXParser.prototy
3d5e0 70 65 2e 63 72 65 61 74 65 4a 53 58 43 68 69 6c pe.createJSXChil
3d5f0 64 4e 6f 64 65 20 3d 20 66 75 6e 63 74 69 6f 6e dNode = function
3d600 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 () {. .
3d610 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 return {. .
3d620 20 20 20 20 20 20 20 20 20 69 6e 64 65 78 3a 20 index:
3d630 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 this.scanner.ind
3d640 65 78 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 ex,. .
3d650 20 20 20 6c 69 6e 65 3a 20 74 68 69 73 2e 73 63 line: this.sc
3d660 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 anner.lineNumber
3d670 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
3d680 20 63 6f 6c 75 6d 6e 3a 20 74 68 69 73 2e 73 63 column: this.sc
3d690 61 6e 6e 65 72 2e 69 6e 64 65 78 20 2d 20 74 68 anner.index - th
3d6a0 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 53 is.scanner.lineS
3d6b0 74 61 72 74 0a 20 20 09 20 20 20 20 20 20 20 20 tart. .
3d6c0 7d 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 };. . };. .
3d6d0 20 20 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 JSXParser.pr
3d6e0 6f 74 6f 74 79 70 65 2e 73 63 61 6e 58 48 54 4d ototype.scanXHTM
3d6f0 4c 45 6e 74 69 74 79 20 3d 20 66 75 6e 63 74 69 LEntity = functi
3d700 6f 6e 20 28 71 75 6f 74 65 29 20 7b 0a 20 20 09 on (quote) {. .
3d710 20 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 var this
3d720 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 $1 = this;.. .
3d730 20 20 20 20 20 20 20 76 61 72 20 72 65 73 75 6c var resul
3d740 74 20 3d 20 27 26 27 3b 0a 20 20 09 20 20 20 20 t = '&';. .
3d750 20 20 20 20 76 61 72 20 76 61 6c 69 64 20 3d 20 var valid =
3d760 74 72 75 65 3b 0a 20 20 09 20 20 20 20 20 20 20 true;. .
3d770 20 76 61 72 20 74 65 72 6d 69 6e 61 74 65 64 20 var terminated
3d780 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
3d790 20 20 20 20 76 61 72 20 6e 75 6d 65 72 69 63 20 var numeric
3d7a0 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 = false;. .
3d7b0 20 20 20 20 76 61 72 20 68 65 78 20 3d 20 66 61 var hex = fa
3d7c0 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 lse;. .
3d7d0 77 68 69 6c 65 20 28 21 74 68 69 73 2e 73 63 61 while (!this.sca
3d7e0 6e 6e 65 72 2e 65 6f 66 28 29 20 26 26 20 76 61 nner.eof() && va
3d7f0 6c 69 64 20 26 26 20 21 74 65 72 6d 69 6e 61 74 lid && !terminat
3d800 65 64 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 ed) {. .
3d810 20 20 20 20 20 76 61 72 20 63 68 20 3d 20 74 68 var ch = th
3d820 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 is$1.scanner.sou
3d830 72 63 65 5b 74 68 69 73 24 31 2e 73 63 61 6e 6e rce[this$1.scann
3d840 65 72 2e 69 6e 64 65 78 5d 3b 0a 20 20 09 20 20 er.index];. .
3d850 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 if (ch
3d860 20 3d 3d 3d 20 71 75 6f 74 65 29 20 7b 0a 20 20 === quote) {.
3d870 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3d880 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 break;. .
3d890 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
3d8a0 20 20 20 20 20 20 20 20 74 65 72 6d 69 6e 61 74 terminat
3d8b0 65 64 20 3d 20 28 63 68 20 3d 3d 3d 20 27 3b 27 ed = (ch === ';'
3d8c0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3d8d0 20 20 72 65 73 75 6c 74 20 2b 3d 20 63 68 3b 0a result += ch;.
3d8e0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 2b . +
3d8f0 2b 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e +this$1.scanner.
3d900 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 index;. .
3d910 20 20 20 20 20 20 69 66 20 28 21 74 65 72 6d 69 if (!termi
3d920 6e 61 74 65 64 29 20 7b 0a 20 20 09 20 20 20 20 nated) {. .
3d930 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 swit
3d940 63 68 20 28 72 65 73 75 6c 74 2e 6c 65 6e 67 74 ch (result.lengt
3d950 68 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 h) {. .
3d960 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
3d970 20 32 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 2:. .
3d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
3d990 2f 20 65 2e 67 2e 20 27 26 23 31 32 33 3b 27 0a / e.g. '{'.
3d9a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3d9b0 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 65 72 numer
3d9c0 69 63 20 3d 20 28 63 68 20 3d 3d 3d 20 27 23 27 ic = (ch === '#'
3d9d0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3d9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
3d9f0 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 eak;. .
3da00 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
3da10 20 33 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 3:. .
3da20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
3da30 66 20 28 6e 75 6d 65 72 69 63 29 20 7b 0a 20 20 f (numeric) {.
3da40 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3da50 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
3da60 65 2e 67 2e 20 27 26 23 78 34 31 3b 27 0a 20 20 e.g. 'A'.
3da70 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3da80 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 78 hex
3da90 20 3d 20 28 63 68 20 3d 3d 3d 20 27 78 27 29 3b = (ch === 'x');
3daa0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3dab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3dac0 76 61 6c 69 64 20 3d 20 68 65 78 20 7c 7c 20 63 valid = hex || c
3dad0 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 haracter_1.Chara
3dae0 63 74 65 72 2e 69 73 44 65 63 69 6d 61 6c 44 69 cter.isDecimalDi
3daf0 67 69 74 28 63 68 2e 63 68 61 72 43 6f 64 65 41 git(ch.charCodeA
3db00 74 28 30 29 29 3b 0a 20 20 09 20 20 20 20 20 20 t(0));. .
3db10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3db20 20 20 20 20 20 20 6e 75 6d 65 72 69 63 20 3d 20 numeric =
3db30 6e 75 6d 65 72 69 63 20 26 26 20 21 68 65 78 3b numeric && !hex;
3db40 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3db50 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
3db60 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3db70 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a break;.
3db80 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3db90 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a default:.
3dba0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3dbb0 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 69 64 valid
3dbc0 20 3d 20 76 61 6c 69 64 20 26 26 20 21 28 6e 75 = valid && !(nu
3dbd0 6d 65 72 69 63 20 26 26 20 21 63 68 61 72 61 63 meric && !charac
3dbe0 74 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e ter_1.Character.
3dbf0 69 73 44 65 63 69 6d 61 6c 44 69 67 69 74 28 63 isDecimalDigit(c
3dc00 68 2e 63 68 61 72 43 6f 64 65 41 74 28 30 29 29 h.charCodeAt(0))
3dc10 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
3dc30 6c 69 64 20 3d 20 76 61 6c 69 64 20 26 26 20 21 lid = valid && !
3dc40 28 68 65 78 20 26 26 20 21 63 68 61 72 61 63 74 (hex && !charact
3dc50 65 72 5f 31 2e 43 68 61 72 61 63 74 65 72 2e 69 er_1.Character.i
3dc60 73 48 65 78 44 69 67 69 74 28 63 68 2e 63 68 61 sHexDigit(ch.cha
3dc70 72 43 6f 64 65 41 74 28 30 29 29 29 3b 0a 20 20 rCodeAt(0)));.
3dc80 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3dc90 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a break;.
3dca0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3dcb0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
3dcc0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
3dcd0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 }. . if
3dce0 20 28 76 61 6c 69 64 20 26 26 20 74 65 72 6d 69 (valid && termi
3dcf0 6e 61 74 65 64 20 26 26 20 72 65 73 75 6c 74 2e nated && result.
3dd00 6c 65 6e 67 74 68 20 3e 20 32 29 20 7b 0a 20 20 length > 2) {.
3dd10 09 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 . //
3dd20 65 2e 67 2e 20 27 26 23 78 34 31 3b 27 20 62 65 e.g. 'A' be
3dd30 63 6f 6d 65 73 20 6a 75 73 74 20 27 23 78 34 31 comes just '#x41
3dd40 27 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 '. .
3dd50 20 76 61 72 20 73 74 72 20 3d 20 72 65 73 75 6c var str = resul
3dd60 74 2e 73 75 62 73 74 72 28 31 2c 20 72 65 73 75 t.substr(1, resu
3dd70 6c 74 2e 6c 65 6e 67 74 68 20 2d 20 32 29 3b 0a lt.length - 2);.
3dd80 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
3dd90 66 20 28 6e 75 6d 65 72 69 63 20 26 26 20 73 74 f (numeric && st
3dda0 72 2e 6c 65 6e 67 74 68 20 3e 20 31 29 20 7b 0a r.length > 1) {.
3ddb0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3ddc0 20 20 20 72 65 73 75 6c 74 20 3d 20 53 74 72 69 result = Stri
3ddd0 6e 67 2e 66 72 6f 6d 43 68 61 72 43 6f 64 65 28 ng.fromCharCode(
3dde0 70 61 72 73 65 49 6e 74 28 73 74 72 2e 73 75 62 parseInt(str.sub
3ddf0 73 74 72 28 31 29 2c 20 31 30 29 29 3b 0a 20 20 str(1), 10));.
3de00 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 . }.
3de10 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c . el
3de20 73 65 20 69 66 20 28 68 65 78 20 26 26 20 73 74 se if (hex && st
3de30 72 2e 6c 65 6e 67 74 68 20 3e 20 32 29 20 7b 0a r.length > 2) {.
3de40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3de50 20 20 20 72 65 73 75 6c 74 20 3d 20 53 74 72 69 result = Stri
3de60 6e 67 2e 66 72 6f 6d 43 68 61 72 43 6f 64 65 28 ng.fromCharCode(
3de70 70 61 72 73 65 49 6e 74 28 27 30 27 20 2b 20 73 parseInt('0' + s
3de80 74 72 2e 73 75 62 73 74 72 28 31 29 2c 20 31 36 tr.substr(1), 16
3de90 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
3dea0 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
3deb0 20 20 20 20 65 6c 73 65 20 69 66 20 28 21 6e 75 else if (!nu
3dec0 6d 65 72 69 63 20 26 26 20 21 68 65 78 20 26 26 meric && !hex &&
3ded0 20 78 68 74 6d 6c 5f 65 6e 74 69 74 69 65 73 5f xhtml_entities_
3dee0 31 2e 58 48 54 4d 4c 45 6e 74 69 74 69 65 73 5b 1.XHTMLEntities[
3def0 73 74 72 5d 29 20 7b 0a 20 20 09 20 20 20 20 20 str]) {. .
3df00 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c resul
3df10 74 20 3d 20 78 68 74 6d 6c 5f 65 6e 74 69 74 69 t = xhtml_entiti
3df20 65 73 5f 31 2e 58 48 54 4d 4c 45 6e 74 69 74 69 es_1.XHTMLEntiti
3df30 65 73 5b 73 74 72 5d 3b 0a 20 20 09 20 20 20 20 es[str];. .
3df40 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
3df50 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
3df60 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b return result;
3df70 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
3df80 20 20 2f 2f 20 53 63 61 6e 20 74 68 65 20 6e 65 // Scan the ne
3df90 78 74 20 4a 53 58 20 74 6f 6b 65 6e 2e 20 54 68 xt JSX token. Th
3dfa0 69 73 20 72 65 70 6c 61 63 65 73 20 53 63 61 6e is replaces Scan
3dfb0 6e 65 72 23 6c 65 78 20 77 68 65 6e 20 69 6e 20 ner#lex when in
3dfc0 4a 53 58 20 6d 6f 64 65 2e 0a 20 20 09 20 20 20 JSX mode.. .
3dfd0 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f JSXParser.proto
3dfe0 74 79 70 65 2e 6c 65 78 4a 53 58 20 3d 20 66 75 type.lexJSX = fu
3dff0 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
3e000 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 var this$
3e010 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 1 = this;.. .
3e020 20 20 20 20 20 20 76 61 72 20 63 70 20 3d 20 74 var cp = t
3e030 68 69 73 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 72 his.scanner.sour
3e040 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 68 ce.charCodeAt(th
3e050 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 is.scanner.index
3e060 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f );. . //
3e070 20 3c 20 3e 20 2f 20 3a 20 3d 20 7b 20 7d 0a 20 < > / : = { }.
3e080 20 09 20 20 20 20 20 20 20 20 69 66 20 28 63 70 . if (cp
3e090 20 3d 3d 3d 20 36 30 20 7c 7c 20 63 70 20 3d 3d === 60 || cp ==
3e0a0 3d 20 36 32 20 7c 7c 20 63 70 20 3d 3d 3d 20 34 = 62 || cp === 4
3e0b0 37 20 7c 7c 20 63 70 20 3d 3d 3d 20 35 38 20 7c 7 || cp === 58 |
3e0c0 7c 20 63 70 20 3d 3d 3d 20 36 31 20 7c 7c 20 63 | cp === 61 || c
3e0d0 70 20 3d 3d 3d 20 31 32 33 20 7c 7c 20 63 70 20 p === 123 || cp
3e0e0 3d 3d 3d 20 31 32 35 29 20 7b 0a 20 20 09 20 20 === 125) {. .
3e0f0 20 20 20 20 20 20 20 20 20 20 76 61 72 20 76 61 var va
3e100 6c 75 65 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e lue = this.scann
3e110 65 72 2e 73 6f 75 72 63 65 5b 74 68 69 73 2e 73 er.source[this.s
3e120 63 61 6e 6e 65 72 2e 69 6e 64 65 78 2b 2b 5d 3b canner.index++];
3e130 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3e140 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 20 return {. .
3e150 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 type
3e160 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e : token_1.Token.
3e170 50 75 6e 63 74 75 61 74 6f 72 2c 0a 20 20 09 20 Punctuator,. .
3e180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
3e190 61 6c 75 65 3a 20 76 61 6c 75 65 2c 0a 20 20 09 alue: value,. .
3e1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e1b0 6c 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 lineNumber: this
3e1c0 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d .scanner.lineNum
3e1d0 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 ber,. .
3e1e0 20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 61 72 lineStar
3e1f0 74 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e t: this.scanner.
3e200 6c 69 6e 65 53 74 61 72 74 2c 0a 20 20 09 20 20 lineStart,. .
3e210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 st
3e220 61 72 74 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 art: this.scanne
3e230 72 2e 69 6e 64 65 78 20 2d 20 31 2c 0a 20 20 09 r.index - 1,. .
3e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e250 65 6e 64 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 end: this.scanne
3e260 72 2e 69 6e 64 65 78 0a 20 20 09 20 20 20 20 20 r.index. .
3e270 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
3e280 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
3e290 20 20 2f 2f 20 22 20 27 0a 20 20 09 20 20 20 20 // " '. .
3e2a0 20 20 20 20 69 66 20 28 63 70 20 3d 3d 3d 20 33 if (cp === 3
3e2b0 34 20 7c 7c 20 63 70 20 3d 3d 3d 20 33 39 29 20 4 || cp === 39)
3e2c0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
3e2d0 20 76 61 72 20 73 74 61 72 74 20 3d 20 74 68 69 var start = thi
3e2e0 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 3b s.scanner.index;
3e2f0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3e300 76 61 72 20 71 75 6f 74 65 20 3d 20 74 68 69 73 var quote = this
3e310 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 72 63 65 5b .scanner.source[
3e320 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 this.scanner.ind
3e330 65 78 2b 2b 5d 3b 0a 20 20 09 20 20 20 20 20 20 ex++];. .
3e340 20 20 20 20 20 20 76 61 72 20 73 74 72 20 3d 20 var str =
3e350 27 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 '';. .
3e360 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e while (!this.
3e370 73 63 61 6e 6e 65 72 2e 65 6f 66 28 29 29 20 7b scanner.eof()) {
3e380 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3e390 20 20 20 20 76 61 72 20 63 68 20 3d 20 74 68 69 var ch = thi
3e3a0 73 24 31 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 72 s$1.scanner.sour
3e3b0 63 65 5b 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 ce[this$1.scanne
3e3c0 72 2e 69 6e 64 65 78 2b 2b 5d 3b 0a 20 20 09 20 r.index++];. .
3e3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
3e3e0 66 20 28 63 68 20 3d 3d 3d 20 71 75 6f 74 65 29 f (ch === quote)
3e3f0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
3e400 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
3e410 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3e420 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
3e430 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 else if
3e440 20 28 63 68 20 3d 3d 3d 20 27 26 27 29 20 7b 0a (ch === '&') {.
3e450 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3e460 20 20 20 20 20 20 20 73 74 72 20 2b 3d 20 74 68 str += th
3e470 69 73 24 31 2e 73 63 61 6e 58 48 54 4d 4c 45 6e is$1.scanXHTMLEn
3e480 74 69 74 79 28 71 75 6f 74 65 29 3b 0a 20 20 09 tity(quote);. .
3e490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e4a0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
3e4b0 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 else {. .
3e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e4d0 20 20 20 73 74 72 20 2b 3d 20 63 68 3b 0a 20 20 str += ch;.
3e4e0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3e4f0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
3e500 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
3e510 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 return {. .
3e520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
3e530 79 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b ype: token_1.Tok
3e540 65 6e 2e 53 74 72 69 6e 67 4c 69 74 65 72 61 6c en.StringLiteral
3e550 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
3e560 20 20 20 20 20 76 61 6c 75 65 3a 20 73 74 72 2c value: str,
3e570 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3e580 20 20 20 20 6c 69 6e 65 4e 75 6d 62 65 72 3a 20 lineNumber:
3e590 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e this.scanner.lin
3e5a0 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 eNumber,. .
3e5b0 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
3e5c0 53 74 61 72 74 3a 20 74 68 69 73 2e 73 63 61 6e Start: this.scan
3e5d0 6e 65 72 2e 6c 69 6e 65 53 74 61 72 74 2c 0a 20 ner.lineStart,.
3e5e0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3e5f0 20 20 73 74 61 72 74 3a 20 73 74 61 72 74 2c 0a start: start,.
3e600 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3e610 20 20 20 65 6e 64 3a 20 74 68 69 73 2e 73 63 61 end: this.sca
3e620 6e 6e 65 72 2e 69 6e 64 65 78 0a 20 20 09 20 20 nner.index. .
3e630 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 };. .
3e640 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
3e650 20 20 20 20 20 2f 2f 20 2e 2e 2e 20 6f 72 20 2e // ... or .
3e660 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
3e670 63 70 20 3d 3d 3d 20 34 36 29 20 7b 0a 20 20 09 cp === 46) {. .
3e680 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
3e690 6e 31 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 n1 = this.scanne
3e6a0 72 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 r.source.charCod
3e6b0 65 41 74 28 74 68 69 73 2e 73 63 61 6e 6e 65 72 eAt(this.scanner
3e6c0 2e 69 6e 64 65 78 20 2b 20 31 29 3b 0a 20 20 09 .index + 1);. .
3e6d0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
3e6e0 6e 32 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 n2 = this.scanne
3e6f0 72 2e 73 6f 75 72 63 65 2e 63 68 61 72 43 6f 64 r.source.charCod
3e700 65 41 74 28 74 68 69 73 2e 73 63 61 6e 6e 65 72 eAt(this.scanner
3e710 2e 69 6e 64 65 78 20 2b 20 32 29 3b 0a 20 20 09 .index + 2);. .
3e720 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
3e730 76 61 6c 75 65 20 3d 20 28 6e 31 20 3d 3d 3d 20 value = (n1 ===
3e740 34 36 20 26 26 20 6e 32 20 3d 3d 3d 20 34 36 29 46 && n2 === 46)
3e750 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 2e 27 3b 0a ? '...' : '.';.
3e760 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
3e770 61 72 20 73 74 61 72 74 20 3d 20 74 68 69 73 2e ar start = this.
3e780 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a 20 scanner.index;.
3e790 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
3e7a0 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 is.scanner.index
3e7b0 20 2b 3d 20 76 61 6c 75 65 2e 6c 65 6e 67 74 68 += value.length
3e7c0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
3e7d0 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 20 return {. .
3e7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 typ
3e7f0 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e e: token_1.Token
3e800 2e 50 75 6e 63 74 75 61 74 6f 72 2c 0a 20 20 09 .Punctuator,. .
3e810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e820 76 61 6c 75 65 3a 20 76 61 6c 75 65 2c 0a 20 20 value: value,.
3e830 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3e840 20 6c 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 lineNumber: thi
3e850 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 s.scanner.lineNu
3e860 6d 62 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 mber,. .
3e870 20 20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 61 lineSta
3e880 72 74 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 rt: this.scanner
3e890 2e 6c 69 6e 65 53 74 61 72 74 2c 0a 20 20 09 20 .lineStart,. .
3e8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 s
3e8b0 74 61 72 74 3a 20 73 74 61 72 74 2c 0a 20 20 09 tart: start,. .
3e8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3e8d0 65 6e 64 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 end: this.scanne
3e8e0 72 2e 69 6e 64 65 78 0a 20 20 09 20 20 20 20 20 r.index. .
3e8f0 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
3e900 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
3e910 20 20 2f 2f 20 60 0a 20 20 09 20 20 20 20 20 20 // `. .
3e920 20 20 69 66 20 28 63 70 20 3d 3d 3d 20 39 36 29 if (cp === 96)
3e930 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
3e940 20 20 2f 2f 20 4f 6e 6c 79 20 70 6c 61 63 65 68 // Only placeh
3e950 6f 6c 64 65 72 2c 20 73 69 6e 63 65 20 69 74 20 older, since it
3e960 77 69 6c 6c 20 62 65 20 72 65 73 63 61 6e 6e 65 will be rescanne
3e970 64 20 61 73 20 61 20 72 65 61 6c 20 61 73 73 69 d as a real assi
3e980 67 6e 6d 65 6e 74 20 65 78 70 72 65 73 73 69 6f gnment expressio
3e990 6e 2e 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 n.. .
3e9a0 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 20 20 return {. .
3e9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 ty
3e9c0 70 65 3a 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 pe: token_1.Toke
3e9d0 6e 2e 54 65 6d 70 6c 61 74 65 2c 0a 20 20 09 20 n.Template,. .
3e9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c l
3e9f0 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e ineNumber: this.
3ea00 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 scanner.lineNumb
3ea10 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 er,. .
3ea20 20 20 20 20 20 20 20 6c 69 6e 65 53 74 61 72 74 lineStart
3ea30 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c : this.scanner.l
3ea40 69 6e 65 53 74 61 72 74 2c 0a 20 20 09 20 20 20 ineStart,. .
3ea50 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 sta
3ea60 72 74 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 rt: this.scanner
3ea70 2e 69 6e 64 65 78 2c 0a 20 20 09 20 20 20 20 20 .index,. .
3ea80 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3a 20 end:
3ea90 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 this.scanner.ind
3eaa0 65 78 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ex. .
3eab0 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 };. .
3eac0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f 20 }. . //
3ead0 49 64 65 6e 74 69 66 65 72 20 63 61 6e 20 6e 6f Identifer can no
3eae0 74 20 63 6f 6e 74 61 69 6e 20 62 61 63 6b 73 6c t contain backsl
3eaf0 61 73 68 20 28 63 68 61 72 20 63 6f 64 65 20 39 ash (char code 9
3eb00 32 29 2e 0a 20 20 09 20 20 20 20 20 20 20 20 69 2).. . i
3eb10 66 20 28 63 68 61 72 61 63 74 65 72 5f 31 2e 43 f (character_1.C
3eb20 68 61 72 61 63 74 65 72 2e 69 73 49 64 65 6e 74 haracter.isIdent
3eb30 69 66 69 65 72 53 74 61 72 74 28 63 70 29 20 26 ifierStart(cp) &
3eb40 26 20 28 63 70 20 21 3d 3d 20 39 32 29 29 20 7b & (cp !== 92)) {
3eb50 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3eb60 76 61 72 20 73 74 61 72 74 20 3d 20 74 68 69 73 var start = this
3eb70 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a .scanner.index;.
3eb80 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 2b . +
3eb90 2b 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e +this.scanner.in
3eba0 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 dex;. .
3ebb0 20 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 while (!this
3ebc0 2e 73 63 61 6e 6e 65 72 2e 65 6f 66 28 29 29 20 .scanner.eof())
3ebd0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
3ebe0 20 20 20 20 20 76 61 72 20 63 68 20 3d 20 74 68 var ch = th
3ebf0 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 is$1.scanner.sou
3ec00 72 63 65 2e 63 68 61 72 43 6f 64 65 41 74 28 74 rce.charCodeAt(t
3ec10 68 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e 69 6e his$1.scanner.in
3ec20 64 65 78 29 3b 0a 20 20 09 20 20 20 20 20 20 20 dex);. .
3ec30 20 20 20 20 20 20 20 20 20 69 66 20 28 63 68 61 if (cha
3ec40 72 61 63 74 65 72 5f 31 2e 43 68 61 72 61 63 74 racter_1.Charact
3ec50 65 72 2e 69 73 49 64 65 6e 74 69 66 69 65 72 50 er.isIdentifierP
3ec60 61 72 74 28 63 68 29 20 26 26 20 28 63 68 20 21 art(ch) && (ch !
3ec70 3d 3d 20 39 32 29 29 20 7b 0a 20 20 09 20 20 20 == 92)) {. .
3ec80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3ec90 20 2b 2b 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 ++this$1.scanne
3eca0 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 r.index;. .
3ecb0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
3ecc0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3ecd0 20 65 6c 73 65 20 69 66 20 28 63 68 20 3d 3d 3d else if (ch ===
3ece0 20 34 35 29 20 7b 0a 20 20 09 20 20 20 20 20 20 45) {. .
3ecf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f //
3ed00 20 48 79 70 68 65 6e 20 28 63 68 61 72 20 63 6f Hyphen (char co
3ed10 64 65 20 34 35 29 20 63 61 6e 20 62 65 20 70 61 de 45) can be pa
3ed20 72 74 20 6f 66 20 61 6e 20 69 64 65 6e 74 69 66 rt of an identif
3ed30 69 65 72 2e 0a 20 20 09 20 20 20 20 20 20 20 20 ier.. .
3ed40 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 ++th
3ed50 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 is$1.scanner.ind
3ed60 65 78 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ex;. .
3ed70 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
3ed80 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 else
3ed90 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
3eda0 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
3edb0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3edc0 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
3edd0 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
3ede0 20 20 20 20 20 20 76 61 72 20 69 64 20 3d 20 74 var id = t
3edf0 68 69 73 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 72 his.scanner.sour
3ee00 63 65 2e 73 6c 69 63 65 28 73 74 61 72 74 2c 20 ce.slice(start,
3ee10 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 this.scanner.ind
3ee20 65 78 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ex);. .
3ee30 20 20 20 20 72 65 74 75 72 6e 20 7b 0a 20 20 09 return {. .
3ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3ee50 74 79 70 65 3a 20 4a 53 58 54 6f 6b 65 6e 2e 49 type: JSXToken.I
3ee60 64 65 6e 74 69 66 69 65 72 2c 0a 20 20 09 20 20 dentifier,. .
3ee70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
3ee80 6c 75 65 3a 20 69 64 2c 0a 20 20 09 20 20 20 20 lue: id,. .
3ee90 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 line
3eea0 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e 73 63 61 Number: this.sca
3eeb0 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c nner.lineNumber,
3eec0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3eed0 20 20 20 20 6c 69 6e 65 53 74 61 72 74 3a 20 74 lineStart: t
3eee0 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 his.scanner.line
3eef0 53 74 61 72 74 2c 0a 20 20 09 20 20 20 20 20 20 Start,. .
3ef00 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 3a start:
3ef10 20 73 74 61 72 74 2c 0a 20 20 09 20 20 20 20 20 start,. .
3ef20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 3a 20 end:
3ef30 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 this.scanner.ind
3ef40 65 78 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ex. .
3ef50 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 };. .
3ef60 7d 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 }. . thi
3ef70 73 2e 73 63 61 6e 6e 65 72 2e 74 68 72 6f 77 55 s.scanner.throwU
3ef80 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 29 nexpectedToken()
3ef90 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
3efa0 20 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f JSXParser.pro
3efb0 74 6f 74 79 70 65 2e 6e 65 78 74 4a 53 58 54 6f totype.nextJSXTo
3efc0 6b 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ken = function (
3efd0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
3efe0 68 69 73 2e 63 6f 6c 6c 65 63 74 43 6f 6d 6d 65 his.collectComme
3eff0 6e 74 73 28 29 3b 0a 20 20 09 20 20 20 20 20 20 nts();. .
3f000 20 20 74 68 69 73 2e 73 74 61 72 74 4d 61 72 6b this.startMark
3f010 65 72 2e 69 6e 64 65 78 20 3d 20 74 68 69 73 2e er.index = this.
3f020 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a 20 scanner.index;.
3f030 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 . this.s
3f040 74 61 72 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e tartMarker.lineN
3f050 75 6d 62 65 72 20 3d 20 74 68 69 73 2e 73 63 61 umber = this.sca
3f060 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b nner.lineNumber;
3f070 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
3f080 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e 6c 69 6e .startMarker.lin
3f090 65 53 74 61 72 74 20 3d 20 74 68 69 73 2e 73 63 eStart = this.sc
3f0a0 61 6e 6e 65 72 2e 6c 69 6e 65 53 74 61 72 74 3b anner.lineStart;
3f0b0 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
3f0c0 74 6f 6b 65 6e 20 3d 20 74 68 69 73 2e 6c 65 78 token = this.lex
3f0d0 4a 53 58 28 29 3b 0a 20 20 09 20 20 20 20 20 20 JSX();. .
3f0e0 20 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 this.lastMarke
3f0f0 72 2e 69 6e 64 65 78 20 3d 20 74 68 69 73 2e 73 r.index = this.s
3f100 63 61 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a 20 20 canner.index;.
3f110 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 61 . this.la
3f120 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d stMarker.lineNum
3f130 62 65 72 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e ber = this.scann
3f140 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 er.lineNumber;.
3f150 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c . this.l
3f160 61 73 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 53 74 astMarker.lineSt
3f170 61 72 74 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e art = this.scann
3f180 65 72 2e 6c 69 6e 65 53 74 61 72 74 3b 0a 20 20 er.lineStart;.
3f190 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
3f1a0 73 2e 63 6f 6e 66 69 67 2e 74 6f 6b 65 6e 73 29 s.config.tokens)
3f1b0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
3f1c0 20 20 74 68 69 73 2e 74 6f 6b 65 6e 73 2e 70 75 this.tokens.pu
3f1d0 73 68 28 74 68 69 73 2e 63 6f 6e 76 65 72 74 54 sh(this.convertT
3f1e0 6f 6b 65 6e 28 74 6f 6b 65 6e 29 29 3b 0a 20 20 oken(token));.
3f1f0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
3f200 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 6f 6b return tok
3f210 65 6e 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 en;. . };.
3f220 09 20 20 20 20 4a 53 58 50 61 72 73 65 72 2e 70 . JSXParser.p
3f230 72 6f 74 6f 74 79 70 65 2e 6e 65 78 74 4a 53 58 rototype.nextJSX
3f240 54 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 Text = function
3f250 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
3f260 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
3f270 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 74 s;.. . t
3f280 68 69 73 2e 73 74 61 72 74 4d 61 72 6b 65 72 2e his.startMarker.
3f290 69 6e 64 65 78 20 3d 20 74 68 69 73 2e 73 63 61 index = this.sca
3f2a0 6e 6e 65 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 nner.index;. .
3f2b0 20 20 20 20 20 20 20 74 68 69 73 2e 73 74 61 72 this.star
3f2c0 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 4e 75 6d 62 tMarker.lineNumb
3f2d0 65 72 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 er = this.scanne
3f2e0 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 20 r.lineNumber;.
3f2f0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 74 . this.st
3f300 61 72 74 4d 61 72 6b 65 72 2e 6c 69 6e 65 53 74 artMarker.lineSt
3f310 61 72 74 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e art = this.scann
3f320 65 72 2e 6c 69 6e 65 53 74 61 72 74 3b 0a 20 20 er.lineStart;.
3f330 09 20 20 20 20 20 20 20 20 76 61 72 20 73 74 61 . var sta
3f340 72 74 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 rt = this.scanne
3f350 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 r.index;. .
3f360 20 20 20 20 76 61 72 20 74 65 78 74 20 3d 20 27 var text = '
3f370 27 3b 0a 20 20 09 20 20 20 20 20 20 20 20 77 68 ';. . wh
3f380 69 6c 65 20 28 21 74 68 69 73 2e 73 63 61 6e 6e ile (!this.scann
3f390 65 72 2e 65 6f 66 28 29 29 20 7b 0a 20 20 09 20 er.eof()) {. .
3f3a0 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 var c
3f3b0 68 20 3d 20 74 68 69 73 24 31 2e 73 63 61 6e 6e h = this$1.scann
3f3c0 65 72 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 31 er.source[this$1
3f3d0 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 5d 3b .scanner.index];
3f3e0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
3f3f0 69 66 20 28 63 68 20 3d 3d 3d 20 27 7b 27 20 7c if (ch === '{' |
3f400 7c 20 63 68 20 3d 3d 3d 20 27 3c 27 29 20 7b 0a | ch === '<') {.
3f410 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3f420 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
3f430 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 }. .
3f440 20 20 20 20 20 20 20 20 20 20 2b 2b 74 68 69 73 ++this
3f450 24 31 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 $1.scanner.index
3f460 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
3f470 20 74 65 78 74 20 2b 3d 20 63 68 3b 0a 20 20 09 text += ch;. .
3f480 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
3f490 63 68 61 72 61 63 74 65 72 5f 31 2e 43 68 61 72 character_1.Char
3f4a0 61 63 74 65 72 2e 69 73 4c 69 6e 65 54 65 72 6d acter.isLineTerm
3f4b0 69 6e 61 74 6f 72 28 63 68 2e 63 68 61 72 43 6f inator(ch.charCo
3f4c0 64 65 41 74 28 30 29 29 29 20 7b 0a 20 20 09 20 deAt(0))) {. .
3f4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2b +
3f4e0 2b 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e +this$1.scanner.
3f4f0 6c 69 6e 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 lineNumber;. .
3f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
3f510 66 20 28 63 68 20 3d 3d 3d 20 27 5c 72 27 20 26 f (ch === '\r' &
3f520 26 20 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 72 & this$1.scanner
3f530 2e 73 6f 75 72 63 65 5b 74 68 69 73 24 31 2e 73 .source[this$1.s
3f540 63 61 6e 6e 65 72 2e 69 6e 64 65 78 5d 20 3d 3d canner.index] ==
3f550 3d 20 27 5c 6e 27 29 20 7b 0a 20 20 09 20 20 20 = '\n') {. .
3f560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
3f570 20 2b 2b 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 ++this$1.scanne
3f580 72 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 r.index;. .
3f590 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
3f5a0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
3f5b0 20 74 68 69 73 24 31 2e 73 63 61 6e 6e 65 72 2e this$1.scanner.
3f5c0 6c 69 6e 65 53 74 61 72 74 20 3d 20 74 68 69 73 lineStart = this
3f5d0 24 31 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 $1.scanner.index
3f5e0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
3f5f0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a }. . }.
3f600 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3f610 6c 61 73 74 4d 61 72 6b 65 72 2e 69 6e 64 65 78 lastMarker.index
3f620 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e = this.scanner.
3f630 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 20 index;. .
3f640 20 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b 65 this.lastMarke
3f650 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 3d 20 74 r.lineNumber = t
3f660 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 his.scanner.line
3f670 4e 75 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 20 Number;. .
3f680 20 20 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b this.lastMark
3f690 65 72 2e 6c 69 6e 65 53 74 61 72 74 20 3d 20 74 er.lineStart = t
3f6a0 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 his.scanner.line
3f6b0 53 74 61 72 74 3b 0a 20 20 09 20 20 20 20 20 20 Start;. .
3f6c0 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d 20 7b 0a var token = {.
3f6d0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 . t
3f6e0 79 70 65 3a 20 4a 53 58 54 6f 6b 65 6e 2e 54 65 ype: JSXToken.Te
3f6f0 78 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 xt,. .
3f700 20 20 20 76 61 6c 75 65 3a 20 74 65 78 74 2c 0a value: text,.
3f710 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 6c . l
3f720 69 6e 65 4e 75 6d 62 65 72 3a 20 74 68 69 73 2e ineNumber: this.
3f730 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 scanner.lineNumb
3f740 65 72 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 er,. .
3f750 20 20 20 6c 69 6e 65 53 74 61 72 74 3a 20 74 68 lineStart: th
3f760 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 53 is.scanner.lineS
3f770 74 61 72 74 2c 0a 20 20 09 20 20 20 20 20 20 20 tart,. .
3f780 20 20 20 20 20 73 74 61 72 74 3a 20 73 74 61 72 start: star
3f790 74 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 t,. .
3f7a0 20 20 65 6e 64 3a 20 74 68 69 73 2e 73 63 61 6e end: this.scan
3f7b0 6e 65 72 2e 69 6e 64 65 78 0a 20 20 09 20 20 20 ner.index. .
3f7c0 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 };. .
3f7d0 20 20 20 69 66 20 28 28 74 65 78 74 2e 6c 65 6e if ((text.len
3f7e0 67 74 68 20 3e 20 30 29 20 26 26 20 74 68 69 73 gth > 0) && this
3f7f0 2e 63 6f 6e 66 69 67 2e 74 6f 6b 65 6e 73 29 20 .config.tokens)
3f800 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 {. .
3f810 20 74 68 69 73 2e 74 6f 6b 65 6e 73 2e 70 75 73 this.tokens.pus
3f820 68 28 74 68 69 73 2e 63 6f 6e 76 65 72 74 54 6f h(this.convertTo
3f830 6b 65 6e 28 74 6f 6b 65 6e 29 29 3b 0a 20 20 09 ken(token));. .
3f840 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
3f850 20 20 20 20 20 72 65 74 75 72 6e 20 74 6f 6b 65 return toke
3f860 6e 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 n;. . };. .
3f870 20 20 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 JSXParser.pr
3f880 6f 74 6f 74 79 70 65 2e 70 65 65 6b 4a 53 58 54 ototype.peekJSXT
3f890 6f 6b 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 oken = function
3f8a0 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
3f8b0 76 61 72 20 70 72 65 76 69 6f 75 73 49 6e 64 65 var previousInde
3f8c0 78 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 x = this.scanner
3f8d0 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
3f8e0 20 20 20 76 61 72 20 70 72 65 76 69 6f 75 73 4c var previousL
3f8f0 69 6e 65 4e 75 6d 62 65 72 20 3d 20 74 68 69 73 ineNumber = this
3f900 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d .scanner.lineNum
3f910 62 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ber;. .
3f920 76 61 72 20 70 72 65 76 69 6f 75 73 4c 69 6e 65 var previousLine
3f930 53 74 61 72 74 20 3d 20 74 68 69 73 2e 73 63 61 Start = this.sca
3f940 6e 6e 65 72 2e 6c 69 6e 65 53 74 61 72 74 3b 0a nner.lineStart;.
3f950 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
3f960 73 63 61 6e 6e 65 72 2e 73 63 61 6e 43 6f 6d 6d scanner.scanComm
3f970 65 6e 74 73 28 29 3b 0a 20 20 09 20 20 20 20 20 ents();. .
3f980 20 20 20 76 61 72 20 6e 65 78 74 20 3d 20 74 68 var next = th
3f990 69 73 2e 6c 65 78 4a 53 58 28 29 3b 0a 20 20 09 is.lexJSX();. .
3f9a0 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 this.sca
3f9b0 6e 6e 65 72 2e 69 6e 64 65 78 20 3d 20 70 72 65 nner.index = pre
3f9c0 76 69 6f 75 73 49 6e 64 65 78 3b 0a 20 20 09 20 viousIndex;. .
3f9d0 20 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 6e this.scan
3f9e0 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 3d ner.lineNumber =
3f9f0 20 70 72 65 76 69 6f 75 73 4c 69 6e 65 4e 75 6d previousLineNum
3fa00 62 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 ber;. .
3fa10 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e this.scanner.lin
3fa20 65 53 74 61 72 74 20 3d 20 70 72 65 76 69 6f 75 eStart = previou
3fa30 73 4c 69 6e 65 53 74 61 72 74 3b 0a 20 20 09 20 sLineStart;. .
3fa40 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 return ne
3fa50 78 74 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 xt;. . };.
3fa60 09 20 20 20 20 2f 2f 20 45 78 70 65 63 74 20 74 . // Expect t
3fa70 68 65 20 6e 65 78 74 20 4a 53 58 20 74 6f 6b 65 he next JSX toke
3fa80 6e 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 73 n to match the s
3fa90 70 65 63 69 66 69 65 64 20 70 75 6e 63 74 75 61 pecified punctua
3faa0 74 6f 72 2e 0a 20 20 09 20 20 20 20 2f 2f 20 49 tor.. . // I
3fab0 66 20 6e 6f 74 2c 20 61 6e 20 65 78 63 65 70 74 f not, an except
3fac0 69 6f 6e 20 77 69 6c 6c 20 62 65 20 74 68 72 6f ion will be thro
3fad0 77 6e 2e 0a 20 20 09 20 20 20 20 4a 53 58 50 61 wn.. . JSXPa
3fae0 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 65 rser.prototype.e
3faf0 78 70 65 63 74 4a 53 58 20 3d 20 66 75 6e 63 74 xpectJSX = funct
3fb00 69 6f 6e 20 28 76 61 6c 75 65 29 20 7b 0a 20 20 ion (value) {.
3fb10 09 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b . var tok
3fb20 65 6e 20 3d 20 74 68 69 73 2e 6e 65 78 74 4a 53 en = this.nextJS
3fb30 58 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 XToken();. .
3fb40 20 20 20 20 20 69 66 20 28 74 6f 6b 65 6e 2e 74 if (token.t
3fb50 79 70 65 20 21 3d 3d 20 74 6f 6b 65 6e 5f 31 2e ype !== token_1.
3fb60 54 6f 6b 65 6e 2e 50 75 6e 63 74 75 61 74 6f 72 Token.Punctuator
3fb70 20 7c 7c 20 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 || token.value
3fb80 21 3d 3d 20 76 61 6c 75 65 29 20 7b 0a 20 20 09 !== value) {. .
3fb90 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
3fba0 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 64 .throwUnexpected
3fbb0 54 6f 6b 65 6e 28 74 6f 6b 65 6e 29 3b 0a 20 20 Token(token);.
3fbc0 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
3fbd0 20 20 7d 3b 0a 20 20 09 20 20 20 20 2f 2f 20 52 };. . // R
3fbe0 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 74 68 eturn true if th
3fbf0 65 20 6e 65 78 74 20 4a 53 58 20 74 6f 6b 65 6e e next JSX token
3fc00 20 6d 61 74 63 68 65 73 20 74 68 65 20 73 70 65 matches the spe
3fc10 63 69 66 69 65 64 20 70 75 6e 63 74 75 61 74 6f cified punctuato
3fc20 72 2e 0a 20 20 09 20 20 20 20 4a 53 58 50 61 72 r.. . JSXPar
3fc30 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6d 61 ser.prototype.ma
3fc40 74 63 68 4a 53 58 20 3d 20 66 75 6e 63 74 69 6f tchJSX = functio
3fc50 6e 20 28 76 61 6c 75 65 29 20 7b 0a 20 20 09 20 n (value) {. .
3fc60 20 20 20 20 20 20 20 76 61 72 20 6e 65 78 74 20 var next
3fc70 3d 20 74 68 69 73 2e 70 65 65 6b 4a 53 58 54 6f = this.peekJSXTo
3fc80 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ken();. .
3fc90 20 20 72 65 74 75 72 6e 20 6e 65 78 74 2e 74 79 return next.ty
3fca0 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 pe === token_1.T
3fcb0 6f 6b 65 6e 2e 50 75 6e 63 74 75 61 74 6f 72 20 oken.Punctuator
3fcc0 26 26 20 6e 65 78 74 2e 76 61 6c 75 65 20 3d 3d && next.value ==
3fcd0 3d 20 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 = value;. .
3fce0 7d 3b 0a 20 20 09 20 20 20 20 4a 53 58 50 61 72 };. . JSXPar
3fcf0 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 ser.prototype.pa
3fd00 72 73 65 4a 53 58 49 64 65 6e 74 69 66 69 65 72 rseJSXIdentifier
3fd10 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
3fd20 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
3fd30 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 node = this.crea
3fd40 74 65 4a 53 58 4e 6f 64 65 28 29 3b 0a 20 20 09 teJSXNode();. .
3fd50 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 var toke
3fd60 6e 20 3d 20 74 68 69 73 2e 6e 65 78 74 4a 53 58 n = this.nextJSX
3fd70 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
3fd80 20 20 20 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 if (token.ty
3fd90 70 65 20 21 3d 3d 20 4a 53 58 54 6f 6b 65 6e 2e pe !== JSXToken.
3fda0 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 20 20 Identifier) {.
3fdb0 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
3fdc0 73 2e 74 68 72 6f 77 55 6e 65 78 70 65 63 74 65 s.throwUnexpecte
3fdd0 64 54 6f 6b 65 6e 28 74 6f 6b 65 6e 29 3b 0a 20 dToken(token);.
3fde0 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
3fdf0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 return th
3fe00 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 is.finalize(node
3fe10 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e 4a 53 , new JSXNode.JS
3fe20 58 49 64 65 6e 74 69 66 69 65 72 28 74 6f 6b 65 XIdentifier(toke
3fe30 6e 2e 76 61 6c 75 65 29 29 3b 0a 20 20 09 20 20 n.value));. .
3fe40 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a 53 58 50 };. . JSXP
3fe50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
3fe60 70 61 72 73 65 4a 53 58 45 6c 65 6d 65 6e 74 4e parseJSXElementN
3fe70 61 6d 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ame = function (
3fe80 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ) {. . v
3fe90 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 73 ar this$1 = this
3fea0 3b 0a 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 ;.. . va
3feb0 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 r node = this.cr
3fec0 65 61 74 65 4a 53 58 4e 6f 64 65 28 29 3b 0a 20 eateJSXNode();.
3fed0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 65 6c . var el
3fee0 65 6d 65 6e 74 4e 61 6d 65 20 3d 20 74 68 69 73 ementName = this
3fef0 2e 70 61 72 73 65 4a 53 58 49 64 65 6e 74 69 66 .parseJSXIdentif
3ff00 69 65 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ier();. .
3ff10 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 if (this.match
3ff20 4a 53 58 28 27 3a 27 29 29 20 7b 0a 20 20 09 20 JSX(':')) {. .
3ff30 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e var n
3ff40 61 6d 65 73 70 61 63 65 20 3d 20 65 6c 65 6d 65 amespace = eleme
3ff50 6e 74 4e 61 6d 65 3b 0a 20 20 09 20 20 20 20 20 ntName;. .
3ff60 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 this.expe
3ff70 63 74 4a 53 58 28 27 3a 27 29 3b 0a 20 20 09 20 ctJSX(':');. .
3ff80 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e var n
3ff90 61 6d 65 5f 31 20 3d 20 74 68 69 73 2e 70 61 72 ame_1 = this.par
3ffa0 73 65 4a 53 58 49 64 65 6e 74 69 66 69 65 72 28 seJSXIdentifier(
3ffb0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
3ffc0 20 20 65 6c 65 6d 65 6e 74 4e 61 6d 65 20 3d 20 elementName =
3ffd0 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f this.finalize(no
3ffe0 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e de, new JSXNode.
3fff0 4a 53 58 4e 61 6d 65 73 70 61 63 65 64 4e 61 6d JSXNamespacedNam
40000 65 28 6e 61 6d 65 73 70 61 63 65 2c 20 6e 61 6d e(namespace, nam
40010 65 5f 31 29 29 3b 0a 20 20 09 20 20 20 20 20 20 e_1));. .
40020 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 }. . e
40030 6c 73 65 20 69 66 20 28 74 68 69 73 2e 6d 61 74 lse if (this.mat
40040 63 68 4a 53 58 28 27 2e 27 29 29 20 7b 0a 20 20 chJSX('.')) {.
40050 09 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 . whi
40060 6c 65 20 28 74 68 69 73 2e 6d 61 74 63 68 4a 53 le (this.matchJS
40070 58 28 27 2e 27 29 29 20 7b 0a 20 20 09 20 20 20 X('.')) {. .
40080 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 var
40090 20 6f 62 6a 65 63 74 20 3d 20 65 6c 65 6d 65 6e object = elemen
400a0 74 4e 61 6d 65 3b 0a 20 20 09 20 20 20 20 20 20 tName;. .
400b0 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 31 this$1
400c0 2e 65 78 70 65 63 74 4a 53 58 28 27 2e 27 29 3b .expectJSX('.');
400d0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
400e0 20 20 20 20 76 61 72 20 70 72 6f 70 65 72 74 79 var property
400f0 20 3d 20 74 68 69 73 24 31 2e 70 61 72 73 65 4a = this$1.parseJ
40100 53 58 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a SXIdentifier();.
40110 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
40120 20 20 20 65 6c 65 6d 65 6e 74 4e 61 6d 65 20 3d elementName =
40130 20 74 68 69 73 24 31 2e 66 69 6e 61 6c 69 7a 65 this$1.finalize
40140 28 6e 6f 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f (node, new JSXNo
40150 64 65 2e 4a 53 58 4d 65 6d 62 65 72 45 78 70 72 de.JSXMemberExpr
40160 65 73 73 69 6f 6e 28 6f 62 6a 65 63 74 2c 20 70 ession(object, p
40170 72 6f 70 65 72 74 79 29 29 3b 0a 20 20 09 20 20 roperty));. .
40180 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
40190 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
401a0 20 20 20 20 72 65 74 75 72 6e 20 65 6c 65 6d 65 return eleme
401b0 6e 74 4e 61 6d 65 3b 0a 20 20 09 20 20 20 20 7d ntName;. . }
401c0 3b 0a 20 20 09 20 20 20 20 4a 53 58 50 61 72 73 ;. . JSXPars
401d0 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 er.prototype.par
401e0 73 65 4a 53 58 41 74 74 72 69 62 75 74 65 4e 61 seJSXAttributeNa
401f0 6d 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 me = function ()
40200 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 {. . va
40210 72 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 r node = this.cr
40220 65 61 74 65 4a 53 58 4e 6f 64 65 28 29 3b 0a 20 eateJSXNode();.
40230 20 09 20 20 20 20 20 20 20 20 76 61 72 20 61 74 . var at
40240 74 72 69 62 75 74 65 4e 61 6d 65 3b 0a 20 20 09 tributeName;. .
40250 20 20 20 20 20 20 20 20 76 61 72 20 69 64 65 6e var iden
40260 74 69 66 69 65 72 20 3d 20 74 68 69 73 2e 70 61 tifier = this.pa
40270 72 73 65 4a 53 58 49 64 65 6e 74 69 66 69 65 72 rseJSXIdentifier
40280 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 ();. . i
40290 66 20 28 74 68 69 73 2e 6d 61 74 63 68 4a 53 58 f (this.matchJSX
402a0 28 27 3a 27 29 29 20 7b 0a 20 20 09 20 20 20 20 (':')) {. .
402b0 20 20 20 20 20 20 20 20 76 61 72 20 6e 61 6d 65 var name
402c0 73 70 61 63 65 20 3d 20 69 64 65 6e 74 69 66 69 space = identifi
402d0 65 72 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 er;. .
402e0 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 4a 53 this.expectJS
402f0 58 28 27 3a 27 29 3b 0a 20 20 09 20 20 20 20 20 X(':');. .
40300 20 20 20 20 20 20 20 76 61 72 20 6e 61 6d 65 5f var name_
40310 32 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4a 53 2 = this.parseJS
40320 58 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 20 XIdentifier();.
40330 20 09 20 20 20 20 20 20 20 20 20 20 20 20 61 74 . at
40340 74 72 69 62 75 74 65 4e 61 6d 65 20 3d 20 74 68 tributeName = th
40350 69 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 is.finalize(node
40360 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e 4a 53 , new JSXNode.JS
40370 58 4e 61 6d 65 73 70 61 63 65 64 4e 61 6d 65 28 XNamespacedName(
40380 6e 61 6d 65 73 70 61 63 65 2c 20 6e 61 6d 65 5f namespace, name_
40390 32 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 2));. .
403a0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 65 6c 73 }. . els
403b0 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
403c0 20 20 20 61 74 74 72 69 62 75 74 65 4e 61 6d 65 attributeName
403d0 20 3d 20 69 64 65 6e 74 69 66 69 65 72 3b 0a 20 = identifier;.
403e0 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
403f0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 74 return at
40400 74 72 69 62 75 74 65 4e 61 6d 65 3b 0a 20 20 09 tributeName;. .
40410 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a 53 };. . JS
40420 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 XParser.prototyp
40430 65 2e 70 61 72 73 65 4a 53 58 53 74 72 69 6e 67 e.parseJSXString
40440 4c 69 74 65 72 61 6c 41 74 74 72 69 62 75 74 65 LiteralAttribute
40450 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
40460 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 . . var
40470 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 61 node = this.crea
40480 74 65 4a 53 58 4e 6f 64 65 28 29 3b 0a 20 20 09 teJSXNode();. .
40490 20 20 20 20 20 20 20 20 76 61 72 20 74 6f 6b 65 var toke
404a0 6e 20 3d 20 74 68 69 73 2e 6e 65 78 74 4a 53 58 n = this.nextJSX
404b0 54 6f 6b 65 6e 28 29 3b 0a 20 20 09 20 20 20 20 Token();. .
404c0 20 20 20 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 if (token.ty
404d0 70 65 20 21 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 pe !== token_1.T
404e0 6f 6b 65 6e 2e 53 74 72 69 6e 67 4c 69 74 65 72 oken.StringLiter
404f0 61 6c 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 al) {. .
40500 20 20 20 20 20 74 68 69 73 2e 74 68 72 6f 77 55 this.throwU
40510 6e 65 78 70 65 63 74 65 64 54 6f 6b 65 6e 28 74 nexpectedToken(t
40520 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 20 oken);. .
40530 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 76 }. . v
40540 61 72 20 72 61 77 20 3d 20 74 68 69 73 2e 67 65 ar raw = this.ge
40550 74 54 6f 6b 65 6e 52 61 77 28 74 6f 6b 65 6e 29 tTokenRaw(token)
40560 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 ;. . ret
40570 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a urn this.finaliz
40580 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4e 6f 64 65 e(node, new Node
40590 2e 4c 69 74 65 72 61 6c 28 74 6f 6b 65 6e 2e 76 .Literal(token.v
405a0 61 6c 75 65 2c 20 72 61 77 29 29 3b 0a 20 20 09 alue, raw));. .
405b0 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a 53 };. . JS
405c0 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 XParser.prototyp
405d0 65 2e 70 61 72 73 65 4a 53 58 45 78 70 72 65 73 e.parseJSXExpres
405e0 73 69 6f 6e 41 74 74 72 69 62 75 74 65 20 3d 20 sionAttribute =
405f0 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
40600 09 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 . var nod
40610 65 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4a e = this.createJ
40620 53 58 4e 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 SXNode();. .
40630 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 74 this.expect
40640 4a 53 58 28 27 7b 27 29 3b 0a 20 20 09 20 20 20 JSX('{');. .
40650 20 20 20 20 20 74 68 69 73 2e 66 69 6e 69 73 68 this.finish
40660 4a 53 58 28 29 3b 0a 20 20 09 20 20 20 20 20 20 JSX();. .
40670 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 63 68 if (this.match
40680 28 27 7d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 ('}')) {. .
40690 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f 6c this.tol
406a0 65 72 61 74 65 45 72 72 6f 72 28 27 4a 53 58 20 erateError('JSX
406b0 61 74 74 72 69 62 75 74 65 73 20 6d 75 73 74 20 attributes must
406c0 6f 6e 6c 79 20 62 65 20 61 73 73 69 67 6e 65 64 only be assigned
406d0 20 61 20 6e 6f 6e 2d 65 6d 70 74 79 20 65 78 70 a non-empty exp
406e0 72 65 73 73 69 6f 6e 27 29 3b 0a 20 20 09 20 20 ression');. .
406f0 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
40700 20 20 20 76 61 72 20 65 78 70 72 65 73 73 69 6f var expressio
40710 6e 20 3d 20 74 68 69 73 2e 70 61 72 73 65 41 73 n = this.parseAs
40720 73 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 signmentExpressi
40730 6f 6e 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 on();. .
40740 20 74 68 69 73 2e 72 65 65 6e 74 65 72 4a 53 58 this.reenterJSX
40750 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 72 ();. . r
40760 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e 61 6c eturn this.final
40770 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 4a 53 ize(node, new JS
40780 58 4e 6f 64 65 2e 4a 53 58 45 78 70 72 65 73 73 XNode.JSXExpress
40790 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 28 65 78 70 ionContainer(exp
407a0 72 65 73 73 69 6f 6e 29 29 3b 0a 20 20 09 20 20 ression));. .
407b0 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a 53 58 50 };. . JSXP
407c0 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e arser.prototype.
407d0 70 61 72 73 65 4a 53 58 41 74 74 72 69 62 75 74 parseJSXAttribut
407e0 65 56 61 6c 75 65 20 3d 20 66 75 6e 63 74 69 6f eValue = functio
407f0 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
40800 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 6d 61 return this.ma
40810 74 63 68 4a 53 58 28 27 7b 27 29 20 3f 20 74 68 tchJSX('{') ? th
40820 69 73 2e 70 61 72 73 65 4a 53 58 45 78 70 72 65 is.parseJSXExpre
40830 73 73 69 6f 6e 41 74 74 72 69 62 75 74 65 28 29 ssionAttribute()
40840 20 3a 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 :. .
40850 20 20 74 68 69 73 2e 6d 61 74 63 68 4a 53 58 28 this.matchJSX(
40860 27 3c 27 29 20 3f 20 74 68 69 73 2e 70 61 72 73 '<') ? this.pars
40870 65 4a 53 58 45 6c 65 6d 65 6e 74 28 29 20 3a 20 eJSXElement() :
40880 74 68 69 73 2e 70 61 72 73 65 4a 53 58 53 74 72 this.parseJSXStr
40890 69 6e 67 4c 69 74 65 72 61 6c 41 74 74 72 69 62 ingLiteralAttrib
408a0 75 74 65 28 29 3b 0a 20 20 09 20 20 20 20 7d 3b ute();. . };
408b0 0a 20 20 09 20 20 20 20 4a 53 58 50 61 72 73 65 . . JSXParse
408c0 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 r.prototype.pars
408d0 65 4a 53 58 4e 61 6d 65 56 61 6c 75 65 41 74 74 eJSXNameValueAtt
408e0 72 69 62 75 74 65 20 3d 20 66 75 6e 63 74 69 6f ribute = functio
408f0 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 n () {. .
40900 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 69 var node = thi
40910 73 2e 63 72 65 61 74 65 4a 53 58 4e 6f 64 65 28 s.createJSXNode(
40920 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 );. . va
40930 72 20 6e 61 6d 65 20 3d 20 74 68 69 73 2e 70 61 r name = this.pa
40940 72 73 65 4a 53 58 41 74 74 72 69 62 75 74 65 4e rseJSXAttributeN
40950 61 6d 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ame();. .
40960 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 6e 75 var value = nu
40970 6c 6c 3b 0a 20 20 09 20 20 20 20 20 20 20 20 69 ll;. . i
40980 66 20 28 74 68 69 73 2e 6d 61 74 63 68 4a 53 58 f (this.matchJSX
40990 28 27 3d 27 29 29 20 7b 0a 20 20 09 20 20 20 20 ('=')) {. .
409a0 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 this.exp
409b0 65 63 74 4a 53 58 28 27 3d 27 29 3b 0a 20 20 09 ectJSX('=');. .
409c0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
409d0 65 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4a 53 e = this.parseJS
409e0 58 41 74 74 72 69 62 75 74 65 56 61 6c 75 65 28 XAttributeValue(
409f0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
40a00 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
40a10 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 n this.finalize(
40a20 6e 6f 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 node, new JSXNod
40a30 65 2e 4a 53 58 41 74 74 72 69 62 75 74 65 28 6e e.JSXAttribute(n
40a40 61 6d 65 2c 20 76 61 6c 75 65 29 29 3b 0a 20 20 ame, value));.
40a50 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a . };. . J
40a60 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 SXParser.prototy
40a70 70 65 2e 70 61 72 73 65 4a 53 58 53 70 72 65 61 pe.parseJSXSprea
40a80 64 41 74 74 72 69 62 75 74 65 20 3d 20 66 75 6e dAttribute = fun
40a90 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
40aa0 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d var node =
40ab0 20 74 68 69 73 2e 63 72 65 61 74 65 4a 53 58 4e this.createJSXN
40ac0 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ode();. .
40ad0 20 20 74 68 69 73 2e 65 78 70 65 63 74 4a 53 58 this.expectJSX
40ae0 28 27 7b 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('{');. .
40af0 20 20 74 68 69 73 2e 65 78 70 65 63 74 4a 53 58 this.expectJSX
40b00 28 27 2e 2e 2e 27 29 3b 0a 20 20 09 20 20 20 20 ('...');. .
40b10 20 20 20 20 74 68 69 73 2e 66 69 6e 69 73 68 4a this.finishJ
40b20 53 58 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 SX();. .
40b30 20 76 61 72 20 61 72 67 75 6d 65 6e 74 20 3d 20 var argument =
40b40 74 68 69 73 2e 70 61 72 73 65 41 73 73 69 67 6e this.parseAssign
40b50 6d 65 6e 74 45 78 70 72 65 73 73 69 6f 6e 28 29 mentExpression()
40b60 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 ;. . thi
40b70 73 2e 72 65 65 6e 74 65 72 4a 53 58 28 29 3b 0a s.reenterJSX();.
40b80 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
40b90 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 n this.finalize(
40ba0 6e 6f 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 node, new JSXNod
40bb0 65 2e 4a 53 58 53 70 72 65 61 64 41 74 74 72 69 e.JSXSpreadAttri
40bc0 62 75 74 65 28 61 72 67 75 6d 65 6e 74 29 29 3b bute(argument));
40bd0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
40be0 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 JSXParser.prot
40bf0 6f 74 79 70 65 2e 70 61 72 73 65 4a 53 58 41 74 otype.parseJSXAt
40c00 74 72 69 62 75 74 65 73 20 3d 20 66 75 6e 63 74 tributes = funct
40c10 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 ion () {. .
40c20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d var this$1 =
40c30 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 this;.. .
40c40 20 20 20 76 61 72 20 61 74 74 72 69 62 75 74 65 var attribute
40c50 73 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 s = [];. .
40c60 20 20 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e while (!this.
40c70 6d 61 74 63 68 4a 53 58 28 27 2f 27 29 20 26 26 matchJSX('/') &&
40c80 20 21 74 68 69 73 2e 6d 61 74 63 68 4a 53 58 28 !this.matchJSX(
40c90 27 3e 27 29 29 20 7b 0a 20 20 09 20 20 20 20 20 '>')) {. .
40ca0 20 20 20 20 20 20 20 76 61 72 20 61 74 74 72 69 var attri
40cb0 62 75 74 65 20 3d 20 74 68 69 73 24 31 2e 6d 61 bute = this$1.ma
40cc0 74 63 68 4a 53 58 28 27 7b 27 29 20 3f 20 74 68 tchJSX('{') ? th
40cd0 69 73 24 31 2e 70 61 72 73 65 4a 53 58 53 70 72 is$1.parseJSXSpr
40ce0 65 61 64 41 74 74 72 69 62 75 74 65 28 29 20 3a eadAttribute() :
40cf0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
40d00 20 20 20 20 74 68 69 73 24 31 2e 70 61 72 73 65 this$1.parse
40d10 4a 53 58 4e 61 6d 65 56 61 6c 75 65 41 74 74 72 JSXNameValueAttr
40d20 69 62 75 74 65 28 29 3b 0a 20 20 09 20 20 20 20 ibute();. .
40d30 20 20 20 20 20 20 20 20 61 74 74 72 69 62 75 74 attribut
40d40 65 73 2e 70 75 73 68 28 61 74 74 72 69 62 75 74 es.push(attribut
40d50 65 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d e);. . }
40d60 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 . . retu
40d70 72 6e 20 61 74 74 72 69 62 75 74 65 73 3b 0a 20 rn attributes;.
40d80 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
40d90 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 JSXParser.protot
40da0 79 70 65 2e 70 61 72 73 65 4a 53 58 4f 70 65 6e ype.parseJSXOpen
40db0 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 66 75 6e ingElement = fun
40dc0 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
40dd0 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d var node =
40de0 20 74 68 69 73 2e 63 72 65 61 74 65 4a 53 58 4e this.createJSXN
40df0 6f 64 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 ode();. .
40e00 20 20 74 68 69 73 2e 65 78 70 65 63 74 4a 53 58 this.expectJSX
40e10 28 27 3c 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('<');. .
40e20 20 20 76 61 72 20 6e 61 6d 65 20 3d 20 74 68 69 var name = thi
40e30 73 2e 70 61 72 73 65 4a 53 58 45 6c 65 6d 65 6e s.parseJSXElemen
40e40 74 4e 61 6d 65 28 29 3b 0a 20 20 09 20 20 20 20 tName();. .
40e50 20 20 20 20 76 61 72 20 61 74 74 72 69 62 75 74 var attribut
40e60 65 73 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4a es = this.parseJ
40e70 53 58 41 74 74 72 69 62 75 74 65 73 28 29 3b 0a SXAttributes();.
40e80 20 20 09 20 20 20 20 20 20 20 20 76 61 72 20 73 . var s
40e90 65 6c 66 43 6c 6f 73 69 6e 67 20 3d 20 74 68 69 elfClosing = thi
40ea0 73 2e 6d 61 74 63 68 4a 53 58 28 27 2f 27 29 3b s.matchJSX('/');
40eb0 0a 20 20 09 20 20 20 20 20 20 20 20 69 66 20 28 . . if (
40ec0 73 65 6c 66 43 6c 6f 73 69 6e 67 29 20 7b 0a 20 selfClosing) {.
40ed0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
40ee0 69 73 2e 65 78 70 65 63 74 4a 53 58 28 27 2f 27 is.expectJSX('/'
40ef0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a );. . }.
40f00 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
40f10 65 78 70 65 63 74 4a 53 58 28 27 3e 27 29 3b 0a expectJSX('>');.
40f20 20 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
40f30 6e 20 74 68 69 73 2e 66 69 6e 61 6c 69 7a 65 28 n this.finalize(
40f40 6e 6f 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 node, new JSXNod
40f50 65 2e 4a 53 58 4f 70 65 6e 69 6e 67 45 6c 65 6d e.JSXOpeningElem
40f60 65 6e 74 28 6e 61 6d 65 2c 20 73 65 6c 66 43 6c ent(name, selfCl
40f70 6f 73 69 6e 67 2c 20 61 74 74 72 69 62 75 74 65 osing, attribute
40f80 73 29 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 s));. . };.
40f90 20 09 20 20 20 20 4a 53 58 50 61 72 73 65 72 2e . JSXParser.
40fa0 70 72 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 4a prototype.parseJ
40fb0 53 58 42 6f 75 6e 64 61 72 79 45 6c 65 6d 65 6e SXBoundaryElemen
40fc0 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 t = function ()
40fd0 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
40fe0 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
40ff0 61 74 65 4a 53 58 4e 6f 64 65 28 29 3b 0a 20 20 ateJSXNode();.
41000 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 . this.ex
41010 70 65 63 74 4a 53 58 28 27 3c 27 29 3b 0a 20 20 pectJSX('<');.
41020 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
41030 73 2e 6d 61 74 63 68 4a 53 58 28 27 2f 27 29 29 s.matchJSX('/'))
41040 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
41050 20 20 74 68 69 73 2e 65 78 70 65 63 74 4a 53 58 this.expectJSX
41060 28 27 2f 27 29 3b 0a 20 20 09 20 20 20 20 20 20 ('/');. .
41070 20 20 20 20 20 20 76 61 72 20 6e 61 6d 65 5f 33 var name_3
41080 20 3d 20 74 68 69 73 2e 70 61 72 73 65 4a 53 58 = this.parseJSX
41090 45 6c 65 6d 65 6e 74 4e 61 6d 65 28 29 3b 0a 20 ElementName();.
410a0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 . th
410b0 69 73 2e 65 78 70 65 63 74 4a 53 58 28 27 3e 27 is.expectJSX('>'
410c0 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
410d0 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 return this.fi
410e0 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 nalize(node, new
410f0 20 4a 53 58 4e 6f 64 65 2e 4a 53 58 43 6c 6f 73 JSXNode.JSXClos
41100 69 6e 67 45 6c 65 6d 65 6e 74 28 6e 61 6d 65 5f ingElement(name_
41110 33 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 3));. .
41120 7d 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 }. . var
41130 20 6e 61 6d 65 20 3d 20 74 68 69 73 2e 70 61 72 name = this.par
41140 73 65 4a 53 58 45 6c 65 6d 65 6e 74 4e 61 6d 65 seJSXElementName
41150 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ();. . v
41160 61 72 20 61 74 74 72 69 62 75 74 65 73 20 3d 20 ar attributes =
41170 74 68 69 73 2e 70 61 72 73 65 4a 53 58 41 74 74 this.parseJSXAtt
41180 72 69 62 75 74 65 73 28 29 3b 0a 20 20 09 20 20 ributes();. .
41190 20 20 20 20 20 20 76 61 72 20 73 65 6c 66 43 6c var selfCl
411a0 6f 73 69 6e 67 20 3d 20 74 68 69 73 2e 6d 61 74 osing = this.mat
411b0 63 68 4a 53 58 28 27 2f 27 29 3b 0a 20 20 09 20 chJSX('/');. .
411c0 20 20 20 20 20 20 20 69 66 20 28 73 65 6c 66 43 if (selfC
411d0 6c 6f 73 69 6e 67 29 20 7b 0a 20 20 09 20 20 20 losing) {. .
411e0 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 this.ex
411f0 70 65 63 74 4a 53 58 28 27 2f 27 29 3b 0a 20 20 pectJSX('/');.
41200 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
41210 20 20 20 20 20 20 74 68 69 73 2e 65 78 70 65 63 this.expec
41220 74 4a 53 58 28 27 3e 27 29 3b 0a 20 20 09 20 20 tJSX('>');. .
41230 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 return thi
41240 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c s.finalize(node,
41250 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e 4a 53 58 new JSXNode.JSX
41260 4f 70 65 6e 69 6e 67 45 6c 65 6d 65 6e 74 28 6e OpeningElement(n
41270 61 6d 65 2c 20 73 65 6c 66 43 6c 6f 73 69 6e 67 ame, selfClosing
41280 2c 20 61 74 74 72 69 62 75 74 65 73 29 29 3b 0a , attributes));.
41290 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 . };. .
412a0 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f JSXParser.proto
412b0 74 79 70 65 2e 70 61 72 73 65 4a 53 58 45 6d 70 type.parseJSXEmp
412c0 74 79 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 66 tyExpression = f
412d0 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
412e0 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
412f0 20 3d 20 74 68 69 73 2e 63 72 65 61 74 65 4a 53 = this.createJS
41300 58 43 68 69 6c 64 4e 6f 64 65 28 29 3b 0a 20 20 XChildNode();.
41310 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f . this.co
41320 6c 6c 65 63 74 43 6f 6d 6d 65 6e 74 73 28 29 3b llectComments();
41330 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
41340 2e 6c 61 73 74 4d 61 72 6b 65 72 2e 69 6e 64 65 .lastMarker.inde
41350 78 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 x = this.scanner
41360 2e 69 6e 64 65 78 3b 0a 20 20 09 20 20 20 20 20 .index;. .
41370 20 20 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 6b this.lastMark
41380 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 20 3d 20 er.lineNumber =
41390 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e this.scanner.lin
413a0 65 4e 75 6d 62 65 72 3b 0a 20 20 09 20 20 20 20 eNumber;. .
413b0 20 20 20 20 74 68 69 73 2e 6c 61 73 74 4d 61 72 this.lastMar
413c0 6b 65 72 2e 6c 69 6e 65 53 74 61 72 74 20 3d 20 ker.lineStart =
413d0 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 6e this.scanner.lin
413e0 65 53 74 61 72 74 3b 0a 20 20 09 20 20 20 20 20 eStart;. .
413f0 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 return this.f
41400 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 inalize(node, ne
41410 77 20 4a 53 58 4e 6f 64 65 2e 4a 53 58 45 6d 70 w JSXNode.JSXEmp
41420 74 79 45 78 70 72 65 73 73 69 6f 6e 28 29 29 3b tyExpression());
41430 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
41440 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 JSXParser.prot
41450 6f 74 79 70 65 2e 70 61 72 73 65 4a 53 58 45 78 otype.parseJSXEx
41460 70 72 65 73 73 69 6f 6e 43 6f 6e 74 61 69 6e 65 pressionContaine
41470 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 r = function ()
41480 7b 0a 20 20 09 20 20 20 20 20 20 20 20 76 61 72 {. . var
41490 20 6e 6f 64 65 20 3d 20 74 68 69 73 2e 63 72 65 node = this.cre
414a0 61 74 65 4a 53 58 4e 6f 64 65 28 29 3b 0a 20 20 ateJSXNode();.
414b0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 . this.ex
414c0 70 65 63 74 4a 53 58 28 27 7b 27 29 3b 0a 20 20 pectJSX('{');.
414d0 09 20 20 20 20 20 20 20 20 76 61 72 20 65 78 70 . var exp
414e0 72 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 ression;. .
414f0 20 20 20 20 69 66 20 28 74 68 69 73 2e 6d 61 74 if (this.mat
41500 63 68 4a 53 58 28 27 7d 27 29 29 20 7b 0a 20 20 chJSX('}')) {.
41510 09 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 . exp
41520 72 65 73 73 69 6f 6e 20 3d 20 74 68 69 73 2e 70 ression = this.p
41530 61 72 73 65 4a 53 58 45 6d 70 74 79 45 78 70 72 arseJSXEmptyExpr
41540 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 20 20 ession();. .
41550 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 78 this.ex
41560 70 65 63 74 4a 53 58 28 27 7d 27 29 3b 0a 20 20 pectJSX('}');.
41570 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
41580 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 else {. .
41590 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
415a0 2e 66 69 6e 69 73 68 4a 53 58 28 29 3b 0a 20 20 .finishJSX();.
415b0 09 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 . exp
415c0 72 65 73 73 69 6f 6e 20 3d 20 74 68 69 73 2e 70 ression = this.p
415d0 61 72 73 65 41 73 73 69 67 6e 6d 65 6e 74 45 78 arseAssignmentEx
415e0 70 72 65 73 73 69 6f 6e 28 29 3b 0a 20 20 09 20 pression();. .
415f0 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
41600 72 65 65 6e 74 65 72 4a 53 58 28 29 3b 0a 20 20 reenterJSX();.
41610 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 . }. .
41620 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 return thi
41630 73 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c s.finalize(node,
41640 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e 4a 53 58 new JSXNode.JSX
41650 45 78 70 72 65 73 73 69 6f 6e 43 6f 6e 74 61 69 ExpressionContai
41660 6e 65 72 28 65 78 70 72 65 73 73 69 6f 6e 29 29 ner(expression))
41670 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
41680 20 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f JSXParser.pro
41690 74 6f 74 79 70 65 2e 70 61 72 73 65 4a 53 58 43 totype.parseJSXC
416a0 68 69 6c 64 72 65 6e 20 3d 20 66 75 6e 63 74 69 hildren = functi
416b0 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
416c0 20 20 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 var this$1 =
416d0 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 20 20 20 this;.. .
416e0 20 20 76 61 72 20 63 68 69 6c 64 72 65 6e 20 3d var children =
416f0 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 [];. .
41700 77 68 69 6c 65 20 28 21 74 68 69 73 2e 73 63 61 while (!this.sca
41710 6e 6e 65 72 2e 65 6f 66 28 29 29 20 7b 0a 20 20 nner.eof()) {.
41720 09 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
41730 20 6e 6f 64 65 20 3d 20 74 68 69 73 24 31 2e 63 node = this$1.c
41740 72 65 61 74 65 4a 53 58 43 68 69 6c 64 4e 6f 64 reateJSXChildNod
41750 65 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 e();. .
41760 20 20 20 20 76 61 72 20 74 6f 6b 65 6e 20 3d 20 var token =
41770 74 68 69 73 24 31 2e 6e 65 78 74 4a 53 58 54 65 this$1.nextJSXTe
41780 78 74 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 xt();. .
41790 20 20 20 20 20 69 66 20 28 74 6f 6b 65 6e 2e 73 if (token.s
417a0 74 61 72 74 20 3c 20 74 6f 6b 65 6e 2e 65 6e 64 tart < token.end
417b0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
417c0 20 20 20 20 20 20 20 76 61 72 20 72 61 77 20 3d var raw =
417d0 20 74 68 69 73 24 31 2e 67 65 74 54 6f 6b 65 6e this$1.getToken
417e0 52 61 77 28 74 6f 6b 65 6e 29 3b 0a 20 20 09 20 Raw(token);. .
417f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
41800 61 72 20 63 68 69 6c 64 20 3d 20 74 68 69 73 24 ar child = this$
41810 31 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f 64 65 2c 1.finalize(node,
41820 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e 4a 53 58 new JSXNode.JSX
41830 54 65 78 74 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 Text(token.value
41840 2c 20 72 61 77 29 29 3b 0a 20 20 09 20 20 20 20 , raw));. .
41850 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c chil
41860 64 72 65 6e 2e 70 75 73 68 28 63 68 69 6c 64 29 dren.push(child)
41870 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
41880 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 }. .
41890 20 20 69 66 20 28 74 68 69 73 24 31 2e 73 63 61 if (this$1.sca
418a0 6e 6e 65 72 2e 73 6f 75 72 63 65 5b 74 68 69 73 nner.source[this
418b0 24 31 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 78 $1.scanner.index
418c0 5d 20 3d 3d 3d 20 27 7b 27 29 20 7b 0a 20 20 09 ] === '{') {. .
418d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
418e0 76 61 72 20 63 6f 6e 74 61 69 6e 65 72 20 3d 20 var container =
418f0 74 68 69 73 24 31 2e 70 61 72 73 65 4a 53 58 45 this$1.parseJSXE
41900 78 70 72 65 73 73 69 6f 6e 43 6f 6e 74 61 69 6e xpressionContain
41910 65 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 er();. .
41920 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 childre
41930 6e 2e 70 75 73 68 28 63 6f 6e 74 61 69 6e 65 72 n.push(container
41940 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 );. .
41950 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
41960 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 20 else {. .
41970 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
41980 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ak;. .
41990 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
419a0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 72 65 74 }. . ret
419b0 75 72 6e 20 63 68 69 6c 64 72 65 6e 3b 0a 20 20 urn children;.
419c0 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 4a . };. . J
419d0 53 58 50 61 72 73 65 72 2e 70 72 6f 74 6f 74 79 SXParser.prototy
419e0 70 65 2e 70 61 72 73 65 43 6f 6d 70 6c 65 78 4a pe.parseComplexJ
419f0 53 58 45 6c 65 6d 65 6e 74 20 3d 20 66 75 6e 63 SXElement = func
41a00 74 69 6f 6e 20 28 65 6c 29 20 7b 0a 20 20 09 20 tion (el) {. .
41a10 20 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 var this$
41a20 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 1 = this;.. .
41a30 20 20 20 20 20 20 76 61 72 20 73 74 61 63 6b 20 var stack
41a40 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 = [];. .
41a50 20 77 68 69 6c 65 20 28 21 74 68 69 73 2e 73 63 while (!this.sc
41a60 61 6e 6e 65 72 2e 65 6f 66 28 29 29 20 7b 0a 20 anner.eof()) {.
41a70 20 09 20 20 20 20 20 20 20 20 20 20 20 20 65 6c . el
41a80 2e 63 68 69 6c 64 72 65 6e 20 3d 20 65 6c 2e 63 .children = el.c
41a90 68 69 6c 64 72 65 6e 2e 63 6f 6e 63 61 74 28 74 hildren.concat(t
41aa0 68 69 73 24 31 2e 70 61 72 73 65 4a 53 58 43 68 his$1.parseJSXCh
41ab0 69 6c 64 72 65 6e 28 29 29 3b 0a 20 20 09 20 20 ildren());. .
41ac0 20 20 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f var no
41ad0 64 65 20 3d 20 74 68 69 73 24 31 2e 63 72 65 61 de = this$1.crea
41ae0 74 65 4a 53 58 43 68 69 6c 64 4e 6f 64 65 28 29 teJSXChildNode()
41af0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
41b00 20 76 61 72 20 65 6c 65 6d 65 6e 74 20 3d 20 74 var element = t
41b10 68 69 73 24 31 2e 70 61 72 73 65 4a 53 58 42 6f his$1.parseJSXBo
41b20 75 6e 64 61 72 79 45 6c 65 6d 65 6e 74 28 29 3b undaryElement();
41b30 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
41b40 69 66 20 28 65 6c 65 6d 65 6e 74 2e 74 79 70 65 if (element.type
41b50 20 3d 3d 3d 20 6a 73 78 5f 73 79 6e 74 61 78 5f === jsx_syntax_
41b60 31 2e 4a 53 58 53 79 6e 74 61 78 2e 4a 53 58 4f 1.JSXSyntax.JSXO
41b70 70 65 6e 69 6e 67 45 6c 65 6d 65 6e 74 29 20 7b peningElement) {
41b80 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
41b90 20 20 20 20 76 61 72 20 6f 70 65 6e 69 6e 67 20 var opening
41ba0 3d 20 28 65 6c 65 6d 65 6e 74 29 3b 0a 20 20 09 = (element);. .
41bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
41bc0 69 66 20 28 6f 70 65 6e 69 6e 67 2e 73 65 6c 66 if (opening.self
41bd0 43 6c 6f 73 69 6e 67 29 20 7b 0a 20 20 09 20 20 Closing) {. .
41be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
41bf0 20 20 76 61 72 20 63 68 69 6c 64 20 3d 20 74 68 var child = th
41c00 69 73 24 31 2e 66 69 6e 61 6c 69 7a 65 28 6e 6f is$1.finalize(no
41c10 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 65 2e de, new JSXNode.
41c20 4a 53 58 45 6c 65 6d 65 6e 74 28 6f 70 65 6e 69 JSXElement(openi
41c30 6e 67 2c 20 5b 5d 2c 20 6e 75 6c 6c 29 29 3b 0a ng, [], null));.
41c40 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
41c50 20 20 20 20 20 20 20 65 6c 2e 63 68 69 6c 64 72 el.childr
41c60 65 6e 2e 70 75 73 68 28 63 68 69 6c 64 29 3b 0a en.push(child);.
41c70 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
41c80 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 }. .
41c90 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 else {.
41ca0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
41cb0 20 20 20 20 20 20 73 74 61 63 6b 2e 70 75 73 68 stack.push
41cc0 28 65 6c 29 3b 0a 20 20 09 20 20 20 20 20 20 20 (el);. .
41cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 20 el
41ce0 3d 20 7b 20 6e 6f 64 65 3a 20 6e 6f 64 65 2c 20 = { node: node,
41cf0 6f 70 65 6e 69 6e 67 3a 20 6f 70 65 6e 69 6e 67 opening: opening
41d00 2c 20 63 6c 6f 73 69 6e 67 3a 20 6e 75 6c 6c 2c , closing: null,
41d10 20 63 68 69 6c 64 72 65 6e 3a 20 5b 5d 20 7d 3b children: [] };
41d20 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
41d30 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
41d40 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
41d50 20 20 20 20 20 20 69 66 20 28 65 6c 65 6d 65 6e if (elemen
41d60 74 2e 74 79 70 65 20 3d 3d 3d 20 6a 73 78 5f 73 t.type === jsx_s
41d70 79 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e 74 61 yntax_1.JSXSynta
41d80 78 2e 4a 53 58 43 6c 6f 73 69 6e 67 45 6c 65 6d x.JSXClosingElem
41d90 65 6e 74 29 20 7b 0a 20 20 09 20 20 20 20 20 20 ent) {. .
41da0 20 20 20 20 20 20 20 20 20 20 65 6c 2e 63 6c 6f el.clo
41db0 73 69 6e 67 20 3d 20 28 65 6c 65 6d 65 6e 74 29 sing = (element)
41dc0 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
41dd0 20 20 20 20 20 76 61 72 20 6f 70 65 6e 5f 31 20 var open_1
41de0 3d 20 67 65 74 51 75 61 6c 69 66 69 65 64 45 6c = getQualifiedEl
41df0 65 6d 65 6e 74 4e 61 6d 65 28 65 6c 2e 6f 70 65 ementName(el.ope
41e00 6e 69 6e 67 2e 6e 61 6d 65 29 3b 0a 20 20 09 20 ning.name);. .
41e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
41e20 61 72 20 63 6c 6f 73 65 5f 31 20 3d 20 67 65 74 ar close_1 = get
41e30 51 75 61 6c 69 66 69 65 64 45 6c 65 6d 65 6e 74 QualifiedElement
41e40 4e 61 6d 65 28 65 6c 2e 63 6c 6f 73 69 6e 67 2e Name(el.closing.
41e50 6e 61 6d 65 29 3b 0a 20 20 09 20 20 20 20 20 20 name);. .
41e60 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6f 70 if (op
41e70 65 6e 5f 31 20 21 3d 3d 20 63 6c 6f 73 65 5f 31 en_1 !== close_1
41e80 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
41e90 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 24 this$
41ea0 31 2e 74 6f 6c 65 72 61 74 65 45 72 72 6f 72 28 1.tolerateError(
41eb0 27 45 78 70 65 63 74 65 64 20 63 6f 72 72 65 73 'Expected corres
41ec0 70 6f 6e 64 69 6e 67 20 4a 53 58 20 63 6c 6f 73 ponding JSX clos
41ed0 69 6e 67 20 74 61 67 20 66 6f 72 20 25 30 27 2c ing tag for %0',
41ee0 20 6f 70 65 6e 5f 31 29 3b 0a 20 20 09 20 20 20 open_1);. .
41ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
41f00 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
41f10 20 20 69 66 20 28 73 74 61 63 6b 2e 6c 65 6e 67 if (stack.leng
41f20 74 68 20 3e 20 30 29 20 7b 0a 20 20 09 20 20 20 th > 0) {. .
41f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
41f40 20 76 61 72 20 63 68 69 6c 64 20 3d 20 74 68 69 var child = thi
41f50 73 24 31 2e 66 69 6e 61 6c 69 7a 65 28 65 6c 2e s$1.finalize(el.
41f60 6e 6f 64 65 2c 20 6e 65 77 20 4a 53 58 4e 6f 64 node, new JSXNod
41f70 65 2e 4a 53 58 45 6c 65 6d 65 6e 74 28 65 6c 2e e.JSXElement(el.
41f80 6f 70 65 6e 69 6e 67 2c 20 65 6c 2e 63 68 69 6c opening, el.chil
41f90 64 72 65 6e 2c 20 65 6c 2e 63 6c 6f 73 69 6e 67 dren, el.closing
41fa0 29 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ));. .
41fb0 20 20 20 20 20 20 20 20 20 20 20 65 6c 20 3d 20 el =
41fc0 73 74 61 63 6b 2e 70 6f 70 28 29 3b 0a 20 20 09 stack.pop();. .
41fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
41fe0 20 20 20 20 65 6c 2e 63 68 69 6c 64 72 65 6e 2e el.children.
41ff0 70 75 73 68 28 63 68 69 6c 64 29 3b 0a 20 20 09 push(child);. .
42000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
42010 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
42020 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 else {. .
42030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
42040 20 20 20 62 72 65 61 6b 3b 0a 20 20 09 20 20 20 break;. .
42050 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
42060 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
42070 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 . }. .
42080 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 return e
42090 6c 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 l;. . };. .
420a0 20 20 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 JSXParser.pr
420b0 6f 74 6f 74 79 70 65 2e 70 61 72 73 65 4a 53 58 ototype.parseJSX
420c0 45 6c 65 6d 65 6e 74 20 3d 20 66 75 6e 63 74 69 Element = functi
420d0 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 20 on () {. .
420e0 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 74 68 var node = th
420f0 69 73 2e 63 72 65 61 74 65 4a 53 58 4e 6f 64 65 is.createJSXNode
42100 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 76 ();. . v
42110 61 72 20 6f 70 65 6e 69 6e 67 20 3d 20 74 68 69 ar opening = thi
42120 73 2e 70 61 72 73 65 4a 53 58 4f 70 65 6e 69 6e s.parseJSXOpenin
42130 67 45 6c 65 6d 65 6e 74 28 29 3b 0a 20 20 09 20 gElement();. .
42140 20 20 20 20 20 20 20 76 61 72 20 63 68 69 6c 64 var child
42150 72 65 6e 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 20 ren = [];. .
42160 20 20 20 20 20 76 61 72 20 63 6c 6f 73 69 6e 67 var closing
42170 20 3d 20 6e 75 6c 6c 3b 0a 20 20 09 20 20 20 20 = null;. .
42180 20 20 20 20 69 66 20 28 21 6f 70 65 6e 69 6e 67 if (!opening
42190 2e 73 65 6c 66 43 6c 6f 73 69 6e 67 29 20 7b 0a .selfClosing) {.
421a0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
421b0 61 72 20 65 6c 20 3d 20 74 68 69 73 2e 70 61 72 ar el = this.par
421c0 73 65 43 6f 6d 70 6c 65 78 4a 53 58 45 6c 65 6d seComplexJSXElem
421d0 65 6e 74 28 7b 20 6e 6f 64 65 3a 20 6e 6f 64 65 ent({ node: node
421e0 2c 20 6f 70 65 6e 69 6e 67 3a 20 6f 70 65 6e 69 , opening: openi
421f0 6e 67 2c 20 63 6c 6f 73 69 6e 67 3a 20 63 6c 6f ng, closing: clo
42200 73 69 6e 67 2c 20 63 68 69 6c 64 72 65 6e 3a 20 sing, children:
42210 63 68 69 6c 64 72 65 6e 20 7d 29 3b 0a 20 20 09 children });. .
42220 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c chil
42230 64 72 65 6e 20 3d 20 65 6c 2e 63 68 69 6c 64 72 dren = el.childr
42240 65 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 en;. .
42250 20 20 20 63 6c 6f 73 69 6e 67 20 3d 20 65 6c 2e closing = el.
42260 63 6c 6f 73 69 6e 67 3b 0a 20 20 09 20 20 20 20 closing;. .
42270 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 }. .
42280 20 72 65 74 75 72 6e 20 74 68 69 73 2e 66 69 6e return this.fin
42290 61 6c 69 7a 65 28 6e 6f 64 65 2c 20 6e 65 77 20 alize(node, new
422a0 4a 53 58 4e 6f 64 65 2e 4a 53 58 45 6c 65 6d 65 JSXNode.JSXEleme
422b0 6e 74 28 6f 70 65 6e 69 6e 67 2c 20 63 68 69 6c nt(opening, chil
422c0 64 72 65 6e 2c 20 63 6c 6f 73 69 6e 67 29 29 3b dren, closing));
422d0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
422e0 20 20 4a 53 58 50 61 72 73 65 72 2e 70 72 6f 74 JSXParser.prot
422f0 6f 74 79 70 65 2e 70 61 72 73 65 4a 53 58 52 6f otype.parseJSXRo
42300 6f 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 ot = function ()
42310 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 2f 2f {. . //
42320 20 50 6f 70 20 74 68 65 20 6f 70 65 6e 69 6e 67 Pop the opening
42330 20 27 3c 27 20 61 64 64 65 64 20 66 72 6f 6d 20 '<' added from
42340 74 68 65 20 6c 6f 6f 6b 61 68 65 61 64 2e 0a 20 the lookahead..
42350 20 09 20 20 20 20 20 20 20 20 69 66 20 28 74 68 . if (th
42360 69 73 2e 63 6f 6e 66 69 67 2e 74 6f 6b 65 6e 73 is.config.tokens
42370 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
42380 20 20 20 74 68 69 73 2e 74 6f 6b 65 6e 73 2e 70 this.tokens.p
42390 6f 70 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 op();. .
423a0 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 }. . th
423b0 69 73 2e 73 74 61 72 74 4a 53 58 28 29 3b 0a 20 is.startJSX();.
423c0 20 09 20 20 20 20 20 20 20 20 76 61 72 20 65 6c . var el
423d0 65 6d 65 6e 74 20 3d 20 74 68 69 73 2e 70 61 72 ement = this.par
423e0 73 65 4a 53 58 45 6c 65 6d 65 6e 74 28 29 3b 0a seJSXElement();.
423f0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
42400 66 69 6e 69 73 68 4a 53 58 28 29 3b 0a 20 20 09 finishJSX();. .
42410 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 return e
42420 6c 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 7d lement;. . }
42430 3b 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 ;. . return
42440 4a 53 58 50 61 72 73 65 72 3b 0a 20 20 09 7d 28 JSXParser;. .}(
42450 70 61 72 73 65 72 5f 31 2e 50 61 72 73 65 72 29 parser_1.Parser)
42460 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 4a 53 );. .exports.JS
42470 58 50 61 72 73 65 72 20 3d 20 4a 53 58 50 61 72 XParser = JSXPar
42480 73 65 72 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d ser;... /***/ }
42490 2c 0a 20 20 2f 2a 20 31 32 20 2a 2f 0a 20 20 2f ,. /* 12 */. /
424a0 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f 6e 28 6d 6f ***/ function(mo
424b0 64 75 6c 65 2c 20 65 78 70 6f 72 74 73 29 20 7b dule, exports) {
424c0 0a 20 20 09 65 78 70 6f 72 74 73 2e 58 48 54 4d . .exports.XHTM
424d0 4c 45 6e 74 69 74 69 65 73 20 3d 20 7b 0a 20 20 LEntities = {.
424e0 09 20 20 20 20 71 75 6f 74 3a 20 27 5c 75 30 30 . quot: '\u00
424f0 32 32 27 2c 0a 20 20 09 20 20 20 20 61 6d 70 3a 22',. . amp:
42500 20 27 5c 75 30 30 32 36 27 2c 0a 20 20 09 20 20 '\u0026',. .
42510 20 20 61 70 6f 73 3a 20 27 5c 75 30 30 32 37 27 apos: '\u0027'
42520 2c 0a 20 20 09 20 20 20 20 67 74 3a 20 27 5c 75 ,. . gt: '\u
42530 30 30 33 45 27 2c 0a 20 20 09 20 20 20 20 6e 62 003E',. . nb
42540 73 70 3a 20 27 5c 75 30 30 41 30 27 2c 0a 20 20 sp: '\u00A0',.
42550 09 20 20 20 20 69 65 78 63 6c 3a 20 27 5c 75 30 . iexcl: '\u0
42560 30 41 31 27 2c 0a 20 20 09 20 20 20 20 63 65 6e 0A1',. . cen
42570 74 3a 20 27 5c 75 30 30 41 32 27 2c 0a 20 20 09 t: '\u00A2',. .
42580 20 20 20 20 70 6f 75 6e 64 3a 20 27 5c 75 30 30 pound: '\u00
42590 41 33 27 2c 0a 20 20 09 20 20 20 20 63 75 72 72 A3',. . curr
425a0 65 6e 3a 20 27 5c 75 30 30 41 34 27 2c 0a 20 20 en: '\u00A4',.
425b0 09 20 20 20 20 79 65 6e 3a 20 27 5c 75 30 30 41 . yen: '\u00A
425c0 35 27 2c 0a 20 20 09 20 20 20 20 62 72 76 62 61 5',. . brvba
425d0 72 3a 20 27 5c 75 30 30 41 36 27 2c 0a 20 20 09 r: '\u00A6',. .
425e0 20 20 20 20 73 65 63 74 3a 20 27 5c 75 30 30 41 sect: '\u00A
425f0 37 27 2c 0a 20 20 09 20 20 20 20 75 6d 6c 3a 20 7',. . uml:
42600 27 5c 75 30 30 41 38 27 2c 0a 20 20 09 20 20 20 '\u00A8',. .
42610 20 63 6f 70 79 3a 20 27 5c 75 30 30 41 39 27 2c copy: '\u00A9',
42620 0a 20 20 09 20 20 20 20 6f 72 64 66 3a 20 27 5c . . ordf: '\
42630 75 30 30 41 41 27 2c 0a 20 20 09 20 20 20 20 6c u00AA',. . l
42640 61 71 75 6f 3a 20 27 5c 75 30 30 41 42 27 2c 0a aquo: '\u00AB',.
42650 20 20 09 20 20 20 20 6e 6f 74 3a 20 27 5c 75 30 . not: '\u0
42660 30 41 43 27 2c 0a 20 20 09 20 20 20 20 73 68 79 0AC',. . shy
42670 3a 20 27 5c 75 30 30 41 44 27 2c 0a 20 20 09 20 : '\u00AD',. .
42680 20 20 20 72 65 67 3a 20 27 5c 75 30 30 41 45 27 reg: '\u00AE'
42690 2c 0a 20 20 09 20 20 20 20 6d 61 63 72 3a 20 27 ,. . macr: '
426a0 5c 75 30 30 41 46 27 2c 0a 20 20 09 20 20 20 20 \u00AF',. .
426b0 64 65 67 3a 20 27 5c 75 30 30 42 30 27 2c 0a 20 deg: '\u00B0',.
426c0 20 09 20 20 20 20 70 6c 75 73 6d 6e 3a 20 27 5c . plusmn: '\
426d0 75 30 30 42 31 27 2c 0a 20 20 09 20 20 20 20 73 u00B1',. . s
426e0 75 70 32 3a 20 27 5c 75 30 30 42 32 27 2c 0a 20 up2: '\u00B2',.
426f0 20 09 20 20 20 20 73 75 70 33 3a 20 27 5c 75 30 . sup3: '\u0
42700 30 42 33 27 2c 0a 20 20 09 20 20 20 20 61 63 75 0B3',. . acu
42710 74 65 3a 20 27 5c 75 30 30 42 34 27 2c 0a 20 20 te: '\u00B4',.
42720 09 20 20 20 20 6d 69 63 72 6f 3a 20 27 5c 75 30 . micro: '\u0
42730 30 42 35 27 2c 0a 20 20 09 20 20 20 20 70 61 72 0B5',. . par
42740 61 3a 20 27 5c 75 30 30 42 36 27 2c 0a 20 20 09 a: '\u00B6',. .
42750 20 20 20 20 6d 69 64 64 6f 74 3a 20 27 5c 75 30 middot: '\u0
42760 30 42 37 27 2c 0a 20 20 09 20 20 20 20 63 65 64 0B7',. . ced
42770 69 6c 3a 20 27 5c 75 30 30 42 38 27 2c 0a 20 20 il: '\u00B8',.
42780 09 20 20 20 20 73 75 70 31 3a 20 27 5c 75 30 30 . sup1: '\u00
42790 42 39 27 2c 0a 20 20 09 20 20 20 20 6f 72 64 6d B9',. . ordm
427a0 3a 20 27 5c 75 30 30 42 41 27 2c 0a 20 20 09 20 : '\u00BA',. .
427b0 20 20 20 72 61 71 75 6f 3a 20 27 5c 75 30 30 42 raquo: '\u00B
427c0 42 27 2c 0a 20 20 09 20 20 20 20 66 72 61 63 31 B',. . frac1
427d0 34 3a 20 27 5c 75 30 30 42 43 27 2c 0a 20 20 09 4: '\u00BC',. .
427e0 20 20 20 20 66 72 61 63 31 32 3a 20 27 5c 75 30 frac12: '\u0
427f0 30 42 44 27 2c 0a 20 20 09 20 20 20 20 66 72 61 0BD',. . fra
42800 63 33 34 3a 20 27 5c 75 30 30 42 45 27 2c 0a 20 c34: '\u00BE',.
42810 20 09 20 20 20 20 69 71 75 65 73 74 3a 20 27 5c . iquest: '\
42820 75 30 30 42 46 27 2c 0a 20 20 09 20 20 20 20 41 u00BF',. . A
42830 67 72 61 76 65 3a 20 27 5c 75 30 30 43 30 27 2c grave: '\u00C0',
42840 0a 20 20 09 20 20 20 20 41 61 63 75 74 65 3a 20 . . Aacute:
42850 27 5c 75 30 30 43 31 27 2c 0a 20 20 09 20 20 20 '\u00C1',. .
42860 20 41 63 69 72 63 3a 20 27 5c 75 30 30 43 32 27 Acirc: '\u00C2'
42870 2c 0a 20 20 09 20 20 20 20 41 74 69 6c 64 65 3a ,. . Atilde:
42880 20 27 5c 75 30 30 43 33 27 2c 0a 20 20 09 20 20 '\u00C3',. .
42890 20 20 41 75 6d 6c 3a 20 27 5c 75 30 30 43 34 27 Auml: '\u00C4'
428a0 2c 0a 20 20 09 20 20 20 20 41 72 69 6e 67 3a 20 ,. . Aring:
428b0 27 5c 75 30 30 43 35 27 2c 0a 20 20 09 20 20 20 '\u00C5',. .
428c0 20 41 45 6c 69 67 3a 20 27 5c 75 30 30 43 36 27 AElig: '\u00C6'
428d0 2c 0a 20 20 09 20 20 20 20 43 63 65 64 69 6c 3a ,. . Ccedil:
428e0 20 27 5c 75 30 30 43 37 27 2c 0a 20 20 09 20 20 '\u00C7',. .
428f0 20 20 45 67 72 61 76 65 3a 20 27 5c 75 30 30 43 Egrave: '\u00C
42900 38 27 2c 0a 20 20 09 20 20 20 20 45 61 63 75 74 8',. . Eacut
42910 65 3a 20 27 5c 75 30 30 43 39 27 2c 0a 20 20 09 e: '\u00C9',. .
42920 20 20 20 20 45 63 69 72 63 3a 20 27 5c 75 30 30 Ecirc: '\u00
42930 43 41 27 2c 0a 20 20 09 20 20 20 20 45 75 6d 6c CA',. . Euml
42940 3a 20 27 5c 75 30 30 43 42 27 2c 0a 20 20 09 20 : '\u00CB',. .
42950 20 20 20 49 67 72 61 76 65 3a 20 27 5c 75 30 30 Igrave: '\u00
42960 43 43 27 2c 0a 20 20 09 20 20 20 20 49 61 63 75 CC',. . Iacu
42970 74 65 3a 20 27 5c 75 30 30 43 44 27 2c 0a 20 20 te: '\u00CD',.
42980 09 20 20 20 20 49 63 69 72 63 3a 20 27 5c 75 30 . Icirc: '\u0
42990 30 43 45 27 2c 0a 20 20 09 20 20 20 20 49 75 6d 0CE',. . Ium
429a0 6c 3a 20 27 5c 75 30 30 43 46 27 2c 0a 20 20 09 l: '\u00CF',. .
429b0 20 20 20 20 45 54 48 3a 20 27 5c 75 30 30 44 30 ETH: '\u00D0
429c0 27 2c 0a 20 20 09 20 20 20 20 4e 74 69 6c 64 65 ',. . Ntilde
429d0 3a 20 27 5c 75 30 30 44 31 27 2c 0a 20 20 09 20 : '\u00D1',. .
429e0 20 20 20 4f 67 72 61 76 65 3a 20 27 5c 75 30 30 Ograve: '\u00
429f0 44 32 27 2c 0a 20 20 09 20 20 20 20 4f 61 63 75 D2',. . Oacu
42a00 74 65 3a 20 27 5c 75 30 30 44 33 27 2c 0a 20 20 te: '\u00D3',.
42a10 09 20 20 20 20 4f 63 69 72 63 3a 20 27 5c 75 30 . Ocirc: '\u0
42a20 30 44 34 27 2c 0a 20 20 09 20 20 20 20 4f 74 69 0D4',. . Oti
42a30 6c 64 65 3a 20 27 5c 75 30 30 44 35 27 2c 0a 20 lde: '\u00D5',.
42a40 20 09 20 20 20 20 4f 75 6d 6c 3a 20 27 5c 75 30 . Ouml: '\u0
42a50 30 44 36 27 2c 0a 20 20 09 20 20 20 20 74 69 6d 0D6',. . tim
42a60 65 73 3a 20 27 5c 75 30 30 44 37 27 2c 0a 20 20 es: '\u00D7',.
42a70 09 20 20 20 20 4f 73 6c 61 73 68 3a 20 27 5c 75 . Oslash: '\u
42a80 30 30 44 38 27 2c 0a 20 20 09 20 20 20 20 55 67 00D8',. . Ug
42a90 72 61 76 65 3a 20 27 5c 75 30 30 44 39 27 2c 0a rave: '\u00D9',.
42aa0 20 20 09 20 20 20 20 55 61 63 75 74 65 3a 20 27 . Uacute: '
42ab0 5c 75 30 30 44 41 27 2c 0a 20 20 09 20 20 20 20 \u00DA',. .
42ac0 55 63 69 72 63 3a 20 27 5c 75 30 30 44 42 27 2c Ucirc: '\u00DB',
42ad0 0a 20 20 09 20 20 20 20 55 75 6d 6c 3a 20 27 5c . . Uuml: '\
42ae0 75 30 30 44 43 27 2c 0a 20 20 09 20 20 20 20 59 u00DC',. . Y
42af0 61 63 75 74 65 3a 20 27 5c 75 30 30 44 44 27 2c acute: '\u00DD',
42b00 0a 20 20 09 20 20 20 20 54 48 4f 52 4e 3a 20 27 . . THORN: '
42b10 5c 75 30 30 44 45 27 2c 0a 20 20 09 20 20 20 20 \u00DE',. .
42b20 73 7a 6c 69 67 3a 20 27 5c 75 30 30 44 46 27 2c szlig: '\u00DF',
42b30 0a 20 20 09 20 20 20 20 61 67 72 61 76 65 3a 20 . . agrave:
42b40 27 5c 75 30 30 45 30 27 2c 0a 20 20 09 20 20 20 '\u00E0',. .
42b50 20 61 61 63 75 74 65 3a 20 27 5c 75 30 30 45 31 aacute: '\u00E1
42b60 27 2c 0a 20 20 09 20 20 20 20 61 63 69 72 63 3a ',. . acirc:
42b70 20 27 5c 75 30 30 45 32 27 2c 0a 20 20 09 20 20 '\u00E2',. .
42b80 20 20 61 74 69 6c 64 65 3a 20 27 5c 75 30 30 45 atilde: '\u00E
42b90 33 27 2c 0a 20 20 09 20 20 20 20 61 75 6d 6c 3a 3',. . auml:
42ba0 20 27 5c 75 30 30 45 34 27 2c 0a 20 20 09 20 20 '\u00E4',. .
42bb0 20 20 61 72 69 6e 67 3a 20 27 5c 75 30 30 45 35 aring: '\u00E5
42bc0 27 2c 0a 20 20 09 20 20 20 20 61 65 6c 69 67 3a ',. . aelig:
42bd0 20 27 5c 75 30 30 45 36 27 2c 0a 20 20 09 20 20 '\u00E6',. .
42be0 20 20 63 63 65 64 69 6c 3a 20 27 5c 75 30 30 45 ccedil: '\u00E
42bf0 37 27 2c 0a 20 20 09 20 20 20 20 65 67 72 61 76 7',. . egrav
42c00 65 3a 20 27 5c 75 30 30 45 38 27 2c 0a 20 20 09 e: '\u00E8',. .
42c10 20 20 20 20 65 61 63 75 74 65 3a 20 27 5c 75 30 eacute: '\u0
42c20 30 45 39 27 2c 0a 20 20 09 20 20 20 20 65 63 69 0E9',. . eci
42c30 72 63 3a 20 27 5c 75 30 30 45 41 27 2c 0a 20 20 rc: '\u00EA',.
42c40 09 20 20 20 20 65 75 6d 6c 3a 20 27 5c 75 30 30 . euml: '\u00
42c50 45 42 27 2c 0a 20 20 09 20 20 20 20 69 67 72 61 EB',. . igra
42c60 76 65 3a 20 27 5c 75 30 30 45 43 27 2c 0a 20 20 ve: '\u00EC',.
42c70 09 20 20 20 20 69 61 63 75 74 65 3a 20 27 5c 75 . iacute: '\u
42c80 30 30 45 44 27 2c 0a 20 20 09 20 20 20 20 69 63 00ED',. . ic
42c90 69 72 63 3a 20 27 5c 75 30 30 45 45 27 2c 0a 20 irc: '\u00EE',.
42ca0 20 09 20 20 20 20 69 75 6d 6c 3a 20 27 5c 75 30 . iuml: '\u0
42cb0 30 45 46 27 2c 0a 20 20 09 20 20 20 20 65 74 68 0EF',. . eth
42cc0 3a 20 27 5c 75 30 30 46 30 27 2c 0a 20 20 09 20 : '\u00F0',. .
42cd0 20 20 20 6e 74 69 6c 64 65 3a 20 27 5c 75 30 30 ntilde: '\u00
42ce0 46 31 27 2c 0a 20 20 09 20 20 20 20 6f 67 72 61 F1',. . ogra
42cf0 76 65 3a 20 27 5c 75 30 30 46 32 27 2c 0a 20 20 ve: '\u00F2',.
42d00 09 20 20 20 20 6f 61 63 75 74 65 3a 20 27 5c 75 . oacute: '\u
42d10 30 30 46 33 27 2c 0a 20 20 09 20 20 20 20 6f 63 00F3',. . oc
42d20 69 72 63 3a 20 27 5c 75 30 30 46 34 27 2c 0a 20 irc: '\u00F4',.
42d30 20 09 20 20 20 20 6f 74 69 6c 64 65 3a 20 27 5c . otilde: '\
42d40 75 30 30 46 35 27 2c 0a 20 20 09 20 20 20 20 6f u00F5',. . o
42d50 75 6d 6c 3a 20 27 5c 75 30 30 46 36 27 2c 0a 20 uml: '\u00F6',.
42d60 20 09 20 20 20 20 64 69 76 69 64 65 3a 20 27 5c . divide: '\
42d70 75 30 30 46 37 27 2c 0a 20 20 09 20 20 20 20 6f u00F7',. . o
42d80 73 6c 61 73 68 3a 20 27 5c 75 30 30 46 38 27 2c slash: '\u00F8',
42d90 0a 20 20 09 20 20 20 20 75 67 72 61 76 65 3a 20 . . ugrave:
42da0 27 5c 75 30 30 46 39 27 2c 0a 20 20 09 20 20 20 '\u00F9',. .
42db0 20 75 61 63 75 74 65 3a 20 27 5c 75 30 30 46 41 uacute: '\u00FA
42dc0 27 2c 0a 20 20 09 20 20 20 20 75 63 69 72 63 3a ',. . ucirc:
42dd0 20 27 5c 75 30 30 46 42 27 2c 0a 20 20 09 20 20 '\u00FB',. .
42de0 20 20 75 75 6d 6c 3a 20 27 5c 75 30 30 46 43 27 uuml: '\u00FC'
42df0 2c 0a 20 20 09 20 20 20 20 79 61 63 75 74 65 3a ,. . yacute:
42e00 20 27 5c 75 30 30 46 44 27 2c 0a 20 20 09 20 20 '\u00FD',. .
42e10 20 20 74 68 6f 72 6e 3a 20 27 5c 75 30 30 46 45 thorn: '\u00FE
42e20 27 2c 0a 20 20 09 20 20 20 20 79 75 6d 6c 3a 20 ',. . yuml:
42e30 27 5c 75 30 30 46 46 27 2c 0a 20 20 09 20 20 20 '\u00FF',. .
42e40 20 4f 45 6c 69 67 3a 20 27 5c 75 30 31 35 32 27 OElig: '\u0152'
42e50 2c 0a 20 20 09 20 20 20 20 6f 65 6c 69 67 3a 20 ,. . oelig:
42e60 27 5c 75 30 31 35 33 27 2c 0a 20 20 09 20 20 20 '\u0153',. .
42e70 20 53 63 61 72 6f 6e 3a 20 27 5c 75 30 31 36 30 Scaron: '\u0160
42e80 27 2c 0a 20 20 09 20 20 20 20 73 63 61 72 6f 6e ',. . scaron
42e90 3a 20 27 5c 75 30 31 36 31 27 2c 0a 20 20 09 20 : '\u0161',. .
42ea0 20 20 20 59 75 6d 6c 3a 20 27 5c 75 30 31 37 38 Yuml: '\u0178
42eb0 27 2c 0a 20 20 09 20 20 20 20 66 6e 6f 66 3a 20 ',. . fnof:
42ec0 27 5c 75 30 31 39 32 27 2c 0a 20 20 09 20 20 20 '\u0192',. .
42ed0 20 63 69 72 63 3a 20 27 5c 75 30 32 43 36 27 2c circ: '\u02C6',
42ee0 0a 20 20 09 20 20 20 20 74 69 6c 64 65 3a 20 27 . . tilde: '
42ef0 5c 75 30 32 44 43 27 2c 0a 20 20 09 20 20 20 20 \u02DC',. .
42f00 41 6c 70 68 61 3a 20 27 5c 75 30 33 39 31 27 2c Alpha: '\u0391',
42f10 0a 20 20 09 20 20 20 20 42 65 74 61 3a 20 27 5c . . Beta: '\
42f20 75 30 33 39 32 27 2c 0a 20 20 09 20 20 20 20 47 u0392',. . G
42f30 61 6d 6d 61 3a 20 27 5c 75 30 33 39 33 27 2c 0a amma: '\u0393',.
42f40 20 20 09 20 20 20 20 44 65 6c 74 61 3a 20 27 5c . Delta: '\
42f50 75 30 33 39 34 27 2c 0a 20 20 09 20 20 20 20 45 u0394',. . E
42f60 70 73 69 6c 6f 6e 3a 20 27 5c 75 30 33 39 35 27 psilon: '\u0395'
42f70 2c 0a 20 20 09 20 20 20 20 5a 65 74 61 3a 20 27 ,. . Zeta: '
42f80 5c 75 30 33 39 36 27 2c 0a 20 20 09 20 20 20 20 \u0396',. .
42f90 45 74 61 3a 20 27 5c 75 30 33 39 37 27 2c 0a 20 Eta: '\u0397',.
42fa0 20 09 20 20 20 20 54 68 65 74 61 3a 20 27 5c 75 . Theta: '\u
42fb0 30 33 39 38 27 2c 0a 20 20 09 20 20 20 20 49 6f 0398',. . Io
42fc0 74 61 3a 20 27 5c 75 30 33 39 39 27 2c 0a 20 20 ta: '\u0399',.
42fd0 09 20 20 20 20 4b 61 70 70 61 3a 20 27 5c 75 30 . Kappa: '\u0
42fe0 33 39 41 27 2c 0a 20 20 09 20 20 20 20 4c 61 6d 39A',. . Lam
42ff0 62 64 61 3a 20 27 5c 75 30 33 39 42 27 2c 0a 20 bda: '\u039B',.
43000 20 09 20 20 20 20 4d 75 3a 20 27 5c 75 30 33 39 . Mu: '\u039
43010 43 27 2c 0a 20 20 09 20 20 20 20 4e 75 3a 20 27 C',. . Nu: '
43020 5c 75 30 33 39 44 27 2c 0a 20 20 09 20 20 20 20 \u039D',. .
43030 58 69 3a 20 27 5c 75 30 33 39 45 27 2c 0a 20 20 Xi: '\u039E',.
43040 09 20 20 20 20 4f 6d 69 63 72 6f 6e 3a 20 27 5c . Omicron: '\
43050 75 30 33 39 46 27 2c 0a 20 20 09 20 20 20 20 50 u039F',. . P
43060 69 3a 20 27 5c 75 30 33 41 30 27 2c 0a 20 20 09 i: '\u03A0',. .
43070 20 20 20 20 52 68 6f 3a 20 27 5c 75 30 33 41 31 Rho: '\u03A1
43080 27 2c 0a 20 20 09 20 20 20 20 53 69 67 6d 61 3a ',. . Sigma:
43090 20 27 5c 75 30 33 41 33 27 2c 0a 20 20 09 20 20 '\u03A3',. .
430a0 20 20 54 61 75 3a 20 27 5c 75 30 33 41 34 27 2c Tau: '\u03A4',
430b0 0a 20 20 09 20 20 20 20 55 70 73 69 6c 6f 6e 3a . . Upsilon:
430c0 20 27 5c 75 30 33 41 35 27 2c 0a 20 20 09 20 20 '\u03A5',. .
430d0 20 20 50 68 69 3a 20 27 5c 75 30 33 41 36 27 2c Phi: '\u03A6',
430e0 0a 20 20 09 20 20 20 20 43 68 69 3a 20 27 5c 75 . . Chi: '\u
430f0 30 33 41 37 27 2c 0a 20 20 09 20 20 20 20 50 73 03A7',. . Ps
43100 69 3a 20 27 5c 75 30 33 41 38 27 2c 0a 20 20 09 i: '\u03A8',. .
43110 20 20 20 20 4f 6d 65 67 61 3a 20 27 5c 75 30 33 Omega: '\u03
43120 41 39 27 2c 0a 20 20 09 20 20 20 20 61 6c 70 68 A9',. . alph
43130 61 3a 20 27 5c 75 30 33 42 31 27 2c 0a 20 20 09 a: '\u03B1',. .
43140 20 20 20 20 62 65 74 61 3a 20 27 5c 75 30 33 42 beta: '\u03B
43150 32 27 2c 0a 20 20 09 20 20 20 20 67 61 6d 6d 61 2',. . gamma
43160 3a 20 27 5c 75 30 33 42 33 27 2c 0a 20 20 09 20 : '\u03B3',. .
43170 20 20 20 64 65 6c 74 61 3a 20 27 5c 75 30 33 42 delta: '\u03B
43180 34 27 2c 0a 20 20 09 20 20 20 20 65 70 73 69 6c 4',. . epsil
43190 6f 6e 3a 20 27 5c 75 30 33 42 35 27 2c 0a 20 20 on: '\u03B5',.
431a0 09 20 20 20 20 7a 65 74 61 3a 20 27 5c 75 30 33 . zeta: '\u03
431b0 42 36 27 2c 0a 20 20 09 20 20 20 20 65 74 61 3a B6',. . eta:
431c0 20 27 5c 75 30 33 42 37 27 2c 0a 20 20 09 20 20 '\u03B7',. .
431d0 20 20 74 68 65 74 61 3a 20 27 5c 75 30 33 42 38 theta: '\u03B8
431e0 27 2c 0a 20 20 09 20 20 20 20 69 6f 74 61 3a 20 ',. . iota:
431f0 27 5c 75 30 33 42 39 27 2c 0a 20 20 09 20 20 20 '\u03B9',. .
43200 20 6b 61 70 70 61 3a 20 27 5c 75 30 33 42 41 27 kappa: '\u03BA'
43210 2c 0a 20 20 09 20 20 20 20 6c 61 6d 62 64 61 3a ,. . lambda:
43220 20 27 5c 75 30 33 42 42 27 2c 0a 20 20 09 20 20 '\u03BB',. .
43230 20 20 6d 75 3a 20 27 5c 75 30 33 42 43 27 2c 0a mu: '\u03BC',.
43240 20 20 09 20 20 20 20 6e 75 3a 20 27 5c 75 30 33 . nu: '\u03
43250 42 44 27 2c 0a 20 20 09 20 20 20 20 78 69 3a 20 BD',. . xi:
43260 27 5c 75 30 33 42 45 27 2c 0a 20 20 09 20 20 20 '\u03BE',. .
43270 20 6f 6d 69 63 72 6f 6e 3a 20 27 5c 75 30 33 42 omicron: '\u03B
43280 46 27 2c 0a 20 20 09 20 20 20 20 70 69 3a 20 27 F',. . pi: '
43290 5c 75 30 33 43 30 27 2c 0a 20 20 09 20 20 20 20 \u03C0',. .
432a0 72 68 6f 3a 20 27 5c 75 30 33 43 31 27 2c 0a 20 rho: '\u03C1',.
432b0 20 09 20 20 20 20 73 69 67 6d 61 66 3a 20 27 5c . sigmaf: '\
432c0 75 30 33 43 32 27 2c 0a 20 20 09 20 20 20 20 73 u03C2',. . s
432d0 69 67 6d 61 3a 20 27 5c 75 30 33 43 33 27 2c 0a igma: '\u03C3',.
432e0 20 20 09 20 20 20 20 74 61 75 3a 20 27 5c 75 30 . tau: '\u0
432f0 33 43 34 27 2c 0a 20 20 09 20 20 20 20 75 70 73 3C4',. . ups
43300 69 6c 6f 6e 3a 20 27 5c 75 30 33 43 35 27 2c 0a ilon: '\u03C5',.
43310 20 20 09 20 20 20 20 70 68 69 3a 20 27 5c 75 30 . phi: '\u0
43320 33 43 36 27 2c 0a 20 20 09 20 20 20 20 63 68 69 3C6',. . chi
43330 3a 20 27 5c 75 30 33 43 37 27 2c 0a 20 20 09 20 : '\u03C7',. .
43340 20 20 20 70 73 69 3a 20 27 5c 75 30 33 43 38 27 psi: '\u03C8'
43350 2c 0a 20 20 09 20 20 20 20 6f 6d 65 67 61 3a 20 ,. . omega:
43360 27 5c 75 30 33 43 39 27 2c 0a 20 20 09 20 20 20 '\u03C9',. .
43370 20 74 68 65 74 61 73 79 6d 3a 20 27 5c 75 30 33 thetasym: '\u03
43380 44 31 27 2c 0a 20 20 09 20 20 20 20 75 70 73 69 D1',. . upsi
43390 68 3a 20 27 5c 75 30 33 44 32 27 2c 0a 20 20 09 h: '\u03D2',. .
433a0 20 20 20 20 70 69 76 3a 20 27 5c 75 30 33 44 36 piv: '\u03D6
433b0 27 2c 0a 20 20 09 20 20 20 20 65 6e 73 70 3a 20 ',. . ensp:
433c0 27 5c 75 32 30 30 32 27 2c 0a 20 20 09 20 20 20 '\u2002',. .
433d0 20 65 6d 73 70 3a 20 27 5c 75 32 30 30 33 27 2c emsp: '\u2003',
433e0 0a 20 20 09 20 20 20 20 74 68 69 6e 73 70 3a 20 . . thinsp:
433f0 27 5c 75 32 30 30 39 27 2c 0a 20 20 09 20 20 20 '\u2009',. .
43400 20 7a 77 6e 6a 3a 20 27 5c 75 32 30 30 43 27 2c zwnj: '\u200C',
43410 0a 20 20 09 20 20 20 20 7a 77 6a 3a 20 27 5c 75 . . zwj: '\u
43420 32 30 30 44 27 2c 0a 20 20 09 20 20 20 20 6c 72 200D',. . lr
43430 6d 3a 20 27 5c 75 32 30 30 45 27 2c 0a 20 20 09 m: '\u200E',. .
43440 20 20 20 20 72 6c 6d 3a 20 27 5c 75 32 30 30 46 rlm: '\u200F
43450 27 2c 0a 20 20 09 20 20 20 20 6e 64 61 73 68 3a ',. . ndash:
43460 20 27 5c 75 32 30 31 33 27 2c 0a 20 20 09 20 20 '\u2013',. .
43470 20 20 6d 64 61 73 68 3a 20 27 5c 75 32 30 31 34 mdash: '\u2014
43480 27 2c 0a 20 20 09 20 20 20 20 6c 73 71 75 6f 3a ',. . lsquo:
43490 20 27 5c 75 32 30 31 38 27 2c 0a 20 20 09 20 20 '\u2018',. .
434a0 20 20 72 73 71 75 6f 3a 20 27 5c 75 32 30 31 39 rsquo: '\u2019
434b0 27 2c 0a 20 20 09 20 20 20 20 73 62 71 75 6f 3a ',. . sbquo:
434c0 20 27 5c 75 32 30 31 41 27 2c 0a 20 20 09 20 20 '\u201A',. .
434d0 20 20 6c 64 71 75 6f 3a 20 27 5c 75 32 30 31 43 ldquo: '\u201C
434e0 27 2c 0a 20 20 09 20 20 20 20 72 64 71 75 6f 3a ',. . rdquo:
434f0 20 27 5c 75 32 30 31 44 27 2c 0a 20 20 09 20 20 '\u201D',. .
43500 20 20 62 64 71 75 6f 3a 20 27 5c 75 32 30 31 45 bdquo: '\u201E
43510 27 2c 0a 20 20 09 20 20 20 20 64 61 67 67 65 72 ',. . dagger
43520 3a 20 27 5c 75 32 30 32 30 27 2c 0a 20 20 09 20 : '\u2020',. .
43530 20 20 20 44 61 67 67 65 72 3a 20 27 5c 75 32 30 Dagger: '\u20
43540 32 31 27 2c 0a 20 20 09 20 20 20 20 62 75 6c 6c 21',. . bull
43550 3a 20 27 5c 75 32 30 32 32 27 2c 0a 20 20 09 20 : '\u2022',. .
43560 20 20 20 68 65 6c 6c 69 70 3a 20 27 5c 75 32 30 hellip: '\u20
43570 32 36 27 2c 0a 20 20 09 20 20 20 20 70 65 72 6d 26',. . perm
43580 69 6c 3a 20 27 5c 75 32 30 33 30 27 2c 0a 20 20 il: '\u2030',.
43590 09 20 20 20 20 70 72 69 6d 65 3a 20 27 5c 75 32 . prime: '\u2
435a0 30 33 32 27 2c 0a 20 20 09 20 20 20 20 50 72 69 032',. . Pri
435b0 6d 65 3a 20 27 5c 75 32 30 33 33 27 2c 0a 20 20 me: '\u2033',.
435c0 09 20 20 20 20 6c 73 61 71 75 6f 3a 20 27 5c 75 . lsaquo: '\u
435d0 32 30 33 39 27 2c 0a 20 20 09 20 20 20 20 72 73 2039',. . rs
435e0 61 71 75 6f 3a 20 27 5c 75 32 30 33 41 27 2c 0a aquo: '\u203A',.
435f0 20 20 09 20 20 20 20 6f 6c 69 6e 65 3a 20 27 5c . oline: '\
43600 75 32 30 33 45 27 2c 0a 20 20 09 20 20 20 20 66 u203E',. . f
43610 72 61 73 6c 3a 20 27 5c 75 32 30 34 34 27 2c 0a rasl: '\u2044',.
43620 20 20 09 20 20 20 20 65 75 72 6f 3a 20 27 5c 75 . euro: '\u
43630 32 30 41 43 27 2c 0a 20 20 09 20 20 20 20 69 6d 20AC',. . im
43640 61 67 65 3a 20 27 5c 75 32 31 31 31 27 2c 0a 20 age: '\u2111',.
43650 20 09 20 20 20 20 77 65 69 65 72 70 3a 20 27 5c . weierp: '\
43660 75 32 31 31 38 27 2c 0a 20 20 09 20 20 20 20 72 u2118',. . r
43670 65 61 6c 3a 20 27 5c 75 32 31 31 43 27 2c 0a 20 eal: '\u211C',.
43680 20 09 20 20 20 20 74 72 61 64 65 3a 20 27 5c 75 . trade: '\u
43690 32 31 32 32 27 2c 0a 20 20 09 20 20 20 20 61 6c 2122',. . al
436a0 65 66 73 79 6d 3a 20 27 5c 75 32 31 33 35 27 2c efsym: '\u2135',
436b0 0a 20 20 09 20 20 20 20 6c 61 72 72 3a 20 27 5c . . larr: '\
436c0 75 32 31 39 30 27 2c 0a 20 20 09 20 20 20 20 75 u2190',. . u
436d0 61 72 72 3a 20 27 5c 75 32 31 39 31 27 2c 0a 20 arr: '\u2191',.
436e0 20 09 20 20 20 20 72 61 72 72 3a 20 27 5c 75 32 . rarr: '\u2
436f0 31 39 32 27 2c 0a 20 20 09 20 20 20 20 64 61 72 192',. . dar
43700 72 3a 20 27 5c 75 32 31 39 33 27 2c 0a 20 20 09 r: '\u2193',. .
43710 20 20 20 20 68 61 72 72 3a 20 27 5c 75 32 31 39 harr: '\u219
43720 34 27 2c 0a 20 20 09 20 20 20 20 63 72 61 72 72 4',. . crarr
43730 3a 20 27 5c 75 32 31 42 35 27 2c 0a 20 20 09 20 : '\u21B5',. .
43740 20 20 20 6c 41 72 72 3a 20 27 5c 75 32 31 44 30 lArr: '\u21D0
43750 27 2c 0a 20 20 09 20 20 20 20 75 41 72 72 3a 20 ',. . uArr:
43760 27 5c 75 32 31 44 31 27 2c 0a 20 20 09 20 20 20 '\u21D1',. .
43770 20 72 41 72 72 3a 20 27 5c 75 32 31 44 32 27 2c rArr: '\u21D2',
43780 0a 20 20 09 20 20 20 20 64 41 72 72 3a 20 27 5c . . dArr: '\
43790 75 32 31 44 33 27 2c 0a 20 20 09 20 20 20 20 68 u21D3',. . h
437a0 41 72 72 3a 20 27 5c 75 32 31 44 34 27 2c 0a 20 Arr: '\u21D4',.
437b0 20 09 20 20 20 20 66 6f 72 61 6c 6c 3a 20 27 5c . forall: '\
437c0 75 32 32 30 30 27 2c 0a 20 20 09 20 20 20 20 70 u2200',. . p
437d0 61 72 74 3a 20 27 5c 75 32 32 30 32 27 2c 0a 20 art: '\u2202',.
437e0 20 09 20 20 20 20 65 78 69 73 74 3a 20 27 5c 75 . exist: '\u
437f0 32 32 30 33 27 2c 0a 20 20 09 20 20 20 20 65 6d 2203',. . em
43800 70 74 79 3a 20 27 5c 75 32 32 30 35 27 2c 0a 20 pty: '\u2205',.
43810 20 09 20 20 20 20 6e 61 62 6c 61 3a 20 27 5c 75 . nabla: '\u
43820 32 32 30 37 27 2c 0a 20 20 09 20 20 20 20 69 73 2207',. . is
43830 69 6e 3a 20 27 5c 75 32 32 30 38 27 2c 0a 20 20 in: '\u2208',.
43840 09 20 20 20 20 6e 6f 74 69 6e 3a 20 27 5c 75 32 . notin: '\u2
43850 32 30 39 27 2c 0a 20 20 09 20 20 20 20 6e 69 3a 209',. . ni:
43860 20 27 5c 75 32 32 30 42 27 2c 0a 20 20 09 20 20 '\u220B',. .
43870 20 20 70 72 6f 64 3a 20 27 5c 75 32 32 30 46 27 prod: '\u220F'
43880 2c 0a 20 20 09 20 20 20 20 73 75 6d 3a 20 27 5c ,. . sum: '\
43890 75 32 32 31 31 27 2c 0a 20 20 09 20 20 20 20 6d u2211',. . m
438a0 69 6e 75 73 3a 20 27 5c 75 32 32 31 32 27 2c 0a inus: '\u2212',.
438b0 20 20 09 20 20 20 20 6c 6f 77 61 73 74 3a 20 27 . lowast: '
438c0 5c 75 32 32 31 37 27 2c 0a 20 20 09 20 20 20 20 \u2217',. .
438d0 72 61 64 69 63 3a 20 27 5c 75 32 32 31 41 27 2c radic: '\u221A',
438e0 0a 20 20 09 20 20 20 20 70 72 6f 70 3a 20 27 5c . . prop: '\
438f0 75 32 32 31 44 27 2c 0a 20 20 09 20 20 20 20 69 u221D',. . i
43900 6e 66 69 6e 3a 20 27 5c 75 32 32 31 45 27 2c 0a nfin: '\u221E',.
43910 20 20 09 20 20 20 20 61 6e 67 3a 20 27 5c 75 32 . ang: '\u2
43920 32 32 30 27 2c 0a 20 20 09 20 20 20 20 61 6e 64 220',. . and
43930 3a 20 27 5c 75 32 32 32 37 27 2c 0a 20 20 09 20 : '\u2227',. .
43940 20 20 20 6f 72 3a 20 27 5c 75 32 32 32 38 27 2c or: '\u2228',
43950 0a 20 20 09 20 20 20 20 63 61 70 3a 20 27 5c 75 . . cap: '\u
43960 32 32 32 39 27 2c 0a 20 20 09 20 20 20 20 63 75 2229',. . cu
43970 70 3a 20 27 5c 75 32 32 32 41 27 2c 0a 20 20 09 p: '\u222A',. .
43980 20 20 20 20 69 6e 74 3a 20 27 5c 75 32 32 32 42 int: '\u222B
43990 27 2c 0a 20 20 09 20 20 20 20 74 68 65 72 65 34 ',. . there4
439a0 3a 20 27 5c 75 32 32 33 34 27 2c 0a 20 20 09 20 : '\u2234',. .
439b0 20 20 20 73 69 6d 3a 20 27 5c 75 32 32 33 43 27 sim: '\u223C'
439c0 2c 0a 20 20 09 20 20 20 20 63 6f 6e 67 3a 20 27 ,. . cong: '
439d0 5c 75 32 32 34 35 27 2c 0a 20 20 09 20 20 20 20 \u2245',. .
439e0 61 73 79 6d 70 3a 20 27 5c 75 32 32 34 38 27 2c asymp: '\u2248',
439f0 0a 20 20 09 20 20 20 20 6e 65 3a 20 27 5c 75 32 . . ne: '\u2
43a00 32 36 30 27 2c 0a 20 20 09 20 20 20 20 65 71 75 260',. . equ
43a10 69 76 3a 20 27 5c 75 32 32 36 31 27 2c 0a 20 20 iv: '\u2261',.
43a20 09 20 20 20 20 6c 65 3a 20 27 5c 75 32 32 36 34 . le: '\u2264
43a30 27 2c 0a 20 20 09 20 20 20 20 67 65 3a 20 27 5c ',. . ge: '\
43a40 75 32 32 36 35 27 2c 0a 20 20 09 20 20 20 20 73 u2265',. . s
43a50 75 62 3a 20 27 5c 75 32 32 38 32 27 2c 0a 20 20 ub: '\u2282',.
43a60 09 20 20 20 20 73 75 70 3a 20 27 5c 75 32 32 38 . sup: '\u228
43a70 33 27 2c 0a 20 20 09 20 20 20 20 6e 73 75 62 3a 3',. . nsub:
43a80 20 27 5c 75 32 32 38 34 27 2c 0a 20 20 09 20 20 '\u2284',. .
43a90 20 20 73 75 62 65 3a 20 27 5c 75 32 32 38 36 27 sube: '\u2286'
43aa0 2c 0a 20 20 09 20 20 20 20 73 75 70 65 3a 20 27 ,. . supe: '
43ab0 5c 75 32 32 38 37 27 2c 0a 20 20 09 20 20 20 20 \u2287',. .
43ac0 6f 70 6c 75 73 3a 20 27 5c 75 32 32 39 35 27 2c oplus: '\u2295',
43ad0 0a 20 20 09 20 20 20 20 6f 74 69 6d 65 73 3a 20 . . otimes:
43ae0 27 5c 75 32 32 39 37 27 2c 0a 20 20 09 20 20 20 '\u2297',. .
43af0 20 70 65 72 70 3a 20 27 5c 75 32 32 41 35 27 2c perp: '\u22A5',
43b00 0a 20 20 09 20 20 20 20 73 64 6f 74 3a 20 27 5c . . sdot: '\
43b10 75 32 32 43 35 27 2c 0a 20 20 09 20 20 20 20 6c u22C5',. . l
43b20 63 65 69 6c 3a 20 27 5c 75 32 33 30 38 27 2c 0a ceil: '\u2308',.
43b30 20 20 09 20 20 20 20 72 63 65 69 6c 3a 20 27 5c . rceil: '\
43b40 75 32 33 30 39 27 2c 0a 20 20 09 20 20 20 20 6c u2309',. . l
43b50 66 6c 6f 6f 72 3a 20 27 5c 75 32 33 30 41 27 2c floor: '\u230A',
43b60 0a 20 20 09 20 20 20 20 72 66 6c 6f 6f 72 3a 20 . . rfloor:
43b70 27 5c 75 32 33 30 42 27 2c 0a 20 20 09 20 20 20 '\u230B',. .
43b80 20 6c 6f 7a 3a 20 27 5c 75 32 35 43 41 27 2c 0a loz: '\u25CA',.
43b90 20 20 09 20 20 20 20 73 70 61 64 65 73 3a 20 27 . spades: '
43ba0 5c 75 32 36 36 30 27 2c 0a 20 20 09 20 20 20 20 \u2660',. .
43bb0 63 6c 75 62 73 3a 20 27 5c 75 32 36 36 33 27 2c clubs: '\u2663',
43bc0 0a 20 20 09 20 20 20 20 68 65 61 72 74 73 3a 20 . . hearts:
43bd0 27 5c 75 32 36 36 35 27 2c 0a 20 20 09 20 20 20 '\u2665',. .
43be0 20 64 69 61 6d 73 3a 20 27 5c 75 32 36 36 36 27 diams: '\u2666'
43bf0 2c 0a 20 20 09 20 20 20 20 6c 61 6e 67 3a 20 27 ,. . lang: '
43c00 5c 75 32 37 45 38 27 2c 0a 20 20 09 20 20 20 20 \u27E8',. .
43c10 72 61 6e 67 3a 20 27 5c 75 32 37 45 39 27 0a 20 rang: '\u27E9'.
43c20 20 09 7d 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d .};... /***/ }
43c30 2c 0a 20 20 2f 2a 20 31 33 20 2a 2f 0a 20 20 2f ,. /* 13 */. /
43c40 2a 2a 2a 2f 20 66 75 6e 63 74 69 6f 6e 28 6d 6f ***/ function(mo
43c50 64 75 6c 65 2c 20 65 78 70 6f 72 74 73 29 20 7b dule, exports) {
43c60 0a 20 20 09 65 78 70 6f 72 74 73 2e 4a 53 58 53 . .exports.JSXS
43c70 79 6e 74 61 78 20 3d 20 7b 0a 20 20 09 20 20 20 yntax = {. .
43c80 20 4a 53 58 41 74 74 72 69 62 75 74 65 3a 20 27 JSXAttribute: '
43c90 4a 53 58 41 74 74 72 69 62 75 74 65 27 2c 0a 20 JSXAttribute',.
43ca0 20 09 20 20 20 20 4a 53 58 43 6c 6f 73 69 6e 67 . JSXClosing
43cb0 45 6c 65 6d 65 6e 74 3a 20 27 4a 53 58 43 6c 6f Element: 'JSXClo
43cc0 73 69 6e 67 45 6c 65 6d 65 6e 74 27 2c 0a 20 20 singElement',.
43cd0 09 20 20 20 20 4a 53 58 45 6c 65 6d 65 6e 74 3a . JSXElement:
43ce0 20 27 4a 53 58 45 6c 65 6d 65 6e 74 27 2c 0a 20 'JSXElement',.
43cf0 20 09 20 20 20 20 4a 53 58 45 6d 70 74 79 45 78 . JSXEmptyEx
43d00 70 72 65 73 73 69 6f 6e 3a 20 27 4a 53 58 45 6d pression: 'JSXEm
43d10 70 74 79 45 78 70 72 65 73 73 69 6f 6e 27 2c 0a ptyExpression',.
43d20 20 20 09 20 20 20 20 4a 53 58 45 78 70 72 65 73 . JSXExpres
43d30 73 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 20 27 sionContainer: '
43d40 4a 53 58 45 78 70 72 65 73 73 69 6f 6e 43 6f 6e JSXExpressionCon
43d50 74 61 69 6e 65 72 27 2c 0a 20 20 09 20 20 20 20 tainer',. .
43d60 4a 53 58 49 64 65 6e 74 69 66 69 65 72 3a 20 27 JSXIdentifier: '
43d70 4a 53 58 49 64 65 6e 74 69 66 69 65 72 27 2c 0a JSXIdentifier',.
43d80 20 20 09 20 20 20 20 4a 53 58 4d 65 6d 62 65 72 . JSXMember
43d90 45 78 70 72 65 73 73 69 6f 6e 3a 20 27 4a 53 58 Expression: 'JSX
43da0 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f 6e MemberExpression
43db0 27 2c 0a 20 20 09 20 20 20 20 4a 53 58 4e 61 6d ',. . JSXNam
43dc0 65 73 70 61 63 65 64 4e 61 6d 65 3a 20 27 4a 53 espacedName: 'JS
43dd0 58 4e 61 6d 65 73 70 61 63 65 64 4e 61 6d 65 27 XNamespacedName'
43de0 2c 0a 20 20 09 20 20 20 20 4a 53 58 4f 70 65 6e ,. . JSXOpen
43df0 69 6e 67 45 6c 65 6d 65 6e 74 3a 20 27 4a 53 58 ingElement: 'JSX
43e00 4f 70 65 6e 69 6e 67 45 6c 65 6d 65 6e 74 27 2c OpeningElement',
43e10 0a 20 20 09 20 20 20 20 4a 53 58 53 70 72 65 61 . . JSXSprea
43e20 64 41 74 74 72 69 62 75 74 65 3a 20 27 4a 53 58 dAttribute: 'JSX
43e30 53 70 72 65 61 64 41 74 74 72 69 62 75 74 65 27 SpreadAttribute'
43e40 2c 0a 20 20 09 20 20 20 20 4a 53 58 54 65 78 74 ,. . JSXText
43e50 3a 20 27 4a 53 58 54 65 78 74 27 0a 20 20 09 7d : 'JSXText'. .}
43e60 3b 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d 2c 0a 20 ;... /***/ },.
43e70 20 2f 2a 20 31 34 20 2a 2f 0a 20 20 2f 2a 2a 2a /* 14 */. /***
43e80 2f 20 66 75 6e 63 74 69 6f 6e 28 6d 6f 64 75 6c / function(modul
43e90 65 2c 20 65 78 70 6f 72 74 73 2c 20 5f 5f 77 65 e, exports, __we
43ea0 62 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f 29 bpack_require__)
43eb0 20 7b 0a 20 20 09 76 61 72 20 6a 73 78 5f 73 79 {. .var jsx_sy
43ec0 6e 74 61 78 5f 31 20 3d 20 5f 5f 77 65 62 70 61 ntax_1 = __webpa
43ed0 63 6b 5f 72 65 71 75 69 72 65 5f 5f 28 31 33 29 ck_require__(13)
43ee0 3b 0a 20 20 09 76 61 72 20 4a 53 58 43 6c 6f 73 ;. .var JSXClos
43ef0 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 28 66 75 ingElement = (fu
43f00 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
43f10 20 20 20 66 75 6e 63 74 69 6f 6e 20 4a 53 58 43 function JSXC
43f20 6c 6f 73 69 6e 67 45 6c 65 6d 65 6e 74 28 6e 61 losingElement(na
43f30 6d 65 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 me) {. .
43f40 20 74 68 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 this.type = jsx
43f50 5f 73 79 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e _syntax_1.JSXSyn
43f60 74 61 78 2e 4a 53 58 43 6c 6f 73 69 6e 67 45 6c tax.JSXClosingEl
43f70 65 6d 65 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 ement;. .
43f80 20 20 74 68 69 73 2e 6e 61 6d 65 20 3d 20 6e 61 this.name = na
43f90 6d 65 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 me;. . }. .
43fa0 20 20 20 20 72 65 74 75 72 6e 20 4a 53 58 43 6c return JSXCl
43fb0 6f 73 69 6e 67 45 6c 65 6d 65 6e 74 3b 0a 20 20 osingElement;.
43fc0 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 .}());. .export
43fd0 73 2e 4a 53 58 43 6c 6f 73 69 6e 67 45 6c 65 6d s.JSXClosingElem
43fe0 65 6e 74 20 3d 20 4a 53 58 43 6c 6f 73 69 6e 67 ent = JSXClosing
43ff0 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 20 Element;. .var
44000 4a 53 58 45 6c 65 6d 65 6e 74 20 3d 20 28 66 75 JSXElement = (fu
44010 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 nction () {. .
44020 20 20 20 66 75 6e 63 74 69 6f 6e 20 4a 53 58 45 function JSXE
44030 6c 65 6d 65 6e 74 28 6f 70 65 6e 69 6e 67 45 6c lement(openingEl
44040 65 6d 65 6e 74 2c 20 63 68 69 6c 64 72 65 6e 2c ement, children,
44050 20 63 6c 6f 73 69 6e 67 45 6c 65 6d 65 6e 74 29 closingElement)
44060 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
44070 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 5f 73 79 is.type = jsx_sy
44080 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e 74 61 78 ntax_1.JSXSyntax
44090 2e 4a 53 58 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 .JSXElement;. .
440a0 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 70 65 this.ope
440b0 6e 69 6e 67 45 6c 65 6d 65 6e 74 20 3d 20 6f 70 ningElement = op
440c0 65 6e 69 6e 67 45 6c 65 6d 65 6e 74 3b 0a 20 20 eningElement;.
440d0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 68 . this.ch
440e0 69 6c 64 72 65 6e 20 3d 20 63 68 69 6c 64 72 65 ildren = childre
440f0 6e 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 n;. . th
44100 69 73 2e 63 6c 6f 73 69 6e 67 45 6c 65 6d 65 6e is.closingElemen
44110 74 20 3d 20 63 6c 6f 73 69 6e 67 45 6c 65 6d 65 t = closingEleme
44120 6e 74 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 nt;. . }. .
44130 20 20 20 20 72 65 74 75 72 6e 20 4a 53 58 45 6c return JSXEl
44140 65 6d 65 6e 74 3b 0a 20 20 09 7d 28 29 29 3b 0a ement;. .}());.
44150 20 20 09 65 78 70 6f 72 74 73 2e 4a 53 58 45 6c .exports.JSXEl
44160 65 6d 65 6e 74 20 3d 20 4a 53 58 45 6c 65 6d 65 ement = JSXEleme
44170 6e 74 3b 0a 20 20 09 76 61 72 20 4a 53 58 45 6d nt;. .var JSXEm
44180 70 74 79 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 ptyExpression =
44190 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 (function () {.
441a0 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 4a . function J
441b0 53 58 45 6d 70 74 79 45 78 70 72 65 73 73 69 6f SXEmptyExpressio
441c0 6e 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 n() {. .
441d0 20 74 68 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 this.type = jsx
441e0 5f 73 79 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e _syntax_1.JSXSyn
441f0 74 61 78 2e 4a 53 58 45 6d 70 74 79 45 78 70 72 tax.JSXEmptyExpr
44200 65 73 73 69 6f 6e 3b 0a 20 20 09 20 20 20 20 7d ession;. . }
44210 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 4a . . return J
44220 53 58 45 6d 70 74 79 45 78 70 72 65 73 73 69 6f SXEmptyExpressio
44230 6e 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 n;. .}());. .e
44240 78 70 6f 72 74 73 2e 4a 53 58 45 6d 70 74 79 45 xports.JSXEmptyE
44250 78 70 72 65 73 73 69 6f 6e 20 3d 20 4a 53 58 45 xpression = JSXE
44260 6d 70 74 79 45 78 70 72 65 73 73 69 6f 6e 3b 0a mptyExpression;.
44270 20 20 09 76 61 72 20 4a 53 58 45 78 70 72 65 73 .var JSXExpres
44280 73 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 3d 20 sionContainer =
44290 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 (function () {.
442a0 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 4a . function J
442b0 53 58 45 78 70 72 65 73 73 69 6f 6e 43 6f 6e 74 SXExpressionCont
442c0 61 69 6e 65 72 28 65 78 70 72 65 73 73 69 6f 6e ainer(expression
442d0 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
442e0 68 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 5f 73 his.type = jsx_s
442f0 79 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e 74 61 yntax_1.JSXSynta
44300 78 2e 4a 53 58 45 78 70 72 65 73 73 69 6f 6e 43 x.JSXExpressionC
44310 6f 6e 74 61 69 6e 65 72 3b 0a 20 20 09 20 20 20 ontainer;. .
44320 20 20 20 20 20 74 68 69 73 2e 65 78 70 72 65 73 this.expres
44330 73 69 6f 6e 20 3d 20 65 78 70 72 65 73 73 69 6f sion = expressio
44340 6e 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 n;. . }. .
44350 20 20 20 72 65 74 75 72 6e 20 4a 53 58 45 78 70 return JSXExp
44360 72 65 73 73 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 ressionContainer
44370 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 ;. .}());. .ex
44380 70 6f 72 74 73 2e 4a 53 58 45 78 70 72 65 73 73 ports.JSXExpress
44390 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 3d 20 4a ionContainer = J
443a0 53 58 45 78 70 72 65 73 73 69 6f 6e 43 6f 6e 74 SXExpressionCont
443b0 61 69 6e 65 72 3b 0a 20 20 09 76 61 72 20 4a 53 ainer;. .var JS
443c0 58 49 64 65 6e 74 69 66 69 65 72 20 3d 20 28 66 XIdentifier = (f
443d0 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 unction () {. .
443e0 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 4a 53 58 function JSX
443f0 49 64 65 6e 74 69 66 69 65 72 28 6e 61 6d 65 29 Identifier(name)
44400 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
44410 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 5f 73 79 is.type = jsx_sy
44420 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e 74 61 78 ntax_1.JSXSyntax
44430 2e 4a 53 58 49 64 65 6e 74 69 66 69 65 72 3b 0a .JSXIdentifier;.
44440 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
44450 6e 61 6d 65 20 3d 20 6e 61 6d 65 3b 0a 20 20 09 name = name;. .
44460 20 20 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 }. . ret
44470 75 72 6e 20 4a 53 58 49 64 65 6e 74 69 66 69 65 urn JSXIdentifie
44480 72 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 r;. .}());. .e
44490 78 70 6f 72 74 73 2e 4a 53 58 49 64 65 6e 74 69 xports.JSXIdenti
444a0 66 69 65 72 20 3d 20 4a 53 58 49 64 65 6e 74 69 fier = JSXIdenti
444b0 66 69 65 72 3b 0a 20 20 09 76 61 72 20 4a 53 58 fier;. .var JSX
444c0 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f 6e MemberExpression
444d0 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
444e0 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
444f0 6e 20 4a 53 58 4d 65 6d 62 65 72 45 78 70 72 65 n JSXMemberExpre
44500 73 73 69 6f 6e 28 6f 62 6a 65 63 74 2c 20 70 72 ssion(object, pr
44510 6f 70 65 72 74 79 29 20 7b 0a 20 20 09 20 20 20 operty) {. .
44520 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d this.type =
44530 20 6a 73 78 5f 73 79 6e 74 61 78 5f 31 2e 4a 53 jsx_syntax_1.JS
44540 58 53 79 6e 74 61 78 2e 4a 53 58 4d 65 6d 62 65 XSyntax.JSXMembe
44550 72 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 09 rExpression;. .
44560 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 62 6a this.obj
44570 65 63 74 20 3d 20 6f 62 6a 65 63 74 3b 0a 20 20 ect = object;.
44580 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 70 72 . this.pr
44590 6f 70 65 72 74 79 20 3d 20 70 72 6f 70 65 72 74 operty = propert
445a0 79 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 y;. . }. .
445b0 20 20 20 72 65 74 75 72 6e 20 4a 53 58 4d 65 6d return JSXMem
445c0 62 65 72 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 berExpression;.
445d0 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
445e0 74 73 2e 4a 53 58 4d 65 6d 62 65 72 45 78 70 72 ts.JSXMemberExpr
445f0 65 73 73 69 6f 6e 20 3d 20 4a 53 58 4d 65 6d 62 ession = JSXMemb
44600 65 72 45 78 70 72 65 73 73 69 6f 6e 3b 0a 20 20 erExpression;.
44610 09 76 61 72 20 4a 53 58 41 74 74 72 69 62 75 74 .var JSXAttribut
44620 65 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 e = (function ()
44630 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
44640 6f 6e 20 4a 53 58 41 74 74 72 69 62 75 74 65 28 on JSXAttribute(
44650 6e 61 6d 65 2c 20 76 61 6c 75 65 29 20 7b 0a 20 name, value) {.
44660 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 . this.t
44670 79 70 65 20 3d 20 6a 73 78 5f 73 79 6e 74 61 78 ype = jsx_syntax
44680 5f 31 2e 4a 53 58 53 79 6e 74 61 78 2e 4a 53 58 _1.JSXSyntax.JSX
44690 41 74 74 72 69 62 75 74 65 3b 0a 20 20 09 20 20 Attribute;. .
446a0 20 20 20 20 20 20 74 68 69 73 2e 6e 61 6d 65 20 this.name
446b0 3d 20 6e 61 6d 65 3b 0a 20 20 09 20 20 20 20 20 = name;. .
446c0 20 20 20 74 68 69 73 2e 76 61 6c 75 65 20 3d 20 this.value =
446d0 76 61 6c 75 65 3b 0a 20 20 09 20 20 20 20 7d 0a value;. . }.
446e0 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 4a 53 . return JS
446f0 58 41 74 74 72 69 62 75 74 65 3b 0a 20 20 09 7d XAttribute;. .}
44700 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e ());. .exports.
44710 4a 53 58 41 74 74 72 69 62 75 74 65 20 3d 20 4a JSXAttribute = J
44720 53 58 41 74 74 72 69 62 75 74 65 3b 0a 20 20 09 SXAttribute;. .
44730 76 61 72 20 4a 53 58 4e 61 6d 65 73 70 61 63 65 var JSXNamespace
44740 64 4e 61 6d 65 20 3d 20 28 66 75 6e 63 74 69 6f dName = (functio
44750 6e 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 n () {. . fu
44760 6e 63 74 69 6f 6e 20 4a 53 58 4e 61 6d 65 73 70 nction JSXNamesp
44770 61 63 65 64 4e 61 6d 65 28 6e 61 6d 65 73 70 61 acedName(namespa
44780 63 65 2c 20 6e 61 6d 65 29 20 7b 0a 20 20 09 20 ce, name) {. .
44790 20 20 20 20 20 20 20 74 68 69 73 2e 74 79 70 65 this.type
447a0 20 3d 20 6a 73 78 5f 73 79 6e 74 61 78 5f 31 2e = jsx_syntax_1.
447b0 4a 53 58 53 79 6e 74 61 78 2e 4a 53 58 4e 61 6d JSXSyntax.JSXNam
447c0 65 73 70 61 63 65 64 4e 61 6d 65 3b 0a 20 20 09 espacedName;. .
447d0 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 61 6d this.nam
447e0 65 73 70 61 63 65 20 3d 20 6e 61 6d 65 73 70 61 espace = namespa
447f0 63 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ce;. . t
44800 68 69 73 2e 6e 61 6d 65 20 3d 20 6e 61 6d 65 3b his.name = name;
44810 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 20 . . }. .
44820 20 72 65 74 75 72 6e 20 4a 53 58 4e 61 6d 65 73 return JSXNames
44830 70 61 63 65 64 4e 61 6d 65 3b 0a 20 20 09 7d 28 pacedName;. .}(
44840 29 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 4a ));. .exports.J
44850 53 58 4e 61 6d 65 73 70 61 63 65 64 4e 61 6d 65 SXNamespacedName
44860 20 3d 20 4a 53 58 4e 61 6d 65 73 70 61 63 65 64 = JSXNamespaced
44870 4e 61 6d 65 3b 0a 20 20 09 76 61 72 20 4a 53 58 Name;. .var JSX
44880 4f 70 65 6e 69 6e 67 45 6c 65 6d 65 6e 74 20 3d OpeningElement =
44890 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a (function () {.
448a0 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 . function
448b0 4a 53 58 4f 70 65 6e 69 6e 67 45 6c 65 6d 65 6e JSXOpeningElemen
448c0 74 28 6e 61 6d 65 2c 20 73 65 6c 66 43 6c 6f 73 t(name, selfClos
448d0 69 6e 67 2c 20 61 74 74 72 69 62 75 74 65 73 29 ing, attributes)
448e0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 {. . th
448f0 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 5f 73 79 is.type = jsx_sy
44900 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e 74 61 78 ntax_1.JSXSyntax
44910 2e 4a 53 58 4f 70 65 6e 69 6e 67 45 6c 65 6d 65 .JSXOpeningEleme
44920 6e 74 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 nt;. . t
44930 68 69 73 2e 6e 61 6d 65 20 3d 20 6e 61 6d 65 3b his.name = name;
44940 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
44950 2e 73 65 6c 66 43 6c 6f 73 69 6e 67 20 3d 20 73 .selfClosing = s
44960 65 6c 66 43 6c 6f 73 69 6e 67 3b 0a 20 20 09 20 elfClosing;. .
44970 20 20 20 20 20 20 20 74 68 69 73 2e 61 74 74 72 this.attr
44980 69 62 75 74 65 73 20 3d 20 61 74 74 72 69 62 75 ibutes = attribu
44990 74 65 73 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 tes;. . }.
449a0 09 20 20 20 20 72 65 74 75 72 6e 20 4a 53 58 4f . return JSXO
449b0 70 65 6e 69 6e 67 45 6c 65 6d 65 6e 74 3b 0a 20 peningElement;.
449c0 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f 72 .}());. .expor
449d0 74 73 2e 4a 53 58 4f 70 65 6e 69 6e 67 45 6c 65 ts.JSXOpeningEle
449e0 6d 65 6e 74 20 3d 20 4a 53 58 4f 70 65 6e 69 6e ment = JSXOpenin
449f0 67 45 6c 65 6d 65 6e 74 3b 0a 20 20 09 76 61 72 gElement;. .var
44a00 20 4a 53 58 53 70 72 65 61 64 41 74 74 72 69 62 JSXSpreadAttrib
44a10 75 74 65 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 ute = (function
44a20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 () {. . func
44a30 74 69 6f 6e 20 4a 53 58 53 70 72 65 61 64 41 74 tion JSXSpreadAt
44a40 74 72 69 62 75 74 65 28 61 72 67 75 6d 65 6e 74 tribute(argument
44a50 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 74 ) {. . t
44a60 68 69 73 2e 74 79 70 65 20 3d 20 6a 73 78 5f 73 his.type = jsx_s
44a70 79 6e 74 61 78 5f 31 2e 4a 53 58 53 79 6e 74 61 yntax_1.JSXSynta
44a80 78 2e 4a 53 58 53 70 72 65 61 64 41 74 74 72 69 x.JSXSpreadAttri
44a90 62 75 74 65 3b 0a 20 20 09 20 20 20 20 20 20 20 bute;. .
44aa0 20 74 68 69 73 2e 61 72 67 75 6d 65 6e 74 20 3d this.argument =
44ab0 20 61 72 67 75 6d 65 6e 74 3b 0a 20 20 09 20 20 argument;. .
44ac0 20 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 }. . retur
44ad0 6e 20 4a 53 58 53 70 72 65 61 64 41 74 74 72 69 n JSXSpreadAttri
44ae0 62 75 74 65 3b 0a 20 20 09 7d 28 29 29 3b 0a 20 bute;. .}());.
44af0 20 09 65 78 70 6f 72 74 73 2e 4a 53 58 53 70 72 .exports.JSXSpr
44b00 65 61 64 41 74 74 72 69 62 75 74 65 20 3d 20 4a eadAttribute = J
44b10 53 58 53 70 72 65 61 64 41 74 74 72 69 62 75 74 SXSpreadAttribut
44b20 65 3b 0a 20 20 09 76 61 72 20 4a 53 58 54 65 78 e;. .var JSXTex
44b30 74 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 t = (function ()
44b40 20 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 {. . functi
44b50 6f 6e 20 4a 53 58 54 65 78 74 28 76 61 6c 75 65 on JSXText(value
44b60 2c 20 72 61 77 29 20 7b 0a 20 20 09 20 20 20 20 , raw) {. .
44b70 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 3d 20 this.type =
44b80 6a 73 78 5f 73 79 6e 74 61 78 5f 31 2e 4a 53 58 jsx_syntax_1.JSX
44b90 53 79 6e 74 61 78 2e 4a 53 58 54 65 78 74 3b 0a Syntax.JSXText;.
44ba0 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e . this.
44bb0 76 61 6c 75 65 20 3d 20 76 61 6c 75 65 3b 0a 20 value = value;.
44bc0 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 . this.r
44bd0 61 77 20 3d 20 72 61 77 3b 0a 20 20 09 20 20 20 aw = raw;. .
44be0 20 7d 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e }. . return
44bf0 20 4a 53 58 54 65 78 74 3b 0a 20 20 09 7d 28 29 JSXText;. .}()
44c00 29 3b 0a 20 20 09 65 78 70 6f 72 74 73 2e 4a 53 );. .exports.JS
44c10 58 54 65 78 74 20 3d 20 4a 53 58 54 65 78 74 3b XText = JSXText;
44c20 0a 0a 0a 20 20 2f 2a 2a 2a 2f 20 7d 2c 0a 20 20 ... /***/ },.
44c30 2f 2a 20 31 35 20 2a 2f 0a 20 20 2f 2a 2a 2a 2f /* 15 */. /***/
44c40 20 66 75 6e 63 74 69 6f 6e 28 6d 6f 64 75 6c 65 function(module
44c50 2c 20 65 78 70 6f 72 74 73 2c 20 5f 5f 77 65 62 , exports, __web
44c60 70 61 63 6b 5f 72 65 71 75 69 72 65 5f 5f 29 20 pack_require__)
44c70 7b 0a 20 20 09 76 61 72 20 73 63 61 6e 6e 65 72 {. .var scanner
44c80 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f 72 _1 = __webpack_r
44c90 65 71 75 69 72 65 5f 5f 28 38 29 3b 0a 20 20 09 equire__(8);. .
44ca0 76 61 72 20 65 72 72 6f 72 5f 68 61 6e 64 6c 65 var error_handle
44cb0 72 5f 31 20 3d 20 5f 5f 77 65 62 70 61 63 6b 5f r_1 = __webpack_
44cc0 72 65 71 75 69 72 65 5f 5f 28 36 29 3b 0a 20 20 require__(6);.
44cd0 09 76 61 72 20 74 6f 6b 65 6e 5f 31 20 3d 20 5f .var token_1 = _
44ce0 5f 77 65 62 70 61 63 6b 5f 72 65 71 75 69 72 65 _webpack_require
44cf0 5f 5f 28 37 29 3b 0a 20 20 09 76 61 72 20 52 65 __(7);. .var Re
44d00 61 64 65 72 20 3d 20 28 66 75 6e 63 74 69 6f 6e ader = (function
44d10 20 28 29 20 7b 0a 20 20 09 20 20 20 20 66 75 6e () {. . fun
44d20 63 74 69 6f 6e 20 52 65 61 64 65 72 28 29 20 7b ction Reader() {
44d30 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
44d40 2e 76 61 6c 75 65 73 20 3d 20 5b 5d 3b 0a 20 20 .values = [];.
44d50 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 . this.cu
44d60 72 6c 79 20 3d 20 74 68 69 73 2e 70 61 72 65 6e rly = this.paren
44d70 20 3d 20 2d 31 3b 0a 20 20 09 20 20 20 20 7d 0a = -1;. . }.
44d80 20 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 2f . . . /
44d90 2f 20 41 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6c / A function fol
44da0 6c 6f 77 69 6e 67 20 6f 6e 65 20 6f 66 20 74 68 lowing one of th
44db0 6f 73 65 20 74 6f 6b 65 6e 73 20 69 73 20 61 6e ose tokens is an
44dc0 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 20 20 09 expression.. .
44dd0 20 20 20 20 52 65 61 64 65 72 2e 70 72 6f 74 6f Reader.proto
44de0 74 79 70 65 2e 62 65 66 6f 72 65 46 75 6e 63 74 type.beforeFunct
44df0 69 6f 6e 45 78 70 72 65 73 73 69 6f 6e 20 3d 20 ionExpression =
44e00 66 75 6e 63 74 69 6f 6e 20 28 74 29 20 7b 0a 20 function (t) {.
44e10 20 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e . return
44e20 20 5b 27 28 27 2c 20 27 7b 27 2c 20 27 5b 27 2c ['(', '{', '[',
44e30 20 27 69 6e 27 2c 20 27 74 79 70 65 6f 66 27 2c 'in', 'typeof',
44e40 20 27 69 6e 73 74 61 6e 63 65 6f 66 27 2c 20 27 'instanceof', '
44e50 6e 65 77 27 2c 0a 20 20 09 20 20 20 20 20 20 20 new',. .
44e60 20 20 20 20 20 27 72 65 74 75 72 6e 27 2c 20 27 'return', '
44e70 63 61 73 65 27 2c 20 27 64 65 6c 65 74 65 27 2c case', 'delete',
44e80 20 27 74 68 72 6f 77 27 2c 20 27 76 6f 69 64 27 'throw', 'void'
44e90 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
44ea0 20 2f 2f 20 61 73 73 69 67 6e 6d 65 6e 74 20 6f // assignment o
44eb0 70 65 72 61 74 6f 72 73 0a 20 20 09 20 20 20 20 perators. .
44ec0 20 20 20 20 20 20 20 20 27 3d 27 2c 20 27 2b 3d '=', '+=
44ed0 27 2c 20 27 2d 3d 27 2c 20 27 2a 3d 27 2c 20 27 ', '-=', '*=', '
44ee0 2a 2a 3d 27 2c 20 27 2f 3d 27 2c 20 27 25 3d 27 **=', '/=', '%='
44ef0 2c 20 27 3c 3c 3d 27 2c 20 27 3e 3e 3d 27 2c 20 , '<<=', '>>=',
44f00 27 3e 3e 3e 3d 27 2c 0a 20 20 09 20 20 20 20 20 '>>>=',. .
44f10 20 20 20 20 20 20 20 27 26 3d 27 2c 20 27 7c 3d '&=', '|=
44f20 27 2c 20 27 5e 3d 27 2c 20 27 2c 27 2c 0a 20 20 ', '^=', ',',.
44f30 09 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 . //
44f40 62 69 6e 61 72 79 2f 75 6e 61 72 79 20 6f 70 65 binary/unary ope
44f50 72 61 74 6f 72 73 0a 20 20 09 20 20 20 20 20 20 rators. .
44f60 20 20 20 20 20 20 27 2b 27 2c 20 27 2d 27 2c 20 '+', '-',
44f70 27 2a 27 2c 20 27 2a 2a 27 2c 20 27 2f 27 2c 20 '*', '**', '/',
44f80 27 25 27 2c 20 27 2b 2b 27 2c 20 27 2d 2d 27 2c '%', '++', '--',
44f90 20 27 3c 3c 27 2c 20 27 3e 3e 27 2c 20 27 3e 3e '<<', '>>', '>>
44fa0 3e 27 2c 20 27 26 27 2c 0a 20 20 09 20 20 20 20 >', '&',. .
44fb0 20 20 20 20 20 20 20 20 27 7c 27 2c 20 27 5e 27 '|', '^'
44fc0 2c 20 27 21 27 2c 20 27 7e 27 2c 20 27 26 26 27 , '!', '~', '&&'
44fd0 2c 20 27 7c 7c 27 2c 20 27 3f 27 2c 20 27 3a 27 , '||', '?', ':'
44fe0 2c 20 27 3d 3d 3d 27 2c 20 27 3d 3d 27 2c 20 27 , '===', '==', '
44ff0 3e 3d 27 2c 0a 20 20 09 20 20 20 20 20 20 20 20 >=',. .
45000 20 20 20 20 27 3c 3d 27 2c 20 27 3c 27 2c 20 27 '<=', '<', '
45010 3e 27 2c 20 27 21 3d 27 2c 20 27 21 3d 3d 27 5d >', '!=', '!==']
45020 2e 69 6e 64 65 78 4f 66 28 74 29 20 3e 3d 20 30 .indexOf(t) >= 0
45030 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 ;. . };. .
45040 20 20 20 0a 20 20 09 20 20 20 20 2f 2f 20 44 65 . . // De
45050 74 65 72 6d 69 6e 65 20 69 66 20 66 6f 72 77 61 termine if forwa
45060 72 64 20 73 6c 61 73 68 20 28 2f 29 20 69 73 20 rd slash (/) is
45070 61 6e 20 6f 70 65 72 61 74 6f 72 20 6f 72 20 70 an operator or p
45080 61 72 74 20 6f 66 20 61 20 72 65 67 75 6c 61 72 art of a regular
45090 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 09 20 expression. .
450a0 20 20 20 2f 2f 20 68 74 74 70 73 3a 2f 2f 67 69 // https://gi
450b0 74 68 75 62 2e 63 6f 6d 2f 6d 6f 7a 69 6c 6c 61 thub.com/mozilla
450c0 2f 73 77 65 65 74 2e 6a 73 2f 77 69 6b 69 2f 64 /sweet.js/wiki/d
450d0 65 73 69 67 6e 0a 20 20 09 20 20 20 20 52 65 61 esign. . Rea
450e0 64 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 69 73 der.prototype.is
450f0 52 65 67 65 78 53 74 61 72 74 20 3d 20 66 75 6e RegexStart = fun
45100 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
45110 20 20 20 20 20 20 76 61 72 20 70 72 65 76 69 6f var previo
45120 75 73 20 3d 20 74 68 69 73 2e 76 61 6c 75 65 73 us = this.values
45130 5b 74 68 69 73 2e 76 61 6c 75 65 73 2e 6c 65 6e [this.values.len
45140 67 74 68 20 2d 20 31 5d 3b 0a 20 20 09 20 20 20 gth - 1];. .
45150 20 20 20 20 20 76 61 72 20 72 65 67 65 78 20 3d var regex =
45160 20 28 70 72 65 76 69 6f 75 73 20 21 3d 3d 20 6e (previous !== n
45170 75 6c 6c 29 3b 0a 20 20 09 20 20 20 20 20 20 20 ull);. .
45180 20 73 77 69 74 63 68 20 28 70 72 65 76 69 6f 75 switch (previou
45190 73 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 s) {. .
451a0 20 20 20 20 63 61 73 65 20 27 74 68 69 73 27 3a case 'this':
451b0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
451c0 63 61 73 65 20 27 5d 27 3a 0a 20 20 09 20 20 20 case ']':. .
451d0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 67 reg
451e0 65 78 20 3d 20 66 61 6c 73 65 3b 0a 20 20 09 20 ex = false;. .
451f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
45200 72 65 61 6b 3b 0a 20 20 09 20 20 20 20 20 20 20 reak;. .
45210 20 20 20 20 20 63 61 73 65 20 27 29 27 3a 0a 20 case ')':.
45220 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45230 20 20 76 61 72 20 63 68 65 63 6b 20 3d 20 74 68 var check = th
45240 69 73 2e 76 61 6c 75 65 73 5b 74 68 69 73 2e 70 is.values[this.p
45250 61 72 65 6e 20 2d 20 31 5d 3b 0a 20 20 09 20 20 aren - 1];. .
45260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 re
45270 67 65 78 20 3d 20 28 63 68 65 63 6b 20 3d 3d 3d gex = (check ===
45280 20 27 69 66 27 20 7c 7c 20 63 68 65 63 6b 20 3d 'if' || check =
45290 3d 3d 20 27 77 68 69 6c 65 27 20 7c 7c 20 63 68 == 'while' || ch
452a0 65 63 6b 20 3d 3d 3d 20 27 66 6f 72 27 20 7c 7c eck === 'for' ||
452b0 20 63 68 65 63 6b 20 3d 3d 3d 20 27 77 69 74 68 check === 'with
452c0 27 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ');. .
452d0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 break;.
452e0 09 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
452f0 65 20 27 7d 27 3a 0a 20 20 09 20 20 20 20 20 20 e '}':. .
45300 20 20 20 20 20 20 20 20 20 20 2f 2f 20 44 69 76 // Div
45310 69 64 69 6e 67 20 61 20 66 75 6e 63 74 69 6f 6e iding a function
45320 20 62 79 20 61 6e 79 74 68 69 6e 67 20 6d 61 6b by anything mak
45330 65 73 20 6c 69 74 74 6c 65 20 73 65 6e 73 65 2c es little sense,
45340 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
45350 20 20 20 20 2f 2f 20 62 75 74 20 77 65 20 68 61 // but we ha
45360 76 65 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 ve to check for
45370 74 68 61 74 2e 0a 20 20 09 20 20 20 20 20 20 20 that.. .
45380 20 20 20 20 20 20 20 20 20 72 65 67 65 78 20 3d regex =
45390 20 66 61 6c 73 65 3b 0a 20 20 09 20 20 20 20 20 false;. .
453a0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
453b0 68 69 73 2e 76 61 6c 75 65 73 5b 74 68 69 73 2e his.values[this.
453c0 63 75 72 6c 79 20 2d 20 33 5d 20 3d 3d 3d 20 27 curly - 3] === '
453d0 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 09 function') {. .
453e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
453f0 20 20 20 20 2f 2f 20 41 6e 6f 6e 79 6d 6f 75 73 // Anonymous
45400 20 66 75 6e 63 74 69 6f 6e 2c 20 65 2e 67 2e 20 function, e.g.
45410 66 75 6e 63 74 69 6f 6e 28 29 7b 7d 20 2f 34 32 function(){} /42
45420 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
45430 20 20 20 20 20 20 20 20 76 61 72 20 63 68 65 63 var chec
45440 6b 5f 31 20 3d 20 74 68 69 73 2e 76 61 6c 75 65 k_1 = this.value
45450 73 5b 74 68 69 73 2e 63 75 72 6c 79 20 2d 20 34 s[this.curly - 4
45460 5d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 ];. .
45470 20 20 20 20 20 20 20 20 20 20 72 65 67 65 78 20 regex
45480 3d 20 63 68 65 63 6b 5f 31 20 3f 20 21 74 68 69 = check_1 ? !thi
45490 73 2e 62 65 66 6f 72 65 46 75 6e 63 74 69 6f 6e s.beforeFunction
454a0 45 78 70 72 65 73 73 69 6f 6e 28 63 68 65 63 6b Expression(check
454b0 5f 31 29 20 3a 20 66 61 6c 73 65 3b 0a 20 20 09 _1) : false;. .
454c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
454d0 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
454e0 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 74 68 else if (th
454f0 69 73 2e 76 61 6c 75 65 73 5b 74 68 69 73 2e 63 is.values[this.c
45500 75 72 6c 79 20 2d 20 34 5d 20 3d 3d 3d 20 27 66 urly - 4] === 'f
45510 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 09 20 unction') {. .
45520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
45530 20 20 20 2f 2f 20 4e 61 6d 65 64 20 66 75 6e 63 // Named func
45540 74 69 6f 6e 2c 20 65 2e 67 2e 20 66 75 6e 63 74 tion, e.g. funct
45550 69 6f 6e 20 66 28 29 7b 7d 20 2f 34 32 2f 0a 20 ion f(){} /42/.
45560 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45570 20 20 20 20 20 20 76 61 72 20 63 68 65 63 6b 5f var check_
45580 32 20 3d 20 74 68 69 73 2e 76 61 6c 75 65 73 5b 2 = this.values[
45590 74 68 69 73 2e 63 75 72 6c 79 20 2d 20 35 5d 3b this.curly - 5];
455a0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
455b0 20 20 20 20 20 20 20 20 72 65 67 65 78 20 3d 20 regex =
455c0 63 68 65 63 6b 5f 32 20 3f 20 21 74 68 69 73 2e check_2 ? !this.
455d0 62 65 66 6f 72 65 46 75 6e 63 74 69 6f 6e 45 78 beforeFunctionEx
455e0 70 72 65 73 73 69 6f 6e 28 63 68 65 63 6b 5f 32 pression(check_2
455f0 29 20 3a 20 74 72 75 65 3b 0a 20 20 09 20 20 20 ) : true;. .
45600 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 }.
45610 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 . }. .
45620 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 return re
45630 67 65 78 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 gex;. . };.
45640 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 52 65 . . . Re
45650 61 64 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 70 ader.prototype.p
45660 75 73 68 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 ush = function (
45670 74 6f 6b 65 6e 29 20 7b 0a 20 20 09 20 20 20 20 token) {. .
45680 20 20 20 20 69 66 20 28 74 6f 6b 65 6e 2e 74 79 if (token.ty
45690 70 65 20 3d 3d 3d 20 74 6f 6b 65 6e 5f 31 2e 54 pe === token_1.T
456a0 6f 6b 65 6e 2e 50 75 6e 63 74 75 61 74 6f 72 20 oken.Punctuator
456b0 7c 7c 20 74 6f 6b 65 6e 2e 74 79 70 65 20 3d 3d || token.type ==
456c0 3d 20 74 6f 6b 65 6e 5f 31 2e 54 6f 6b 65 6e 2e = token_1.Token.
456d0 4b 65 79 77 6f 72 64 29 20 7b 0a 20 20 09 20 20 Keyword) {. .
456e0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 6f if (to
456f0 6b 65 6e 2e 76 61 6c 75 65 20 3d 3d 3d 20 27 7b ken.value === '{
45700 27 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 ') {. .
45710 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 this.cur
45720 6c 79 20 3d 20 74 68 69 73 2e 76 61 6c 75 65 73 ly = this.values
45730 2e 6c 65 6e 67 74 68 3b 0a 20 20 09 20 20 20 20 .length;. .
45740 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
45750 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 else if
45760 20 28 74 6f 6b 65 6e 2e 76 61 6c 75 65 20 3d 3d (token.value ==
45770 3d 20 27 28 27 29 20 7b 0a 20 20 09 20 20 20 20 = '(') {. .
45780 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
45790 2e 70 61 72 65 6e 20 3d 20 74 68 69 73 2e 76 61 .paren = this.va
457a0 6c 75 65 73 2e 6c 65 6e 67 74 68 3b 0a 20 20 09 lues.length;. .
457b0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
457c0 09 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
457d0 73 2e 76 61 6c 75 65 73 2e 70 75 73 68 28 74 6f s.values.push(to
457e0 6b 65 6e 2e 76 61 6c 75 65 29 3b 0a 20 20 09 20 ken.value);. .
457f0 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 }. .
45800 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 09 20 20 else {. .
45810 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 76 this.v
45820 61 6c 75 65 73 2e 70 75 73 68 28 6e 75 6c 6c 29 alues.push(null)
45830 3b 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 ;. . }.
45840 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 . };. .
45850 0a 20 20 09 20 20 20 20 72 65 74 75 72 6e 20 52 . . return R
45860 65 61 64 65 72 3b 0a 20 20 09 7d 28 29 29 3b 0a eader;. .}());.
45870 20 20 09 76 61 72 20 54 6f 6b 65 6e 69 7a 65 72 .var Tokenizer
45880 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
45890 7b 0a 20 20 09 20 20 20 20 66 75 6e 63 74 69 6f {. . functio
458a0 6e 20 54 6f 6b 65 6e 69 7a 65 72 28 63 6f 64 65 n Tokenizer(code
458b0 2c 20 63 6f 6e 66 69 67 29 20 7b 0a 20 20 09 20 , config) {. .
458c0 20 20 20 20 20 20 20 74 68 69 73 2e 65 72 72 6f this.erro
458d0 72 48 61 6e 64 6c 65 72 20 3d 20 6e 65 77 20 65 rHandler = new e
458e0 72 72 6f 72 5f 68 61 6e 64 6c 65 72 5f 31 2e 45 rror_handler_1.E
458f0 72 72 6f 72 48 61 6e 64 6c 65 72 28 29 3b 0a 20 rrorHandler();.
45900 20 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 65 . this.e
45910 72 72 6f 72 48 61 6e 64 6c 65 72 2e 74 6f 6c 65 rrorHandler.tole
45920 72 61 6e 74 20 3d 20 63 6f 6e 66 69 67 20 3f 20 rant = config ?
45930 28 74 79 70 65 6f 66 20 63 6f 6e 66 69 67 2e 74 (typeof config.t
45940 6f 6c 65 72 61 6e 74 20 3d 3d 3d 20 27 62 6f 6f olerant === 'boo
45950 6c 65 61 6e 27 20 26 26 20 63 6f 6e 66 69 67 2e lean' && config.
45960 74 6f 6c 65 72 61 6e 74 29 20 3a 20 66 61 6c 73 tolerant) : fals
45970 65 3b 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 e;. . th
45980 69 73 2e 73 63 61 6e 6e 65 72 20 3d 20 6e 65 77 is.scanner = new
45990 20 73 63 61 6e 6e 65 72 5f 31 2e 53 63 61 6e 6e scanner_1.Scann
459a0 65 72 28 63 6f 64 65 2c 20 74 68 69 73 2e 65 72 er(code, this.er
459b0 72 6f 72 48 61 6e 64 6c 65 72 29 3b 0a 20 20 09 rorHandler);. .
459c0 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 63 61 this.sca
459d0 6e 6e 65 72 2e 74 72 61 63 6b 43 6f 6d 6d 65 6e nner.trackCommen
459e0 74 20 3d 20 63 6f 6e 66 69 67 20 3f 20 28 74 79 t = config ? (ty
459f0 70 65 6f 66 20 63 6f 6e 66 69 67 2e 63 6f 6d 6d peof config.comm
45a00 65 6e 74 20 3d 3d 3d 20 27 62 6f 6f 6c 65 61 6e ent === 'boolean
45a10 27 20 26 26 20 63 6f 6e 66 69 67 2e 63 6f 6d 6d ' && config.comm
45a20 65 6e 74 29 20 3a 20 66 61 6c 73 65 3b 0a 20 20 ent) : false;.
45a30 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 72 . this.tr
45a40 61 63 6b 52 61 6e 67 65 20 3d 20 63 6f 6e 66 69 ackRange = confi
45a50 67 20 3f 20 28 74 79 70 65 6f 66 20 63 6f 6e 66 g ? (typeof conf
45a60 69 67 2e 72 61 6e 67 65 20 3d 3d 3d 20 27 62 6f ig.range === 'bo
45a70 6f 6c 65 61 6e 27 20 26 26 20 63 6f 6e 66 69 67 olean' && config
45a80 2e 72 61 6e 67 65 29 20 3a 20 66 61 6c 73 65 3b .range) : false;
45a90 0a 20 20 09 20 20 20 20 20 20 20 20 74 68 69 73 . . this
45aa0 2e 74 72 61 63 6b 4c 6f 63 20 3d 20 63 6f 6e 66 .trackLoc = conf
45ab0 69 67 20 3f 20 28 74 79 70 65 6f 66 20 63 6f 6e ig ? (typeof con
45ac0 66 69 67 2e 6c 6f 63 20 3d 3d 3d 20 27 62 6f 6f fig.loc === 'boo
45ad0 6c 65 61 6e 27 20 26 26 20 63 6f 6e 66 69 67 2e lean' && config.
45ae0 6c 6f 63 29 20 3a 20 66 61 6c 73 65 3b 0a 20 20 loc) : false;.
45af0 09 20 20 20 20 20 20 20 20 74 68 69 73 2e 62 75 . this.bu
45b00 66 66 65 72 20 3d 20 5b 5d 3b 0a 20 20 09 20 20 ffer = [];. .
45b10 20 20 20 20 20 20 74 68 69 73 2e 72 65 61 64 65 this.reade
45b20 72 20 3d 20 6e 65 77 20 52 65 61 64 65 72 28 29 r = new Reader()
45b30 3b 0a 20 20 09 20 20 20 20 7d 0a 20 20 09 20 20 ;. . }. .
45b40 20 20 0a 20 20 09 20 20 20 20 54 6f 6b 65 6e 69 . . Tokeni
45b50 7a 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 65 72 zer.prototype.er
45b60 72 6f 72 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 rors = function
45b70 28 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 () {. .
45b80 72 65 74 75 72 6e 20 74 68 69 73 2e 65 72 72 6f return this.erro
45b90 72 48 61 6e 64 6c 65 72 2e 65 72 72 6f 72 73 3b rHandler.errors;
45ba0 0a 20 20 09 20 20 20 20 7d 3b 0a 20 20 09 20 20 . . };. .
45bb0 20 20 0a 20 20 09 20 20 20 20 54 6f 6b 65 6e 69 . . Tokeni
45bc0 7a 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 zer.prototype.ge
45bd0 74 4e 65 78 74 54 6f 6b 65 6e 20 3d 20 66 75 6e tNextToken = fun
45be0 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 09 20 20 ction () {. .
45bf0 20 20 20 20 20 20 76 61 72 20 74 68 69 73 24 31 var this$1
45c00 20 3d 20 74 68 69 73 3b 0a 0a 20 20 09 20 20 20 = this;.. .
45c10 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 62 75 if (this.bu
45c20 66 66 65 72 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 ffer.length ===
45c30 30 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 0) {. .
45c40 20 20 20 20 76 61 72 20 63 6f 6d 6d 65 6e 74 73 var comments
45c50 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e = this.scanner.
45c60 73 63 61 6e 43 6f 6d 6d 65 6e 74 73 28 29 3b 0a scanComments();.
45c70 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
45c80 66 20 28 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e f (this.scanner.
45c90 74 72 61 63 6b 43 6f 6d 6d 65 6e 74 29 20 7b 0a trackComment) {.
45ca0 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45cb0 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 for (var i =
45cc0 30 3b 20 69 20 3c 20 63 6f 6d 6d 65 6e 74 73 2e 0; i < comments.
45cd0 6c 65 6e 67 74 68 3b 20 2b 2b 69 29 20 7b 0a 20 length; ++i) {.
45ce0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45cf0 20 20 20 20 20 20 76 61 72 20 65 20 3d 20 63 6f var e = co
45d00 6d 6d 65 6e 74 73 5b 69 5d 3b 0a 20 20 09 20 20 mments[i];. .
45d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
45d20 20 20 76 61 72 20 63 6f 6d 6d 65 6e 74 20 3d 20 var comment =
45d30 76 6f 69 64 20 30 3b 0a 20 20 09 20 20 20 20 20 void 0;. .
45d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
45d50 61 72 20 76 61 6c 75 65 20 3d 20 74 68 69 73 24 ar value = this$
45d60 31 2e 73 63 61 6e 6e 65 72 2e 73 6f 75 72 63 65 1.scanner.source
45d70 2e 73 6c 69 63 65 28 65 2e 73 6c 69 63 65 5b 30 .slice(e.slice[0
45d80 5d 2c 20 65 2e 73 6c 69 63 65 5b 31 5d 29 3b 0a ], e.slice[1]);.
45d90 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45da0 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e 74 20 3d comment =
45db0 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 {. .
45dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 ty
45dd0 70 65 3a 20 65 2e 6d 75 6c 74 69 4c 69 6e 65 20 pe: e.multiLine
45de0 3f 20 27 42 6c 6f 63 6b 43 6f 6d 6d 65 6e 74 27 ? 'BlockComment'
45df0 20 3a 20 27 4c 69 6e 65 43 6f 6d 6d 65 6e 74 27 : 'LineComment'
45e00 2c 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ,. .
45e10 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c val
45e20 75 65 3a 20 76 61 6c 75 65 0a 20 20 09 20 20 20 ue: value. .
45e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
45e40 20 7d 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 };. .
45e50 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
45e60 68 69 73 24 31 2e 74 72 61 63 6b 52 61 6e 67 65 his$1.trackRange
45e70 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
45e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
45e90 6f 6d 6d 65 6e 74 2e 72 61 6e 67 65 20 3d 20 65 omment.range = e
45ea0 2e 72 61 6e 67 65 3b 0a 20 20 09 20 20 20 20 20 .range;. .
45eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
45ec0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
45ed0 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
45ee0 24 31 2e 74 72 61 63 6b 4c 6f 63 29 20 7b 0a 20 $1.trackLoc) {.
45ef0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45f00 20 20 20 20 20 20 20 20 20 20 63 6f 6d 6d 65 6e commen
45f10 74 2e 6c 6f 63 20 3d 20 65 2e 6c 6f 63 3b 0a 20 t.loc = e.loc;.
45f20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
45f30 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 }. .
45f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
45f50 68 69 73 24 31 2e 62 75 66 66 65 72 2e 70 75 73 his$1.buffer.pus
45f60 68 28 63 6f 6d 6d 65 6e 74 29 3b 0a 20 20 09 20 h(comment);. .
45f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
45f80 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
45f90 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 }. .
45fa0 20 69 66 20 28 21 74 68 69 73 2e 73 63 61 6e 6e if (!this.scann
45fb0 65 72 2e 65 6f 66 28 29 29 20 7b 0a 20 20 09 20 er.eof()) {. .
45fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
45fd0 61 72 20 6c 6f 63 20 3d 20 76 6f 69 64 20 30 3b ar loc = void 0;
45fe0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
45ff0 20 20 20 20 69 66 20 28 74 68 69 73 2e 74 72 61 if (this.tra
46000 63 6b 4c 6f 63 29 20 7b 0a 20 20 09 20 20 20 20 ckLoc) {. .
46010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46020 6c 6f 63 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 loc = {. .
46030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46040 20 20 20 73 74 61 72 74 3a 20 7b 0a 20 20 09 20 start: {. .
46050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46060 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 3a line:
46070 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 6c 69 this.scanner.li
46080 6e 65 4e 75 6d 62 65 72 2c 0a 20 20 09 20 20 20 neNumber,. .
46090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
460a0 20 20 20 20 20 20 20 20 20 63 6f 6c 75 6d 6e 3a column:
460b0 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e this.scanner.in
460c0 64 65 78 20 2d 20 74 68 69 73 2e 73 63 61 6e 6e dex - this.scann
460d0 65 72 2e 6c 69 6e 65 53 74 61 72 74 0a 20 20 09 er.lineStart. .
460e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
460f0 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 09 20 20 },. .
46100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46110 20 20 20 20 20 20 65 6e 64 3a 20 7b 7d 0a 20 20 end: {}.
46120 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
46130 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 20 20 };. .
46140 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 }. .
46150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46160 76 61 72 20 74 6f 6b 65 6e 20 3d 20 76 6f 69 64 var token = void
46170 20 30 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 0;. .
46180 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
46190 73 63 61 6e 6e 65 72 2e 73 6f 75 72 63 65 5b 74 scanner.source[t
461a0 68 69 73 2e 73 63 61 6e 6e 65 72 2e 69 6e 64 65 his.scanner.inde
461b0 78 5d 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 20 20 x] === '/') {.
461c0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
461d0 20 20 20 20 20 74 6f 6b 65 6e 20 3d 20 74 68 69 token = thi
461e0 73 2e 72 65 61 64 65 72 2e 69 73 52 65 67 65 78 s.reader.isRegex
461f0 53 74 61 72 74 28 29 20 3f 20 74 68 69 73 2e 73 Start() ? this.s
46200 63 61 6e 6e 65 72 2e 73 63 61 6e 52 65 67 45 78 canner.scanRegEx
46210 70 28 29 20 3a 20 74 68 69 73 2e 73 63 61 6e 6e p() : this.scann
46220 65 72 2e 73 63 61 6e 50 75 6e 63 74 75 61 74 6f er.scanPunctuato
46230 72 28 29 3b 0a 20 20 09 20 20 20 20 20 20 20 20 r();. .
46240 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 20 20 }. .
46250 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 els
46260 65 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 e {. .
46270 20 20 20 20 20 20 20 20 20 20 20 74 6f 6b 65 6e token
46280 20 3d 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 2e = this.scanner.
46290 6c 65 78 28 29 3b 0a 20 20 09 20 20 20 20 20 20 lex();. .
462a0 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
462b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
462c0 68 69 73 2e 72 65 61 64 65 72 2e 70 75 73 68 28 his.reader.push(
462d0 74 6f 6b 65 6e 29 3b 0a 20 20 09 20 20 20 20 20 token);. .
462e0 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 65 var e
462f0 6e 74 72 79 20 3d 20 76 6f 69 64 20 30 3b 0a 20 ntry = void 0;.
46300 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
46310 20 20 65 6e 74 72 79 20 3d 20 7b 0a 20 20 09 20 entry = {. .
46320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46330 20 20 20 74 79 70 65 3a 20 74 6f 6b 65 6e 5f 31 type: token_1
46340 2e 54 6f 6b 65 6e 4e 61 6d 65 5b 74 6f 6b 65 6e .TokenName[token
46350 2e 74 79 70 65 5d 2c 0a 20 20 09 20 20 20 20 20 .type],. .
46360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
46370 61 6c 75 65 3a 20 74 68 69 73 2e 73 63 61 6e 6e alue: this.scann
46380 65 72 2e 73 6f 75 72 63 65 2e 73 6c 69 63 65 28 er.source.slice(
46390 74 6f 6b 65 6e 2e 73 74 61 72 74 2c 20 74 6f 6b token.start, tok
463a0 65 6e 2e 65 6e 64 29 0a 20 20 09 20 20 20 20 20 en.end). .
463b0 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0a 20 20 };.
463c0 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
463d0 20 69 66 20 28 74 68 69 73 2e 74 72 61 63 6b 52 if (this.trackR
463e0 61 6e 67 65 29 20 7b 0a 20 20 09 20 20 20 20 20 ange) {. .
463f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
46400 6e 74 72 79 2e 72 61 6e 67 65 20 3d 20 5b 74 6f ntry.range = [to
46410 6b 65 6e 2e 73 74 61 72 74 2c 20 74 6f 6b 65 6e ken.start, token
46420 2e 65 6e 64 5d 3b 0a 20 20 09 20 20 20 20 20 20 .end];. .
46430 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 09 20 }. .
46440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
46450 66 20 28 74 68 69 73 2e 74 72 61 63 6b 4c 6f 63 f (this.trackLoc
46460 29 20 7b 0a 20 20 09 20 20 20 20 20 20 20 20 20 ) {. .
46470 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 2e 65 loc.e
46480 6e 64 20 3d 20 7b 0a 20 20 09 20 20 20 20 20 20 nd = {. .
46490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
464a0 20 20 6c 69 6e 65 3a 20 74 68 69 73 2e 73 63 61 line: this.sca
464b0 6e 6e 65 72 2e 6c 69 6e 65 4e 75 6d 62 65 72 2c nner.lineNumber,
464c0 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 . .
464d0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 75 colu
464e0 6d 6e 3a 20 74 68 69 73 2e 73 63 61 6e 6e 65 72 mn: this.scanner
464f0 2e 69 6e 64 65 78 20 2d 20 74 68 69 73 2e 73 63 .index - this.sc
46500 61 6e 6e 65 72 2e 6c 69 6e 65 53 74 61 72 74 0a anner.lineStart.
46510 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 .
46520 20 20 20 20 20 20 20 7d 3b 0a 20 20 09 20 20 20 };. .
46530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
46540 20 65 6e 74 72 79 2e 6c 6f 63 20 3d 20 6c 6f 63 entry.loc = loc
46550 3b 0a 20 20 09 20 20 20 20 20 20 20 20 20 20 20 ;. .
46560 20 20 20 20 20 7d 0a 20 20 09 20 20 20 20 20 20 }. .
46570 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 6f if (to
46580 6b 65 6e 2e 72 65 67 65 78 29 20 7b 0a 20 20 09 ken.regex) {. .
46590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
465a0 20 20 20 20 65 6e 74 72 79 2e 72 65 67 65 78 20 entry.regex
465b0 3d 20 74 6f 6b 65 6e 2e 72 65 67 65 78 3b 0a 20 = token.regex;.
465c0 20 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
465d0 20 20 7d 0a 20 20 09 20 20 20 20 20 20 20 20 20 }. .
465e0 20 20 20 20 20 20 20 74 68 69 73 2e 62 75 66 66 this.buff
465f0 65 72 2e 70 75 73 68 28 65 6e 74 72 79 29 3b 0a er.push(entry);.
46600 20 20 09 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
46610 0a 20 20 09 20 20 20 20 20 20 20 20 7d 0a 20 20 . . }.
46620 09 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
46630 74 68 69 73 2e 62 75 66 66 65 72 2e 73 68 69 66 this.buffer.shif
46640 74 28 29 3b 0a 20 20 09 20 20 20 20 7d 3b 0a 20 t();. . };.
46650 20 09 20 20 20 20 0a 20 20 09 20 20 20 20 72 65 . . . re
46660 74 75 72 6e 20 54 6f 6b 65 6e 69 7a 65 72 3b 0a turn Tokenizer;.
46670 20 20 09 7d 28 29 29 3b 0a 20 20 09 65 78 70 6f .}());. .expo
46680 72 74 73 2e 54 6f 6b 65 6e 69 7a 65 72 20 3d 20 rts.Tokenizer =
46690 54 6f 6b 65 6e 69 7a 65 72 3b 0a 0a 0a 20 20 2f Tokenizer;... /
466a0 2a 2a 2a 2f 20 7d 0a 20 20 2f 2a 2a 2a 2a 2a 2a ***/ }. /******
466b0 2f 20 5d 29 0a 20 20 7d 29 3b 0a 0a 20 20 7d 29 / ]). });.. })
466c0 3b 0a 0a 20 20 76 61 72 20 69 6e 64 65 78 20 3d ;.. var index =
466d0 20 68 6f 69 73 74 3b 0a 0a 20 20 66 75 6e 63 74 hoist;.. funct
466e0 69 6f 6e 20 68 6f 69 73 74 28 61 73 74 29 7b 0a ion hoist(ast){.
466f0 0a 20 20 20 20 76 61 72 20 70 61 72 65 6e 74 53 . var parentS
46700 74 61 63 6b 20 3d 20 5b 5d 3b 0a 20 20 20 20 76 tack = [];. v
46710 61 72 20 76 61 72 69 61 62 6c 65 73 20 3d 20 5b ar variables = [
46720 5d 3b 0a 20 20 20 20 76 61 72 20 66 75 6e 63 74 ];. var funct
46730 69 6f 6e 73 20 3d 20 5b 5d 3b 0a 0a 20 20 20 20 ions = [];..
46740 69 66 20 28 41 72 72 61 79 2e 69 73 41 72 72 61 if (Array.isArra
46750 79 28 61 73 74 29 29 7b 0a 0a 20 20 20 20 20 20 y(ast)){..
46760 77 61 6c 6b 41 6c 6c 28 61 73 74 29 3b 0a 20 20 walkAll(ast);.
46770 20 20 20 20 70 72 65 70 65 6e 64 53 63 6f 70 65 prependScope
46780 28 61 73 74 2c 20 76 61 72 69 61 62 6c 65 73 2c (ast, variables,
46790 20 66 75 6e 63 74 69 6f 6e 73 29 3b 0a 20 20 20 functions);.
467a0 20 20 20 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b . } else {
467b0 0a 20 20 20 20 20 20 77 61 6c 6b 28 61 73 74 29 . walk(ast)
467c0 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 ;. }.. ret
467d0 75 72 6e 20 61 73 74 0a 0a 20 20 20 20 2f 2f 20 urn ast.. //
467e0 77 61 6c 6b 20 74 68 72 6f 75 67 68 20 65 61 63 walk through eac
467f0 68 20 6e 6f 64 65 20 6f 66 20 61 20 70 72 6f 67 h node of a prog
46800 72 61 6d 20 6f 66 20 62 6c 6f 63 6b 20 73 74 61 ram of block sta
46810 74 65 6d 65 6e 74 0a 20 20 20 20 66 75 6e 63 74 tement. funct
46820 69 6f 6e 20 77 61 6c 6b 41 6c 6c 28 6e 6f 64 65 ion walkAll(node
46830 73 29 7b 0a 20 20 20 20 20 20 76 61 72 20 72 65 s){. var re
46840 73 75 6c 74 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 sult = null;.
46850 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d 30 3b for (var i=0;
46860 69 3c 6e 6f 64 65 73 2e 6c 65 6e 67 74 68 3b 69 i<nodes.length;i
46870 2b 2b 29 7b 0a 20 20 20 20 20 20 20 20 76 61 72 ++){. var
46880 20 63 68 69 6c 64 4e 6f 64 65 20 3d 20 6e 6f 64 childNode = nod
46890 65 73 5b 69 5d 3b 0a 20 20 20 20 20 20 20 20 69 es[i];. i
468a0 66 20 28 63 68 69 6c 64 4e 6f 64 65 2e 74 79 70 f (childNode.typ
468b0 65 20 3d 3d 3d 20 27 45 6d 70 74 79 53 74 61 74 e === 'EmptyStat
468c0 65 6d 65 6e 74 27 29 20 7b 20 63 6f 6e 74 69 6e ement') { contin
468d0 75 65 20 7d 0a 20 20 20 20 20 20 20 20 76 61 72 ue }. var
468e0 20 72 65 73 75 6c 74 20 3d 20 77 61 6c 6b 28 63 result = walk(c
468f0 68 69 6c 64 4e 6f 64 65 29 3b 0a 20 20 20 20 20 hildNode);.
46900 20 20 20 69 66 20 28 72 65 73 75 6c 74 20 3d 3d if (result ==
46910 3d 20 27 72 65 6d 6f 76 65 27 29 7b 0a 20 20 20 = 'remove'){.
46920 20 20 20 20 20 20 20 6e 6f 64 65 73 2e 73 70 6c nodes.spl
46930 69 63 65 28 69 2d 2d 2c 20 31 29 3b 0a 20 20 20 ice(i--, 1);.
46940 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 }. }.
46950 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 }.. functi
46960 6f 6e 20 77 61 6c 6b 28 6e 6f 64 65 29 7b 0a 20 on walk(node){.
46970 20 20 20 20 20 76 61 72 20 70 61 72 65 6e 74 20 var parent
46980 3d 20 70 61 72 65 6e 74 53 74 61 63 6b 5b 70 61 = parentStack[pa
46990 72 65 6e 74 53 74 61 63 6b 2e 6c 65 6e 67 74 68 rentStack.length
469a0 2d 31 5d 3b 0a 20 20 20 20 20 20 76 61 72 20 72 -1];. var r
469b0 65 6d 6f 76 65 20 3d 20 66 61 6c 73 65 3b 0a 20 emove = false;.
469c0 20 20 20 20 20 70 61 72 65 6e 74 53 74 61 63 6b parentStack
469d0 2e 70 75 73 68 28 6e 6f 64 65 29 3b 0a 0a 20 20 .push(node);..
469e0 20 20 20 20 76 61 72 20 65 78 63 6c 75 64 65 42 var excludeB
469f0 6f 64 79 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 ody = false;.
46a00 20 20 20 69 66 20 28 73 68 6f 75 6c 64 53 63 6f if (shouldSco
46a10 70 65 28 6e 6f 64 65 2c 20 70 61 72 65 6e 74 29 pe(node, parent)
46a20 29 7b 0a 20 20 20 20 20 20 20 20 68 6f 69 73 74 ){. hoist
46a30 28 6e 6f 64 65 2e 62 6f 64 79 29 3b 0a 20 20 20 (node.body);.
46a40 20 20 20 20 20 65 78 63 6c 75 64 65 42 6f 64 79 excludeBody
46a50 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 7d = true;. }
46a60 0a 0a 20 20 20 20 20 20 69 66 20 28 6e 6f 64 65 .. if (node
46a70 2e 74 79 70 65 20 3d 3d 3d 20 27 56 61 72 69 61 .type === 'Varia
46a80 62 6c 65 44 65 63 6c 61 72 61 74 6f 72 27 29 7b bleDeclarator'){
46a90 0a 20 20 20 20 20 20 20 20 76 61 72 69 61 62 6c . variabl
46aa0 65 73 2e 70 75 73 68 28 6e 6f 64 65 29 3b 0a 20 es.push(node);.
46ab0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 }.. if
46ac0 20 28 6e 6f 64 65 2e 74 79 70 65 20 3d 3d 3d 20 (node.type ===
46ad0 27 46 75 6e 63 74 69 6f 6e 44 65 63 6c 61 72 61 'FunctionDeclara
46ae0 74 69 6f 6e 27 29 7b 0a 20 20 20 20 20 20 20 20 tion'){.
46af0 66 75 6e 63 74 69 6f 6e 73 2e 70 75 73 68 28 6e functions.push(n
46b00 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 ode);. re
46b10 6d 6f 76 65 20 3d 20 74 72 75 65 3b 0a 20 20 20 move = true;.
46b20 20 20 20 7d 0a 0a 20 20 20 20 20 20 66 6f 72 20 }.. for
46b30 28 76 61 72 20 6b 65 79 20 69 6e 20 6e 6f 64 65 (var key in node
46b40 29 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 6b ){. if (k
46b50 65 79 20 3d 3d 3d 20 27 74 79 70 65 27 20 7c 7c ey === 'type' ||
46b60 20 28 65 78 63 6c 75 64 65 42 6f 64 79 20 26 26 (excludeBody &&
46b70 20 6b 65 79 20 3d 3d 3d 20 27 62 6f 64 79 27 29 key === 'body')
46b80 29 20 7b 20 63 6f 6e 74 69 6e 75 65 20 7d 0a 20 ) { continue }.
46b90 20 20 20 20 20 20 20 69 66 20 28 6b 65 79 20 69 if (key i
46ba0 6e 20 6e 6f 64 65 20 26 26 20 6e 6f 64 65 5b 6b n node && node[k
46bb0 65 79 5d 20 26 26 20 74 79 70 65 6f 66 20 6e 6f ey] && typeof no
46bc0 64 65 5b 6b 65 79 5d 20 3d 3d 20 27 6f 62 6a 65 de[key] == 'obje
46bd0 63 74 27 29 7b 0a 20 20 20 20 20 20 20 20 20 20 ct'){.
46be0 69 66 20 28 6e 6f 64 65 5b 6b 65 79 5d 2e 74 79 if (node[key].ty
46bf0 70 65 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 pe){.
46c00 20 77 61 6c 6b 28 6e 6f 64 65 5b 6b 65 79 5d 29 walk(node[key])
46c10 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c ;. } el
46c20 73 65 20 69 66 20 28 41 72 72 61 79 2e 69 73 41 se if (Array.isA
46c30 72 72 61 79 28 6e 6f 64 65 5b 6b 65 79 5d 29 29 rray(node[key]))
46c40 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 61 {. wa
46c50 6c 6b 41 6c 6c 28 6e 6f 64 65 5b 6b 65 79 5d 29 lkAll(node[key])
46c60 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ;. }.
46c70 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a }. }.
46c80 0a 20 20 20 20 20 20 70 61 72 65 6e 74 53 74 61 . parentSta
46c90 63 6b 2e 70 6f 70 28 29 3b 0a 20 20 20 20 20 20 ck.pop();.
46ca0 69 66 20 28 72 65 6d 6f 76 65 29 7b 0a 20 20 20 if (remove){.
46cb0 20 20 20 20 20 72 65 74 75 72 6e 20 27 72 65 6d return 'rem
46cc0 6f 76 65 27 0a 20 20 20 20 20 20 7d 0a 20 20 20 ove'. }.
46cd0 20 7d 0a 20 20 7d 0a 0a 20 20 66 75 6e 63 74 69 }. }.. functi
46ce0 6f 6e 20 73 68 6f 75 6c 64 53 63 6f 70 65 28 6e on shouldScope(n
46cf0 6f 64 65 2c 20 70 61 72 65 6e 74 29 7b 0a 20 20 ode, parent){.
46d00 20 20 69 66 20 28 6e 6f 64 65 2e 74 79 70 65 20 if (node.type
46d10 3d 3d 3d 20 27 50 72 6f 67 72 61 6d 27 29 7b 0a === 'Program'){.
46d20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 return tru
46d30 65 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 e. } else if
46d40 28 6e 6f 64 65 2e 74 79 70 65 20 3d 3d 3d 20 27 (node.type === '
46d50 42 6c 6f 63 6b 53 74 61 74 65 6d 65 6e 74 27 29 BlockStatement')
46d60 7b 0a 20 20 20 20 20 20 69 66 20 28 70 61 72 65 {. if (pare
46d70 6e 74 20 26 26 20 28 70 61 72 65 6e 74 2e 74 79 nt && (parent.ty
46d80 70 65 20 3d 3d 3d 20 27 46 75 6e 63 74 69 6f 6e pe === 'Function
46d90 45 78 70 72 65 73 73 69 6f 6e 27 20 7c 7c 20 70 Expression' || p
46da0 61 72 65 6e 74 2e 74 79 70 65 20 3d 3d 3d 20 27 arent.type === '
46db0 46 75 6e 63 74 69 6f 6e 44 65 63 6c 61 72 61 74 FunctionDeclarat
46dc0 69 6f 6e 27 29 29 7b 0a 20 20 20 20 20 20 20 20 ion')){.
46dd0 72 65 74 75 72 6e 20 74 72 75 65 0a 20 20 20 20 return true.
46de0 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 }. }. }..
46df0 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e function prepen
46e00 64 53 63 6f 70 65 28 6e 6f 64 65 73 2c 20 76 61 dScope(nodes, va
46e10 72 69 61 62 6c 65 73 2c 20 66 75 6e 63 74 69 6f riables, functio
46e20 6e 73 29 7b 0a 20 20 20 20 69 66 20 28 76 61 72 ns){. if (var
46e30 69 61 62 6c 65 73 20 26 26 20 76 61 72 69 61 62 iables && variab
46e40 6c 65 73 2e 6c 65 6e 67 74 68 29 7b 0a 20 20 20 les.length){.
46e50 20 20 20 76 61 72 20 64 65 63 6c 61 72 61 74 69 var declarati
46e60 6f 6e 73 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 ons = [];.
46e70 66 6f 72 20 28 76 61 72 20 69 3d 30 3b 69 3c 76 for (var i=0;i<v
46e80 61 72 69 61 62 6c 65 73 2e 6c 65 6e 67 74 68 3b ariables.length;
46e90 69 2b 2b 29 7b 0a 20 20 20 20 20 20 20 20 64 65 i++){. de
46ea0 63 6c 61 72 61 74 69 6f 6e 73 2e 70 75 73 68 28 clarations.push(
46eb0 7b 0a 20 20 20 20 20 20 20 20 20 20 74 79 70 65 {. type
46ec0 3a 20 27 56 61 72 69 61 62 6c 65 44 65 63 6c 61 : 'VariableDecla
46ed0 72 61 74 6f 72 27 2c 20 0a 20 20 20 20 20 20 20 rator', .
46ee0 20 20 20 69 64 3a 20 76 61 72 69 61 62 6c 65 73 id: variables
46ef0 5b 69 5d 2e 69 64 2c 0a 20 20 20 20 20 20 20 20 [i].id,.
46f00 20 20 69 6e 69 74 3a 20 6e 75 6c 6c 0a 20 20 20 init: null.
46f10 20 20 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 7d });. }
46f20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 6e 6f . . no
46f30 64 65 73 2e 75 6e 73 68 69 66 74 28 7b 0a 20 20 des.unshift({.
46f40 20 20 20 20 20 20 74 79 70 65 3a 20 27 56 61 72 type: 'Var
46f50 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f 6e iableDeclaration
46f60 27 2c 20 0a 20 20 20 20 20 20 20 20 6b 69 6e 64 ', . kind
46f70 3a 20 27 76 61 72 27 2c 20 0a 20 20 20 20 20 20 : 'var', .
46f80 20 20 64 65 63 6c 61 72 61 74 69 6f 6e 73 3a 20 declarations:
46f90 64 65 63 6c 61 72 61 74 69 6f 6e 73 0a 20 20 20 declarations.
46fa0 20 20 20 7d 29 3b 0a 0a 20 20 20 20 7d 0a 0a 20 });.. }..
46fb0 20 20 20 69 66 20 28 66 75 6e 63 74 69 6f 6e 73 if (functions
46fc0 20 26 26 20 66 75 6e 63 74 69 6f 6e 73 2e 6c 65 && functions.le
46fd0 6e 67 74 68 29 7b 0a 20 20 20 20 20 20 66 6f 72 ngth){. for
46fe0 20 28 76 61 72 20 69 3d 30 3b 69 3c 66 75 6e 63 (var i=0;i<func
46ff0 74 69 6f 6e 73 2e 6c 65 6e 67 74 68 3b 69 2b 2b tions.length;i++
47000 29 7b 0a 20 20 20 20 20 20 20 20 6e 6f 64 65 73 ){. nodes
47010 2e 75 6e 73 68 69 66 74 28 66 75 6e 63 74 69 6f .unshift(functio
47020 6e 73 5b 69 5d 29 3b 20 0a 20 20 20 20 20 20 7d ns[i]); . }
47030 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 76 61 . }. }.. va
47040 72 20 6d 61 78 49 74 65 72 61 74 69 6f 6e 73 20 r maxIterations
47050 3d 20 31 30 30 30 30 30 30 3b 0a 20 20 76 61 72 = 1000000;. var
47060 20 70 61 72 73 65 20 3d 20 65 73 70 72 69 6d 61 parse = esprima
47070 2e 70 61 72 73 65 3b 0a 0a 20 20 2f 2f 20 27 65 .parse;.. // 'e
47080 76 61 6c 27 20 77 69 74 68 20 61 20 63 6f 6e 74 val' with a cont
47090 72 6f 6c 6c 65 64 20 65 6e 76 69 72 6f 6e 6d 65 rolled environme
470a0 6e 74 0a 20 20 66 75 6e 63 74 69 6f 6e 20 73 61 nt. function sa
470b0 66 65 45 76 61 6c 28 73 72 63 2c 20 70 61 72 65 feEval(src, pare
470c0 6e 74 43 6f 6e 74 65 78 74 29 7b 0a 20 20 20 20 ntContext){.
470d0 76 61 72 20 74 72 65 65 20 3d 20 70 72 65 70 61 var tree = prepa
470e0 72 65 41 73 74 28 73 72 63 29 3b 0a 20 20 20 20 reAst(src);.
470f0 76 61 72 20 63 6f 6e 74 65 78 74 20 3d 20 4f 62 var context = Ob
47100 6a 65 63 74 2e 63 72 65 61 74 65 28 70 61 72 65 ject.create(pare
47110 6e 74 43 6f 6e 74 65 78 74 20 7c 7c 20 7b 7d 29 ntContext || {})
47120 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 6e ;. return fin
47130 61 6c 56 61 6c 75 65 28 65 76 61 6c 75 61 74 65 alValue(evaluate
47140 41 73 74 28 74 72 65 65 2c 20 63 6f 6e 74 65 78 Ast(tree, contex
47150 74 29 29 0a 20 20 7d 0a 0a 20 20 73 61 66 65 45 t)). }.. safeE
47160 76 61 6c 2e 66 75 6e 63 20 3d 20 46 75 6e 63 74 val.func = Funct
47170 69 6f 6e 46 61 63 74 6f 72 79 28 29 3b 0a 0a 20 ionFactory();..
47180 20 2f 2f 20 63 72 65 61 74 65 20 61 20 27 46 75 // create a 'Fu
47190 6e 63 74 69 6f 6e 27 20 63 6f 6e 73 74 72 75 63 nction' construc
471a0 74 6f 72 20 66 6f 72 20 61 20 63 6f 6e 74 72 6f tor for a contro
471b0 6c 6c 65 64 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 lled environment
471c0 0a 20 20 66 75 6e 63 74 69 6f 6e 20 46 75 6e 63 . function Func
471d0 74 69 6f 6e 46 61 63 74 6f 72 79 28 70 61 72 65 tionFactory(pare
471e0 6e 74 43 6f 6e 74 65 78 74 29 7b 0a 20 20 20 20 ntContext){.
471f0 76 61 72 20 63 6f 6e 74 65 78 74 20 3d 20 4f 62 var context = Ob
47200 6a 65 63 74 2e 63 72 65 61 74 65 28 70 61 72 65 ject.create(pare
47210 6e 74 43 6f 6e 74 65 78 74 20 7c 7c 20 7b 7d 29 ntContext || {})
47220 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 66 75 6e ;. return fun
47230 63 74 69 6f 6e 20 46 75 6e 63 74 69 6f 6e 28 29 ction Function()
47240 20 7b 0a 20 20 20 20 20 20 2f 2f 20 6e 6f 72 6d {. // norm
47250 61 6c 69 7a 65 20 61 72 67 75 6d 65 6e 74 73 20 alize arguments
47260 61 72 72 61 79 0a 20 20 20 20 20 20 76 61 72 20 array. var
47270 61 72 67 73 20 3d 20 41 72 72 61 79 2e 70 72 6f args = Array.pro
47280 74 6f 74 79 70 65 2e 73 6c 69 63 65 2e 63 61 6c totype.slice.cal
47290 6c 28 61 72 67 75 6d 65 6e 74 73 29 3b 0a 20 20 l(arguments);.
472a0 20 20 20 20 76 61 72 20 73 72 63 20 3d 20 61 72 var src = ar
472b0 67 73 2e 73 6c 69 63 65 28 2d 31 29 5b 30 5d 3b gs.slice(-1)[0];
472c0 0a 20 20 20 20 20 20 61 72 67 73 20 3d 20 61 72 . args = ar
472d0 67 73 2e 73 6c 69 63 65 28 30 2c 2d 31 29 3b 0a gs.slice(0,-1);.
472e0 20 20 20 20 20 20 69 66 20 28 74 79 70 65 6f 66 if (typeof
472f0 20 73 72 63 20 3d 3d 3d 20 27 73 74 72 69 6e 67 src === 'string
47300 27 29 7b 0a 20 20 20 20 20 20 20 20 2f 2f 48 41 '){. //HA
47310 43 4b 3a 20 65 73 70 72 69 6d 61 20 64 6f 65 73 CK: esprima does
47320 6e 27 74 20 6c 69 6b 65 20 72 65 74 75 72 6e 73 n't like returns
47330 20 6f 75 74 73 69 64 65 20 66 75 6e 63 74 69 6f outside functio
47340 6e 73 0a 20 20 20 20 20 20 20 20 73 72 63 20 3d ns. src =
47350 20 70 61 72 73 65 28 27 66 75 6e 63 74 69 6f 6e parse('function
47360 20 61 28 29 7b 20 27 20 2b 20 73 72 63 20 2b 20 a(){ ' + src +
47370 27 7d 27 29 2e 62 6f 64 79 5b 30 5d 2e 62 6f 64 '}').body[0].bod
47380 79 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 y;. }.
47390 20 76 61 72 20 74 72 65 65 20 3d 20 70 72 65 70 var tree = prep
473a0 61 72 65 41 73 74 28 73 72 63 29 3b 0a 20 20 20 areAst(src);.
473b0 20 20 20 72 65 74 75 72 6e 20 67 65 74 46 75 6e return getFun
473c0 63 74 69 6f 6e 28 74 72 65 65 2c 20 61 72 67 73 ction(tree, args
473d0 2c 20 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 7d , context). }
473e0 0a 20 20 7d 0a 0a 20 20 2f 2f 20 74 61 6b 65 73 . }.. // takes
473f0 20 61 6e 20 41 53 54 20 6f 72 20 6a 73 20 73 6f an AST or js so
47400 75 72 63 65 20 61 6e 64 20 72 65 74 75 72 6e 73 urce and returns
47410 20 61 6e 20 41 53 54 0a 20 20 66 75 6e 63 74 69 an AST. functi
47420 6f 6e 20 70 72 65 70 61 72 65 41 73 74 28 73 72 on prepareAst(sr
47430 63 29 7b 0a 20 20 20 20 76 61 72 20 74 72 65 65 c){. var tree
47440 20 3d 20 28 74 79 70 65 6f 66 20 73 72 63 20 3d = (typeof src =
47450 3d 3d 20 27 73 74 72 69 6e 67 27 29 20 3f 20 70 == 'string') ? p
47460 61 72 73 65 28 73 72 63 29 20 3a 20 73 72 63 3b arse(src) : src;
47470 0a 20 20 20 20 72 65 74 75 72 6e 20 69 6e 64 65 . return inde
47480 78 28 74 72 65 65 29 0a 20 20 7d 0a 0a 20 20 2f x(tree). }.. /
47490 2f 20 65 76 61 6c 75 61 74 65 20 61 6e 20 41 53 / evaluate an AS
474a0 54 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 63 T in the given c
474b0 6f 6e 74 65 78 74 0a 20 20 66 75 6e 63 74 69 6f ontext. functio
474c0 6e 20 65 76 61 6c 75 61 74 65 41 73 74 28 74 72 n evaluateAst(tr
474d0 65 65 2c 20 63 6f 6e 74 65 78 74 29 7b 0a 0a 20 ee, context){..
474e0 20 20 20 76 61 72 20 73 61 66 65 46 75 6e 63 74 var safeFunct
474f0 69 6f 6e 20 3d 20 46 75 6e 63 74 69 6f 6e 46 61 ion = FunctionFa
47500 63 74 6f 72 79 28 63 6f 6e 74 65 78 74 29 3b 0a ctory(context);.
47510 20 20 20 20 76 61 72 20 70 72 69 6d 69 74 69 76 var primitiv
47520 65 73 20 3d 20 50 72 69 6d 69 74 69 76 65 73 28 es = Primitives(
47530 63 6f 6e 74 65 78 74 29 3b 0a 0a 20 20 20 20 2f context);.. /
47540 2f 20 62 6c 6f 63 6b 20 73 63 6f 70 65 64 20 63 / block scoped c
47550 6f 6e 74 65 78 74 20 66 6f 72 20 63 61 74 63 68 ontext for catch
47560 20 28 65 78 29 20 61 6e 64 20 27 6c 65 74 27 0a (ex) and 'let'.
47570 20 20 20 20 76 61 72 20 62 6c 6f 63 6b 43 6f 6e var blockCon
47580 74 65 78 74 20 3d 20 63 6f 6e 74 65 78 74 3b 0a text = context;.
47590 0a 20 20 20 20 72 65 74 75 72 6e 20 77 61 6c 6b . return walk
475a0 28 74 72 65 65 29 0a 0a 20 20 20 20 2f 2f 20 72 (tree).. // r
475b0 65 63 75 72 73 69 76 65 6c 79 20 77 61 6c 6b 20 ecursively walk
475c0 65 76 65 72 79 20 6e 6f 64 65 20 69 6e 20 61 6e every node in an
475d0 20 61 72 72 61 79 0a 20 20 20 20 66 75 6e 63 74 array. funct
475e0 69 6f 6e 20 77 61 6c 6b 41 6c 6c 28 6e 6f 64 65 ion walkAll(node
475f0 73 29 7b 0a 20 20 20 20 20 20 76 61 72 20 72 65 s){. var re
47600 73 75 6c 74 20 3d 20 75 6e 64 65 66 69 6e 65 64 sult = undefined
47610 3b 0a 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 ;. for (var
47620 20 69 3d 30 3b 69 3c 6e 6f 64 65 73 2e 6c 65 6e i=0;i<nodes.len
47630 67 74 68 3b 69 2b 2b 29 7b 0a 20 20 20 20 20 20 gth;i++){.
47640 20 20 76 61 72 20 63 68 69 6c 64 4e 6f 64 65 20 var childNode
47650 3d 20 6e 6f 64 65 73 5b 69 5d 3b 0a 20 20 20 20 = nodes[i];.
47660 20 20 20 20 69 66 20 28 63 68 69 6c 64 4e 6f 64 if (childNod
47670 65 2e 74 79 70 65 20 3d 3d 3d 20 27 45 6d 70 74 e.type === 'Empt
47680 79 53 74 61 74 65 6d 65 6e 74 27 29 20 7b 20 63 yStatement') { c
47690 6f 6e 74 69 6e 75 65 20 7d 0a 20 20 20 20 20 20 ontinue }.
476a0 20 20 72 65 73 75 6c 74 20 3d 20 77 61 6c 6b 28 result = walk(
476b0 63 68 69 6c 64 4e 6f 64 65 29 3b 0a 20 20 20 20 childNode);.
476c0 20 20 20 20 69 66 20 28 72 65 73 75 6c 74 20 69 if (result i
476d0 6e 73 74 61 6e 63 65 6f 66 20 52 65 74 75 72 6e nstanceof Return
476e0 56 61 6c 75 65 29 7b 0a 20 20 20 20 20 20 20 20 Value){.
476f0 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 0a return result.
47700 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 }.
47710 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 }. return r
47720 65 73 75 6c 74 0a 20 20 20 20 7d 0a 0a 20 20 20 esult. }..
47730 20 2f 2f 20 72 65 63 75 72 73 69 76 65 6c 79 20 // recursively
47740 65 76 61 6c 75 74 61 74 65 20 74 68 65 20 6e 6f evalutate the no
47750 64 65 20 6f 66 20 61 6e 20 41 53 54 0a 20 20 20 de of an AST.
47760 20 66 75 6e 63 74 69 6f 6e 20 77 61 6c 6b 28 6e function walk(n
47770 6f 64 65 29 7b 0a 20 20 20 20 20 20 69 66 20 28 ode){. if (
47780 21 6e 6f 64 65 29 20 7b 20 72 65 74 75 72 6e 20 !node) { return
47790 7d 0a 0a 20 20 20 20 20 20 73 77 69 74 63 68 20 }.. switch
477a0 28 6e 6f 64 65 2e 74 79 70 65 29 20 7b 0a 0a 20 (node.type) {..
477b0 20 20 20 20 20 20 20 63 61 73 65 20 27 50 72 6f case 'Pro
477c0 67 72 61 6d 27 3a 0a 20 20 20 20 20 20 20 20 20 gram':.
477d0 20 72 65 74 75 72 6e 20 77 61 6c 6b 41 6c 6c 28 return walkAll(
477e0 6e 6f 64 65 2e 62 6f 64 79 20 29 0a 0a 20 20 20 node.body )..
477f0 20 20 20 20 20 63 61 73 65 20 27 42 6c 6f 63 6b case 'Block
47800 53 74 61 74 65 6d 65 6e 74 27 3a 0a 20 20 20 20 Statement':.
47810 20 20 20 20 20 20 65 6e 74 65 72 42 6c 6f 63 6b enterBlock
47820 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 76 61 ();. va
47830 72 20 72 65 73 75 6c 74 20 3d 20 77 61 6c 6b 41 r result = walkA
47840 6c 6c 28 6e 6f 64 65 2e 62 6f 64 79 29 3b 0a 20 ll(node.body);.
47850 20 20 20 20 20 20 20 20 20 6c 65 61 76 65 42 6c leaveBl
47860 6f 63 6b 28 29 3b 0a 20 20 20 20 20 20 20 20 20 ock();.
47870 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 0a 0a return result..
47880 20 20 20 20 20 20 20 20 63 61 73 65 20 27 53 65 case 'Se
47890 71 75 65 6e 63 65 45 78 70 72 65 73 73 69 6f 6e quenceExpression
478a0 27 3a 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 ':. ret
478b0 75 72 6e 20 77 61 6c 6b 41 6c 6c 28 6e 6f 64 65 urn walkAll(node
478c0 2e 65 78 70 72 65 73 73 69 6f 6e 73 29 0a 0a 20 .expressions)..
478d0 20 20 20 20 20 20 20 63 61 73 65 20 27 46 75 6e case 'Fun
478e0 63 74 69 6f 6e 44 65 63 6c 61 72 61 74 69 6f 6e ctionDeclaration
478f0 27 3a 0a 20 20 20 20 20 20 20 20 20 20 76 61 72 ':. var
47900 20 70 61 72 61 6d 73 20 3d 20 6e 6f 64 65 2e 70 params = node.p
47910 61 72 61 6d 73 2e 6d 61 70 28 67 65 74 4e 61 6d arams.map(getNam
47920 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 76 61 e);. va
47930 72 20 76 61 6c 75 65 20 3d 20 67 65 74 46 75 6e r value = getFun
47940 63 74 69 6f 6e 28 6e 6f 64 65 2e 62 6f 64 79 2c ction(node.body,
47950 20 70 61 72 61 6d 73 2c 20 62 6c 6f 63 6b 43 6f params, blockCo
47960 6e 74 65 78 74 29 3b 0a 20 20 20 20 20 20 20 20 ntext);.
47970 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 65 78 74 return context
47980 5b 6e 6f 64 65 2e 69 64 2e 6e 61 6d 65 5d 20 3d [node.id.name] =
47990 20 76 61 6c 75 65 0a 0a 20 20 20 20 20 20 20 20 value..
479a0 63 61 73 65 20 27 46 75 6e 63 74 69 6f 6e 45 78 case 'FunctionEx
479b0 70 72 65 73 73 69 6f 6e 27 3a 0a 20 20 20 20 20 pression':.
479c0 20 20 20 20 20 76 61 72 20 70 61 72 61 6d 73 20 var params
479d0 3d 20 6e 6f 64 65 2e 70 61 72 61 6d 73 2e 6d 61 = node.params.ma
479e0 70 28 67 65 74 4e 61 6d 65 29 3b 0a 20 20 20 20 p(getName);.
479f0 20 20 20 20 20 20 72 65 74 75 72 6e 20 67 65 74 return get
47a00 46 75 6e 63 74 69 6f 6e 28 6e 6f 64 65 2e 62 6f Function(node.bo
47a10 64 79 2c 20 70 61 72 61 6d 73 2c 20 62 6c 6f 63 dy, params, bloc
47a20 6b 43 6f 6e 74 65 78 74 29 0a 0a 20 20 20 20 20 kContext)..
47a30 20 20 20 63 61 73 65 20 27 52 65 74 75 72 6e 53 case 'ReturnS
47a40 74 61 74 65 6d 65 6e 74 27 3a 0a 20 20 20 20 20 tatement':.
47a50 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d var value =
47a60 20 77 61 6c 6b 28 6e 6f 64 65 2e 61 72 67 75 6d walk(node.argum
47a70 65 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ent);.
47a80 72 65 74 75 72 6e 20 6e 65 77 20 52 65 74 75 72 return new Retur
47a90 6e 56 61 6c 75 65 28 27 72 65 74 75 72 6e 27 2c nValue('return',
47aa0 20 76 61 6c 75 65 29 0a 0a 20 20 20 20 20 20 20 value)..
47ab0 20 63 61 73 65 20 27 42 72 65 61 6b 53 74 61 74 case 'BreakStat
47ac0 65 6d 65 6e 74 27 3a 0a 20 20 20 20 20 20 20 20 ement':.
47ad0 20 20 72 65 74 75 72 6e 20 6e 65 77 20 52 65 74 return new Ret
47ae0 75 72 6e 56 61 6c 75 65 28 27 62 72 65 61 6b 27 urnValue('break'
47af0 29 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 ).. case
47b00 27 43 6f 6e 74 69 6e 75 65 53 74 61 74 65 6d 65 'ContinueStateme
47b10 6e 74 27 3a 0a 20 20 20 20 20 20 20 20 20 20 72 nt':. r
47b20 65 74 75 72 6e 20 6e 65 77 20 52 65 74 75 72 6e eturn new Return
47b30 56 61 6c 75 65 28 27 63 6f 6e 74 69 6e 75 65 27 Value('continue'
47b40 29 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 ).. case
47b50 27 45 78 70 72 65 73 73 69 6f 6e 53 74 61 74 65 'ExpressionState
47b60 6d 65 6e 74 27 3a 0a 20 20 20 20 20 20 20 20 20 ment':.
47b70 20 72 65 74 75 72 6e 20 77 61 6c 6b 28 6e 6f 64 return walk(nod
47b80 65 2e 65 78 70 72 65 73 73 69 6f 6e 29 0a 0a 20 e.expression)..
47b90 20 20 20 20 20 20 20 63 61 73 65 20 27 41 73 73 case 'Ass
47ba0 69 67 6e 6d 65 6e 74 45 78 70 72 65 73 73 69 6f ignmentExpressio
47bb0 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 72 65 n':. re
47bc0 74 75 72 6e 20 73 65 74 56 61 6c 75 65 28 62 6c turn setValue(bl
47bd0 6f 63 6b 43 6f 6e 74 65 78 74 2c 20 6e 6f 64 65 ockContext, node
47be0 2e 6c 65 66 74 2c 20 6e 6f 64 65 2e 72 69 67 68 .left, node.righ
47bf0 74 2c 20 6e 6f 64 65 2e 6f 70 65 72 61 74 6f 72 t, node.operator
47c00 29 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 ).. case
47c10 27 55 70 64 61 74 65 45 78 70 72 65 73 73 69 6f 'UpdateExpressio
47c20 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 72 65 n':. re
47c30 74 75 72 6e 20 73 65 74 56 61 6c 75 65 28 62 6c turn setValue(bl
47c40 6f 63 6b 43 6f 6e 74 65 78 74 2c 20 6e 6f 64 65 ockContext, node
47c50 2e 61 72 67 75 6d 65 6e 74 2c 20 6e 75 6c 6c 2c .argument, null,
47c60 20 6e 6f 64 65 2e 6f 70 65 72 61 74 6f 72 29 0a node.operator).
47c70 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 56 . case 'V
47c80 61 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 ariableDeclarati
47c90 6f 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 6e on':. n
47ca0 6f 64 65 2e 64 65 63 6c 61 72 61 74 69 6f 6e 73 ode.declarations
47cb0 2e 66 6f 72 45 61 63 68 28 66 75 6e 63 74 69 6f .forEach(functio
47cc0 6e 28 64 65 63 6c 61 72 61 74 69 6f 6e 29 7b 0a n(declaration){.
47cd0 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 var
47ce0 74 61 72 67 65 74 20 3d 20 6e 6f 64 65 2e 6b 69 target = node.ki
47cf0 6e 64 20 3d 3d 3d 20 27 6c 65 74 27 20 3f 20 62 nd === 'let' ? b
47d00 6c 6f 63 6b 43 6f 6e 74 65 78 74 20 3a 20 63 6f lockContext : co
47d10 6e 74 65 78 74 3b 0a 20 20 20 20 20 20 20 20 20 ntext;.
47d20 20 20 20 69 66 20 28 64 65 63 6c 61 72 61 74 69 if (declarati
47d30 6f 6e 2e 69 6e 69 74 29 7b 0a 20 20 20 20 20 20 on.init){.
47d40 20 20 20 20 20 20 20 20 74 61 72 67 65 74 5b 64 target[d
47d50 65 63 6c 61 72 61 74 69 6f 6e 2e 69 64 2e 6e 61 eclaration.id.na
47d60 6d 65 5d 20 3d 20 77 61 6c 6b 28 64 65 63 6c 61 me] = walk(decla
47d70 72 61 74 69 6f 6e 2e 69 6e 69 74 29 3b 0a 20 20 ration.init);.
47d80 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
47d90 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
47da0 20 74 61 72 67 65 74 5b 64 65 63 6c 61 72 61 74 target[declarat
47db0 69 6f 6e 2e 69 64 2e 6e 61 6d 65 5d 20 3d 20 75 ion.id.name] = u
47dc0 6e 64 65 66 69 6e 65 64 3b 0a 20 20 20 20 20 20 ndefined;.
47dd0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 }.
47de0 20 20 7d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 });.
47df0 62 72 65 61 6b 0a 0a 20 20 20 20 20 20 20 20 63 break.. c
47e00 61 73 65 20 27 53 77 69 74 63 68 53 74 61 74 65 ase 'SwitchState
47e10 6d 65 6e 74 27 3a 0a 20 20 20 20 20 20 20 20 20 ment':.
47e20 20 76 61 72 20 64 65 66 61 75 6c 74 48 61 6e 64 var defaultHand
47e30 6c 65 72 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 ler = null;.
47e40 20 20 20 20 20 20 76 61 72 20 6d 61 74 63 68 65 var matche
47e50 64 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 d = false;.
47e60 20 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d var value =
47e70 20 77 61 6c 6b 28 6e 6f 64 65 2e 64 69 73 63 72 walk(node.discr
47e80 69 6d 69 6e 61 6e 74 29 3b 0a 20 20 20 20 20 20 iminant);.
47e90 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 20 3d var result =
47ea0 20 75 6e 64 65 66 69 6e 65 64 3b 0a 0a 20 20 20 undefined;..
47eb0 20 20 20 20 20 20 20 65 6e 74 65 72 42 6c 6f 63 enterBloc
47ec0 6b 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 k();..
47ed0 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 20 20 20 var i = 0;.
47ee0 20 20 20 20 20 77 68 69 6c 65 20 28 72 65 73 75 while (resu
47ef0 6c 74 20 3d 3d 20 6e 75 6c 6c 29 7b 0a 20 20 20 lt == null){.
47f00 20 20 20 20 20 20 20 20 20 69 66 20 28 69 3c 6e if (i<n
47f10 6f 64 65 2e 63 61 73 65 73 2e 6c 65 6e 67 74 68 ode.cases.length
47f20 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ){.
47f30 20 69 66 20 28 6e 6f 64 65 2e 63 61 73 65 73 5b if (node.cases[
47f40 69 5d 2e 74 65 73 74 29 7b 20 2f 2f 20 63 68 65 i].test){ // che
47f50 63 6b 20 6f 72 20 66 61 6c 6c 20 74 68 72 6f 75 ck or fall throu
47f60 67 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 gh.
47f70 20 20 20 6d 61 74 63 68 65 64 20 3d 20 6d 61 74 matched = mat
47f80 63 68 65 64 20 7c 7c 20 28 77 61 6c 6b 28 6e 6f ched || (walk(no
47f90 64 65 2e 63 61 73 65 73 5b 69 5d 2e 74 65 73 74 de.cases[i].test
47fa0 29 20 3d 3d 3d 20 76 61 6c 75 65 29 3b 0a 20 20 ) === value);.
47fb0 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c } el
47fc0 73 65 20 69 66 20 28 64 65 66 61 75 6c 74 48 61 se if (defaultHa
47fd0 6e 64 6c 65 72 20 3d 3d 20 6e 75 6c 6c 29 20 7b ndler == null) {
47fe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
47ff0 20 64 65 66 61 75 6c 74 48 61 6e 64 6c 65 72 20 defaultHandler
48000 3d 20 69 3b 0a 20 20 20 20 20 20 20 20 20 20 20 = i;.
48010 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 }.
48020 20 20 20 69 66 20 28 6d 61 74 63 68 65 64 29 7b if (matched){
48030 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
48040 20 76 61 72 20 72 20 3d 20 77 61 6c 6b 41 6c 6c var r = walkAll
48050 28 6e 6f 64 65 2e 63 61 73 65 73 5b 69 5d 2e 63 (node.cases[i].c
48060 6f 6e 73 65 71 75 65 6e 74 29 3b 0a 20 20 20 20 onsequent);.
48070 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
48080 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 74 r instanceof Ret
48090 75 72 6e 56 61 6c 75 65 29 7b 20 2f 2f 20 62 72 urnValue){ // br
480a0 65 61 6b 20 6f 75 74 0a 20 20 20 20 20 20 20 20 eak out.
480b0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 72 2e if (r.
480c0 74 79 70 65 20 3d 3d 20 27 62 72 65 61 6b 27 29 type == 'break')
480d0 20 7b 20 62 72 65 61 6b 20 7d 0a 20 20 20 20 20 { break }.
480e0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 res
480f0 75 6c 74 20 3d 20 72 3b 0a 20 20 20 20 20 20 20 ult = r;.
48100 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
48110 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
48120 20 20 20 20 20 20 20 20 20 69 20 2b 3d 20 31 3b i += 1;
48130 20 2f 2f 20 63 6f 6e 74 69 6e 75 65 0a 20 20 20 // continue.
48140 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 } else
48150 69 66 20 28 21 6d 61 74 63 68 65 64 20 26 26 20 if (!matched &&
48160 64 65 66 61 75 6c 74 48 61 6e 64 6c 65 72 20 21 defaultHandler !
48170 3d 20 6e 75 6c 6c 29 7b 0a 20 20 20 20 20 20 20 = null){.
48180 20 20 20 20 20 20 20 2f 2f 20 67 6f 20 62 61 63 // go bac
48190 6b 20 61 6e 64 20 64 6f 20 74 68 65 20 64 65 66 k and do the def
481a0 61 75 6c 74 20 68 61 6e 64 6c 65 72 0a 20 20 20 ault handler.
481b0 20 20 20 20 20 20 20 20 20 20 20 69 20 3d 20 64 i = d
481c0 65 66 61 75 6c 74 48 61 6e 64 6c 65 72 3b 0a 20 efaultHandler;.
481d0 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 74 mat
481e0 63 68 65 64 20 3d 20 74 72 75 65 3b 0a 20 20 20 ched = true;.
481f0 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 } else
48200 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
48210 2f 2f 20 6e 6f 74 68 69 6e 67 20 77 65 20 63 61 // nothing we ca
48220 6e 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 n do.
48230 20 20 20 62 72 65 61 6b 0a 20 20 20 20 20 20 20 break.
48240 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 }.
48250 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 6c 65 }.. le
48260 61 76 65 42 6c 6f 63 6b 28 29 3b 0a 20 20 20 20 aveBlock();.
48270 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 return res
48280 75 6c 74 0a 0a 20 20 20 20 20 20 20 20 63 61 73 ult.. cas
48290 65 20 27 49 66 53 74 61 74 65 6d 65 6e 74 27 3a e 'IfStatement':
482a0 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 28 77 . if (w
482b0 61 6c 6b 28 6e 6f 64 65 2e 74 65 73 74 29 29 7b alk(node.test)){
482c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 . ret
482d0 75 72 6e 20 77 61 6c 6b 28 6e 6f 64 65 2e 63 6f urn walk(node.co
482e0 6e 73 65 71 75 65 6e 74 29 0a 20 20 20 20 20 20 nsequent).
482f0 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 6e } else if (n
48300 6f 64 65 2e 61 6c 74 65 72 6e 61 74 65 29 20 7b ode.alternate) {
48310 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 . ret
48320 75 72 6e 20 77 61 6c 6b 28 6e 6f 64 65 2e 61 6c urn walk(node.al
48330 74 65 72 6e 61 74 65 29 0a 20 20 20 20 20 20 20 ternate).
48340 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 63 61 }.. ca
48350 73 65 20 27 46 6f 72 53 74 61 74 65 6d 65 6e 74 se 'ForStatement
48360 27 3a 0a 20 20 20 20 20 20 20 20 20 20 76 61 72 ':. var
48370 20 69 6e 66 69 6e 69 74 65 20 3d 20 49 6e 66 69 infinite = Infi
48380 6e 69 74 65 43 68 65 63 6b 65 72 28 6d 61 78 49 niteChecker(maxI
48390 74 65 72 61 74 69 6f 6e 73 29 3b 0a 20 20 20 20 terations);.
483a0 20 20 20 20 20 20 76 61 72 20 72 65 73 75 6c 74 var result
483b0 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 0a 0a 20 = undefined;..
483c0 20 20 20 20 20 20 20 20 20 65 6e 74 65 72 42 6c enterBl
483d0 6f 63 6b 28 29 3b 20 2f 2f 20 61 6c 6c 6f 77 20 ock(); // allow
483e0 6c 65 74 73 20 6f 6e 20 64 65 6c 61 72 61 74 69 lets on delarati
483f0 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 66 6f ons. fo
48400 72 20 28 77 61 6c 6b 28 6e 6f 64 65 2e 69 6e 69 r (walk(node.ini
48410 74 29 3b 20 77 61 6c 6b 28 6e 6f 64 65 2e 74 65 t); walk(node.te
48420 73 74 29 3b 20 77 61 6c 6b 28 6e 6f 64 65 2e 75 st); walk(node.u
48430 70 64 61 74 65 29 29 7b 0a 20 20 20 20 20 20 20 pdate)){.
48440 20 20 20 20 20 76 61 72 20 72 20 3d 20 77 61 6c var r = wal
48450 6b 28 6e 6f 64 65 2e 62 6f 64 79 29 3b 0a 0a 20 k(node.body);..
48460 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61 // ha
48470 6e 64 6c 65 20 65 61 72 6c 79 20 72 65 74 75 72 ndle early retur
48480 6e 2c 20 63 6f 6e 74 69 6e 75 65 20 61 6e 64 20 n, continue and
48490 62 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 20 break.
484a0 20 20 69 66 20 28 72 20 69 6e 73 74 61 6e 63 65 if (r instance
484b0 6f 66 20 52 65 74 75 72 6e 56 61 6c 75 65 29 7b of ReturnValue){
484c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 . i
484d0 66 20 28 72 2e 74 79 70 65 20 3d 3d 20 27 63 6f f (r.type == 'co
484e0 6e 74 69 6e 75 65 27 29 20 7b 20 63 6f 6e 74 69 ntinue') { conti
484f0 6e 75 65 20 7d 0a 20 20 20 20 20 20 20 20 20 20 nue }.
48500 20 20 20 20 69 66 20 28 72 2e 74 79 70 65 20 3d if (r.type =
48510 3d 20 27 62 72 65 61 6b 27 29 20 7b 20 62 72 65 = 'break') { bre
48520 61 6b 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 ak }.
48530 20 20 20 72 65 73 75 6c 74 20 3d 20 72 3b 0a 20 result = r;.
48540 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
48550 61 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d ak. }
48560 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e .. in
48570 66 69 6e 69 74 65 2e 63 68 65 63 6b 28 29 3b 0a finite.check();.
48580 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }.
48590 20 20 20 20 20 20 6c 65 61 76 65 42 6c 6f 63 6b leaveBlock
485a0 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 72 65 ();. re
485b0 74 75 72 6e 20 72 65 73 75 6c 74 0a 0a 20 20 20 turn result..
485c0 20 20 20 20 20 63 61 73 65 20 27 46 6f 72 49 6e case 'ForIn
485d0 53 74 61 74 65 6d 65 6e 74 27 3a 0a 20 20 20 20 Statement':.
485e0 20 20 20 20 20 20 76 61 72 20 69 6e 66 69 6e 69 var infini
485f0 74 65 20 3d 20 49 6e 66 69 6e 69 74 65 43 68 65 te = InfiniteChe
48600 63 6b 65 72 28 6d 61 78 49 74 65 72 61 74 69 6f cker(maxIteratio
48610 6e 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 76 ns);. v
48620 61 72 20 72 65 73 75 6c 74 20 3d 20 75 6e 64 65 ar result = unde
48630 66 69 6e 65 64 3b 0a 0a 20 20 20 20 20 20 20 20 fined;..
48640 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 77 61 var value = wa
48650 6c 6b 28 6e 6f 64 65 2e 72 69 67 68 74 29 3b 0a lk(node.right);.
48660 20 20 20 20 20 20 20 20 20 20 76 61 72 20 70 72 var pr
48670 6f 70 65 72 74 79 20 3d 20 6e 6f 64 65 2e 6c 65 operty = node.le
48680 66 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 76 ft;.. v
48690 61 72 20 74 61 72 67 65 74 20 3d 20 63 6f 6e 74 ar target = cont
486a0 65 78 74 3b 0a 20 20 20 20 20 20 20 20 20 20 65 ext;. e
486b0 6e 74 65 72 42 6c 6f 63 6b 28 29 3b 0a 0a 20 20 nterBlock();..
486c0 20 20 20 20 20 20 20 20 69 66 20 28 70 72 6f 70 if (prop
486d0 65 72 74 79 2e 74 79 70 65 20 3d 3d 20 27 56 61 erty.type == 'Va
486e0 72 69 61 62 6c 65 44 65 63 6c 61 72 61 74 69 6f riableDeclaratio
486f0 6e 27 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 n'){.
48700 20 77 61 6c 6b 28 70 72 6f 70 65 72 74 79 29 3b walk(property);
48710 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f . pro
48720 70 65 72 74 79 20 3d 20 70 72 6f 70 65 72 74 79 perty = property
48730 2e 64 65 63 6c 61 72 61 74 69 6f 6e 73 5b 30 5d .declarations[0]
48740 2e 69 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 .id;.
48750 20 69 66 20 28 70 72 6f 70 65 72 74 79 2e 6b 69 if (property.ki
48760 6e 64 20 3d 3d 3d 20 27 6c 65 74 27 29 7b 0a 20 nd === 'let'){.
48770 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 tar
48780 67 65 74 20 3d 20 62 6c 6f 63 6b 43 6f 6e 74 65 get = blockConte
48790 78 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 xt;.
487a0 7d 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 }. }..
487b0 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 for (va
487c0 72 20 6b 65 79 20 69 6e 20 76 61 6c 75 65 29 7b r key in value){
487d0 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 . set
487e0 56 61 6c 75 65 28 74 61 72 67 65 74 2c 20 70 72 Value(target, pr
487f0 6f 70 65 72 74 79 2c 20 7b 74 79 70 65 3a 20 27 operty, {type: '
48800 4c 69 74 65 72 61 6c 27 2c 20 76 61 6c 75 65 3a Literal', value:
48810 20 6b 65 79 7d 29 3b 0a 20 20 20 20 20 20 20 20 key});.
48820 20 20 20 20 76 61 72 20 72 20 3d 20 77 61 6c 6b var r = walk
48830 28 6e 6f 64 65 2e 62 6f 64 79 29 3b 0a 0a 20 20 (node.body);..
48840 20 20 20 20 20 20 20 20 20 20 2f 2f 20 68 61 6e // han
48850 64 6c 65 20 65 61 72 6c 79 20 72 65 74 75 72 6e dle early return
48860 2c 20 63 6f 6e 74 69 6e 75 65 20 61 6e 64 20 62 , continue and b
48870 72 65 61 6b 0a 20 20 20 20 20 20 20 20 20 20 20 reak.
48880 20 69 66 20 28 72 20 69 6e 73 74 61 6e 63 65 6f if (r instanceo
48890 66 20 52 65 74 75 72 6e 56 61 6c 75 65 29 7b 0a f ReturnValue){.
488a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 if
488b0 20 28 72 2e 74 79 70 65 20 3d 3d 20 27 63 6f 6e (r.type == 'con
488c0 74 69 6e 75 65 27 29 20 7b 20 63 6f 6e 74 69 6e tinue') { contin
488d0 75 65 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 ue }.
488e0 20 20 20 69 66 20 28 72 2e 74 79 70 65 20 3d 3d if (r.type ==
488f0 20 27 62 72 65 61 6b 27 29 20 7b 20 62 72 65 61 'break') { brea
48900 6b 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 k }.
48910 20 20 72 65 73 75 6c 74 20 3d 20 72 3b 0a 20 20 result = r;.
48920 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
48930 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a k. }.
48940 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 . inf
48950 69 6e 69 74 65 2e 63 68 65 63 6b 28 29 3b 0a 20 inite.check();.
48960 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
48970 20 20 20 20 20 6c 65 61 76 65 42 6c 6f 63 6b 28 leaveBlock(
48980 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 72 65 );.. re
48990 74 75 72 6e 20 72 65 73 75 6c 74 0a 0a 20 20 20 turn result..
489a0 20 20 20 20 20 63 61 73 65 20 27 57 68 69 6c 65 case 'While
489b0 53 74 61 74 65 6d 65 6e 74 27 3a 0a 20 20 20 20 Statement':.
489c0 20 20 20 20 20 20 76 61 72 20 69 6e 66 69 6e 69 var infini
489d0 74 65 20 3d 20 49 6e 66 69 6e 69 74 65 43 68 65 te = InfiniteChe
489e0 63 6b 65 72 28 6d 61 78 49 74 65 72 61 74 69 6f cker(maxIteratio
489f0 6e 73 29 3b 0a 20 20 20 20 20 20 20 20 20 20 77 ns);. w
48a00 68 69 6c 65 20 28 77 61 6c 6b 28 6e 6f 64 65 2e hile (walk(node.
48a10 74 65 73 74 29 29 7b 0a 20 20 20 20 20 20 20 20 test)){.
48a20 20 20 20 20 77 61 6c 6b 28 6e 6f 64 65 2e 62 6f walk(node.bo
48a30 64 79 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 dy);.
48a40 20 69 6e 66 69 6e 69 74 65 2e 63 68 65 63 6b 28 infinite.check(
48a50 29 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 );. }.
48a60 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 0a break..
48a70 20 20 20 20 20 20 20 20 63 61 73 65 20 27 54 72 case 'Tr
48a80 79 53 74 61 74 65 6d 65 6e 74 27 3a 0a 20 20 20 yStatement':.
48a90 20 20 20 20 20 20 20 74 72 79 20 7b 0a 20 20 20 try {.
48aa0 20 20 20 20 20 20 20 20 20 77 61 6c 6b 28 6e 6f walk(no
48ab0 64 65 2e 62 6c 6f 63 6b 29 3b 0a 20 20 20 20 20 de.block);.
48ac0 20 20 20 20 20 7d 20 63 61 74 63 68 20 28 65 72 } catch (er
48ad0 72 6f 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 ror) {.
48ae0 20 20 20 65 6e 74 65 72 42 6c 6f 63 6b 28 29 3b enterBlock();
48af0 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
48b00 20 63 61 74 63 68 43 6c 61 75 73 65 20 3d 20 6e catchClause = n
48b10 6f 64 65 2e 68 61 6e 64 6c 65 72 73 5b 30 5d 3b ode.handlers[0];
48b20 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
48b30 28 63 61 74 63 68 43 6c 61 75 73 65 29 20 7b 0a (catchClause) {.
48b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6c bl
48b50 6f 63 6b 43 6f 6e 74 65 78 74 5b 63 61 74 63 68 ockContext[catch
48b60 43 6c 61 75 73 65 2e 70 61 72 61 6d 2e 6e 61 6d Clause.param.nam
48b70 65 5d 20 3d 20 65 72 72 6f 72 3b 0a 20 20 20 20 e] = error;.
48b80 20 20 20 20 20 20 20 20 20 20 77 61 6c 6b 28 63 walk(c
48b90 61 74 63 68 43 6c 61 75 73 65 2e 62 6f 64 79 29 atchClause.body)
48ba0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ;. }.
48bb0 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 61 76 leav
48bc0 65 42 6c 6f 63 6b 28 29 3b 0a 20 20 20 20 20 20 eBlock();.
48bd0 20 20 20 20 7d 20 66 69 6e 61 6c 6c 79 20 7b 0a } finally {.
48be0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
48bf0 6e 6f 64 65 2e 66 69 6e 61 6c 69 7a 65 72 29 20 node.finalizer)
48c00 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
48c10 77 61 6c 6b 28 6e 6f 64 65 2e 66 69 6e 61 6c 69 walk(node.finali
48c20 7a 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 zer);.
48c30 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 7d 0a }. }.
48c40 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a break.
48c50 0a 20 20 20 20 20 20 20 20 63 61 73 65 20 27 4c . case 'L
48c60 69 74 65 72 61 6c 27 3a 0a 20 20 20 20 20 20 20 iteral':.
48c70 20 20 20 72 65 74 75 72 6e 20 6e 6f 64 65 2e 76 return node.v
48c80 61 6c 75 65 0a 0a 20 20 20 20 20 20 20 20 63 61 alue.. ca
48c90 73 65 20 27 55 6e 61 72 79 45 78 70 72 65 73 73 se 'UnaryExpress
48ca0 69 6f 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 ion':.
48cb0 76 61 72 20 76 61 6c 20 3d 20 77 61 6c 6b 28 6e var val = walk(n
48cc0 6f 64 65 2e 61 72 67 75 6d 65 6e 74 29 3b 0a 20 ode.argument);.
48cd0 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 switch(
48ce0 6e 6f 64 65 2e 6f 70 65 72 61 74 6f 72 29 20 7b node.operator) {
48cf0 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
48d00 65 20 27 2b 27 3a 20 72 65 74 75 72 6e 20 2b 76 e '+': return +v
48d10 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 al. c
48d20 61 73 65 20 27 2d 27 3a 20 72 65 74 75 72 6e 20 ase '-': return
48d30 2d 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 -val.
48d40 20 63 61 73 65 20 27 7e 27 3a 20 72 65 74 75 72 case '~': retur
48d50 6e 20 7e 76 61 6c 0a 20 20 20 20 20 20 20 20 20 n ~val.
48d60 20 20 20 63 61 73 65 20 27 21 27 3a 20 72 65 74 case '!': ret
48d70 75 72 6e 20 21 76 61 6c 0a 20 20 20 20 20 20 20 urn !val.
48d80 20 20 20 20 20 63 61 73 65 20 27 76 6f 69 64 27 case 'void'
48d90 3a 20 72 65 74 75 72 6e 20 76 6f 69 64 20 76 61 : return void va
48da0 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 l. ca
48db0 73 65 20 27 74 79 70 65 6f 66 27 3a 20 72 65 74 se 'typeof': ret
48dc0 75 72 6e 20 74 79 70 65 6f 66 20 76 61 6c 0a 20 urn typeof val.
48dd0 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 defau
48de0 6c 74 3a 20 72 65 74 75 72 6e 20 75 6e 73 75 70 lt: return unsup
48df0 70 6f 72 74 65 64 45 78 70 72 65 73 73 69 6f 6e portedExpression
48e00 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 (node).
48e10 20 7d 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 }.. case
48e20 20 27 41 72 72 61 79 45 78 70 72 65 73 73 69 6f 'ArrayExpressio
48e30 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 76 61 n':. va
48e40 72 20 6f 62 6a 20 3d 20 62 6c 6f 63 6b 43 6f 6e r obj = blockCon
48e50 74 65 78 74 5b 27 41 72 72 61 79 27 5d 28 29 3b text['Array']();
48e60 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 . for (
48e70 76 61 72 20 69 3d 30 3b 69 3c 6e 6f 64 65 2e 65 var i=0;i<node.e
48e80 6c 65 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 3b 69 lements.length;i
48e90 2b 2b 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ++){.
48ea0 20 6f 62 6a 2e 70 75 73 68 28 77 61 6c 6b 28 6e obj.push(walk(n
48eb0 6f 64 65 2e 65 6c 65 6d 65 6e 74 73 5b 69 5d 29 ode.elements[i])
48ec0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 );. }.
48ed0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
48ee0 6f 62 6a 0a 0a 20 20 20 20 20 20 20 20 63 61 73 obj.. cas
48ef0 65 20 27 4f 62 6a 65 63 74 45 78 70 72 65 73 73 e 'ObjectExpress
48f00 69 6f 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 ion':.
48f10 76 61 72 20 6f 62 6a 20 3d 20 62 6c 6f 63 6b 43 var obj = blockC
48f20 6f 6e 74 65 78 74 5b 27 4f 62 6a 65 63 74 27 5d ontext['Object']
48f30 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 66 6f ();. fo
48f40 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 r (var i = 0; i
48f50 3c 20 6e 6f 64 65 2e 70 72 6f 70 65 72 74 69 65 < node.propertie
48f60 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b s.length; i++) {
48f70 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
48f80 20 70 72 6f 70 20 3d 20 6e 6f 64 65 2e 70 72 6f prop = node.pro
48f90 70 65 72 74 69 65 73 5b 69 5d 3b 0a 20 20 20 20 perties[i];.
48fa0 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 var valu
48fb0 65 20 3d 20 28 70 72 6f 70 2e 76 61 6c 75 65 20 e = (prop.value
48fc0 3d 3d 3d 20 6e 75 6c 6c 29 20 3f 20 70 72 6f 70 === null) ? prop
48fd0 2e 76 61 6c 75 65 20 3a 20 77 61 6c 6b 28 70 72 .value : walk(pr
48fe0 6f 70 2e 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 op.value);.
48ff0 20 20 20 20 20 20 20 6f 62 6a 5b 70 72 6f 70 2e obj[prop.
49000 6b 65 79 2e 76 61 6c 75 65 20 7c 7c 20 70 72 6f key.value || pro
49010 70 2e 6b 65 79 2e 6e 61 6d 65 5d 20 3d 20 76 61 p.key.name] = va
49020 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 7d lue;. }
49030 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
49040 6e 20 6f 62 6a 0a 0a 20 20 20 20 20 20 20 20 63 n obj.. c
49050 61 73 65 20 27 4e 65 77 45 78 70 72 65 73 73 69 ase 'NewExpressi
49060 6f 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 20 76 on':. v
49070 61 72 20 61 72 67 73 20 3d 20 6e 6f 64 65 2e 61 ar args = node.a
49080 72 67 75 6d 65 6e 74 73 2e 6d 61 70 28 66 75 6e rguments.map(fun
49090 63 74 69 6f 6e 28 61 72 67 29 7b 0a 20 20 20 20 ction(arg){.
490a0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 77 return w
490b0 61 6c 6b 28 61 72 67 29 0a 20 20 20 20 20 20 20 alk(arg).
490c0 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 20 20 20 });.
490d0 20 76 61 72 20 74 61 72 67 65 74 20 3d 20 77 61 var target = wa
490e0 6c 6b 28 6e 6f 64 65 2e 63 61 6c 6c 65 65 29 3b lk(node.callee);
490f0 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
49100 6e 20 70 72 69 6d 69 74 69 76 65 73 2e 61 70 70 n primitives.app
49110 6c 79 4e 65 77 28 74 61 72 67 65 74 2c 20 61 72 lyNew(target, ar
49120 67 73 29 0a 0a 0a 20 20 20 20 20 20 20 20 63 61 gs)... ca
49130 73 65 20 27 42 69 6e 61 72 79 45 78 70 72 65 73 se 'BinaryExpres
49140 73 69 6f 6e 27 3a 0a 20 20 20 20 20 20 20 20 20 sion':.
49150 20 76 61 72 20 6c 20 3d 20 77 61 6c 6b 28 6e 6f var l = walk(no
49160 64 65 2e 6c 65 66 74 29 3b 0a 20 20 20 20 20 20 de.left);.
49170 20 20 20 20 76 61 72 20 72 20 3d 20 77 61 6c 6b var r = walk
49180 28 6e 6f 64 65 2e 72 69 67 68 74 29 3b 0a 0a 20 (node.right);..
49190 20 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 switch(
491a0 6e 6f 64 65 2e 6f 70 65 72 61 74 6f 72 29 20 7b node.operator) {
491b0 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
491c0 65 20 27 3d 3d 27 3a 20 20 72 65 74 75 72 6e 20 e '==': return
491d0 6c 20 3d 3d 3d 20 72 0a 20 20 20 20 20 20 20 20 l === r.
491e0 20 20 20 20 63 61 73 65 20 27 3d 3d 3d 27 3a 20 case '===':
491f0 72 65 74 75 72 6e 20 6c 20 3d 3d 3d 20 72 0a 20 return l === r.
49200 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
49210 27 21 3d 27 3a 20 20 72 65 74 75 72 6e 20 6c 20 '!=': return l
49220 21 3d 20 72 0a 20 20 20 20 20 20 20 20 20 20 20 != r.
49230 20 63 61 73 65 20 27 21 3d 3d 27 3a 20 72 65 74 case '!==': ret
49240 75 72 6e 20 6c 20 21 3d 3d 20 72 0a 20 20 20 20 urn l !== r.
49250 20 20 20 20 20 20 20 20 63 61 73 65 20 27 2b 27 case '+'
49260 3a 20 20 20 72 65 74 75 72 6e 20 6c 20 2b 20 72 : return l + r
49270 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
49280 65 20 27 2d 27 3a 20 20 20 72 65 74 75 72 6e 20 e '-': return
49290 6c 20 2d 20 72 0a 20 20 20 20 20 20 20 20 20 20 l - r.
492a0 20 20 63 61 73 65 20 27 2a 27 3a 20 20 20 72 65 case '*': re
492b0 74 75 72 6e 20 6c 20 2a 20 72 0a 20 20 20 20 20 turn l * r.
492c0 20 20 20 20 20 20 20 63 61 73 65 20 27 2f 27 3a case '/':
492d0 20 20 20 72 65 74 75 72 6e 20 6c 20 2f 20 72 0a return l / r.
492e0 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
492f0 20 27 25 27 3a 20 20 20 72 65 74 75 72 6e 20 6c '%': return l
49300 20 25 20 72 0a 20 20 20 20 20 20 20 20 20 20 20 % r.
49310 20 63 61 73 65 20 27 3c 27 3a 20 20 20 72 65 74 case '<': ret
49320 75 72 6e 20 6c 20 3c 20 72 0a 20 20 20 20 20 20 urn l < r.
49330 20 20 20 20 20 20 63 61 73 65 20 27 3c 3d 27 3a case '<=':
49340 20 20 72 65 74 75 72 6e 20 6c 20 3c 3d 20 72 0a return l <= r.
49350 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
49360 20 27 3e 27 3a 20 20 20 72 65 74 75 72 6e 20 6c '>': return l
49370 20 3e 20 72 0a 20 20 20 20 20 20 20 20 20 20 20 > r.
49380 20 63 61 73 65 20 27 3e 3d 27 3a 20 20 72 65 74 case '>=': ret
49390 75 72 6e 20 6c 20 3e 3d 20 72 0a 20 20 20 20 20 urn l >= r.
493a0 20 20 20 20 20 20 20 63 61 73 65 20 27 7c 27 3a case '|':
493b0 20 20 20 72 65 74 75 72 6e 20 6c 20 7c 20 72 0a return l | r.
493c0 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
493d0 20 27 26 27 3a 20 20 20 72 65 74 75 72 6e 20 6c '&': return l
493e0 20 26 20 72 0a 20 20 20 20 20 20 20 20 20 20 20 & r.
493f0 20 63 61 73 65 20 27 5e 27 3a 20 20 20 72 65 74 case '^': ret
49400 75 72 6e 20 6c 20 5e 20 72 0a 20 20 20 20 20 20 urn l ^ r.
49410 20 20 20 20 20 20 63 61 73 65 20 27 69 6e 27 3a case 'in':
49420 20 20 72 65 74 75 72 6e 20 6c 20 69 6e 20 72 0a return l in r.
49430 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
49440 20 27 69 6e 73 74 61 6e 63 65 6f 66 27 3a 20 72 'instanceof': r
49450 65 74 75 72 6e 20 6c 20 69 6e 73 74 61 6e 63 65 eturn l instance
49460 6f 66 20 72 0a 20 20 20 20 20 20 20 20 20 20 20 of r.
49470 20 64 65 66 61 75 6c 74 3a 20 72 65 74 75 72 6e default: return
49480 20 75 6e 73 75 70 70 6f 72 74 65 64 45 78 70 72 unsupportedExpr
49490 65 73 73 69 6f 6e 28 6e 6f 64 65 29 0a 20 20 20 ession(node).
494a0 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 }..
494b0 20 20 63 61 73 65 20 27 4c 6f 67 69 63 61 6c 45 case 'LogicalE
494c0 78 70 72 65 73 73 69 6f 6e 27 3a 0a 20 20 20 20 xpression':.
494d0 20 20 20 20 20 20 73 77 69 74 63 68 28 6e 6f 64 switch(nod
494e0 65 2e 6f 70 65 72 61 74 6f 72 29 20 7b 0a 20 20 e.operator) {.
494f0 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 case '
49500 26 26 27 3a 20 20 72 65 74 75 72 6e 20 77 61 6c &&': return wal
49510 6b 28 6e 6f 64 65 2e 6c 65 66 74 29 20 26 26 20 k(node.left) &&
49520 77 61 6c 6b 28 6e 6f 64 65 2e 72 69 67 68 74 29 walk(node.right)
49530 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 . cas
49540 65 20 27 7c 7c 27 3a 20 20 72 65 74 75 72 6e 20 e '||': return
49550 77 61 6c 6b 28 6e 6f 64 65 2e 6c 65 66 74 29 20 walk(node.left)
49560 7c 7c 20 77 61 6c 6b 28 6e 6f 64 65 2e 72 69 67 || walk(node.rig
49570 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ht).
49580 64 65 66 61 75 6c 74 3a 20 72 65 74 75 72 6e 20 default: return
49590 75 6e 73 75 70 70 6f 72 74 65 64 45 78 70 72 65 unsupportedExpre
495a0 73 73 69 6f 6e 28 6e 6f 64 65 29 0a 20 20 20 20 ssion(node).
495b0 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 }..
495c0 20 63 61 73 65 20 27 54 68 69 73 45 78 70 72 65 case 'ThisExpre
495d0 73 73 69 6f 6e 27 3a 0a 20 20 20 20 20 20 20 20 ssion':.
495e0 20 20 72 65 74 75 72 6e 20 62 6c 6f 63 6b 43 6f return blockCo
495f0 6e 74 65 78 74 5b 27 74 68 69 73 27 5d 0a 0a 20 ntext['this']..
49600 20 20 20 20 20 20 20 63 61 73 65 20 27 49 64 65 case 'Ide
49610 6e 74 69 66 69 65 72 27 3a 0a 20 20 20 20 20 20 ntifier':.
49620 20 20 20 20 69 66 20 28 6e 6f 64 65 2e 6e 61 6d if (node.nam
49630 65 20 3d 3d 3d 20 27 75 6e 64 65 66 69 6e 65 64 e === 'undefined
49640 27 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 '){.
49650 72 65 74 75 72 6e 20 75 6e 64 65 66 69 6e 65 64 return undefined
49660 0a 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 . } els
49670 65 20 69 66 20 28 68 61 73 50 72 6f 70 65 72 74 e if (hasPropert
49680 79 28 62 6c 6f 63 6b 43 6f 6e 74 65 78 74 2c 20 y(blockContext,
49690 6e 6f 64 65 2e 6e 61 6d 65 2c 20 70 72 69 6d 69 node.name, primi
496a0 74 69 76 65 73 29 29 7b 0a 20 20 20 20 20 20 20 tives)){.
496b0 20 20 20 20 20 72 65 74 75 72 6e 20 66 69 6e 61 return fina
496c0 6c 56 61 6c 75 65 28 62 6c 6f 63 6b 43 6f 6e 74 lValue(blockCont
496d0 65 78 74 5b 6e 6f 64 65 2e 6e 61 6d 65 5d 29 0a ext[node.name]).
496e0 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
496f0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 {. t
49700 68 72 6f 77 20 6e 65 77 20 52 65 66 65 72 65 6e hrow new Referen
49710 63 65 45 72 72 6f 72 28 6e 6f 64 65 2e 6e 61 6d ceError(node.nam
49720 65 20 2b 20 27 20 69 73 20 6e 6f 74 20 64 65 66 e + ' is not def
49730 69 6e 65 64 27 29 0a 20 20 20 20 20 20 20 20 20 ined').
49740 20 7d 0a 0a 20 20 20 20 20 20 20 20 63 61 73 65 }.. case
49750 20 27 43 61 6c 6c 45 78 70 72 65 73 73 69 6f 6e 'CallExpression
49760 27 3a 0a 0a 20 20 20 20 20 20 20 20 20 20 76 61 ':.. va
49770 72 20 61 72 67 73 20 3d 20 6e 6f 64 65 2e 61 72 r args = node.ar
49780 67 75 6d 65 6e 74 73 2e 6d 61 70 28 66 75 6e 63 guments.map(func
49790 74 69 6f 6e 28 61 72 67 29 7b 0a 20 20 20 20 20 tion(arg){.
497a0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 77 61 return wa
497b0 6c 6b 28 61 72 67 29 0a 20 20 20 20 20 20 20 20 lk(arg).
497c0 20 20 7d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 });.
497d0 76 61 72 20 6f 62 6a 65 63 74 20 3d 20 6e 75 6c var object = nul
497e0 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 76 61 72 l;. var
497f0 20 74 61 72 67 65 74 20 3d 20 77 61 6c 6b 28 6e target = walk(n
49800 6f 64 65 2e 63 61 6c 6c 65 65 29 3b 0a 0a 20 20 ode.callee);..
49810 20 20 20 20 20 20 20 20 69 66 20 28 6e 6f 64 65 if (node
49820 2e 63 61 6c 6c 65 65 2e 74 79 70 65 20 3d 3d 3d .callee.type ===
49830 20 27 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 'MemberExpressi
49840 6f 6e 27 29 7b 0a 20 20 20 20 20 20 20 20 20 20 on'){.
49850 20 20 6f 62 6a 65 63 74 20 3d 20 77 61 6c 6b 28 object = walk(
49860 6e 6f 64 65 2e 63 61 6c 6c 65 65 2e 6f 62 6a 65 node.callee.obje
49870 63 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 7d ct);. }
49880 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 . retur
49890 6e 20 74 61 72 67 65 74 2e 61 70 70 6c 79 28 6f n target.apply(o
498a0 62 6a 65 63 74 2c 20 61 72 67 73 29 0a 0a 20 20 bject, args)..
498b0 20 20 20 20 20 20 63 61 73 65 20 27 4d 65 6d 62 case 'Memb
498c0 65 72 45 78 70 72 65 73 73 69 6f 6e 27 3a 0a 20 erExpression':.
498d0 20 20 20 20 20 20 20 20 20 76 61 72 20 6f 62 6a var obj
498e0 20 3d 20 77 61 6c 6b 28 6e 6f 64 65 2e 6f 62 6a = walk(node.obj
498f0 65 63 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ect);.
49900 69 66 20 28 6e 6f 64 65 2e 63 6f 6d 70 75 74 65 if (node.compute
49910 64 29 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 d){.
49920 76 61 72 20 70 72 6f 70 20 3d 20 77 61 6c 6b 28 var prop = walk(
49930 6e 6f 64 65 2e 70 72 6f 70 65 72 74 79 29 3b 0a node.property);.
49940 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
49950 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 {. v
49960 61 72 20 70 72 6f 70 20 3d 20 6e 6f 64 65 2e 70 ar prop = node.p
49970 72 6f 70 65 72 74 79 2e 6e 61 6d 65 3b 0a 20 20 roperty.name;.
49980 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 }.
49990 20 20 20 20 6f 62 6a 20 3d 20 70 72 69 6d 69 74 obj = primit
499a0 69 76 65 73 2e 67 65 74 50 72 6f 70 65 72 74 79 ives.getProperty
499b0 4f 62 6a 65 63 74 28 6f 62 6a 2c 20 70 72 6f 70 Object(obj, prop
499c0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 );. ret
499d0 75 72 6e 20 63 68 65 63 6b 56 61 6c 75 65 28 6f urn checkValue(o
499e0 62 6a 5b 70 72 6f 70 5d 29 3b 0a 0a 20 20 20 20 bj[prop]);..
499f0 20 20 20 20 63 61 73 65 20 27 43 6f 6e 64 69 74 case 'Condit
49a00 69 6f 6e 61 6c 45 78 70 72 65 73 73 69 6f 6e 27 ionalExpression'
49a10 3a 0a 20 20 20 20 20 20 20 20 20 20 76 61 72 20 :. var
49a20 76 61 6c 20 3d 20 77 61 6c 6b 28 6e 6f 64 65 2e val = walk(node.
49a30 74 65 73 74 29 3b 0a 20 20 20 20 20 20 20 20 20 test);.
49a40 20 72 65 74 75 72 6e 20 76 61 6c 20 3f 20 77 61 return val ? wa
49a50 6c 6b 28 6e 6f 64 65 2e 63 6f 6e 73 65 71 75 65 lk(node.conseque
49a60 6e 74 29 20 3a 20 77 61 6c 6b 28 6e 6f 64 65 2e nt) : walk(node.
49a70 61 6c 74 65 72 6e 61 74 65 29 0a 0a 20 20 20 20 alternate)..
49a80 20 20 20 20 63 61 73 65 20 27 45 6d 70 74 79 53 case 'EmptyS
49a90 74 61 74 65 6d 65 6e 74 27 3a 0a 20 20 20 20 20 tatement':.
49aa0 20 20 20 20 20 72 65 74 75 72 6e 0a 0a 20 20 20 return..
49ab0 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 default:.
49ac0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 75 return u
49ad0 6e 73 75 70 70 6f 72 74 65 64 45 78 70 72 65 73 nsupportedExpres
49ae0 73 69 6f 6e 28 6e 6f 64 65 29 0a 20 20 20 20 20 sion(node).
49af0 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f }. }.. //
49b00 20 73 61 66 65 6c 79 20 72 65 74 72 69 65 76 65 safely retrieve
49b10 20 61 20 76 61 6c 75 65 0a 20 20 20 20 66 75 6e a value. fun
49b20 63 74 69 6f 6e 20 63 68 65 63 6b 56 61 6c 75 65 ction checkValue
49b30 28 76 61 6c 75 65 29 7b 0a 20 20 20 20 20 20 69 (value){. i
49b40 66 20 28 76 61 6c 75 65 20 3d 3d 3d 20 46 75 6e f (value === Fun
49b50 63 74 69 6f 6e 29 7b 0a 20 20 20 20 20 20 20 20 ction){.
49b60 76 61 6c 75 65 20 3d 20 73 61 66 65 46 75 6e 63 value = safeFunc
49b70 74 69 6f 6e 3b 0a 20 20 20 20 20 20 7d 0a 20 20 tion;. }.
49b80 20 20 20 20 72 65 74 75 72 6e 20 66 69 6e 61 6c return final
49b90 56 61 6c 75 65 28 76 61 6c 75 65 29 0a 20 20 20 Value(value).
49ba0 20 7d 0a 0a 20 20 20 20 2f 2f 20 62 6c 6f 63 6b }.. // block
49bb0 20 73 63 6f 70 65 20 63 6f 6e 74 65 78 74 20 63 scope context c
49bc0 6f 6e 74 72 6f 6c 0a 20 20 20 20 66 75 6e 63 74 ontrol. funct
49bd0 69 6f 6e 20 65 6e 74 65 72 42 6c 6f 63 6b 28 29 ion enterBlock()
49be0 7b 0a 20 20 20 20 20 20 62 6c 6f 63 6b 43 6f 6e {. blockCon
49bf0 74 65 78 74 20 3d 20 4f 62 6a 65 63 74 2e 63 72 text = Object.cr
49c00 65 61 74 65 28 62 6c 6f 63 6b 43 6f 6e 74 65 78 eate(blockContex
49c10 74 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 75 t);. }. fu
49c20 6e 63 74 69 6f 6e 20 6c 65 61 76 65 42 6c 6f 63 nction leaveBloc
49c30 6b 28 29 7b 0a 20 20 20 20 20 20 62 6c 6f 63 6b k(){. block
49c40 43 6f 6e 74 65 78 74 20 3d 20 4f 62 6a 65 63 74 Context = Object
49c50 2e 67 65 74 50 72 6f 74 6f 74 79 70 65 4f 66 28 .getPrototypeOf(
49c60 62 6c 6f 63 6b 43 6f 6e 74 65 78 74 29 3b 0a 20 blockContext);.
49c70 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 73 65 74 }.. // set
49c80 20 61 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 a value in the
49c90 73 70 65 63 69 66 69 65 64 20 63 6f 6e 74 65 78 specified contex
49ca0 74 20 69 66 20 61 6c 6c 6f 77 65 64 0a 20 20 20 t if allowed.
49cb0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 61 6c function setVal
49cc0 75 65 28 6f 62 6a 65 63 74 2c 20 6c 65 66 74 2c ue(object, left,
49cd0 20 72 69 67 68 74 2c 20 6f 70 65 72 61 74 6f 72 right, operator
49ce0 29 7b 0a 20 20 20 20 20 20 76 61 72 20 6e 61 6d ){. var nam
49cf0 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 20 20 20 e = null;..
49d00 20 69 66 20 28 6c 65 66 74 2e 74 79 70 65 20 3d if (left.type =
49d10 3d 3d 20 27 49 64 65 6e 74 69 66 69 65 72 27 29 == 'Identifier')
49d20 7b 0a 20 20 20 20 20 20 20 20 6e 61 6d 65 20 3d {. name =
49d30 20 6c 65 66 74 2e 6e 61 6d 65 3b 0a 20 20 20 20 left.name;.
49d40 20 20 20 20 2f 2f 20 68 61 6e 64 6c 65 20 70 61 // handle pa
49d50 72 65 6e 74 20 63 6f 6e 74 65 78 74 20 73 68 61 rent context sha
49d60 64 6f 77 69 6e 67 0a 20 20 20 20 20 20 20 20 6f dowing. o
49d70 62 6a 65 63 74 20 3d 20 6f 62 6a 65 63 74 46 6f bject = objectFo
49d80 72 4b 65 79 28 6f 62 6a 65 63 74 2c 20 6e 61 6d rKey(object, nam
49d90 65 2c 20 70 72 69 6d 69 74 69 76 65 73 29 3b 0a e, primitives);.
49da0 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 } else if
49db0 28 6c 65 66 74 2e 74 79 70 65 20 3d 3d 3d 20 27 (left.type === '
49dc0 4d 65 6d 62 65 72 45 78 70 72 65 73 73 69 6f 6e MemberExpression
49dd0 27 29 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 '){. if (
49de0 6c 65 66 74 2e 63 6f 6d 70 75 74 65 64 29 7b 0a left.computed){.
49df0 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 3d name =
49e00 20 77 61 6c 6b 28 6c 65 66 74 2e 70 72 6f 70 65 walk(left.prope
49e10 72 74 79 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 rty);. }
49e20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 else {.
49e30 20 6e 61 6d 65 20 3d 20 6c 65 66 74 2e 70 72 6f name = left.pro
49e40 70 65 72 74 79 2e 6e 61 6d 65 3b 0a 20 20 20 20 perty.name;.
49e50 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 6f 62 }. ob
49e60 6a 65 63 74 20 3d 20 77 61 6c 6b 28 6c 65 66 74 ject = walk(left
49e70 2e 6f 62 6a 65 63 74 29 3b 0a 20 20 20 20 20 20 .object);.
49e80 7d 0a 0a 20 20 20 20 20 20 2f 2f 20 73 74 6f 70 }.. // stop
49e90 20 62 75 69 6c 74 20 69 6e 20 70 72 6f 70 65 72 built in proper
49ea0 74 69 65 73 20 66 72 6f 6d 20 62 65 69 6e 67 20 ties from being
49eb0 61 62 6c 65 20 74 6f 20 62 65 20 63 68 61 6e 67 able to be chang
49ec0 65 64 0a 20 20 20 20 20 20 69 66 20 28 63 61 6e ed. if (can
49ed0 53 65 74 50 72 6f 70 65 72 74 79 28 6f 62 6a 65 SetProperty(obje
49ee0 63 74 2c 20 6e 61 6d 65 2c 20 70 72 69 6d 69 74 ct, name, primit
49ef0 69 76 65 73 29 29 7b 0a 20 20 20 20 20 20 20 20 ives)){.
49f00 73 77 69 74 63 68 28 6f 70 65 72 61 74 6f 72 29 switch(operator)
49f10 20 7b 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 {. cas
49f20 65 20 75 6e 64 65 66 69 6e 65 64 3a 20 72 65 74 e undefined: ret
49f30 75 72 6e 20 6f 62 6a 65 63 74 5b 6e 61 6d 65 5d urn object[name]
49f40 20 3d 20 77 61 6c 6b 28 72 69 67 68 74 29 0a 20 = walk(right).
49f50 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 3d case '=
49f60 27 3a 20 20 72 65 74 75 72 6e 20 6f 62 6a 65 63 ': return objec
49f70 74 5b 6e 61 6d 65 5d 20 3d 20 77 61 6c 6b 28 72 t[name] = walk(r
49f80 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 ight).
49f90 63 61 73 65 20 27 2b 3d 27 3a 20 72 65 74 75 72 case '+=': retur
49fa0 6e 20 6f 62 6a 65 63 74 5b 6e 61 6d 65 5d 20 2b n object[name] +
49fb0 3d 20 77 61 6c 6b 28 72 69 67 68 74 29 0a 20 20 = walk(right).
49fc0 20 20 20 20 20 20 20 20 63 61 73 65 20 27 2d 3d case '-=
49fd0 27 3a 20 72 65 74 75 72 6e 20 6f 62 6a 65 63 74 ': return object
49fe0 5b 6e 61 6d 65 5d 20 2d 3d 20 77 61 6c 6b 28 72 [name] -= walk(r
49ff0 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 ight).
4a000 63 61 73 65 20 27 2b 2b 27 3a 20 72 65 74 75 72 case '++': retur
4a010 6e 20 6f 62 6a 65 63 74 5b 6e 61 6d 65 5d 2b 2b n object[name]++
4a020 0a 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 . case
4a030 27 2d 2d 27 3a 20 72 65 74 75 72 6e 20 6f 62 6a '--': return obj
4a040 65 63 74 5b 6e 61 6d 65 5d 2d 2d 0a 20 20 20 20 ect[name]--.
4a050 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 }. }..
4a060 20 20 20 7d 0a 0a 20 20 7d 0a 0a 20 20 2f 2f 20 }.. }.. //
4a070 77 68 65 6e 20 61 6e 20 75 6e 73 75 70 70 6f 72 when an unsuppor
4a080 74 65 64 20 65 78 70 72 65 73 73 69 6f 6e 20 69 ted expression i
4a090 73 20 65 6e 63 6f 75 6e 74 65 72 65 64 2c 20 74 s encountered, t
4a0a0 68 72 6f 77 20 61 6e 20 65 72 72 6f 72 0a 20 20 hrow an error.
4a0b0 66 75 6e 63 74 69 6f 6e 20 75 6e 73 75 70 70 6f function unsuppo
4a0c0 72 74 65 64 45 78 70 72 65 73 73 69 6f 6e 28 6e rtedExpression(n
4a0d0 6f 64 65 29 7b 0a 20 20 20 20 63 6f 6e 73 6f 6c ode){. consol
4a0e0 65 2e 65 72 72 6f 72 28 6e 6f 64 65 29 3b 0a 20 e.error(node);.
4a0f0 20 20 20 76 61 72 20 65 72 72 20 3d 20 6e 65 77 var err = new
4a100 20 45 72 72 6f 72 28 27 55 6e 73 75 70 70 6f 72 Error('Unsuppor
4a110 74 65 64 20 65 78 70 72 65 73 73 69 6f 6e 3a 20 ted expression:
4a120 27 20 2b 20 6e 6f 64 65 2e 74 79 70 65 29 3b 0a ' + node.type);.
4a130 20 20 20 20 65 72 72 2e 6e 6f 64 65 20 3d 20 6e err.node = n
4a140 6f 64 65 3b 0a 20 20 20 20 74 68 72 6f 77 20 65 ode;. throw e
4a150 72 72 0a 20 20 7d 0a 0a 20 20 2f 2f 20 77 61 6c rr. }.. // wal
4a160 6b 20 61 20 70 72 6f 76 69 64 65 64 20 6f 62 6a k a provided obj
4a170 65 63 74 27 73 20 70 72 6f 74 6f 74 79 70 61 6c ect's prototypal
4a180 20 68 69 65 72 61 72 63 68 79 20 74 6f 20 72 65 hierarchy to re
4a190 74 72 69 65 76 65 20 61 6e 20 69 6e 68 65 72 69 trieve an inheri
4a1a0 74 65 64 20 6f 62 6a 65 63 74 0a 20 20 66 75 6e ted object. fun
4a1b0 63 74 69 6f 6e 20 6f 62 6a 65 63 74 46 6f 72 4b ction objectForK
4a1c0 65 79 28 6f 62 6a 65 63 74 2c 20 6b 65 79 2c 20 ey(object, key,
4a1d0 70 72 69 6d 69 74 69 76 65 73 29 7b 0a 20 20 20 primitives){.
4a1e0 20 76 61 72 20 70 72 6f 74 6f 20 3d 20 70 72 69 var proto = pri
4a1f0 6d 69 74 69 76 65 73 2e 67 65 74 50 72 6f 74 6f mitives.getProto
4a200 74 79 70 65 4f 66 28 6f 62 6a 65 63 74 29 3b 0a typeOf(object);.
4a210 20 20 20 20 69 66 20 28 21 70 72 6f 74 6f 20 7c if (!proto |
4a220 7c 20 68 61 73 4f 77 6e 50 72 6f 70 65 72 74 79 | hasOwnProperty
4a230 28 6f 62 6a 65 63 74 2c 20 6b 65 79 29 29 7b 0a (object, key)){.
4a240 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 62 6a return obj
4a250 65 63 74 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b ect. } else {
4a260 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6f 62 . return ob
4a270 6a 65 63 74 46 6f 72 4b 65 79 28 70 72 6f 74 6f jectForKey(proto
4a280 2c 20 6b 65 79 2c 20 70 72 69 6d 69 74 69 76 65 , key, primitive
4a290 73 29 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 s). }. }..
4a2a0 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 72 6f 70 function hasProp
4a2b0 65 72 74 79 28 6f 62 6a 65 63 74 2c 20 6b 65 79 erty(object, key
4a2c0 2c 20 70 72 69 6d 69 74 69 76 65 73 29 7b 0a 20 , primitives){.
4a2d0 20 20 20 76 61 72 20 70 72 6f 74 6f 20 3d 20 70 var proto = p
4a2e0 72 69 6d 69 74 69 76 65 73 2e 67 65 74 50 72 6f rimitives.getPro
4a2f0 74 6f 74 79 70 65 4f 66 28 6f 62 6a 65 63 74 29 totypeOf(object)
4a300 3b 0a 20 20 20 20 76 61 72 20 68 61 73 4f 77 6e ;. var hasOwn
4a310 20 3d 20 68 61 73 4f 77 6e 50 72 6f 70 65 72 74 = hasOwnPropert
4a320 79 28 6f 62 6a 65 63 74 2c 20 6b 65 79 29 3b 0a y(object, key);.
4a330 20 20 20 20 69 66 20 28 6f 62 6a 65 63 74 5b 6b if (object[k
4a340 65 79 5d 20 21 3d 3d 20 75 6e 64 65 66 69 6e 65 ey] !== undefine
4a350 64 29 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e d){. return
4a360 20 74 72 75 65 0a 20 20 20 20 7d 20 65 6c 73 65 true. } else
4a370 20 69 66 20 28 21 70 72 6f 74 6f 20 7c 7c 20 68 if (!proto || h
4a380 61 73 4f 77 6e 29 7b 0a 20 20 20 20 20 20 72 65 asOwn){. re
4a390 74 75 72 6e 20 68 61 73 4f 77 6e 0a 20 20 20 20 turn hasOwn.
4a3a0 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 72 } else {. r
4a3b0 65 74 75 72 6e 20 68 61 73 50 72 6f 70 65 72 74 eturn hasPropert
4a3c0 79 28 70 72 6f 74 6f 2c 20 6b 65 79 2c 20 70 72 y(proto, key, pr
4a3d0 69 6d 69 74 69 76 65 73 29 0a 20 20 20 20 7d 0a imitives). }.
4a3e0 20 20 7d 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 }.. function
4a3f0 68 61 73 4f 77 6e 50 72 6f 70 65 72 74 79 28 6f hasOwnProperty(o
4a400 62 6a 65 63 74 2c 20 6b 65 79 29 7b 0a 20 20 20 bject, key){.
4a410 20 72 65 74 75 72 6e 20 4f 62 6a 65 63 74 2e 70 return Object.p
4a420 72 6f 74 6f 74 79 70 65 2e 68 61 73 4f 77 6e 50 rototype.hasOwnP
4a430 72 6f 70 65 72 74 79 2e 63 61 6c 6c 28 6f 62 6a roperty.call(obj
4a440 65 63 74 2c 20 6b 65 79 29 0a 20 20 7d 0a 0a 20 ect, key). }..
4a450 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 65 72 function proper
4a460 74 79 49 73 45 6e 75 6d 65 72 61 62 6c 65 28 6f tyIsEnumerable(o
4a470 62 6a 65 63 74 2c 20 6b 65 79 29 7b 0a 20 20 20 bject, key){.
4a480 20 72 65 74 75 72 6e 20 4f 62 6a 65 63 74 2e 70 return Object.p
4a490 72 6f 74 6f 74 79 70 65 2e 70 72 6f 70 65 72 74 rototype.propert
4a4a0 79 49 73 45 6e 75 6d 65 72 61 62 6c 65 2e 63 61 yIsEnumerable.ca
4a4b0 6c 6c 28 6f 62 6a 65 63 74 2c 20 6b 65 79 29 0a ll(object, key).
4a4c0 20 20 7d 0a 0a 0a 20 20 2f 2f 20 64 65 74 65 72 }... // deter
4a4d0 6d 69 6e 65 20 69 66 20 77 65 20 68 61 76 65 20 mine if we have
4a4e0 77 72 69 74 65 20 61 63 63 65 73 73 20 74 6f 20 write access to
4a4f0 61 20 70 72 6f 70 65 72 74 79 0a 20 20 66 75 6e a property. fun
4a500 63 74 69 6f 6e 20 63 61 6e 53 65 74 50 72 6f 70 ction canSetProp
4a510 65 72 74 79 28 6f 62 6a 65 63 74 2c 20 70 72 6f erty(object, pro
4a520 70 65 72 74 79 2c 20 70 72 69 6d 69 74 69 76 65 perty, primitive
4a530 73 29 7b 0a 20 20 20 20 69 66 20 28 70 72 6f 70 s){. if (prop
4a540 65 72 74 79 20 3d 3d 3d 20 27 5f 5f 70 72 6f 74 erty === '__prot
4a550 6f 5f 5f 27 20 7c 7c 20 70 72 69 6d 69 74 69 76 o__' || primitiv
4a560 65 73 2e 69 73 50 72 69 6d 69 74 69 76 65 28 6f es.isPrimitive(o
4a570 62 6a 65 63 74 29 29 7b 0a 20 20 20 20 20 20 72 bject)){. r
4a580 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 eturn false.
4a590 7d 20 65 6c 73 65 20 69 66 20 28 6f 62 6a 65 63 } else if (objec
4a5a0 74 20 21 3d 20 6e 75 6c 6c 29 7b 0a 0a 20 20 20 t != null){..
4a5b0 20 20 20 69 66 20 28 68 61 73 4f 77 6e 50 72 6f if (hasOwnPro
4a5c0 70 65 72 74 79 28 6f 62 6a 65 63 74 2c 20 70 72 perty(object, pr
4a5d0 6f 70 65 72 74 79 29 29 7b 0a 20 20 20 20 20 20 operty)){.
4a5e0 20 20 69 66 20 28 70 72 6f 70 65 72 74 79 49 73 if (propertyIs
4a5f0 45 6e 75 6d 65 72 61 62 6c 65 28 6f 62 6a 65 63 Enumerable(objec
4a600 74 2c 20 70 72 6f 70 65 72 74 79 29 29 7b 0a 20 t, property)){.
4a610 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
4a620 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 20 65 true. } e
4a630 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 lse {.
4a640 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 return false.
4a650 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 20 65 }. } e
4a660 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 72 65 lse {. re
4a670 74 75 72 6e 20 63 61 6e 53 65 74 50 72 6f 70 65 turn canSetPrope
4a680 72 74 79 28 70 72 69 6d 69 74 69 76 65 73 2e 67 rty(primitives.g
4a690 65 74 50 72 6f 74 6f 74 79 70 65 4f 66 28 6f 62 etPrototypeOf(ob
4a6a0 6a 65 63 74 29 2c 20 70 72 6f 70 65 72 74 79 2c ject), property,
4a6b0 20 70 72 69 6d 69 74 69 76 65 73 29 0a 20 20 20 primitives).
4a6c0 20 20 20 7d 0a 0a 20 20 20 20 7d 20 65 6c 73 65 }.. } else
4a6d0 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 {. return
4a6e0 74 72 75 65 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a true. }. }..
4a6f0 20 20 2f 2f 20 67 65 6e 65 72 61 74 65 20 61 20 // generate a
4a700 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 73 70 function with sp
4a710 65 63 69 66 69 65 64 20 63 6f 6e 74 65 78 74 0a ecified context.
4a720 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 75 function getFu
4a730 6e 63 74 69 6f 6e 28 62 6f 64 79 2c 20 70 61 72 nction(body, par
4a740 61 6d 73 2c 20 70 61 72 65 6e 74 43 6f 6e 74 65 ams, parentConte
4a750 78 74 29 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 xt){. return
4a760 66 75 6e 63 74 69 6f 6e 28 29 7b 0a 20 20 20 20 function(){.
4a770 20 20 76 61 72 20 63 6f 6e 74 65 78 74 20 3d 20 var context =
4a780 4f 62 6a 65 63 74 2e 63 72 65 61 74 65 28 70 61 Object.create(pa
4a790 72 65 6e 74 43 6f 6e 74 65 78 74 29 2c 0a 20 20 rentContext),.
4a7a0 20 20 20 20 20 20 67 20 3d 20 67 65 74 47 6c 6f g = getGlo
4a7b0 62 61 6c 28 29 3b 0a 0a 20 20 20 20 20 20 63 6f bal();.. co
4a7c0 6e 74 65 78 74 5b 27 77 69 6e 64 6f 77 27 5d 20 ntext['window']
4a7d0 3d 20 63 6f 6e 74 65 78 74 5b 27 67 6c 6f 62 61 = context['globa
4a7e0 6c 27 5d 20 3d 20 67 3b 0a 0a 20 20 20 20 20 20 l'] = g;..
4a7f0 69 66 20 28 74 68 69 73 20 3d 3d 20 67 29 20 7b if (this == g) {
4a800 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 . context
4a810 5b 27 74 68 69 73 27 5d 20 3d 20 6e 75 6c 6c 3b ['this'] = null;
4a820 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a . } else {.
4a830 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 5b context[
4a840 27 74 68 69 73 27 5d 20 3d 20 74 68 69 73 3b 0a 'this'] = this;.
4a850 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 2f 2f }. //
4a860 20 6e 6f 72 6d 61 6c 69 7a 65 20 61 72 67 75 6d normalize argum
4a870 65 6e 74 73 20 61 72 72 61 79 0a 20 20 20 20 20 ents array.
4a880 20 76 61 72 20 61 72 67 73 20 3d 20 41 72 72 61 var args = Arra
4a890 79 2e 70 72 6f 74 6f 74 79 70 65 2e 73 6c 69 63 y.prototype.slic
4a8a0 65 2e 63 61 6c 6c 28 61 72 67 75 6d 65 6e 74 73 e.call(arguments
4a8b0 29 3b 0a 20 20 20 20 20 20 63 6f 6e 74 65 78 74 );. context
4a8c0 5b 27 61 72 67 75 6d 65 6e 74 73 27 5d 20 3d 20 ['arguments'] =
4a8d0 61 72 67 75 6d 65 6e 74 73 3b 0a 20 20 20 20 20 arguments;.
4a8e0 20 61 72 67 73 2e 66 6f 72 45 61 63 68 28 66 75 args.forEach(fu
4a8f0 6e 63 74 69 6f 6e 28 61 72 67 2c 69 64 78 29 7b nction(arg,idx){
4a900 0a 20 20 20 20 20 20 20 20 76 61 72 20 70 61 72 . var par
4a910 61 6d 20 3d 20 70 61 72 61 6d 73 5b 69 64 78 5d am = params[idx]
4a920 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 70 61 ;. if (pa
4a930 72 61 6d 29 7b 0a 20 20 20 20 20 20 20 20 20 20 ram){.
4a940 63 6f 6e 74 65 78 74 5b 70 61 72 61 6d 5d 20 3d context[param] =
4a950 20 61 72 67 3b 0a 20 20 20 20 20 20 20 20 7d 0a arg;. }.
4a960 20 20 20 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 });.
4a970 76 61 72 20 72 65 73 75 6c 74 20 3d 20 65 76 61 var result = eva
4a980 6c 75 61 74 65 41 73 74 28 62 6f 64 79 2c 20 63 luateAst(body, c
4a990 6f 6e 74 65 78 74 29 3b 0a 0a 20 20 20 20 20 20 ontext);..
4a9a0 69 66 20 28 72 65 73 75 6c 74 20 69 6e 73 74 61 if (result insta
4a9b0 6e 63 65 6f 66 20 52 65 74 75 72 6e 56 61 6c 75 nceof ReturnValu
4a9c0 65 29 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 e){. retu
4a9d0 72 6e 20 72 65 73 75 6c 74 2e 76 61 6c 75 65 0a rn result.value.
4a9e0 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 }. }.
4a9f0 7d 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 66 69 }.. function fi
4aa00 6e 61 6c 56 61 6c 75 65 28 76 61 6c 75 65 29 7b nalValue(value){
4aa10 0a 20 20 20 20 69 66 20 28 76 61 6c 75 65 20 69 . if (value i
4aa20 6e 73 74 61 6e 63 65 6f 66 20 52 65 74 75 72 6e nstanceof Return
4aa30 56 61 6c 75 65 29 7b 0a 20 20 20 20 20 20 72 65 Value){. re
4aa40 74 75 72 6e 20 76 61 6c 75 65 2e 76 61 6c 75 65 turn value.value
4aa50 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 . }. retur
4aa60 6e 20 76 61 6c 75 65 0a 20 20 7d 0a 0a 20 20 2f n value. }.. /
4aa70 2f 20 67 65 74 20 74 68 65 20 6e 61 6d 65 20 6f / get the name o
4aa80 66 20 61 6e 20 69 64 65 6e 74 69 66 69 65 72 0a f an identifier.
4aa90 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 function getNa
4aaa0 6d 65 28 69 64 65 6e 74 69 66 69 65 72 29 7b 0a me(identifier){.
4aab0 20 20 20 20 72 65 74 75 72 6e 20 69 64 65 6e 74 return ident
4aac0 69 66 69 65 72 2e 6e 61 6d 65 0a 20 20 7d 0a 0a ifier.name. }..
4aad0 20 20 2f 2f 20 61 20 52 65 74 75 72 6e 56 61 6c // a ReturnVal
4aae0 75 65 20 73 74 72 75 63 74 20 66 6f 72 20 64 69 ue struct for di
4aaf0 66 66 65 72 65 6e 74 69 61 74 69 6e 67 20 62 65 fferentiating be
4ab00 74 77 65 65 6e 20 65 78 70 72 65 73 73 69 6f 6e tween expression
4ab10 20 72 65 73 75 6c 74 20 61 6e 64 20 72 65 74 75 result and retu
4ab20 72 6e 20 73 74 61 74 65 6d 65 6e 74 0a 20 20 66 rn statement. f
4ab30 75 6e 63 74 69 6f 6e 20 52 65 74 75 72 6e 56 61 unction ReturnVa
4ab40 6c 75 65 28 74 79 70 65 2c 20 76 61 6c 75 65 29 lue(type, value)
4ab50 7b 0a 20 20 20 20 74 68 69 73 2e 74 79 70 65 20 {. this.type
4ab60 3d 20 74 79 70 65 3b 0a 20 20 20 20 74 68 69 73 = type;. this
4ab70 2e 76 61 6c 75 65 20 3d 20 76 61 6c 75 65 3b 0a .value = value;.
4ab80 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
4ab90 54 68 65 20 72 69 6f 74 20 74 65 6d 70 6c 61 74 The riot templat
4aba0 65 20 65 6e 67 69 6e 65 0a 20 20 20 2a 20 40 76 e engine. * @v
4abb0 65 72 73 69 6f 6e 20 76 33 2e 30 2e 38 0a 20 20 ersion v3.0.8.
4abc0 20 2a 2f 0a 0a 20 20 76 61 72 20 73 6b 69 70 52 */.. var skipR
4abd0 65 67 65 78 20 3d 20 28 66 75 6e 63 74 69 6f 6e egex = (function
4abe0 20 28 29 20 7b 20 2f 2f 65 73 6c 69 6e 74 2d 64 () { //eslint-d
4abf0 69 73 61 62 6c 65 2d 6c 69 6e 65 20 6e 6f 2d 75 isable-line no-u
4ac00 6e 75 73 65 64 2d 76 61 72 73 0a 0a 20 20 20 20 nused-vars..
4ac10 76 61 72 20 62 65 66 6f 72 65 52 65 43 68 61 72 var beforeReChar
4ac20 73 20 3d 20 27 5b 7b 28 2c 3b 3a 3f 3d 7c 26 21 s = '[{(,;:?=|&!
4ac30 5e 7e 3e 25 2a 2f 27 3b 0a 0a 20 20 20 20 76 61 ^~>%*/';.. va
4ac40 72 20 62 65 66 6f 72 65 52 65 57 6f 72 64 73 20 r beforeReWords
4ac50 3d 20 5b 0a 20 20 20 20 20 20 27 63 61 73 65 27 = [. 'case'
4ac60 2c 0a 20 20 20 20 20 20 27 64 65 66 61 75 6c 74 ,. 'default
4ac70 27 2c 0a 20 20 20 20 20 20 27 64 6f 27 2c 0a 20 ',. 'do',.
4ac80 20 20 20 20 20 27 65 6c 73 65 27 2c 0a 20 20 20 'else',.
4ac90 20 20 20 27 69 6e 27 2c 0a 20 20 20 20 20 20 27 'in',. '
4aca0 69 6e 73 74 61 6e 63 65 6f 66 27 2c 0a 20 20 20 instanceof',.
4acb0 20 20 20 27 70 72 65 66 69 78 27 2c 0a 20 20 20 'prefix',.
4acc0 20 20 20 27 72 65 74 75 72 6e 27 2c 0a 20 20 20 'return',.
4acd0 20 20 20 27 74 79 70 65 6f 66 27 2c 0a 20 20 20 'typeof',.
4ace0 20 20 20 27 76 6f 69 64 27 2c 0a 20 20 20 20 20 'void',.
4acf0 20 27 79 69 65 6c 64 27 0a 20 20 20 20 5d 3b 0a 'yield'. ];.
4ad00 0a 20 20 20 20 76 61 72 20 77 6f 72 64 73 4c 61 . var wordsLa
4ad10 73 74 43 68 61 72 20 3d 20 62 65 66 6f 72 65 52 stChar = beforeR
4ad20 65 57 6f 72 64 73 2e 72 65 64 75 63 65 28 66 75 eWords.reduce(fu
4ad30 6e 63 74 69 6f 6e 20 28 73 2c 20 77 29 20 7b 0a nction (s, w) {.
4ad40 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 20 2b return s +
4ad50 20 77 2e 73 6c 69 63 65 28 2d 31 29 0a 20 20 20 w.slice(-1).
4ad60 20 7d 2c 20 27 27 29 3b 0a 0a 20 20 20 20 76 61 }, '');.. va
4ad70 72 20 52 45 5f 52 45 47 45 58 20 3d 20 2f 5e 5c r RE_REGEX = /^\
4ad80 2f 28 3f 3d 5b 5e 2a 3e 2f 5d 29 5b 5e 5b 2f 5c /(?=[^*>/])[^[/\
4ad90 5c 5d 2a 28 3f 3a 28 3f 3a 5c 5c 2e 7c 5c 5b 28 \]*(?:(?:\\.|\[(
4ada0 3f 3a 5c 5c 2e 7c 5b 5e 5c 5d 5c 5c 5d 2a 29 2a ?:\\.|[^\]\\]*)*
4adb0 5c 5d 29 5b 5e 5b 5c 5c 2f 5d 2a 29 2a 3f 5c 2f \])[^[\\/]*)*?\/
4adc0 5b 67 69 6d 75 79 5d 2a 2f 3b 0a 20 20 20 20 76 [gimuy]*/;. v
4add0 61 72 20 52 45 5f 56 4e 5f 43 48 41 52 20 3d 20 ar RE_VN_CHAR =
4ade0 2f 5b 24 5c 77 5d 2f 3b 0a 0a 20 20 20 20 66 75 /[$\w]/;.. fu
4adf0 6e 63 74 69 6f 6e 20 70 72 65 76 20 28 63 6f 64 nction prev (cod
4ae00 65 2c 20 70 6f 73 29 20 7b 0a 20 20 20 20 20 20 e, pos) {.
4ae10 77 68 69 6c 65 20 28 2d 2d 70 6f 73 20 3e 3d 20 while (--pos >=
4ae20 30 20 26 26 20 2f 5c 73 2f 2e 74 65 73 74 28 63 0 && /\s/.test(c
4ae30 6f 64 65 5b 70 6f 73 5d 29 29 7b 20 7d 0a 20 20 ode[pos])){ }.
4ae40 20 20 20 20 72 65 74 75 72 6e 20 70 6f 73 0a 20 return pos.
4ae50 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 }.. functi
4ae60 6f 6e 20 5f 73 6b 69 70 52 65 67 65 78 20 28 63 on _skipRegex (c
4ae70 6f 64 65 2c 20 73 74 61 72 74 29 20 7b 0a 0a 20 ode, start) {..
4ae80 20 20 20 20 20 76 61 72 20 72 65 20 3d 20 2f 2e var re = /.
4ae90 2a 2f 67 3b 0a 20 20 20 20 20 20 76 61 72 20 70 */g;. var p
4aea0 6f 73 20 3d 20 72 65 2e 6c 61 73 74 49 6e 64 65 os = re.lastInde
4aeb0 78 20 3d 20 73 74 61 72 74 2b 2b 3b 0a 20 20 20 x = start++;.
4aec0 20 20 20 76 61 72 20 6d 61 74 63 68 20 3d 20 72 var match = r
4aed0 65 2e 65 78 65 63 28 63 6f 64 65 29 5b 30 5d 2e e.exec(code)[0].
4aee0 6d 61 74 63 68 28 52 45 5f 52 45 47 45 58 29 3b match(RE_REGEX);
4aef0 0a 0a 20 20 20 20 20 20 69 66 20 28 6d 61 74 63 .. if (matc
4af00 68 29 20 7b 0a 20 20 20 20 20 20 20 20 76 61 72 h) {. var
4af10 20 6e 65 78 74 20 3d 20 70 6f 73 20 2b 20 6d 61 next = pos + ma
4af20 74 63 68 5b 30 5d 2e 6c 65 6e 67 74 68 3b 0a 0a tch[0].length;..
4af30 20 20 20 20 20 20 20 20 70 6f 73 20 3d 20 70 72 pos = pr
4af40 65 76 28 63 6f 64 65 2c 20 70 6f 73 29 3b 0a 20 ev(code, pos);.
4af50 20 20 20 20 20 20 20 76 61 72 20 63 20 3d 20 63 var c = c
4af60 6f 64 65 5b 70 6f 73 5d 3b 0a 0a 20 20 20 20 20 ode[pos];..
4af70 20 20 20 69 66 20 28 70 6f 73 20 3c 20 30 20 7c if (pos < 0 |
4af80 7c 20 7e 62 65 66 6f 72 65 52 65 43 68 61 72 73 | ~beforeReChars
4af90 2e 69 6e 64 65 78 4f 66 28 63 29 29 20 7b 0a 20 .indexOf(c)) {.
4afa0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
4afb0 6e 65 78 74 0a 20 20 20 20 20 20 20 20 7d 0a 0a next. }..
4afc0 20 20 20 20 20 20 20 20 69 66 20 28 63 20 3d 3d if (c ==
4afd0 3d 20 27 2e 27 29 20 7b 0a 0a 20 20 20 20 20 20 = '.') {..
4afe0 20 20 20 20 69 66 20 28 63 6f 64 65 5b 70 6f 73 if (code[pos
4aff0 20 2d 20 31 5d 20 3d 3d 3d 20 27 2e 27 29 20 7b - 1] === '.') {
4b000 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 . sta
4b010 72 74 20 3d 20 6e 65 78 74 3b 0a 20 20 20 20 20 rt = next;.
4b020 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 }..
4b030 7d 20 65 6c 73 65 20 69 66 20 28 63 20 3d 3d 3d } else if (c ===
4b040 20 27 2b 27 20 7c 7c 20 63 20 3d 3d 3d 20 27 2d '+' || c === '-
4b050 27 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 20 ') {..
4b060 69 66 20 28 63 6f 64 65 5b 2d 2d 70 6f 73 5d 20 if (code[--pos]
4b070 21 3d 3d 20 63 20 7c 7c 0a 20 20 20 20 20 20 20 !== c ||.
4b080 20 20 20 20 20 20 20 28 70 6f 73 20 3d 20 70 72 (pos = pr
4b090 65 76 28 63 6f 64 65 2c 20 70 6f 73 29 29 20 3c ev(code, pos)) <
4b0a0 20 30 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 0 ||.
4b0b0 20 20 20 20 21 52 45 5f 56 4e 5f 43 48 41 52 2e !RE_VN_CHAR.
4b0c0 74 65 73 74 28 63 6f 64 65 5b 70 6f 73 5d 29 29 test(code[pos]))
4b0d0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 {. s
4b0e0 74 61 72 74 20 3d 20 6e 65 78 74 3b 0a 20 20 20 tart = next;.
4b0f0 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 }..
4b100 20 20 7d 20 65 6c 73 65 20 69 66 20 28 7e 77 6f } else if (~wo
4b110 72 64 73 4c 61 73 74 43 68 61 72 2e 69 6e 64 65 rdsLastChar.inde
4b120 78 4f 66 28 63 29 29 20 7b 0a 0a 20 20 20 20 20 xOf(c)) {..
4b130 20 20 20 20 20 76 61 72 20 65 6e 64 20 3d 20 70 var end = p
4b140 6f 73 20 2b 20 31 3b 0a 0a 20 20 20 20 20 20 20 os + 1;..
4b150 20 20 20 77 68 69 6c 65 20 28 2d 2d 70 6f 73 20 while (--pos
4b160 3e 3d 20 30 20 26 26 20 52 45 5f 56 4e 5f 43 48 >= 0 && RE_VN_CH
4b170 41 52 2e 74 65 73 74 28 63 6f 64 65 5b 70 6f 73 AR.test(code[pos
4b180 5d 29 29 7b 20 7d 0a 20 20 20 20 20 20 20 20 20 ])){ }.
4b190 20 69 66 20 28 7e 62 65 66 6f 72 65 52 65 57 6f if (~beforeReWo
4b1a0 72 64 73 2e 69 6e 64 65 78 4f 66 28 63 6f 64 65 rds.indexOf(code
4b1b0 2e 73 6c 69 63 65 28 70 6f 73 20 2b 20 31 2c 20 .slice(pos + 1,
4b1c0 65 6e 64 29 29 29 20 7b 0a 20 20 20 20 20 20 20 end))) {.
4b1d0 20 20 20 20 20 73 74 61 72 74 20 3d 20 6e 65 78 start = nex
4b1e0 74 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 t;. }.
4b1f0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d }. }
4b200 0a 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 .. return s
4b210 74 61 72 74 0a 20 20 20 20 7d 0a 0a 20 20 20 20 tart. }..
4b220 72 65 74 75 72 6e 20 5f 73 6b 69 70 52 65 67 65 return _skipRege
4b230 78 0a 0a 20 20 7d 29 28 29 3b 0a 0a 20 20 2f 2a x.. })();.. /*
4b240 2a 0a 20 20 20 2a 20 72 69 6f 74 2e 75 74 69 6c *. * riot.util
4b250 2e 62 72 61 63 6b 65 74 73 0a 20 20 20 2a 0a 20 .brackets. *.
4b260 20 20 2a 20 2d 20 60 62 72 61 63 6b 65 74 73 20 * - `brackets
4b270 20 20 20 60 20 2d 20 52 65 74 75 72 6e 73 20 61 ` - Returns a
4b280 20 73 74 72 69 6e 67 20 6f 72 20 72 65 67 65 78 string or regex
4b290 20 62 61 73 65 64 20 6f 6e 20 69 74 73 20 70 61 based on its pa
4b2a0 72 61 6d 65 74 65 72 0a 20 20 20 2a 20 2d 20 60 rameter. * - `
4b2b0 62 72 61 63 6b 65 74 73 2e 73 65 74 60 20 2d 20 brackets.set` -
4b2c0 43 68 61 6e 67 65 20 74 68 65 20 63 75 72 72 65 Change the curre
4b2d0 6e 74 20 72 69 6f 74 20 62 72 61 63 6b 65 74 73 nt riot brackets
4b2e0 0a 20 20 20 2a 0a 20 20 20 2a 20 40 6d 6f 64 75 . *. * @modu
4b2f0 6c 65 0a 20 20 20 2a 2f 0a 0a 20 20 2f 2a 20 67 le. */.. /* g
4b300 6c 6f 62 61 6c 20 72 69 6f 74 20 2a 2f 0a 0a 20 lobal riot */..
4b310 20 76 61 72 20 62 72 61 63 6b 65 74 73 20 3d 20 var brackets =
4b320 28 66 75 6e 63 74 69 6f 6e 20 28 55 4e 44 45 46 (function (UNDEF
4b330 29 20 7b 0a 0a 20 20 20 20 76 61 72 0a 20 20 20 ) {.. var.
4b340 20 20 20 52 45 47 4c 4f 42 20 3d 20 27 67 27 2c REGLOB = 'g',
4b350 0a 0a 20 20 20 20 20 20 52 5f 4d 4c 43 4f 4d 4d .. R_MLCOMM
4b360 53 20 3d 20 2f 5c 2f 5c 2a 5b 5e 2a 5d 2a 5c 2a S = /\/\*[^*]*\*
4b370 2b 28 3f 3a 5b 5e 2a 5c 2f 5d 5b 5e 2a 5d 2a 5c +(?:[^*\/][^*]*\
4b380 2a 2b 29 2a 5c 2f 2f 67 2c 0a 0a 20 20 20 20 20 *+)*\//g,..
4b390 20 52 5f 53 54 52 49 4e 47 53 20 3d 20 2f 22 5b R_STRINGS = /"[
4b3a0 5e 22 5c 5c 5d 2a 28 3f 3a 5c 5c 5b 5c 53 5c 73 ^"\\]*(?:\\[\S\s
4b3b0 5d 5b 5e 22 5c 5c 5d 2a 29 2a 22 7c 27 5b 5e 27 ][^"\\]*)*"|'[^'
4b3c0 5c 5c 5d 2a 28 3f 3a 5c 5c 5b 5c 53 5c 73 5d 5b \\]*(?:\\[\S\s][
4b3d0 5e 27 5c 5c 5d 2a 29 2a 27 7c 60 5b 5e 60 5c 5c ^'\\]*)*'|`[^`\\
4b3e0 5d 2a 28 3f 3a 5c 5c 5b 5c 53 5c 73 5d 5b 5e 60 ]*(?:\\[\S\s][^`
4b3f0 5c 5c 5d 2a 29 2a 60 2f 67 2c 0a 0a 20 20 20 20 \\]*)*`/g,..
4b400 20 20 53 5f 51 42 4c 4f 43 4b 53 20 3d 20 52 5f S_QBLOCKS = R_
4b410 53 54 52 49 4e 47 53 2e 73 6f 75 72 63 65 20 2b STRINGS.source +
4b420 20 27 7c 27 20 2b 0a 20 20 20 20 20 20 20 20 2f '|' +. /
4b430 28 3f 3a 5c 62 72 65 74 75 72 6e 5c 73 2b 7c 28 (?:\breturn\s+|(
4b440 3f 3a 5b 24 5c 77 5c 29 5c 5d 5d 7c 5c 2b 5c 2b ?:[$\w\)\]]|\+\+
4b450 7c 2d 2d 29 5c 73 2a 28 5c 2f 29 28 3f 21 5b 2a |--)\s*(\/)(?![*
4b460 5c 2f 5d 29 29 2f 2e 73 6f 75 72 63 65 20 2b 20 \/]))/.source +
4b470 27 7c 27 20 2b 0a 20 20 20 20 20 20 20 20 2f 5c '|' +. /\
4b480 2f 28 3f 3d 5b 5e 2a 5c 2f 5d 29 5b 5e 5b 5c 2f /(?=[^*\/])[^[\/
4b490 5c 5c 5d 2a 28 3f 3a 28 3f 3a 5c 5b 28 3f 3a 5c \\]*(?:(?:\[(?:\
4b4a0 5c 2e 7c 5b 5e 5c 5d 5c 5c 5d 2a 29 2a 5c 5d 7c \.|[^\]\\]*)*\]|
4b4b0 5c 5c 2e 29 5b 5e 5b 5c 2f 5c 5c 5d 2a 29 2a 3f \\.)[^[\/\\]*)*?
4b4c0 28 5b 5e 3c 5d 5c 2f 29 5b 67 69 6d 5d 2a 2f 2e ([^<]\/)[gim]*/.
4b4d0 73 6f 75 72 63 65 2c 0a 0a 20 20 20 20 20 20 55 source,.. U
4b4e0 4e 53 55 50 50 4f 52 54 45 44 20 3d 20 52 65 67 NSUPPORTED = Reg
4b4f0 45 78 70 28 27 5b 5c 5c 27 20 2b 20 27 78 30 30 Exp('[\\' + 'x00
4b500 2d 5c 5c 78 31 46 3c 3e 61 2d 7a 41 2d 5a 30 2d -\\x1F<>a-zA-Z0-
4b510 39 5c 27 22 2c 3b 5c 5c 5c 5c 5d 27 29 2c 0a 0a 9\'",;\\\\]'),..
4b520 20 20 20 20 20 20 4e 45 45 44 5f 45 53 43 41 50 NEED_ESCAP
4b530 45 20 3d 20 2f 28 3f 3d 5b 5b 5c 5d 28 29 2a 2b E = /(?=[[\]()*+
4b540 3f 2e 5e 24 7c 5d 29 2f 67 2c 0a 0a 20 20 20 20 ?.^$|])/g,..
4b550 20 20 53 5f 51 42 4c 4f 43 4b 32 20 3d 20 52 5f S_QBLOCK2 = R_
4b560 53 54 52 49 4e 47 53 2e 73 6f 75 72 63 65 20 2b STRINGS.source +
4b570 20 27 7c 27 20 2b 20 2f 28 5c 2f 29 28 3f 21 5b '|' + /(\/)(?![
4b580 2a 5c 2f 5d 29 2f 2e 73 6f 75 72 63 65 2c 0a 0a *\/])/.source,..
4b590 20 20 20 20 20 20 46 49 4e 44 42 52 41 43 45 53 FINDBRACES
4b5a0 20 3d 20 7b 0a 20 20 20 20 20 20 20 20 27 28 27 = {. '('
4b5b0 3a 20 52 65 67 45 78 70 28 27 28 5b 28 29 5d 29 : RegExp('([()])
4b5c0 7c 27 20 20 20 2b 20 53 5f 51 42 4c 4f 43 4b 32 |' + S_QBLOCK2
4b5d0 2c 20 52 45 47 4c 4f 42 29 2c 0a 20 20 20 20 20 , REGLOB),.
4b5e0 20 20 20 27 5b 27 3a 20 52 65 67 45 78 70 28 27 '[': RegExp('
4b5f0 28 5b 5b 5c 5c 5d 5d 29 7c 27 20 2b 20 53 5f 51 ([[\\]])|' + S_Q
4b600 42 4c 4f 43 4b 32 2c 20 52 45 47 4c 4f 42 29 2c BLOCK2, REGLOB),
4b610 0a 20 20 20 20 20 20 20 20 27 7b 27 3a 20 52 65 . '{': Re
4b620 67 45 78 70 28 27 28 5b 7b 7d 5d 29 7c 27 20 20 gExp('([{}])|'
4b630 20 2b 20 53 5f 51 42 4c 4f 43 4b 32 2c 20 52 45 + S_QBLOCK2, RE
4b640 47 4c 4f 42 29 0a 20 20 20 20 20 20 7d 2c 0a 0a GLOB). },..
4b650 20 20 20 20 20 20 44 45 46 41 55 4c 54 20 3d 20 DEFAULT =
4b660 27 7b 20 7d 27 3b 0a 0a 20 20 20 20 76 61 72 20 '{ }';.. var
4b670 5f 70 61 69 72 73 20 3d 20 5b 0a 20 20 20 20 20 _pairs = [.
4b680 20 27 7b 27 2c 20 27 7d 27 2c 0a 20 20 20 20 20 '{', '}',.
4b690 20 27 7b 27 2c 20 27 7d 27 2c 0a 20 20 20 20 20 '{', '}',.
4b6a0 20 2f 7b 5b 5e 7d 5d 2a 7d 2f 2c 0a 20 20 20 20 /{[^}]*}/,.
4b6b0 20 20 2f 5c 5c 28 5b 7b 7d 5d 29 2f 67 2c 0a 20 /\\([{}])/g,.
4b6c0 20 20 20 20 20 2f 5c 5c 28 7b 29 7c 7b 2f 67 2c /\\({)|{/g,
4b6d0 0a 20 20 20 20 20 20 52 65 67 45 78 70 28 27 5c . RegExp('\
4b6e0 5c 5c 5c 28 7d 29 7c 28 5b 5b 28 7b 5d 29 7c 28 \\\(})|([[({])|(
4b6f0 7d 29 7c 27 20 2b 20 53 5f 51 42 4c 4f 43 4b 32 })|' + S_QBLOCK2
4b700 2c 20 52 45 47 4c 4f 42 29 2c 0a 20 20 20 20 20 , REGLOB),.
4b710 20 44 45 46 41 55 4c 54 2c 0a 20 20 20 20 20 20 DEFAULT,.
4b720 2f 5e 5c 73 2a 7b 5c 5e 3f 5c 73 2a 28 5b 24 5c /^\s*{\^?\s*([$\
4b730 77 5d 2b 29 28 3f 3a 5c 73 2a 2c 5c 73 2a 28 5c w]+)(?:\s*,\s*(\
4b740 53 2b 29 29 3f 5c 73 2b 69 6e 5c 73 2b 28 5c 53 S+))?\s+in\s+(\S
4b750 2e 2a 29 5c 73 2a 7d 2f 2c 0a 20 20 20 20 20 20 .*)\s*}/,.
4b760 2f 28 5e 7c 5b 5e 5c 5c 5d 29 7b 3d 5b 5c 53 5c /(^|[^\\]){=[\S\
4b770 73 5d 2a 3f 7d 2f 0a 20 20 20 20 5d 3b 0a 0a 20 s]*?}/. ];..
4b780 20 20 20 76 61 72 0a 20 20 20 20 20 20 63 61 63 var. cac
4b790 68 65 64 42 72 61 63 6b 65 74 73 20 3d 20 55 4e hedBrackets = UN
4b7a0 44 45 46 2c 0a 20 20 20 20 20 20 5f 72 65 67 65 DEF,. _rege
4b7b0 78 2c 0a 20 20 20 20 20 20 5f 63 61 63 68 65 20 x,. _cache
4b7c0 3d 20 5b 5d 2c 0a 20 20 20 20 20 20 5f 73 65 74 = [],. _set
4b7d0 74 69 6e 67 73 3b 0a 0a 20 20 20 20 66 75 6e 63 tings;.. func
4b7e0 74 69 6f 6e 20 5f 6c 6f 6f 70 62 61 63 6b 20 28 tion _loopback (
4b7f0 72 65 29 20 7b 20 72 65 74 75 72 6e 20 72 65 20 re) { return re
4b800 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 }.. function
4b810 5f 72 65 77 72 69 74 65 20 28 72 65 2c 20 62 70 _rewrite (re, bp
4b820 29 20 7b 0a 20 20 20 20 20 20 69 66 20 28 21 62 ) {. if (!b
4b830 70 29 20 7b 20 62 70 20 3d 20 5f 63 61 63 68 65 p) { bp = _cache
4b840 3b 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e ; }. return
4b850 20 6e 65 77 20 52 65 67 45 78 70 28 0a 20 20 20 new RegExp(.
4b860 20 20 20 20 20 72 65 2e 73 6f 75 72 63 65 2e 72 re.source.r
4b870 65 70 6c 61 63 65 28 2f 7b 2f 67 2c 20 62 70 5b eplace(/{/g, bp[
4b880 32 5d 29 2e 72 65 70 6c 61 63 65 28 2f 7d 2f 67 2]).replace(/}/g
4b890 2c 20 62 70 5b 33 5d 29 2c 20 72 65 2e 67 6c 6f , bp[3]), re.glo
4b8a0 62 61 6c 20 3f 20 52 45 47 4c 4f 42 20 3a 20 27 bal ? REGLOB : '
4b8b0 27 0a 20 20 20 20 20 20 29 0a 20 20 20 20 7d 0a '. ). }.
4b8c0 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 63 . function _c
4b8d0 72 65 61 74 65 20 28 70 61 69 72 29 20 7b 0a 20 reate (pair) {.
4b8e0 20 20 20 20 20 69 66 20 28 70 61 69 72 20 3d 3d if (pair ==
4b8f0 3d 20 44 45 46 41 55 4c 54 29 20 7b 20 72 65 74 = DEFAULT) { ret
4b900 75 72 6e 20 5f 70 61 69 72 73 20 7d 0a 0a 20 20 urn _pairs }..
4b910 20 20 20 20 76 61 72 20 61 72 72 20 3d 20 70 61 var arr = pa
4b920 69 72 2e 73 70 6c 69 74 28 27 20 27 29 3b 0a 0a ir.split(' ');..
4b930 20 20 20 20 20 20 69 66 20 28 61 72 72 2e 6c 65 if (arr.le
4b940 6e 67 74 68 20 21 3d 3d 20 32 20 7c 7c 20 55 4e ngth !== 2 || UN
4b950 53 55 50 50 4f 52 54 45 44 2e 74 65 73 74 28 70 SUPPORTED.test(p
4b960 61 69 72 29 29 20 7b 0a 20 20 20 20 20 20 20 20 air)) {.
4b970 74 68 72 6f 77 20 6e 65 77 20 45 72 72 6f 72 28 throw new Error(
4b980 27 55 6e 73 75 70 70 6f 72 74 65 64 20 62 72 61 'Unsupported bra
4b990 63 6b 65 74 73 20 22 27 20 2b 20 70 61 69 72 20 ckets "' + pair
4b9a0 2b 20 27 22 27 29 0a 20 20 20 20 20 20 7d 0a 20 + '"'). }.
4b9b0 20 20 20 20 20 61 72 72 20 3d 20 61 72 72 2e 63 arr = arr.c
4b9c0 6f 6e 63 61 74 28 70 61 69 72 2e 72 65 70 6c 61 oncat(pair.repla
4b9d0 63 65 28 4e 45 45 44 5f 45 53 43 41 50 45 2c 20 ce(NEED_ESCAPE,
4b9e0 27 5c 5c 27 29 2e 73 70 6c 69 74 28 27 20 27 29 '\\').split(' ')
4b9f0 29 3b 0a 0a 20 20 20 20 20 20 61 72 72 5b 34 5d );.. arr[4]
4ba00 20 3d 20 5f 72 65 77 72 69 74 65 28 61 72 72 5b = _rewrite(arr[
4ba10 31 5d 2e 6c 65 6e 67 74 68 20 3e 20 31 20 3f 20 1].length > 1 ?
4ba20 2f 7b 5b 5c 53 5c 73 5d 2a 3f 7d 2f 20 3a 20 5f /{[\S\s]*?}/ : _
4ba30 70 61 69 72 73 5b 34 5d 2c 20 61 72 72 29 3b 0a pairs[4], arr);.
4ba40 20 20 20 20 20 20 61 72 72 5b 35 5d 20 3d 20 5f arr[5] = _
4ba50 72 65 77 72 69 74 65 28 70 61 69 72 2e 6c 65 6e rewrite(pair.len
4ba60 67 74 68 20 3e 20 33 20 3f 20 2f 5c 5c 28 7b 7c gth > 3 ? /\\({|
4ba70 7d 29 2f 67 20 3a 20 5f 70 61 69 72 73 5b 35 5d })/g : _pairs[5]
4ba80 2c 20 61 72 72 29 3b 0a 20 20 20 20 20 20 61 72 , arr);. ar
4ba90 72 5b 36 5d 20 3d 20 5f 72 65 77 72 69 74 65 28 r[6] = _rewrite(
4baa0 5f 70 61 69 72 73 5b 36 5d 2c 20 61 72 72 29 3b _pairs[6], arr);
4bab0 0a 20 20 20 20 20 20 61 72 72 5b 37 5d 20 3d 20 . arr[7] =
4bac0 52 65 67 45 78 70 28 27 5c 5c 5c 5c 28 27 20 2b RegExp('\\\\(' +
4bad0 20 61 72 72 5b 33 5d 20 2b 20 27 29 7c 28 5b 5b arr[3] + ')|([[
4bae0 28 7b 5d 29 7c 28 27 20 2b 20 61 72 72 5b 33 5d ({])|(' + arr[3]
4baf0 20 2b 20 27 29 7c 27 20 2b 20 53 5f 51 42 4c 4f + ')|' + S_QBLO
4bb00 43 4b 32 2c 20 52 45 47 4c 4f 42 29 3b 0a 20 20 CK2, REGLOB);.
4bb10 20 20 20 20 61 72 72 5b 38 5d 20 3d 20 70 61 69 arr[8] = pai
4bb20 72 3b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 r;. return
4bb30 61 72 72 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 arr. }.. f
4bb40 75 6e 63 74 69 6f 6e 20 5f 62 72 61 63 6b 65 74 unction _bracket
4bb50 73 20 28 72 65 4f 72 49 64 78 29 20 7b 0a 20 20 s (reOrIdx) {.
4bb60 20 20 20 20 72 65 74 75 72 6e 20 72 65 4f 72 49 return reOrI
4bb70 64 78 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 dx instanceof Re
4bb80 67 45 78 70 20 3f 20 5f 72 65 67 65 78 28 72 65 gExp ? _regex(re
4bb90 4f 72 49 64 78 29 20 3a 20 5f 63 61 63 68 65 5b OrIdx) : _cache[
4bba0 72 65 4f 72 49 64 78 5d 0a 20 20 20 20 7d 0a 0a reOrIdx]. }..
4bbb0 20 20 20 20 5f 62 72 61 63 6b 65 74 73 2e 73 70 _brackets.sp
4bbc0 6c 69 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 73 lit = function s
4bbd0 70 6c 69 74 20 28 73 74 72 2c 20 74 6d 70 6c 2c plit (str, tmpl,
4bbe0 20 5f 62 70 29 20 7b 0a 20 20 20 20 20 20 2f 2f _bp) {. //
4bbf0 20 69 73 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 istanbul ignore
4bc00 20 6e 65 78 74 3a 20 5f 62 70 20 69 73 20 66 6f next: _bp is fo
4bc10 72 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 0a 20 r the compiler.
4bc20 20 20 20 20 20 69 66 20 28 21 5f 62 70 29 20 7b if (!_bp) {
4bc30 20 5f 62 70 20 3d 20 5f 63 61 63 68 65 3b 20 7d _bp = _cache; }
4bc40 0a 0a 20 20 20 20 20 20 76 61 72 0a 20 20 20 20 .. var.
4bc50 20 20 20 20 70 61 72 74 73 20 3d 20 5b 5d 2c 0a parts = [],.
4bc60 20 20 20 20 20 20 20 20 6d 61 74 63 68 2c 0a 20 match,.
4bc70 20 20 20 20 20 20 20 69 73 65 78 70 72 2c 0a 20 isexpr,.
4bc80 20 20 20 20 20 20 20 73 74 61 72 74 2c 0a 20 20 start,.
4bc90 20 20 20 20 20 20 70 6f 73 2c 0a 20 20 20 20 20 pos,.
4bca0 20 20 20 72 65 20 3d 20 5f 62 70 5b 36 5d 3b 0a re = _bp[6];.
4bcb0 0a 20 20 20 20 20 20 76 61 72 20 71 62 6c 6f 63 . var qbloc
4bcc0 6b 73 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 76 ks = [];. v
4bcd0 61 72 20 70 72 65 76 53 74 72 20 3d 20 27 27 3b ar prevStr = '';
4bce0 0a 20 20 20 20 20 20 76 61 72 20 6d 61 72 6b 2c . var mark,
4bcf0 20 6c 61 73 74 49 6e 64 65 78 3b 0a 0a 20 20 20 lastIndex;..
4bd00 20 20 20 69 73 65 78 70 72 20 3d 20 73 74 61 72 isexpr = star
4bd10 74 20 3d 20 72 65 2e 6c 61 73 74 49 6e 64 65 78 t = re.lastIndex
4bd20 20 3d 20 30 3b 0a 0a 20 20 20 20 20 20 77 68 69 = 0;.. whi
4bd30 6c 65 20 28 28 6d 61 74 63 68 20 3d 20 72 65 2e le ((match = re.
4bd40 65 78 65 63 28 73 74 72 29 29 29 20 7b 0a 0a 20 exec(str))) {..
4bd50 20 20 20 20 20 20 20 6c 61 73 74 49 6e 64 65 78 lastIndex
4bd60 20 3d 20 72 65 2e 6c 61 73 74 49 6e 64 65 78 3b = re.lastIndex;
4bd70 0a 20 20 20 20 20 20 20 20 70 6f 73 20 3d 20 6d . pos = m
4bd80 61 74 63 68 2e 69 6e 64 65 78 3b 0a 0a 20 20 20 atch.index;..
4bd90 20 20 20 20 20 69 66 20 28 69 73 65 78 70 72 29 if (isexpr)
4bda0 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 20 69 66 {.. if
4bdb0 20 28 6d 61 74 63 68 5b 32 5d 29 20 7b 0a 0a 20 (match[2]) {..
4bdc0 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 63 var c
4bdd0 68 20 3d 20 6d 61 74 63 68 5b 32 5d 3b 0a 20 20 h = match[2];.
4bde0 20 20 20 20 20 20 20 20 20 20 76 61 72 20 72 65 var re
4bdf0 63 68 20 3d 20 46 49 4e 44 42 52 41 43 45 53 5b ch = FINDBRACES[
4be00 63 68 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ch];.
4be10 20 76 61 72 20 69 78 20 3d 20 31 3b 0a 0a 20 20 var ix = 1;..
4be20 20 20 20 20 20 20 20 20 20 20 72 65 63 68 2e 6c rech.l
4be30 61 73 74 49 6e 64 65 78 20 3d 20 6c 61 73 74 49 astIndex = lastI
4be40 6e 64 65 78 3b 0a 20 20 20 20 20 20 20 20 20 20 ndex;.
4be50 20 20 77 68 69 6c 65 20 28 28 6d 61 74 63 68 20 while ((match
4be60 3d 20 72 65 63 68 2e 65 78 65 63 28 73 74 72 29 = rech.exec(str)
4be70 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 )) {.
4be80 20 20 20 69 66 20 28 6d 61 74 63 68 5b 31 5d 29 if (match[1])
4be90 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
4bea0 20 20 20 69 66 20 28 6d 61 74 63 68 5b 31 5d 20 if (match[1]
4beb0 3d 3d 3d 20 63 68 29 20 7b 20 2b 2b 69 78 3b 20 === ch) { ++ix;
4bec0 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 }.
4bed0 20 20 65 6c 73 65 20 69 66 20 28 21 2d 2d 69 78 else if (!--ix
4bee0 29 20 7b 20 62 72 65 61 6b 20 7d 0a 20 20 20 20 ) { break }.
4bef0 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
4bf00 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
4bf10 20 20 20 72 65 63 68 2e 6c 61 73 74 49 6e 64 65 rech.lastInde
4bf20 78 20 3d 20 70 75 73 68 51 42 6c 6f 63 6b 28 6d x = pushQBlock(m
4bf30 61 74 63 68 2e 69 6e 64 65 78 2c 20 72 65 63 68 atch.index, rech
4bf40 2e 6c 61 73 74 49 6e 64 65 78 2c 20 6d 61 74 63 .lastIndex, matc
4bf50 68 5b 32 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 h[2]);.
4bf60 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 }.
4bf70 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 }.
4bf80 20 72 65 2e 6c 61 73 74 49 6e 64 65 78 20 3d 20 re.lastIndex =
4bf90 69 78 20 3f 20 73 74 72 2e 6c 65 6e 67 74 68 20 ix ? str.length
4bfa0 3a 20 72 65 63 68 2e 6c 61 73 74 49 6e 64 65 78 : rech.lastIndex
4bfb0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f ;. co
4bfc0 6e 74 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 ntinue.
4bfd0 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 69 66 }.. if
4bfe0 20 28 21 6d 61 74 63 68 5b 33 5d 29 20 7b 0a 20 (!match[3]) {.
4bff0 20 20 20 20 20 20 20 20 20 20 20 72 65 2e 6c 61 re.la
4c000 73 74 49 6e 64 65 78 20 3d 20 70 75 73 68 51 42 stIndex = pushQB
4c010 6c 6f 63 6b 28 70 6f 73 2c 20 6c 61 73 74 49 6e lock(pos, lastIn
4c020 64 65 78 2c 20 6d 61 74 63 68 5b 34 5d 29 3b 0a dex, match[4]);.
4c030 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 cont
4c040 69 6e 75 65 0a 20 20 20 20 20 20 20 20 20 20 7d inue. }
4c050 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 . }..
4c060 20 20 20 20 69 66 20 28 21 6d 61 74 63 68 5b 31 if (!match[1
4c070 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 75 ]) {. u
4c080 6e 65 73 63 61 70 65 53 74 72 28 73 74 72 2e 73 nescapeStr(str.s
4c090 6c 69 63 65 28 73 74 61 72 74 2c 20 70 6f 73 29 lice(start, pos)
4c0a0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 73 74 61 );. sta
4c0b0 72 74 20 3d 20 72 65 2e 6c 61 73 74 49 6e 64 65 rt = re.lastInde
4c0c0 78 3b 0a 20 20 20 20 20 20 20 20 20 20 72 65 20 x;. re
4c0d0 3d 20 5f 62 70 5b 36 20 2b 20 28 69 73 65 78 70 = _bp[6 + (isexp
4c0e0 72 20 5e 3d 20 31 29 5d 3b 0a 20 20 20 20 20 20 r ^= 1)];.
4c0f0 20 20 20 20 72 65 2e 6c 61 73 74 49 6e 64 65 78 re.lastIndex
4c100 20 3d 20 73 74 61 72 74 3b 0a 20 20 20 20 20 20 = start;.
4c110 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 }. }..
4c120 20 20 20 69 66 20 28 73 74 72 20 26 26 20 73 74 if (str && st
4c130 61 72 74 20 3c 20 73 74 72 2e 6c 65 6e 67 74 68 art < str.length
4c140 29 20 7b 0a 20 20 20 20 20 20 20 20 75 6e 65 73 ) {. unes
4c150 63 61 70 65 53 74 72 28 73 74 72 2e 73 6c 69 63 capeStr(str.slic
4c160 65 28 73 74 61 72 74 29 29 3b 0a 20 20 20 20 20 e(start));.
4c170 20 7d 0a 0a 20 20 20 20 20 20 70 61 72 74 73 2e }.. parts.
4c180 71 62 6c 6f 63 6b 73 20 3d 20 71 62 6c 6f 63 6b qblocks = qblock
4c190 73 3b 0a 0a 20 20 20 20 20 20 72 65 74 75 72 6e s;.. return
4c1a0 20 70 61 72 74 73 0a 0a 20 20 20 20 20 20 66 75 parts.. fu
4c1b0 6e 63 74 69 6f 6e 20 75 6e 65 73 63 61 70 65 53 nction unescapeS
4c1c0 74 72 20 28 73 29 20 7b 0a 20 20 20 20 20 20 20 tr (s) {.
4c1d0 20 69 66 20 28 70 72 65 76 53 74 72 29 20 7b 0a if (prevStr) {.
4c1e0 20 20 20 20 20 20 20 20 20 20 73 20 3d 20 70 72 s = pr
4c1f0 65 76 53 74 72 20 2b 20 73 3b 0a 20 20 20 20 20 evStr + s;.
4c200 20 20 20 20 20 70 72 65 76 53 74 72 20 3d 20 27 prevStr = '
4c210 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ';. }.
4c220 20 20 20 20 20 69 66 20 28 74 6d 70 6c 20 7c 7c if (tmpl ||
4c230 20 69 73 65 78 70 72 29 20 7b 0a 20 20 20 20 20 isexpr) {.
4c240 20 20 20 20 20 70 61 72 74 73 2e 70 75 73 68 28 parts.push(
4c250 73 20 26 26 20 73 2e 72 65 70 6c 61 63 65 28 5f s && s.replace(_
4c260 62 70 5b 35 5d 2c 20 27 24 31 27 29 29 3b 0a 20 bp[5], '$1'));.
4c270 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a } else {.
4c280 20 20 20 20 20 20 20 20 20 20 70 61 72 74 73 2e parts.
4c290 70 75 73 68 28 73 29 3b 0a 20 20 20 20 20 20 20 push(s);.
4c2a0 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 }. }..
4c2b0 20 20 66 75 6e 63 74 69 6f 6e 20 70 75 73 68 51 function pushQ
4c2c0 42 6c 6f 63 6b 28 5f 70 6f 73 2c 20 5f 6c 61 73 Block(_pos, _las
4c2d0 74 49 6e 64 65 78 2c 20 73 6c 61 73 68 29 20 7b tIndex, slash) {
4c2e0 20 2f 2f 65 73 6c 69 6e 74 2d 64 69 73 61 62 6c //eslint-disabl
4c2f0 65 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 69 e-line. i
4c300 66 20 28 73 6c 61 73 68 29 20 7b 0a 20 20 20 20 f (slash) {.
4c310 20 20 20 20 20 20 5f 6c 61 73 74 49 6e 64 65 78 _lastIndex
4c320 20 3d 20 73 6b 69 70 52 65 67 65 78 28 73 74 72 = skipRegex(str
4c330 2c 20 5f 70 6f 73 29 3b 0a 20 20 20 20 20 20 20 , _pos);.
4c340 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 }.. if (
4c350 74 6d 70 6c 20 26 26 20 5f 6c 61 73 74 49 6e 64 tmpl && _lastInd
4c360 65 78 20 3e 20 5f 70 6f 73 20 2b 20 32 29 20 7b ex > _pos + 2) {
4c370 0a 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 20 . mark
4c380 3d 20 27 5c 75 32 30 35 37 27 20 2b 20 71 62 6c = '\u2057' + qbl
4c390 6f 63 6b 73 2e 6c 65 6e 67 74 68 20 2b 20 27 7e ocks.length + '~
4c3a0 27 3b 0a 20 20 20 20 20 20 20 20 20 20 71 62 6c ';. qbl
4c3b0 6f 63 6b 73 2e 70 75 73 68 28 73 74 72 2e 73 6c ocks.push(str.sl
4c3c0 69 63 65 28 5f 70 6f 73 2c 20 5f 6c 61 73 74 49 ice(_pos, _lastI
4c3d0 6e 64 65 78 29 29 3b 0a 20 20 20 20 20 20 20 20 ndex));.
4c3e0 20 20 70 72 65 76 53 74 72 20 2b 3d 20 73 74 72 prevStr += str
4c3f0 2e 73 6c 69 63 65 28 73 74 61 72 74 2c 20 5f 70 .slice(start, _p
4c400 6f 73 29 20 2b 20 6d 61 72 6b 3b 0a 20 20 20 20 os) + mark;.
4c410 20 20 20 20 20 20 73 74 61 72 74 20 3d 20 5f 6c start = _l
4c420 61 73 74 49 6e 64 65 78 3b 0a 20 20 20 20 20 20 astIndex;.
4c430 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 }. retu
4c440 72 6e 20 5f 6c 61 73 74 49 6e 64 65 78 0a 20 20 rn _lastIndex.
4c450 20 20 20 20 7d 0a 20 20 20 20 7d 3b 0a 0a 20 20 }. };..
4c460 20 20 5f 62 72 61 63 6b 65 74 73 2e 68 61 73 45 _brackets.hasE
4c470 78 70 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 68 xpr = function h
4c480 61 73 45 78 70 72 20 28 73 74 72 29 20 7b 0a 20 asExpr (str) {.
4c490 20 20 20 20 20 72 65 74 75 72 6e 20 5f 63 61 63 return _cac
4c4a0 68 65 5b 34 5d 2e 74 65 73 74 28 73 74 72 29 0a he[4].test(str).
4c4b0 20 20 20 20 7d 3b 0a 0a 20 20 20 20 5f 62 72 61 };.. _bra
4c4c0 63 6b 65 74 73 2e 6c 6f 6f 70 4b 65 79 73 20 3d ckets.loopKeys =
4c4d0 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 6f 70 4b 65 function loopKe
4c4e0 79 73 20 28 65 78 70 72 29 20 7b 0a 20 20 20 20 ys (expr) {.
4c4f0 20 20 76 61 72 20 6d 20 3d 20 65 78 70 72 2e 6d var m = expr.m
4c500 61 74 63 68 28 5f 63 61 63 68 65 5b 39 5d 29 3b atch(_cache[9]);
4c510 0a 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d .. return m
4c520 0a 20 20 20 20 20 20 20 20 3f 20 7b 20 6b 65 79 . ? { key
4c530 3a 20 6d 5b 31 5d 2c 20 70 6f 73 3a 20 6d 5b 32 : m[1], pos: m[2
4c540 5d 2c 20 76 61 6c 3a 20 5f 63 61 63 68 65 5b 30 ], val: _cache[0
4c550 5d 20 2b 20 6d 5b 33 5d 2e 74 72 69 6d 28 29 20 ] + m[3].trim()
4c560 2b 20 5f 63 61 63 68 65 5b 31 5d 20 7d 0a 20 20 + _cache[1] }.
4c570 20 20 20 20 20 20 3a 20 7b 20 76 61 6c 3a 20 65 : { val: e
4c580 78 70 72 2e 74 72 69 6d 28 29 20 7d 0a 20 20 20 xpr.trim() }.
4c590 20 7d 3b 0a 0a 20 20 20 20 5f 62 72 61 63 6b 65 };.. _bracke
4c5a0 74 73 2e 61 72 72 61 79 20 3d 20 66 75 6e 63 74 ts.array = funct
4c5b0 69 6f 6e 20 61 72 72 61 79 20 28 70 61 69 72 29 ion array (pair)
4c5c0 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 {. return
4c5d0 70 61 69 72 20 3f 20 5f 63 72 65 61 74 65 28 70 pair ? _create(p
4c5e0 61 69 72 29 20 3a 20 5f 63 61 63 68 65 0a 20 20 air) : _cache.
4c5f0 20 20 7d 3b 0a 0a 20 20 20 20 66 75 6e 63 74 69 };.. functi
4c600 6f 6e 20 5f 72 65 73 65 74 20 28 70 61 69 72 29 on _reset (pair)
4c610 20 7b 0a 20 20 20 20 20 20 69 66 20 28 28 70 61 {. if ((pa
4c620 69 72 20 7c 7c 20 28 70 61 69 72 20 3d 20 44 45 ir || (pair = DE
4c630 46 41 55 4c 54 29 29 20 21 3d 3d 20 5f 63 61 63 FAULT)) !== _cac
4c640 68 65 5b 38 5d 29 20 7b 0a 20 20 20 20 20 20 20 he[8]) {.
4c650 20 5f 63 61 63 68 65 20 3d 20 5f 63 72 65 61 74 _cache = _creat
4c660 65 28 70 61 69 72 29 3b 0a 20 20 20 20 20 20 20 e(pair);.
4c670 20 5f 72 65 67 65 78 20 3d 20 70 61 69 72 20 3d _regex = pair =
4c680 3d 3d 20 44 45 46 41 55 4c 54 20 3f 20 5f 6c 6f == DEFAULT ? _lo
4c690 6f 70 62 61 63 6b 20 3a 20 5f 72 65 77 72 69 74 opback : _rewrit
4c6a0 65 3b 0a 20 20 20 20 20 20 20 20 5f 63 61 63 68 e;. _cach
4c6b0 65 5b 39 5d 20 3d 20 5f 72 65 67 65 78 28 5f 70 e[9] = _regex(_p
4c6c0 61 69 72 73 5b 39 5d 29 3b 0a 20 20 20 20 20 20 airs[9]);.
4c6d0 7d 0a 20 20 20 20 20 20 63 61 63 68 65 64 42 72 }. cachedBr
4c6e0 61 63 6b 65 74 73 20 3d 20 70 61 69 72 3b 0a 20 ackets = pair;.
4c6f0 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 }.. functi
4c700 6f 6e 20 5f 73 65 74 53 65 74 74 69 6e 67 73 20 on _setSettings
4c710 28 6f 29 20 7b 0a 20 20 20 20 20 20 76 61 72 20 (o) {. var
4c720 62 3b 0a 0a 20 20 20 20 20 20 6f 20 3d 20 6f 20 b;.. o = o
4c730 7c 7c 20 7b 7d 3b 0a 20 20 20 20 20 20 62 20 3d || {};. b =
4c740 20 6f 2e 62 72 61 63 6b 65 74 73 3b 0a 20 20 20 o.brackets;.
4c750 20 20 20 4f 62 6a 65 63 74 2e 64 65 66 69 6e 65 Object.define
4c760 50 72 6f 70 65 72 74 79 28 6f 2c 20 27 62 72 61 Property(o, 'bra
4c770 63 6b 65 74 73 27 2c 20 7b 0a 20 20 20 20 20 20 ckets', {.
4c780 20 20 73 65 74 3a 20 5f 72 65 73 65 74 2c 0a 20 set: _reset,.
4c790 20 20 20 20 20 20 20 67 65 74 3a 20 66 75 6e 63 get: func
4c7a0 74 69 6f 6e 20 28 29 20 7b 20 72 65 74 75 72 6e tion () { return
4c7b0 20 63 61 63 68 65 64 42 72 61 63 6b 65 74 73 20 cachedBrackets
4c7c0 7d 2c 0a 20 20 20 20 20 20 20 20 65 6e 75 6d 65 },. enume
4c7d0 72 61 62 6c 65 3a 20 74 72 75 65 0a 20 20 20 20 rable: true.
4c7e0 20 20 7d 29 3b 0a 20 20 20 20 20 20 5f 73 65 74 });. _set
4c7f0 74 69 6e 67 73 20 3d 20 6f 3b 0a 20 20 20 20 20 tings = o;.
4c800 20 5f 72 65 73 65 74 28 62 29 3b 0a 20 20 20 20 _reset(b);.
4c810 7d 0a 0a 20 20 20 20 4f 62 6a 65 63 74 2e 64 65 }.. Object.de
4c820 66 69 6e 65 50 72 6f 70 65 72 74 79 28 5f 62 72 fineProperty(_br
4c830 61 63 6b 65 74 73 2c 20 27 73 65 74 74 69 6e 67 ackets, 'setting
4c840 73 27 2c 20 7b 0a 20 20 20 20 20 20 73 65 74 3a s', {. set:
4c850 20 5f 73 65 74 53 65 74 74 69 6e 67 73 2c 0a 20 _setSettings,.
4c860 20 20 20 20 20 67 65 74 3a 20 66 75 6e 63 74 69 get: functi
4c870 6f 6e 20 28 29 20 7b 20 72 65 74 75 72 6e 20 5f on () { return _
4c880 73 65 74 74 69 6e 67 73 20 7d 0a 20 20 20 20 7d settings }. }
4c890 29 3b 0a 0a 20 20 20 20 2f 2a 20 69 73 74 61 6e );.. /* istan
4c8a0 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 78 74 3a bul ignore next:
4c8b0 20 69 6e 20 74 68 65 20 62 72 6f 77 73 65 72 20 in the browser
4c8c0 72 69 6f 74 20 69 73 20 61 6c 77 61 79 73 20 69 riot is always i
4c8d0 6e 20 74 68 65 20 73 63 6f 70 65 20 2a 2f 0a 20 n the scope */.
4c8e0 20 20 20 5f 62 72 61 63 6b 65 74 73 2e 73 65 74 _brackets.set
4c8f0 74 69 6e 67 73 20 3d 20 74 79 70 65 6f 66 20 72 tings = typeof r
4c900 69 6f 74 20 21 3d 3d 20 27 75 6e 64 65 66 69 6e iot !== 'undefin
4c910 65 64 27 20 26 26 20 72 69 6f 74 2e 73 65 74 74 ed' && riot.sett
4c920 69 6e 67 73 20 7c 7c 20 7b 7d 3b 0a 20 20 20 20 ings || {};.
4c930 5f 62 72 61 63 6b 65 74 73 2e 73 65 74 20 3d 20 _brackets.set =
4c940 5f 72 65 73 65 74 3b 0a 20 20 20 20 5f 62 72 61 _reset;. _bra
4c950 63 6b 65 74 73 2e 73 6b 69 70 52 65 67 65 78 20 ckets.skipRegex
4c960 3d 20 73 6b 69 70 52 65 67 65 78 3b 0a 0a 20 20 = skipRegex;..
4c970 20 20 5f 62 72 61 63 6b 65 74 73 2e 52 5f 53 54 _brackets.R_ST
4c980 52 49 4e 47 53 20 3d 20 52 5f 53 54 52 49 4e 47 RINGS = R_STRING
4c990 53 3b 0a 20 20 20 20 5f 62 72 61 63 6b 65 74 73 S;. _brackets
4c9a0 2e 52 5f 4d 4c 43 4f 4d 4d 53 20 3d 20 52 5f 4d .R_MLCOMMS = R_M
4c9b0 4c 43 4f 4d 4d 53 3b 0a 20 20 20 20 5f 62 72 61 LCOMMS;. _bra
4c9c0 63 6b 65 74 73 2e 53 5f 51 42 4c 4f 43 4b 53 20 ckets.S_QBLOCKS
4c9d0 3d 20 53 5f 51 42 4c 4f 43 4b 53 3b 0a 20 20 20 = S_QBLOCKS;.
4c9e0 20 5f 62 72 61 63 6b 65 74 73 2e 53 5f 51 42 4c _brackets.S_QBL
4c9f0 4f 43 4b 32 20 3d 20 53 5f 51 42 4c 4f 43 4b 32 OCK2 = S_QBLOCK2
4ca00 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 5f 62 ;.. return _b
4ca10 72 61 63 6b 65 74 73 0a 0a 20 20 7d 29 28 29 3b rackets.. })();
4ca20 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 40 6d 6f .. /**. * @mo
4ca30 64 75 6c 65 20 74 6d 70 6c 0a 20 20 20 2a 0a 20 dule tmpl. *.
4ca40 20 20 2a 20 74 6d 70 6c 20 20 20 20 20 20 20 20 * tmpl
4ca50 20 20 2d 20 52 6f 6f 74 20 66 75 6e 63 74 69 6f - Root functio
4ca60 6e 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 74 n, returns the t
4ca70 65 6d 70 6c 61 74 65 20 76 61 6c 75 65 2c 20 72 emplate value, r
4ca80 65 6e 64 65 72 20 77 69 74 68 20 64 61 74 61 0a ender with data.
4ca90 20 20 20 2a 20 74 6d 70 6c 2e 68 61 73 45 78 70 * tmpl.hasExp
4caa0 72 20 20 2d 20 54 65 73 74 20 74 68 65 20 65 78 r - Test the ex
4cab0 69 73 74 65 6e 63 65 20 6f 66 20 61 20 65 78 70 istence of a exp
4cac0 72 65 73 73 69 6f 6e 20 69 6e 73 69 64 65 20 61 ression inside a
4cad0 20 73 74 72 69 6e 67 0a 20 20 20 2a 20 74 6d 70 string. * tmp
4cae0 6c 2e 6c 6f 6f 70 4b 65 79 73 20 2d 20 47 65 74 l.loopKeys - Get
4caf0 20 74 68 65 20 6b 65 79 73 20 66 6f 72 20 61 6e the keys for an
4cb00 20 27 65 61 63 68 27 20 6c 6f 6f 70 20 28 75 73 'each' loop (us
4cb10 65 64 20 62 79 20 60 5f 65 61 63 68 60 29 0a 20 ed by `_each`).
4cb20 20 20 2a 2f 0a 0a 20 20 76 61 72 20 74 6d 70 6c */.. var tmpl
4cb30 20 3d 20 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 = (function ()
4cb40 7b 0a 0a 20 20 20 20 76 61 72 20 5f 63 61 63 68 {.. var _cach
4cb50 65 20 3d 20 7b 7d 3b 0a 0a 20 20 20 20 66 75 6e e = {};.. fun
4cb60 63 74 69 6f 6e 20 5f 74 6d 70 6c 20 28 73 74 72 ction _tmpl (str
4cb70 2c 20 64 61 74 61 29 20 7b 0a 20 20 20 20 20 20 , data) {.
4cb80 69 66 20 28 21 73 74 72 29 20 7b 20 72 65 74 75 if (!str) { retu
4cb90 72 6e 20 73 74 72 20 7d 0a 0a 20 20 20 20 20 20 rn str }..
4cba0 72 65 74 75 72 6e 20 28 5f 63 61 63 68 65 5b 73 return (_cache[s
4cbb0 74 72 5d 20 7c 7c 20 28 5f 63 61 63 68 65 5b 73 tr] || (_cache[s
4cbc0 74 72 5d 20 3d 20 5f 63 72 65 61 74 65 28 73 74 tr] = _create(st
4cbd0 72 29 29 29 2e 63 61 6c 6c 28 0a 20 20 20 20 20 r))).call(.
4cbe0 20 20 20 64 61 74 61 2c 20 5f 6c 6f 67 45 72 72 data, _logErr
4cbf0 2e 62 69 6e 64 28 7b 0a 20 20 20 20 20 20 20 20 .bind({.
4cc00 20 20 64 61 74 61 3a 20 64 61 74 61 2c 0a 20 20 data: data,.
4cc10 20 20 20 20 20 20 20 20 74 6d 70 6c 3a 20 73 74 tmpl: st
4cc20 72 0a 20 20 20 20 20 20 20 20 7d 29 0a 20 20 20 r. }).
4cc30 20 20 20 29 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ). }..
4cc40 5f 74 6d 70 6c 2e 68 61 73 45 78 70 72 20 3d 20 _tmpl.hasExpr =
4cc50 62 72 61 63 6b 65 74 73 2e 68 61 73 45 78 70 72 brackets.hasExpr
4cc60 3b 0a 0a 20 20 20 20 5f 74 6d 70 6c 2e 6c 6f 6f ;.. _tmpl.loo
4cc70 70 4b 65 79 73 20 3d 20 62 72 61 63 6b 65 74 73 pKeys = brackets
4cc80 2e 6c 6f 6f 70 4b 65 79 73 3b 0a 0a 20 20 20 20 .loopKeys;..
4cc90 2f 2f 20 69 73 74 61 6e 62 75 6c 20 69 67 6e 6f // istanbul igno
4cca0 72 65 20 6e 65 78 74 0a 20 20 20 20 5f 74 6d 70 re next. _tmp
4ccb0 6c 2e 63 6c 65 61 72 43 61 63 68 65 20 3d 20 66 l.clearCache = f
4ccc0 75 6e 63 74 69 6f 6e 20 28 29 20 7b 20 5f 63 61 unction () { _ca
4ccd0 63 68 65 20 3d 20 7b 7d 3b 20 7d 3b 0a 0a 20 20 che = {}; };..
4cce0 20 20 5f 74 6d 70 6c 2e 65 72 72 6f 72 48 61 6e _tmpl.errorHan
4ccf0 64 6c 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 20 20 dler = null;..
4cd00 20 20 66 75 6e 63 74 69 6f 6e 20 5f 6c 6f 67 45 function _logE
4cd10 72 72 20 28 65 72 72 2c 20 63 74 78 29 20 7b 0a rr (err, ctx) {.
4cd20 0a 20 20 20 20 20 20 65 72 72 2e 72 69 6f 74 44 . err.riotD
4cd30 61 74 61 20 3d 20 7b 0a 20 20 20 20 20 20 20 20 ata = {.
4cd40 74 61 67 4e 61 6d 65 3a 20 63 74 78 20 26 26 20 tagName: ctx &&
4cd50 63 74 78 2e 5f 5f 20 26 26 20 63 74 78 2e 5f 5f ctx.__ && ctx.__
4cd60 2e 74 61 67 4e 61 6d 65 2c 0a 20 20 20 20 20 20 .tagName,.
4cd70 20 20 5f 72 69 6f 74 5f 69 64 3a 20 63 74 78 20 _riot_id: ctx
4cd80 26 26 20 63 74 78 2e 5f 72 69 6f 74 5f 69 64 20 && ctx._riot_id
4cd90 20 2f 2f 65 73 6c 69 6e 74 2d 64 69 73 61 62 6c //eslint-disabl
4cda0 65 2d 6c 69 6e 65 20 63 61 6d 65 6c 63 61 73 65 e-line camelcase
4cdb0 0a 20 20 20 20 20 20 7d 3b 0a 0a 20 20 20 20 20 . };..
4cdc0 20 69 66 20 28 5f 74 6d 70 6c 2e 65 72 72 6f 72 if (_tmpl.error
4cdd0 48 61 6e 64 6c 65 72 29 20 7b 20 5f 74 6d 70 6c Handler) { _tmpl
4cde0 2e 65 72 72 6f 72 48 61 6e 64 6c 65 72 28 65 72 .errorHandler(er
4cdf0 72 29 3b 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 r); }. else
4ce00 20 69 66 20 28 0a 20 20 20 20 20 20 20 20 74 79 if (. ty
4ce10 70 65 6f 66 20 63 6f 6e 73 6f 6c 65 20 21 3d 3d peof console !==
4ce20 20 27 75 6e 64 65 66 69 6e 65 64 27 20 26 26 0a 'undefined' &&.
4ce30 20 20 20 20 20 20 20 20 74 79 70 65 6f 66 20 63 typeof c
4ce40 6f 6e 73 6f 6c 65 2e 65 72 72 6f 72 20 3d 3d 3d onsole.error ===
4ce50 20 27 66 75 6e 63 74 69 6f 6e 27 0a 20 20 20 20 'function'.
4ce60 20 20 29 20 7b 0a 20 20 20 20 20 20 20 20 63 6f ) {. co
4ce70 6e 73 6f 6c 65 2e 65 72 72 6f 72 28 65 72 72 2e nsole.error(err.
4ce80 6d 65 73 73 61 67 65 29 3b 0a 20 20 20 20 20 20 message);.
4ce90 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 27 3c console.log('<
4cea0 25 73 3e 20 25 73 27 2c 20 65 72 72 2e 72 69 6f %s> %s', err.rio
4ceb0 74 44 61 74 61 2e 74 61 67 4e 61 6d 65 20 7c 7c tData.tagName ||
4cec0 20 27 55 6e 6b 6e 6f 77 6e 20 74 61 67 27 2c 20 'Unknown tag',
4ced0 74 68 69 73 2e 74 6d 70 6c 29 3b 20 2f 2f 20 65 this.tmpl); // e
4cee0 73 6c 69 6e 74 2d 64 69 73 61 62 6c 65 2d 6c 69 slint-disable-li
4cef0 6e 65 0a 20 20 20 20 20 20 20 20 63 6f 6e 73 6f ne. conso
4cf00 6c 65 2e 6c 6f 67 28 74 68 69 73 2e 64 61 74 61 le.log(this.data
4cf10 29 3b 20 2f 2f 20 65 73 6c 69 6e 74 2d 64 69 73 ); // eslint-dis
4cf20 61 62 6c 65 2d 6c 69 6e 65 0a 20 20 20 20 20 20 able-line.
4cf30 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e }. }.. fun
4cf40 63 74 69 6f 6e 20 5f 63 72 65 61 74 65 20 28 73 ction _create (s
4cf50 74 72 29 20 7b 0a 20 20 20 20 20 20 76 61 72 20 tr) {. var
4cf60 65 78 70 72 20 3d 20 5f 67 65 74 54 6d 70 6c 28 expr = _getTmpl(
4cf70 73 74 72 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 str);.. if
4cf80 28 65 78 70 72 2e 73 6c 69 63 65 28 30 2c 20 31 (expr.slice(0, 1
4cf90 31 29 20 21 3d 3d 20 27 74 72 79 7b 72 65 74 75 1) !== 'try{retu
4cfa0 72 6e 20 27 29 20 7b 20 65 78 70 72 20 3d 20 27 rn ') { expr = '
4cfb0 72 65 74 75 72 6e 20 27 20 2b 20 65 78 70 72 3b return ' + expr;
4cfc0 20 7d 0a 0a 20 20 20 20 20 20 72 65 74 75 72 6e }.. return
4cfd0 20 73 61 66 65 45 76 61 6c 2e 66 75 6e 63 28 27 safeEval.func('
4cfe0 45 27 2c 20 65 78 70 72 20 2b 20 27 3b 27 29 0a E', expr + ';').
4cff0 20 20 20 20 7d 0a 0a 20 20 20 20 76 61 72 20 52 }.. var R
4d000 45 5f 44 51 55 4f 54 45 20 3d 20 2f 5c 75 32 30 E_DQUOTE = /\u20
4d010 35 37 2f 67 3b 0a 20 20 20 20 76 61 72 20 52 45 57/g;. var RE
4d020 5f 51 42 4d 41 52 4b 20 3d 20 2f 5c 75 32 30 35 _QBMARK = /\u205
4d030 37 28 5c 64 2b 29 7e 2f 67 3b 0a 0a 20 20 20 20 7(\d+)~/g;..
4d040 66 75 6e 63 74 69 6f 6e 20 5f 67 65 74 54 6d 70 function _getTmp
4d050 6c 20 28 73 74 72 29 20 7b 0a 20 20 20 20 20 20 l (str) {.
4d060 76 61 72 20 70 61 72 74 73 20 3d 20 62 72 61 63 var parts = brac
4d070 6b 65 74 73 2e 73 70 6c 69 74 28 73 74 72 2e 72 kets.split(str.r
4d080 65 70 6c 61 63 65 28 52 45 5f 44 51 55 4f 54 45 eplace(RE_DQUOTE
4d090 2c 20 27 22 27 29 2c 20 31 29 3b 0a 20 20 20 20 , '"'), 1);.
4d0a0 20 20 76 61 72 20 71 73 74 72 20 3d 20 70 61 72 var qstr = par
4d0b0 74 73 2e 71 62 6c 6f 63 6b 73 3b 0a 20 20 20 20 ts.qblocks;.
4d0c0 20 20 76 61 72 20 65 78 70 72 3b 0a 0a 20 20 20 var expr;..
4d0d0 20 20 20 69 66 20 28 70 61 72 74 73 2e 6c 65 6e if (parts.len
4d0e0 67 74 68 20 3e 20 32 20 7c 7c 20 70 61 72 74 73 gth > 2 || parts
4d0f0 5b 30 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 76 [0]) {. v
4d100 61 72 20 69 2c 20 6a 2c 20 6c 69 73 74 20 3d 20 ar i, j, list =
4d110 5b 5d 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 [];.. for
4d120 20 28 69 20 3d 20 6a 20 3d 20 30 3b 20 69 20 3c (i = j = 0; i <
4d130 20 70 61 72 74 73 2e 6c 65 6e 67 74 68 3b 20 2b parts.length; +
4d140 2b 69 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 +i) {..
4d150 20 65 78 70 72 20 3d 20 70 61 72 74 73 5b 69 5d expr = parts[i]
4d160 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 ;.. if
4d170 28 65 78 70 72 20 26 26 20 28 65 78 70 72 20 3d (expr && (expr =
4d180 20 69 20 26 20 31 0a 0a 20 20 20 20 20 20 20 20 i & 1..
4d190 20 20 20 20 20 20 3f 20 5f 70 61 72 73 65 45 78 ? _parseEx
4d1a0 70 72 28 65 78 70 72 2c 20 31 2c 20 71 73 74 72 pr(expr, 1, qstr
4d1b0 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 )..
4d1c0 20 3a 20 27 22 27 20 2b 20 65 78 70 72 0a 20 20 : '"' + expr.
4d1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
4d1e0 2e 72 65 70 6c 61 63 65 28 2f 5c 5c 2f 67 2c 20 .replace(/\\/g,
4d1f0 27 5c 5c 5c 5c 27 29 0a 20 20 20 20 20 20 20 20 '\\\\').
4d200 20 20 20 20 20 20 20 20 20 20 2e 72 65 70 6c 61 .repla
4d210 63 65 28 2f 5c 72 5c 6e 3f 7c 5c 6e 2f 67 2c 20 ce(/\r\n?|\n/g,
4d220 27 5c 5c 6e 27 29 0a 20 20 20 20 20 20 20 20 20 '\\n').
4d230 20 20 20 20 20 20 20 20 20 2e 72 65 70 6c 61 63 .replac
4d240 65 28 2f 22 2f 67 2c 20 27 5c 5c 22 27 29 20 2b e(/"/g, '\\"') +
4d250 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
4d260 20 27 22 27 0a 0a 20 20 20 20 20 20 20 20 20 20 '"'..
4d270 20 20 29 29 20 7b 20 6c 69 73 74 5b 6a 2b 2b 5d )) { list[j++]
4d280 20 3d 20 65 78 70 72 3b 20 7d 0a 0a 20 20 20 20 = expr; }..
4d290 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 65 }.. e
4d2a0 78 70 72 20 3d 20 6a 20 3c 20 32 20 3f 20 6c 69 xpr = j < 2 ? li
4d2b0 73 74 5b 30 5d 0a 20 20 20 20 20 20 20 20 20 20 st[0].
4d2c0 20 20 20 3a 20 27 5b 27 20 2b 20 6c 69 73 74 2e : '[' + list.
4d2d0 6a 6f 69 6e 28 27 2c 27 29 20 2b 20 27 5d 2e 6a join(',') + '].j
4d2e0 6f 69 6e 28 22 22 29 27 3b 0a 0a 20 20 20 20 20 oin("")';..
4d2f0 20 7d 20 65 6c 73 65 20 7b 0a 0a 20 20 20 20 20 } else {..
4d300 20 20 20 65 78 70 72 20 3d 20 5f 70 61 72 73 65 expr = _parse
4d310 45 78 70 72 28 70 61 72 74 73 5b 31 5d 2c 20 30 Expr(parts[1], 0
4d320 2c 20 71 73 74 72 29 3b 0a 20 20 20 20 20 20 7d , qstr);. }
4d330 0a 0a 20 20 20 20 20 20 69 66 20 28 71 73 74 72 .. if (qstr
4d340 2e 6c 65 6e 67 74 68 29 20 7b 0a 20 20 20 20 20 .length) {.
4d350 20 20 20 65 78 70 72 20 3d 20 65 78 70 72 2e 72 expr = expr.r
4d360 65 70 6c 61 63 65 28 52 45 5f 51 42 4d 41 52 4b eplace(RE_QBMARK
4d370 2c 20 66 75 6e 63 74 69 6f 6e 20 28 5f 2c 20 70 , function (_, p
4d380 6f 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 os) {.
4d390 72 65 74 75 72 6e 20 71 73 74 72 5b 70 6f 73 5d return qstr[pos]
4d3a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2e 72 65 . .re
4d3b0 70 6c 61 63 65 28 2f 5c 72 2f 67 2c 20 27 5c 5c place(/\r/g, '\\
4d3c0 72 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 r').
4d3d0 2e 72 65 70 6c 61 63 65 28 2f 5c 6e 2f 67 2c 20 .replace(/\n/g,
4d3e0 27 5c 5c 6e 27 29 0a 20 20 20 20 20 20 20 20 7d '\\n'). }
4d3f0 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 );. }.
4d400 20 72 65 74 75 72 6e 20 65 78 70 72 0a 20 20 20 return expr.
4d410 20 7d 0a 0a 20 20 20 20 76 61 72 20 52 45 5f 43 }.. var RE_C
4d420 53 4e 41 4d 45 20 3d 20 2f 5e 28 3f 3a 28 2d 3f SNAME = /^(?:(-?
4d430 5b 5f 41 2d 5a 61 2d 7a 5c 78 41 30 2d 5c 78 46 [_A-Za-z\xA0-\xF
4d440 46 5d 5b 2d 5c 77 5c 78 41 30 2d 5c 78 46 46 5d F][-\w\xA0-\xFF]
4d450 2a 29 7c 5c 75 32 30 35 37 28 5c 64 2b 29 7e 29 *)|\u2057(\d+)~)
4d460 3a 2f 3b 0a 20 20 20 20 76 61 72 0a 20 20 20 20 :/;. var.
4d470 20 20 52 45 5f 42 52 45 4e 44 20 3d 20 7b 0a 20 RE_BREND = {.
4d480 20 20 20 20 20 20 20 27 28 27 3a 20 2f 5b 28 29 '(': /[()
4d490 5d 2f 67 2c 0a 20 20 20 20 20 20 20 20 27 5b 27 ]/g,. '['
4d4a0 3a 20 2f 5b 5b 5c 5d 5d 2f 67 2c 0a 20 20 20 20 : /[[\]]/g,.
4d4b0 20 20 20 20 27 7b 27 3a 20 2f 5b 7b 7d 5d 2f 67 '{': /[{}]/g
4d4c0 0a 20 20 20 20 20 20 7d 3b 0a 0a 20 20 20 20 66 . };.. f
4d4d0 75 6e 63 74 69 6f 6e 20 5f 70 61 72 73 65 45 78 unction _parseEx
4d4e0 70 72 20 28 65 78 70 72 2c 20 61 73 54 65 78 74 pr (expr, asText
4d4f0 2c 20 71 73 74 72 29 20 7b 0a 0a 20 20 20 20 20 , qstr) {..
4d500 20 65 78 70 72 20 3d 20 65 78 70 72 0a 20 20 20 expr = expr.
4d510 20 20 20 20 20 2e 72 65 70 6c 61 63 65 28 2f 5c .replace(/\
4d520 73 2b 2f 67 2c 20 27 20 27 29 2e 74 72 69 6d 28 s+/g, ' ').trim(
4d530 29 0a 20 20 20 20 20 20 20 20 2e 72 65 70 6c 61 ). .repla
4d540 63 65 28 2f 5c 20 3f 28 5b 5b 5c 28 7b 7d 2c 3f ce(/\ ?([[\({},?
4d550 5c 2e 3a 5d 29 5c 20 3f 2f 67 2c 20 27 24 31 27 \.:])\ ?/g, '$1'
4d560 29 3b 0a 0a 20 20 20 20 20 20 69 66 20 28 65 78 );.. if (ex
4d570 70 72 29 20 7b 0a 20 20 20 20 20 20 20 20 76 61 pr) {. va
4d580 72 0a 20 20 20 20 20 20 20 20 20 20 6c 69 73 74 r. list
4d590 20 3d 20 5b 5d 2c 0a 20 20 20 20 20 20 20 20 20 = [],.
4d5a0 20 63 6e 74 20 3d 20 30 2c 0a 20 20 20 20 20 20 cnt = 0,.
4d5b0 20 20 20 20 6d 61 74 63 68 3b 0a 0a 20 20 20 20 match;..
4d5c0 20 20 20 20 77 68 69 6c 65 20 28 65 78 70 72 20 while (expr
4d5d0 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 &&.
4d5e0 20 28 6d 61 74 63 68 20 3d 20 65 78 70 72 2e 6d (match = expr.m
4d5f0 61 74 63 68 28 52 45 5f 43 53 4e 41 4d 45 29 29 atch(RE_CSNAME))
4d600 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 &&.
4d610 20 20 21 6d 61 74 63 68 2e 69 6e 64 65 78 0a 20 !match.index.
4d620 20 20 20 20 20 20 20 20 20 29 20 7b 0a 20 20 20 ) {.
4d630 20 20 20 20 20 20 20 76 61 72 0a 20 20 20 20 20 var.
4d640 20 20 20 20 20 20 20 6b 65 79 2c 0a 20 20 20 20 key,.
4d650 20 20 20 20 20 20 20 20 6a 73 62 2c 0a 20 20 20 jsb,.
4d660 20 20 20 20 20 20 20 20 20 72 65 20 3d 20 2f 2c re = /,
4d670 7c 28 5b 5b 7b 28 5d 29 7c 24 2f 67 3b 0a 0a 20 |([[{(])|$/g;..
4d680 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 expr =
4d690 52 65 67 45 78 70 2e 72 69 67 68 74 43 6f 6e 74 RegExp.rightCont
4d6a0 65 78 74 3b 0a 20 20 20 20 20 20 20 20 20 20 6b ext;. k
4d6b0 65 79 20 20 3d 20 6d 61 74 63 68 5b 32 5d 20 3f ey = match[2] ?
4d6c0 20 71 73 74 72 5b 6d 61 74 63 68 5b 32 5d 5d 2e qstr[match[2]].
4d6d0 73 6c 69 63 65 28 31 2c 20 2d 31 29 2e 74 72 69 slice(1, -1).tri
4d6e0 6d 28 29 2e 72 65 70 6c 61 63 65 28 2f 5c 73 2b m().replace(/\s+
4d6f0 2f 67 2c 20 27 20 27 29 20 3a 20 6d 61 74 63 68 /g, ' ') : match
4d700 5b 31 5d 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 [1];..
4d710 77 68 69 6c 65 20 28 6a 73 62 20 3d 20 28 6d 61 while (jsb = (ma
4d720 74 63 68 20 3d 20 72 65 2e 65 78 65 63 28 65 78 tch = re.exec(ex
4d730 70 72 29 29 5b 31 5d 29 20 7b 20 73 6b 69 70 42 pr))[1]) { skipB
4d740 72 61 63 65 73 28 6a 73 62 2c 20 72 65 29 3b 20 races(jsb, re);
4d750 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 6a 73 62 }.. jsb
4d760 20 20 3d 20 65 78 70 72 2e 73 6c 69 63 65 28 30 = expr.slice(0
4d770 2c 20 6d 61 74 63 68 2e 69 6e 64 65 78 29 3b 0a , match.index);.
4d780 20 20 20 20 20 20 20 20 20 20 65 78 70 72 20 3d expr =
4d790 20 52 65 67 45 78 70 2e 72 69 67 68 74 43 6f 6e RegExp.rightCon
4d7a0 74 65 78 74 3b 0a 0a 20 20 20 20 20 20 20 20 20 text;..
4d7b0 20 6c 69 73 74 5b 63 6e 74 2b 2b 5d 20 3d 20 5f list[cnt++] = _
4d7c0 77 72 61 70 45 78 70 72 28 6a 73 62 2c 20 31 2c wrapExpr(jsb, 1,
4d7d0 20 6b 65 79 29 3b 0a 20 20 20 20 20 20 20 20 7d key);. }
4d7e0 0a 0a 20 20 20 20 20 20 20 20 65 78 70 72 20 3d .. expr =
4d7f0 20 21 63 6e 74 20 3f 20 5f 77 72 61 70 45 78 70 !cnt ? _wrapExp
4d800 72 28 65 78 70 72 2c 20 61 73 54 65 78 74 29 0a r(expr, asText).
4d810 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 63 : c
4d820 6e 74 20 3e 20 31 20 3f 20 27 5b 27 20 2b 20 6c nt > 1 ? '[' + l
4d830 69 73 74 2e 6a 6f 69 6e 28 27 2c 27 29 20 2b 20 ist.join(',') +
4d840 27 5d 2e 6a 6f 69 6e 28 22 20 22 29 2e 74 72 69 '].join(" ").tri
4d850 6d 28 29 27 20 3a 20 6c 69 73 74 5b 30 5d 3b 0a m()' : list[0];.
4d860 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 72 65 }. re
4d870 74 75 72 6e 20 65 78 70 72 0a 0a 20 20 20 20 20 turn expr..
4d880 20 66 75 6e 63 74 69 6f 6e 20 73 6b 69 70 42 72 function skipBr
4d890 61 63 65 73 20 28 63 68 2c 20 72 65 29 20 7b 0a aces (ch, re) {.
4d8a0 20 20 20 20 20 20 20 20 76 61 72 0a 20 20 20 20 var.
4d8b0 20 20 20 20 20 20 6d 6d 2c 0a 20 20 20 20 20 20 mm,.
4d8c0 20 20 20 20 6c 76 20 3d 20 31 2c 0a 20 20 20 20 lv = 1,.
4d8d0 20 20 20 20 20 20 69 72 20 3d 20 52 45 5f 42 52 ir = RE_BR
4d8e0 45 4e 44 5b 63 68 5d 3b 0a 0a 20 20 20 20 20 20 END[ch];..
4d8f0 20 20 69 72 2e 6c 61 73 74 49 6e 64 65 78 20 3d ir.lastIndex =
4d900 20 72 65 2e 6c 61 73 74 49 6e 64 65 78 3b 0a 20 re.lastIndex;.
4d910 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6d 6d while (mm
4d920 20 3d 20 69 72 2e 65 78 65 63 28 65 78 70 72 29 = ir.exec(expr)
4d930 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 69 66 ) {. if
4d940 20 28 6d 6d 5b 30 5d 20 3d 3d 3d 20 63 68 29 20 (mm[0] === ch)
4d950 7b 20 2b 2b 6c 76 3b 20 7d 0a 20 20 20 20 20 20 { ++lv; }.
4d960 20 20 20 20 65 6c 73 65 20 69 66 20 28 21 2d 2d else if (!--
4d970 6c 76 29 20 7b 20 62 72 65 61 6b 20 7d 0a 20 20 lv) { break }.
4d980 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 }.
4d990 72 65 2e 6c 61 73 74 49 6e 64 65 78 20 3d 20 6c re.lastIndex = l
4d9a0 76 20 3f 20 65 78 70 72 2e 6c 65 6e 67 74 68 20 v ? expr.length
4d9b0 3a 20 69 72 2e 6c 61 73 74 49 6e 64 65 78 3b 0a : ir.lastIndex;.
4d9c0 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 }. }..
4d9d0 20 20 20 2f 2f 20 69 73 74 61 6e 62 75 6c 20 69 // istanbul i
4d9e0 67 6e 6f 72 65 20 6e 65 78 74 3a 20 6e 6f 74 20 gnore next: not
4d9f0 62 6f 74 68 0a 20 20 20 20 76 61 72 20 2f 2f 20 both. var //
4da00 65 73 6c 69 6e 74 2d 64 69 73 61 62 6c 65 2d 6e eslint-disable-n
4da10 65 78 74 2d 6c 69 6e 65 20 6d 61 78 2d 6c 65 6e ext-line max-len
4da20 0a 20 20 20 20 20 20 4a 53 5f 43 4f 4e 54 45 58 . JS_CONTEX
4da30 54 20 3d 20 27 22 69 6e 20 74 68 69 73 3f 74 68 T = '"in this?th
4da40 69 73 3a 27 20 2b 20 28 74 79 70 65 6f 66 20 77 is:' + (typeof w
4da50 69 6e 64 6f 77 20 21 3d 3d 20 27 6f 62 6a 65 63 indow !== 'objec
4da60 74 27 20 3f 20 27 67 6c 6f 62 61 6c 27 20 3a 20 t' ? 'global' :
4da70 27 77 69 6e 64 6f 77 27 29 20 2b 20 27 29 2e 27 'window') + ').'
4da80 2c 0a 20 20 20 20 20 20 4a 53 5f 56 41 52 4e 41 ,. JS_VARNA
4da90 4d 45 20 3d 20 2f 5b 2c 7b 5d 5b 5c 24 5c 77 5d ME = /[,{][\$\w]
4daa0 2b 28 3f 3d 3a 29 7c 28 5e 20 2a 7c 5b 5e 24 5c +(?=:)|(^ *|[^$\
4dab0 77 5c 2e 7b 5d 29 28 3f 21 28 3f 3a 74 79 70 65 w\.{])(?!(?:type
4dac0 6f 66 7c 74 72 75 65 7c 66 61 6c 73 65 7c 6e 75 of|true|false|nu
4dad0 6c 6c 7c 75 6e 64 65 66 69 6e 65 64 7c 69 6e 7c ll|undefined|in|
4dae0 69 6e 73 74 61 6e 63 65 6f 66 7c 69 73 28 3f 3a instanceof|is(?:
4daf0 46 69 6e 69 74 65 7c 4e 61 4e 29 7c 76 6f 69 64 Finite|NaN)|void
4db00 7c 4e 61 4e 7c 6e 65 77 7c 44 61 74 65 7c 52 65 |NaN|new|Date|Re
4db10 67 45 78 70 7c 4d 61 74 68 29 28 3f 21 5b 24 5c gExp|Math)(?![$\
4db20 77 5d 29 29 28 5b 24 5f 41 2d 5a 61 2d 7a 5d 5b w]))([$_A-Za-z][
4db30 24 5c 77 5d 2a 29 2f 67 2c 0a 20 20 20 20 20 20 $\w]*)/g,.
4db40 4a 53 5f 4e 4f 50 52 4f 50 53 20 3d 20 2f 5e 28 JS_NOPROPS = /^(
4db50 3f 3d 28 5c 2e 5b 24 5c 77 5d 2b 29 29 5c 31 28 ?=(\.[$\w]+))\1(
4db60 3f 3a 5b 5e 2e 5b 28 5d 7c 24 29 2f 3b 0a 0a 20 ?:[^.[(]|$)/;..
4db70 20 20 20 66 75 6e 63 74 69 6f 6e 20 5f 77 72 61 function _wra
4db80 70 45 78 70 72 20 28 65 78 70 72 2c 20 61 73 54 pExpr (expr, asT
4db90 65 78 74 2c 20 6b 65 79 29 20 7b 0a 20 20 20 20 ext, key) {.
4dba0 20 20 76 61 72 20 74 62 3b 0a 0a 20 20 20 20 20 var tb;..
4dbb0 20 65 78 70 72 20 3d 20 65 78 70 72 2e 72 65 70 expr = expr.rep
4dbc0 6c 61 63 65 28 4a 53 5f 56 41 52 4e 41 4d 45 2c lace(JS_VARNAME,
4dbd0 20 66 75 6e 63 74 69 6f 6e 20 28 6d 61 74 63 68 function (match
4dbe0 2c 20 70 2c 20 6d 76 61 72 2c 20 70 6f 73 2c 20 , p, mvar, pos,
4dbf0 73 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 s) {. if
4dc00 28 6d 76 61 72 29 20 7b 0a 20 20 20 20 20 20 20 (mvar) {.
4dc10 20 20 20 70 6f 73 20 3d 20 74 62 20 3f 20 30 20 pos = tb ? 0
4dc20 3a 20 70 6f 73 20 2b 20 6d 61 74 63 68 2e 6c 65 : pos + match.le
4dc30 6e 67 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 20 ngth;..
4dc40 20 69 66 20 28 6d 76 61 72 20 21 3d 3d 20 27 74 if (mvar !== 't
4dc50 68 69 73 27 20 26 26 20 6d 76 61 72 20 21 3d 3d his' && mvar !==
4dc60 20 27 67 6c 6f 62 61 6c 27 20 26 26 20 6d 76 61 'global' && mva
4dc70 72 20 21 3d 3d 20 27 77 69 6e 64 6f 77 27 29 20 r !== 'window')
4dc80 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 {. ma
4dc90 74 63 68 20 3d 20 70 20 2b 20 27 28 22 27 20 2b tch = p + '("' +
4dca0 20 6d 76 61 72 20 2b 20 4a 53 5f 43 4f 4e 54 45 mvar + JS_CONTE
4dcb0 58 54 20 2b 20 6d 76 61 72 3b 0a 20 20 20 20 20 XT + mvar;.
4dcc0 20 20 20 20 20 20 20 69 66 20 28 70 6f 73 29 20 if (pos)
4dcd0 7b 20 74 62 20 3d 20 28 73 20 3d 20 73 5b 70 6f { tb = (s = s[po
4dce0 73 5d 29 20 3d 3d 3d 20 27 2e 27 20 7c 7c 20 73 s]) === '.' || s
4dcf0 20 3d 3d 3d 20 27 28 27 20 7c 7c 20 73 20 3d 3d === '(' || s ==
4dd00 3d 20 27 5b 27 3b 20 7d 0a 20 20 20 20 20 20 20 = '['; }.
4dd10 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 70 6f } else if (po
4dd20 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 s) {.
4dd30 20 74 62 20 3d 20 21 4a 53 5f 4e 4f 50 52 4f 50 tb = !JS_NOPROP
4dd40 53 2e 74 65 73 74 28 73 2e 73 6c 69 63 65 28 70 S.test(s.slice(p
4dd50 6f 73 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 os));.
4dd60 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }. }.
4dd70 20 20 20 20 72 65 74 75 72 6e 20 6d 61 74 63 68 return match
4dd80 0a 20 20 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 . });..
4dd90 20 20 69 66 20 28 74 62 29 20 7b 0a 20 20 20 20 if (tb) {.
4dda0 20 20 20 20 65 78 70 72 20 3d 20 27 74 72 79 7b expr = 'try{
4ddb0 72 65 74 75 72 6e 20 27 20 2b 20 65 78 70 72 20 return ' + expr
4ddc0 2b 20 27 7d 63 61 74 63 68 28 65 29 7b 45 28 65 + '}catch(e){E(e
4ddd0 2c 74 68 69 73 29 7d 27 3b 0a 20 20 20 20 20 20 ,this)}';.
4dde0 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 6b 65 79 }.. if (key
4ddf0 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 65 78 70 ) {.. exp
4de00 72 20 3d 20 28 74 62 0a 20 20 20 20 20 20 20 20 r = (tb.
4de10 20 20 20 20 3f 20 27 66 75 6e 63 74 69 6f 6e 28 ? 'function(
4de20 29 7b 27 20 2b 20 65 78 70 72 20 2b 20 27 7d 2e ){' + expr + '}.
4de30 63 61 6c 6c 28 74 68 69 73 29 27 20 3a 20 27 28 call(this)' : '(
4de40 27 20 2b 20 65 78 70 72 20 2b 20 27 29 27 0a 20 ' + expr + ')'.
4de50 20 20 20 20 20 20 20 20 20 29 20 2b 20 27 3f 22 ) + '?"
4de60 27 20 2b 20 6b 65 79 20 2b 20 27 22 3a 22 22 27 ' + key + '":""'
4de70 3b 0a 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 ;.. } else
4de80 69 66 20 28 61 73 54 65 78 74 29 20 7b 0a 0a 20 if (asText) {..
4de90 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 27 66 expr = 'f
4dea0 75 6e 63 74 69 6f 6e 28 76 29 7b 27 20 2b 20 28 unction(v){' + (
4deb0 74 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 3f tb. ?
4dec0 20 65 78 70 72 2e 72 65 70 6c 61 63 65 28 27 72 expr.replace('r
4ded0 65 74 75 72 6e 20 27 2c 20 27 76 3d 27 29 20 3a eturn ', 'v=') :
4dee0 20 27 76 3d 28 27 20 2b 20 65 78 70 72 20 2b 20 'v=(' + expr +
4def0 27 29 27 0a 20 20 20 20 20 20 20 20 20 20 29 20 ')'. )
4df00 2b 20 27 3b 72 65 74 75 72 6e 20 76 7c 7c 76 3d + ';return v||v=
4df10 3d 3d 30 3f 76 3a 22 22 7d 2e 63 61 6c 6c 28 74 ==0?v:""}.call(t
4df20 68 69 73 29 27 3b 0a 20 20 20 20 20 20 7d 0a 0a his)';. }..
4df30 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 78 70 return exp
4df40 72 0a 20 20 20 20 7d 0a 0a 20 20 20 20 5f 74 6d r. }.. _tm
4df50 70 6c 2e 76 65 72 73 69 6f 6e 20 3d 20 62 72 61 pl.version = bra
4df60 63 6b 65 74 73 2e 76 65 72 73 69 6f 6e 20 3d 20 ckets.version =
4df70 27 76 33 2e 30 2e 38 27 3b 0a 0a 20 20 20 20 72 'v3.0.8';.. r
4df80 65 74 75 72 6e 20 5f 74 6d 70 6c 0a 0a 20 20 7d eturn _tmpl.. }
4df90 29 28 29 3b 0a 0a 20 20 65 78 70 6f 72 74 73 2e )();.. exports.
4dfa0 62 72 61 63 6b 65 74 73 20 3d 20 62 72 61 63 6b brackets = brack
4dfb0 65 74 73 3b 0a 20 20 65 78 70 6f 72 74 73 2e 74 ets;. exports.t
4dfc0 6d 70 6c 20 3d 20 74 6d 70 6c 3b 0a 0a 20 20 4f mpl = tmpl;.. O
4dfd0 62 6a 65 63 74 2e 64 65 66 69 6e 65 50 72 6f 70 bject.defineProp
4dfe0 65 72 74 79 28 65 78 70 6f 72 74 73 2c 20 27 5f erty(exports, '_
4dff0 5f 65 73 4d 6f 64 75 6c 65 27 2c 20 7b 20 76 61 _esModule', { va
4e000 6c 75 65 3a 20 74 72 75 65 20 7d 29 3b 0a 0a 20 lue: true });..
4e010 20 7d 29 29 29 3b 0a 20 20 7d 29 3b 0a 0a 20 20 })));. });..
4e020 75 6e 77 72 61 70 45 78 70 6f 72 74 73 28 63 73 unwrapExports(cs
4e030 70 5f 74 6d 70 6c 29 3b 0a 20 20 76 61 72 20 63 p_tmpl);. var c
4e040 73 70 5f 74 6d 70 6c 5f 31 20 3d 20 63 73 70 5f sp_tmpl_1 = csp_
4e050 74 6d 70 6c 2e 74 6d 70 6c 3b 0a 20 20 76 61 72 tmpl.tmpl;. var
4e060 20 63 73 70 5f 74 6d 70 6c 5f 32 20 3d 20 63 73 csp_tmpl_2 = cs
4e070 70 5f 74 6d 70 6c 2e 62 72 61 63 6b 65 74 73 3b p_tmpl.brackets;
4e080 0a 0a 20 20 76 61 72 20 6f 62 73 65 72 76 61 62 .. var observab
4e090 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 6c le = function(el
4e0a0 29 20 7b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ) {.. /**.
4e0b0 20 20 2a 20 45 78 74 65 6e 64 20 74 68 65 20 6f * Extend the o
4e0c0 72 69 67 69 6e 61 6c 20 6f 62 6a 65 63 74 20 6f riginal object o
4e0d0 72 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 65 r create a new e
4e0e0 6d 70 74 79 20 6f 6e 65 0a 20 20 20 20 20 2a 20 mpty one. *
4e0f0 40 74 79 70 65 20 7b 20 4f 62 6a 65 63 74 20 7d @type { Object }
4e100 0a 20 20 20 20 20 2a 2f 0a 0a 20 20 20 20 65 6c . */.. el
4e110 20 3d 20 65 6c 20 7c 7c 20 7b 7d 3b 0a 0a 20 20 = el || {};..
4e120 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 50 72 69 /**. * Pri
4e130 76 61 74 65 20 76 61 72 69 61 62 6c 65 73 0a 20 vate variables.
4e140 20 20 20 20 2a 2f 0a 20 20 20 20 76 61 72 20 63 */. var c
4e150 61 6c 6c 62 61 63 6b 73 20 3d 20 7b 7d 2c 0a 20 allbacks = {},.
4e160 20 20 20 20 20 73 6c 69 63 65 20 3d 20 41 72 72 slice = Arr
4e170 61 79 2e 70 72 6f 74 6f 74 79 70 65 2e 73 6c 69 ay.prototype.sli
4e180 63 65 3b 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 ce;.. /**.
4e190 20 20 2a 20 50 75 62 6c 69 63 20 41 70 69 0a 20 * Public Api.
4e1a0 20 20 20 20 2a 2f 0a 0a 20 20 20 20 2f 2f 20 65 */.. // e
4e1b0 78 74 65 6e 64 20 74 68 65 20 65 6c 20 6f 62 6a xtend the el obj
4e1c0 65 63 74 20 61 64 64 69 6e 67 20 74 68 65 20 6f ect adding the o
4e1d0 62 73 65 72 76 61 62 6c 65 20 6d 65 74 68 6f 64 bservable method
4e1e0 73 0a 20 20 20 20 4f 62 6a 65 63 74 2e 64 65 66 s. Object.def
4e1f0 69 6e 65 50 72 6f 70 65 72 74 69 65 73 28 65 6c ineProperties(el
4e200 2c 20 7b 0a 20 20 20 20 20 20 2f 2a 2a 0a 20 20 , {. /**.
4e210 20 20 20 20 20 2a 20 4c 69 73 74 65 6e 20 74 6f * Listen to
4e220 20 74 68 65 20 67 69 76 65 6e 20 60 65 76 65 6e the given `even
4e230 74 60 20 61 6e 64 73 0a 20 20 20 20 20 20 20 2a t` ands. *
4e240 20 65 78 65 63 75 74 65 20 74 68 65 20 60 63 61 execute the `ca
4e250 6c 6c 62 61 63 6b 60 20 65 61 63 68 20 74 69 6d llback` each tim
4e260 65 20 61 6e 20 65 76 65 6e 74 20 69 73 20 74 72 e an event is tr
4e270 69 67 67 65 72 65 64 2e 0a 20 20 20 20 20 20 20 iggered..
4e280 2a 20 40 70 61 72 61 6d 20 20 7b 20 53 74 72 69 * @param { Stri
4e290 6e 67 20 7d 20 65 76 65 6e 74 20 2d 20 65 76 65 ng } event - eve
4e2a0 6e 74 20 69 64 0a 20 20 20 20 20 20 20 2a 20 40 nt id. * @
4e2b0 70 61 72 61 6d 20 20 7b 20 46 75 6e 63 74 69 6f param { Functio
4e2c0 6e 20 7d 20 66 6e 20 2d 20 63 61 6c 6c 62 61 63 n } fn - callbac
4e2d0 6b 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 k function.
4e2e0 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 4f * @returns { O
4e2f0 62 6a 65 63 74 20 7d 20 65 6c 0a 20 20 20 20 20 bject } el.
4e300 20 20 2a 2f 0a 20 20 20 20 20 20 6f 6e 3a 20 7b */. on: {
4e310 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 3a 20 . value:
4e320 66 75 6e 63 74 69 6f 6e 28 65 76 65 6e 74 2c 20 function(event,
4e330 66 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 fn) {.
4e340 69 66 20 28 74 79 70 65 6f 66 20 66 6e 20 3d 3d if (typeof fn ==
4e350 20 27 66 75 6e 63 74 69 6f 6e 27 29 0a 20 20 20 'function').
4e360 20 20 20 20 20 20 20 20 20 7b 20 28 63 61 6c 6c { (call
4e370 62 61 63 6b 73 5b 65 76 65 6e 74 5d 20 3d 20 63 backs[event] = c
4e380 61 6c 6c 62 61 63 6b 73 5b 65 76 65 6e 74 5d 20 allbacks[event]
4e390 7c 7c 20 5b 5d 29 2e 70 75 73 68 28 66 6e 29 3b || []).push(fn);
4e3a0 20 7d 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 }. ret
4e3b0 75 72 6e 20 65 6c 0a 20 20 20 20 20 20 20 20 7d urn el. }
4e3c0 2c 0a 20 20 20 20 20 20 20 20 65 6e 75 6d 65 72 ,. enumer
4e3d0 61 62 6c 65 3a 20 66 61 6c 73 65 2c 0a 20 20 20 able: false,.
4e3e0 20 20 20 20 20 77 72 69 74 61 62 6c 65 3a 20 66 writable: f
4e3f0 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 63 6f alse,. co
4e400 6e 66 69 67 75 72 61 62 6c 65 3a 20 66 61 6c 73 nfigurable: fals
4e410 65 0a 20 20 20 20 20 20 7d 2c 0a 0a 20 20 20 20 e. },..
4e420 20 20 2f 2a 2a 0a 20 20 20 20 20 20 20 2a 20 52 /**. * R
4e430 65 6d 6f 76 65 73 20 74 68 65 20 67 69 76 65 6e emoves the given
4e440 20 60 65 76 65 6e 74 60 20 6c 69 73 74 65 6e 65 `event` listene
4e450 72 73 0a 20 20 20 20 20 20 20 2a 20 40 70 61 72 rs. * @par
4e460 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 am { String }
4e470 65 76 65 6e 74 20 2d 20 65 76 65 6e 74 20 69 64 event - event id
4e480 0a 20 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d . * @param
4e490 20 20 20 7b 20 46 75 6e 63 74 69 6f 6e 20 7d 20 { Function }
4e4a0 66 6e 20 2d 20 63 61 6c 6c 62 61 63 6b 20 66 75 fn - callback fu
4e4b0 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 2a 20 nction. *
4e4c0 40 72 65 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 @returns { Objec
4e4d0 74 20 7d 20 65 6c 0a 20 20 20 20 20 20 20 2a 2f t } el. */
4e4e0 0a 20 20 20 20 20 20 6f 66 66 3a 20 7b 0a 20 20 . off: {.
4e4f0 20 20 20 20 20 20 76 61 6c 75 65 3a 20 66 75 6e value: fun
4e500 63 74 69 6f 6e 28 65 76 65 6e 74 2c 20 66 6e 29 ction(event, fn)
4e510 20 7b 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 {. if
4e520 28 65 76 65 6e 74 20 3d 3d 20 27 2a 27 20 26 26 (event == '*' &&
4e530 20 21 66 6e 29 20 7b 20 63 61 6c 6c 62 61 63 6b !fn) { callback
4e540 73 20 3d 20 7b 7d 3b 20 7d 0a 20 20 20 20 20 20 s = {}; }.
4e550 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 else {.
4e560 20 20 20 20 20 20 20 69 66 20 28 66 6e 29 20 7b if (fn) {
4e570 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 . v
4e580 61 72 20 61 72 72 20 3d 20 63 61 6c 6c 62 61 63 ar arr = callbac
4e590 6b 73 5b 65 76 65 6e 74 5d 3b 0a 20 20 20 20 20 ks[event];.
4e5a0 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 for (va
4e5b0 72 20 69 20 3d 20 30 2c 20 63 62 3b 20 63 62 20 r i = 0, cb; cb
4e5c0 3d 20 61 72 72 20 26 26 20 61 72 72 5b 69 5d 3b = arr && arr[i];
4e5d0 20 2b 2b 69 29 20 7b 0a 20 20 20 20 20 20 20 20 ++i) {.
4e5e0 20 20 20 20 20 20 20 20 69 66 20 28 63 62 20 3d if (cb =
4e5f0 3d 20 66 6e 29 20 7b 20 61 72 72 2e 73 70 6c 69 = fn) { arr.spli
4e600 63 65 28 69 2d 2d 2c 20 31 29 3b 20 7d 0a 20 20 ce(i--, 1); }.
4e610 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
4e620 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
4e630 20 7b 20 64 65 6c 65 74 65 20 63 61 6c 6c 62 61 { delete callba
4e640 63 6b 73 5b 65 76 65 6e 74 5d 3b 20 7d 0a 20 20 cks[event]; }.
4e650 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 }.
4e660 20 20 20 20 72 65 74 75 72 6e 20 65 6c 0a 20 20 return el.
4e670 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 },.
4e680 20 65 6e 75 6d 65 72 61 62 6c 65 3a 20 66 61 6c enumerable: fal
4e690 73 65 2c 0a 20 20 20 20 20 20 20 20 77 72 69 74 se,. writ
4e6a0 61 62 6c 65 3a 20 66 61 6c 73 65 2c 0a 20 20 20 able: false,.
4e6b0 20 20 20 20 20 63 6f 6e 66 69 67 75 72 61 62 6c configurabl
4e6c0 65 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d e: false. }
4e6d0 2c 0a 0a 20 20 20 20 20 20 2f 2a 2a 0a 20 20 20 ,.. /**.
4e6e0 20 20 20 20 2a 20 4c 69 73 74 65 6e 20 74 6f 20 * Listen to
4e6f0 74 68 65 20 67 69 76 65 6e 20 60 65 76 65 6e 74 the given `event
4e700 60 20 61 6e 64 0a 20 20 20 20 20 20 20 2a 20 65 ` and. * e
4e710 78 65 63 75 74 65 20 74 68 65 20 60 63 61 6c 6c xecute the `call
4e720 62 61 63 6b 60 20 61 74 20 6d 6f 73 74 20 6f 6e back` at most on
4e730 63 65 0a 20 20 20 20 20 20 20 2a 20 40 70 61 72 ce. * @par
4e740 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 am { String }
4e750 65 76 65 6e 74 20 2d 20 65 76 65 6e 74 20 69 64 event - event id
4e760 0a 20 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d . * @param
4e770 20 20 20 7b 20 46 75 6e 63 74 69 6f 6e 20 7d 20 { Function }
4e780 66 6e 20 2d 20 63 61 6c 6c 62 61 63 6b 20 66 75 fn - callback fu
4e790 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 2a 20 nction. *
4e7a0 40 72 65 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 @returns { Objec
4e7b0 74 20 7d 20 65 6c 0a 20 20 20 20 20 20 20 2a 2f t } el. */
4e7c0 0a 20 20 20 20 20 20 6f 6e 65 3a 20 7b 0a 20 20 . one: {.
4e7d0 20 20 20 20 20 20 76 61 6c 75 65 3a 20 66 75 6e value: fun
4e7e0 63 74 69 6f 6e 28 65 76 65 6e 74 2c 20 66 6e 29 ction(event, fn)
4e7f0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 66 75 6e {. fun
4e800 63 74 69 6f 6e 20 6f 6e 28 29 20 7b 0a 20 20 20 ction on() {.
4e810 20 20 20 20 20 20 20 20 20 65 6c 2e 6f 66 66 28 el.off(
4e820 65 76 65 6e 74 2c 20 6f 6e 29 3b 0a 20 20 20 20 event, on);.
4e830 20 20 20 20 20 20 20 20 66 6e 2e 61 70 70 6c 79 fn.apply
4e840 28 65 6c 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b (el, arguments);
4e850 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 . }.
4e860 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 6c return el
4e870 2e 6f 6e 28 65 76 65 6e 74 2c 20 6f 6e 29 0a 20 .on(event, on).
4e880 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 },.
4e890 20 20 65 6e 75 6d 65 72 61 62 6c 65 3a 20 66 61 enumerable: fa
4e8a0 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 77 72 69 lse,. wri
4e8b0 74 61 62 6c 65 3a 20 66 61 6c 73 65 2c 0a 20 20 table: false,.
4e8c0 20 20 20 20 20 20 63 6f 6e 66 69 67 75 72 61 62 configurab
4e8d0 6c 65 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 le: false.
4e8e0 7d 2c 0a 0a 20 20 20 20 20 20 2f 2a 2a 0a 20 20 },.. /**.
4e8f0 20 20 20 20 20 2a 20 45 78 65 63 75 74 65 20 61 * Execute a
4e900 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 66 75 6e 63 ll callback func
4e910 74 69 6f 6e 73 20 74 68 61 74 20 6c 69 73 74 65 tions that liste
4e920 6e 20 74 6f 0a 20 20 20 20 20 20 20 2a 20 74 68 n to. * th
4e930 65 20 67 69 76 65 6e 20 60 65 76 65 6e 74 60 0a e given `event`.
4e940 20 20 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 * @param
4e950 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 65 76 65 { String } eve
4e960 6e 74 20 2d 20 65 76 65 6e 74 20 69 64 0a 20 20 nt - event id.
4e970 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 * @returns
4e980 7b 20 4f 62 6a 65 63 74 20 7d 20 65 6c 0a 20 20 { Object } el.
4e990 20 20 20 20 20 2a 2f 0a 20 20 20 20 20 20 74 72 */. tr
4e9a0 69 67 67 65 72 3a 20 7b 0a 20 20 20 20 20 20 20 igger: {.
4e9b0 20 76 61 6c 75 65 3a 20 66 75 6e 63 74 69 6f 6e value: function
4e9c0 28 65 76 65 6e 74 29 20 7b 0a 20 20 20 20 20 20 (event) {.
4e9d0 20 20 20 20 76 61 72 20 61 72 67 75 6d 65 6e 74 var argument
4e9e0 73 24 31 20 3d 20 61 72 67 75 6d 65 6e 74 73 3b s$1 = arguments;
4e9f0 0a 0a 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 ... //
4ea00 67 65 74 74 69 6e 67 20 74 68 65 20 61 72 67 75 getting the argu
4ea10 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 ments.
4ea20 76 61 72 20 61 72 67 6c 65 6e 20 3d 20 61 72 67 var arglen = arg
4ea30 75 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 20 2d 20 uments.length -
4ea40 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 1,. a
4ea50 72 67 73 20 3d 20 6e 65 77 20 41 72 72 61 79 28 rgs = new Array(
4ea60 61 72 67 6c 65 6e 29 2c 0a 20 20 20 20 20 20 20 arglen),.
4ea70 20 20 20 20 20 66 6e 73 2c 0a 20 20 20 20 20 20 fns,.
4ea80 20 20 20 20 20 20 66 6e 2c 0a 20 20 20 20 20 20 fn,.
4ea90 20 20 20 20 20 20 69 3b 0a 0a 20 20 20 20 20 20 i;..
4eaa0 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 for (i = 0;
4eab0 69 20 3c 20 61 72 67 6c 65 6e 3b 20 69 2b 2b 29 i < arglen; i++)
4eac0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 {. a
4ead0 72 67 73 5b 69 5d 20 3d 20 61 72 67 75 6d 65 6e rgs[i] = argumen
4eae0 74 73 24 31 5b 69 20 2b 20 31 5d 3b 20 2f 2f 20 ts$1[i + 1]; //
4eaf0 73 6b 69 70 20 66 69 72 73 74 20 61 72 67 75 6d skip first argum
4eb00 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 7d 0a ent. }.
4eb10 0a 20 20 20 20 20 20 20 20 20 20 66 6e 73 20 3d . fns =
4eb20 20 73 6c 69 63 65 2e 63 61 6c 6c 28 63 61 6c 6c slice.call(call
4eb30 62 61 63 6b 73 5b 65 76 65 6e 74 5d 20 7c 7c 20 backs[event] ||
4eb40 5b 5d 2c 20 30 29 3b 0a 0a 20 20 20 20 20 20 20 [], 0);..
4eb50 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 66 for (i = 0; f
4eb60 6e 20 3d 20 66 6e 73 5b 69 5d 3b 20 2b 2b 69 29 n = fns[i]; ++i)
4eb70 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 {. f
4eb80 6e 2e 61 70 70 6c 79 28 65 6c 2c 20 61 72 67 73 n.apply(el, args
4eb90 29 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 0a 0a );. }..
4eba0 20 20 20 20 20 20 20 20 20 20 69 66 20 28 63 61 if (ca
4ebb0 6c 6c 62 61 63 6b 73 5b 27 2a 27 5d 20 26 26 20 llbacks['*'] &&
4ebc0 65 76 65 6e 74 20 21 3d 20 27 2a 27 29 0a 20 20 event != '*').
4ebd0 20 20 20 20 20 20 20 20 20 20 7b 20 65 6c 2e 74 { el.t
4ebe0 72 69 67 67 65 72 2e 61 70 70 6c 79 28 65 6c 2c rigger.apply(el,
4ebf0 20 5b 27 2a 27 2c 20 65 76 65 6e 74 5d 2e 63 6f ['*', event].co
4ec00 6e 63 61 74 28 61 72 67 73 29 29 3b 20 7d 0a 0a ncat(args)); }..
4ec10 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
4ec20 20 65 6c 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 el. },.
4ec30 20 20 20 20 20 20 20 65 6e 75 6d 65 72 61 62 6c enumerabl
4ec40 65 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 e: false,.
4ec50 20 20 77 72 69 74 61 62 6c 65 3a 20 66 61 6c 73 writable: fals
4ec60 65 2c 0a 20 20 20 20 20 20 20 20 63 6f 6e 66 69 e,. confi
4ec70 67 75 72 61 62 6c 65 3a 20 66 61 6c 73 65 0a 20 gurable: false.
4ec80 20 20 20 20 20 7d 0a 20 20 20 20 7d 29 3b 0a 0a }. });..
4ec90 20 20 20 20 72 65 74 75 72 6e 20 65 6c 0a 0a 20 return el..
4eca0 20 7d 3b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 };.. /**. *
4ecb0 53 68 6f 72 74 20 61 6c 69 61 73 20 66 6f 72 20 Short alias for
4ecc0 4f 62 6a 65 63 74 2e 67 65 74 4f 77 6e 50 72 6f Object.getOwnPro
4ecd0 70 65 72 74 79 44 65 73 63 72 69 70 74 6f 72 0a pertyDescriptor.
4ece0 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e */. function
4ecf0 20 67 65 74 50 72 6f 70 44 65 73 63 72 69 70 74 getPropDescript
4ed00 6f 72 20 28 6f 2c 20 6b 29 20 7b 0a 20 20 20 20 or (o, k) {.
4ed10 72 65 74 75 72 6e 20 4f 62 6a 65 63 74 2e 67 65 return Object.ge
4ed20 74 4f 77 6e 50 72 6f 70 65 72 74 79 44 65 73 63 tOwnPropertyDesc
4ed30 72 69 70 74 6f 72 28 6f 2c 20 6b 29 0a 20 20 7d riptor(o, k). }
4ed40 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 68 65 .. /**. * Che
4ed50 63 6b 20 69 66 20 70 61 73 73 65 64 20 61 72 67 ck if passed arg
4ed60 75 6d 65 6e 74 20 69 73 20 75 6e 64 65 66 69 6e ument is undefin
4ed70 65 64 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 ed. * @param
4ed80 20 7b 20 2a 20 7d 20 76 61 6c 75 65 20 2d 0a 20 { * } value -.
4ed90 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 42 * @returns { B
4eda0 6f 6f 6c 65 61 6e 20 7d 20 2d 0a 20 20 20 2a 2f oolean } -. */
4edb0 0a 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 6e . function isUn
4edc0 64 65 66 69 6e 65 64 28 76 61 6c 75 65 29 20 7b defined(value) {
4edd0 0a 20 20 20 20 72 65 74 75 72 6e 20 74 79 70 65 . return type
4ede0 6f 66 20 76 61 6c 75 65 20 3d 3d 3d 20 54 5f 55 of value === T_U
4edf0 4e 44 45 46 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a NDEF. }.. /**.
4ee00 20 20 20 2a 20 43 68 65 63 6b 20 77 68 65 74 68 * Check wheth
4ee10 65 72 20 6f 62 6a 65 63 74 27 73 20 70 72 6f 70 er object's prop
4ee20 65 72 74 79 20 63 6f 75 6c 64 20 62 65 20 6f 76 erty could be ov
4ee30 65 72 72 69 64 64 65 6e 0a 20 20 20 2a 20 40 70 erridden. * @p
4ee40 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 aram { Object
4ee50 7d 20 20 6f 62 6a 20 2d 20 73 6f 75 72 63 65 20 } obj - source
4ee60 6f 62 6a 65 63 74 0a 20 20 20 2a 20 40 70 61 72 object. * @par
4ee70 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 am { String }
4ee80 20 6b 65 79 20 2d 20 6f 62 6a 65 63 74 20 70 72 key - object pr
4ee90 6f 70 65 72 74 79 0a 20 20 20 2a 20 40 72 65 74 operty. * @ret
4eea0 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d urns { Boolean }
4eeb0 20 74 72 75 65 20 69 66 20 77 72 69 74 61 62 6c true if writabl
4eec0 65 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 e. */. functi
4eed0 6f 6e 20 69 73 57 72 69 74 61 62 6c 65 28 6f 62 on isWritable(ob
4eee0 6a 2c 20 6b 65 79 29 20 7b 0a 20 20 20 20 76 61 j, key) {. va
4eef0 72 20 64 65 73 63 72 69 70 74 6f 72 20 3d 20 67 r descriptor = g
4ef00 65 74 50 72 6f 70 44 65 73 63 72 69 70 74 6f 72 etPropDescriptor
4ef10 28 6f 62 6a 2c 20 6b 65 79 29 3b 0a 20 20 20 20 (obj, key);.
4ef20 72 65 74 75 72 6e 20 69 73 55 6e 64 65 66 69 6e return isUndefin
4ef30 65 64 28 6f 62 6a 5b 6b 65 79 5d 29 20 7c 7c 20 ed(obj[key]) ||
4ef40 64 65 73 63 72 69 70 74 6f 72 20 26 26 20 64 65 descriptor && de
4ef50 73 63 72 69 70 74 6f 72 2e 77 72 69 74 61 62 6c scriptor.writabl
4ef60 65 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 e. }.. /**.
4ef70 2a 20 45 78 74 65 6e 64 20 61 6e 79 20 6f 62 6a * Extend any obj
4ef80 65 63 74 20 77 69 74 68 20 6f 74 68 65 72 20 70 ect with other p
4ef90 72 6f 70 65 72 74 69 65 73 0a 20 20 20 2a 20 40 roperties. * @
4efa0 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 param { Object
4efb0 20 7d 20 73 72 63 20 2d 20 73 6f 75 72 63 65 20 } src - source
4efc0 6f 62 6a 65 63 74 0a 20 20 20 2a 20 40 72 65 74 object. * @ret
4efd0 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d 20 urns { Object }
4efe0 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 65 78 the resulting ex
4eff0 74 65 6e 64 65 64 20 6f 62 6a 65 63 74 0a 20 20 tended object.
4f000 20 2a 0a 20 20 20 2a 20 76 61 72 20 6f 62 6a 20 *. * var obj
4f010 3d 20 7b 20 66 6f 6f 3a 20 27 62 61 7a 27 20 7d = { foo: 'baz' }
4f020 0a 20 20 20 2a 20 65 78 74 65 6e 64 28 6f 62 6a . * extend(obj
4f030 2c 20 7b 62 61 72 3a 20 27 62 61 72 27 2c 20 66 , {bar: 'bar', f
4f040 6f 6f 3a 20 27 62 61 72 27 7d 29 0a 20 20 20 2a oo: 'bar'}). *
4f050 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 6f 62 6a console.log(obj
4f060 29 20 3d 3e 20 7b 62 61 72 3a 20 27 62 61 72 27 ) => {bar: 'bar'
4f070 2c 20 66 6f 6f 3a 20 27 62 61 72 27 7d 0a 20 20 , foo: 'bar'}.
4f080 20 2a 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 *. */. funct
4f090 69 6f 6e 20 65 78 74 65 6e 64 28 73 72 63 29 20 ion extend(src)
4f0a0 7b 0a 20 20 20 20 76 61 72 20 6f 62 6a 3b 0a 20 {. var obj;.
4f0b0 20 20 20 76 61 72 20 69 20 3d 20 31 3b 0a 20 20 var i = 1;.
4f0c0 20 20 76 61 72 20 61 72 67 73 20 3d 20 61 72 67 var args = arg
4f0d0 75 6d 65 6e 74 73 3b 0a 20 20 20 20 76 61 72 20 uments;. var
4f0e0 6c 20 3d 20 61 72 67 73 2e 6c 65 6e 67 74 68 3b l = args.length;
4f0f0 0a 0a 20 20 20 20 66 6f 72 20 28 3b 20 69 20 3c .. for (; i <
4f100 20 6c 3b 20 69 2b 2b 29 20 7b 0a 20 20 20 20 20 l; i++) {.
4f110 20 69 66 20 28 6f 62 6a 20 3d 20 61 72 67 73 5b if (obj = args[
4f120 69 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 66 6f i]) {. fo
4f130 72 20 28 76 61 72 20 6b 65 79 20 69 6e 20 6f 62 r (var key in ob
4f140 6a 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 2f j) {. /
4f150 2f 20 63 68 65 63 6b 20 69 66 20 74 68 69 73 20 / check if this
4f160 70 72 6f 70 65 72 74 79 20 6f 66 20 74 68 65 20 property of the
4f170 73 6f 75 72 63 65 20 6f 62 6a 65 63 74 20 63 6f source object co
4f180 75 6c 64 20 62 65 20 6f 76 65 72 72 69 64 64 65 uld be overridde
4f190 6e 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 28 n. if (
4f1a0 69 73 57 72 69 74 61 62 6c 65 28 73 72 63 2c 20 isWritable(src,
4f1b0 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 key)).
4f1c0 20 20 7b 20 73 72 63 5b 6b 65 79 5d 20 3d 20 6f { src[key] = o
4f1d0 62 6a 5b 6b 65 79 5d 3b 20 7d 0a 20 20 20 20 20 bj[key]; }.
4f1e0 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 }. }.
4f1f0 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 73 72 }. return sr
4f200 63 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 c. }.. /**.
4f210 2a 20 41 6c 69 61 73 20 66 6f 72 20 4f 62 6a 65 * Alias for Obje
4f220 63 74 2e 63 72 65 61 74 65 0a 20 20 20 2a 2f 0a ct.create. */.
4f230 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 function creat
4f240 65 28 73 72 63 29 20 7b 0a 20 20 20 20 72 65 74 e(src) {. ret
4f250 75 72 6e 20 4f 62 6a 65 63 74 2e 63 72 65 61 74 urn Object.creat
4f260 65 28 73 72 63 29 0a 20 20 7d 0a 0a 20 20 76 61 e(src). }.. va
4f270 72 20 73 65 74 74 69 6e 67 73 20 3d 20 65 78 74 r settings = ext
4f280 65 6e 64 28 63 72 65 61 74 65 28 63 73 70 5f 74 end(create(csp_t
4f290 6d 70 6c 5f 32 2e 73 65 74 74 69 6e 67 73 29 2c mpl_2.settings),
4f2a0 20 7b 0a 20 20 20 20 73 6b 69 70 41 6e 6f 6e 79 {. skipAnony
4f2b0 6d 6f 75 73 54 61 67 73 3a 20 74 72 75 65 2c 0a mousTags: true,.
4f2c0 20 20 20 20 2f 2f 20 74 68 65 20 22 76 61 6c 75 // the "valu
4f2d0 65 22 20 61 74 74 72 69 62 75 74 65 73 20 77 69 e" attributes wi
4f2e0 6c 6c 20 62 65 20 70 72 65 73 65 72 76 65 64 0a ll be preserved.
4f2f0 20 20 20 20 6b 65 65 70 56 61 6c 75 65 41 74 74 keepValueAtt
4f300 72 69 62 75 74 65 73 3a 20 66 61 6c 73 65 2c 0a ributes: false,.
4f310 20 20 20 20 2f 2f 20 68 61 6e 64 6c 65 20 74 68 // handle th
4f320 65 20 61 75 74 6f 20 75 70 64 61 74 65 73 20 6f e auto updates o
4f330 6e 20 61 6e 79 20 44 4f 4d 20 65 76 65 6e 74 0a n any DOM event.
4f340 20 20 20 20 61 75 74 6f 55 70 64 61 74 65 3a 20 autoUpdate:
4f350 74 72 75 65 0a 20 20 7d 29 3b 0a 0a 20 20 2f 2a true. });.. /*
4f360 2a 0a 20 20 20 2a 20 53 68 6f 72 74 65 72 20 61 *. * Shorter a
4f370 6e 64 20 66 61 73 74 20 77 61 79 20 74 6f 20 73 nd fast way to s
4f380 65 6c 65 63 74 20 6d 75 6c 74 69 70 6c 65 20 6e elect multiple n
4f390 6f 64 65 73 20 69 6e 20 74 68 65 20 44 4f 4d 0a odes in the DOM.
4f3a0 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
4f3b0 53 74 72 69 6e 67 20 7d 20 73 65 6c 65 63 74 6f String } selecto
4f3c0 72 20 2d 20 44 4f 4d 20 73 65 6c 65 63 74 6f 72 r - DOM selector
4f3d0 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b . * @param {
4f3e0 20 4f 62 6a 65 63 74 20 7d 20 63 74 78 20 2d 20 Object } ctx -
4f3f0 44 4f 4d 20 6e 6f 64 65 20 77 68 65 72 65 20 74 DOM node where t
4f400 68 65 20 74 61 72 67 65 74 73 20 6f 66 20 6f 75 he targets of ou
4f410 72 20 73 65 61 72 63 68 20 77 69 6c 6c 20 69 73 r search will is
4f420 20 6c 6f 63 61 74 65 64 0a 20 20 20 2a 20 40 72 located. * @r
4f430 65 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 eturns { Object
4f440 7d 20 64 6f 6d 20 6e 6f 64 65 73 20 66 6f 75 6e } dom nodes foun
4f450 64 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 d. */. functi
4f460 6f 6e 20 24 24 28 73 65 6c 65 63 74 6f 72 2c 20 on $$(selector,
4f470 63 74 78 29 20 7b 0a 20 20 20 20 72 65 74 75 72 ctx) {. retur
4f480 6e 20 5b 5d 2e 73 6c 69 63 65 2e 63 61 6c 6c 28 n [].slice.call(
4f490 28 63 74 78 20 7c 7c 20 64 6f 63 75 6d 65 6e 74 (ctx || document
4f4a0 29 2e 71 75 65 72 79 53 65 6c 65 63 74 6f 72 41 ).querySelectorA
4f4b0 6c 6c 28 73 65 6c 65 63 74 6f 72 29 29 0a 20 20 ll(selector)).
4f4c0 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 }.. /**. * Cr
4f4d0 65 61 74 65 20 61 20 64 6f 63 75 6d 65 6e 74 20 eate a document
4f4e0 74 65 78 74 20 6e 6f 64 65 0a 20 20 20 2a 20 40 text node. * @
4f4f0 72 65 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 returns { Object
4f500 20 7d 20 63 72 65 61 74 65 20 61 20 74 65 78 74 } create a text
4f510 20 6e 6f 64 65 20 74 6f 20 75 73 65 20 61 73 20 node to use as
4f520 70 6c 61 63 65 68 6f 6c 64 65 72 0a 20 20 20 2a placeholder. *
4f530 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 /. function cre
4f540 61 74 65 44 4f 4d 50 6c 61 63 65 68 6f 6c 64 65 ateDOMPlaceholde
4f550 72 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e r() {. return
4f560 20 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 document.create
4f570 54 65 78 74 4e 6f 64 65 28 27 27 29 0a 20 20 7d TextNode(''). }
4f580 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54 6f 67 .. /**. * Tog
4f590 67 6c 65 20 74 68 65 20 76 69 73 69 62 69 6c 69 gle the visibili
4f5a0 74 79 20 6f 66 20 61 6e 79 20 44 4f 4d 20 6e 6f ty of any DOM no
4f5b0 64 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 de. * @param
4f5c0 20 7b 20 4f 62 6a 65 63 74 20 7d 20 20 64 6f 6d { Object } dom
4f5d0 20 2d 20 44 4f 4d 20 6e 6f 64 65 20 77 65 20 77 - DOM node we w
4f5e0 61 6e 74 20 74 6f 20 68 69 64 65 0a 20 20 20 2a ant to hide. *
4f5f0 20 40 70 61 72 61 6d 20 20 20 7b 20 42 6f 6f 6c @param { Bool
4f600 65 61 6e 20 7d 20 73 68 6f 77 20 2d 20 64 6f 20 ean } show - do
4f610 77 65 20 77 61 6e 74 20 74 6f 20 73 68 6f 77 20 we want to show
4f620 69 74 3f 0a 20 20 20 2a 2f 0a 0a 20 20 66 75 6e it?. */.. fun
4f630 63 74 69 6f 6e 20 74 6f 67 67 6c 65 56 69 73 69 ction toggleVisi
4f640 62 69 6c 69 74 79 28 64 6f 6d 2c 20 73 68 6f 77 bility(dom, show
4f650 29 20 7b 0a 20 20 20 20 64 6f 6d 2e 73 74 79 6c ) {. dom.styl
4f660 65 2e 64 69 73 70 6c 61 79 20 3d 20 73 68 6f 77 e.display = show
4f670 20 3f 20 27 27 20 3a 20 27 6e 6f 6e 65 27 3b 0a ? '' : 'none';.
4f680 20 20 20 20 64 6f 6d 2e 68 69 64 64 65 6e 20 3d dom.hidden =
4f690 20 73 68 6f 77 20 3f 20 66 61 6c 73 65 20 3a 20 show ? false :
4f6a0 74 72 75 65 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a true;. }.. /**
4f6b0 0a 20 20 20 2a 20 47 65 74 20 74 68 65 20 76 61 . * Get the va
4f6c0 6c 75 65 20 6f 66 20 61 6e 79 20 44 4f 4d 20 61 lue of any DOM a
4f6d0 74 74 72 69 62 75 74 65 20 6f 6e 20 61 20 6e 6f ttribute on a no
4f6e0 64 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 de. * @param
4f6f0 20 7b 20 4f 62 6a 65 63 74 20 7d 20 64 6f 6d 20 { Object } dom
4f700 2d 20 44 4f 4d 20 6e 6f 64 65 20 77 65 20 77 61 - DOM node we wa
4f710 6e 74 20 74 6f 20 70 61 72 73 65 0a 20 20 20 2a nt to parse. *
4f720 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 69 @param { Stri
4f730 6e 67 20 7d 20 6e 61 6d 65 20 2d 20 6e 61 6d 65 ng } name - name
4f740 20 6f 66 20 74 68 65 20 61 74 74 72 69 62 75 74 of the attribut
4f750 65 20 77 65 20 77 61 6e 74 20 74 6f 20 67 65 74 e we want to get
4f760 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b . * @returns {
4f770 20 53 74 72 69 6e 67 20 7c 20 75 6e 64 65 66 69 String | undefi
4f780 6e 65 64 20 7d 20 6e 61 6d 65 20 6f 66 20 74 68 ned } name of th
4f790 65 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 e node attribute
4f7a0 20 77 68 65 74 68 65 72 20 69 74 20 65 78 69 73 whether it exis
4f7b0 74 73 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 ts. */. funct
4f7c0 69 6f 6e 20 67 65 74 41 74 74 72 69 62 75 74 65 ion getAttribute
4f7d0 28 64 6f 6d 2c 20 6e 61 6d 65 29 20 7b 0a 20 20 (dom, name) {.
4f7e0 20 20 72 65 74 75 72 6e 20 64 6f 6d 2e 67 65 74 return dom.get
4f7f0 41 74 74 72 69 62 75 74 65 28 6e 61 6d 65 29 0a Attribute(name).
4f800 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
4f810 52 65 6d 6f 76 65 20 61 6e 79 20 44 4f 4d 20 61 Remove any DOM a
4f820 74 74 72 69 62 75 74 65 20 66 72 6f 6d 20 61 20 ttribute from a
4f830 6e 6f 64 65 0a 20 20 20 2a 20 40 70 61 72 61 6d node. * @param
4f840 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 64 6f { Object } do
4f850 6d 20 2d 20 44 4f 4d 20 6e 6f 64 65 20 77 65 20 m - DOM node we
4f860 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 0a 20 want to update.
4f870 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 * @param { S
4f880 74 72 69 6e 67 20 7d 20 6e 61 6d 65 20 2d 20 6e tring } name - n
4f890 61 6d 65 20 6f 66 20 74 68 65 20 70 72 6f 70 65 ame of the prope
4f8a0 72 74 79 20 77 65 20 77 61 6e 74 20 74 6f 20 72 rty we want to r
4f8b0 65 6d 6f 76 65 0a 20 20 20 2a 2f 0a 20 20 66 75 emove. */. fu
4f8c0 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 41 74 74 nction removeAtt
4f8d0 72 69 62 75 74 65 28 64 6f 6d 2c 20 6e 61 6d 65 ribute(dom, name
4f8e0 29 20 7b 0a 20 20 20 20 64 6f 6d 2e 72 65 6d 6f ) {. dom.remo
4f8f0 76 65 41 74 74 72 69 62 75 74 65 28 6e 61 6d 65 veAttribute(name
4f900 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 );. }.. /**.
4f910 20 2a 20 53 65 74 20 74 68 65 20 69 6e 6e 65 72 * Set the inner
4f920 20 68 74 6d 6c 20 6f 66 20 61 6e 79 20 44 4f 4d html of any DOM
4f930 20 6e 6f 64 65 20 53 56 47 73 20 69 6e 63 6c 75 node SVGs inclu
4f940 64 65 64 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 ded. * @param
4f950 7b 20 4f 62 6a 65 63 74 20 7d 20 63 6f 6e 74 61 { Object } conta
4f960 69 6e 65 72 20 2d 20 44 4f 4d 20 6e 6f 64 65 20 iner - DOM node
4f970 77 68 65 72 65 20 77 65 27 6c 6c 20 69 6e 6a 65 where we'll inje
4f980 63 74 20 6e 65 77 20 68 74 6d 6c 0a 20 20 20 2a ct new html. *
4f990 20 40 70 61 72 61 6d 20 7b 20 53 74 72 69 6e 67 @param { String
4f9a0 20 7d 20 68 74 6d 6c 20 2d 20 68 74 6d 6c 20 74 } html - html t
4f9b0 6f 20 69 6e 6a 65 63 74 0a 20 20 20 2a 20 40 70 o inject. * @p
4f9c0 61 72 61 6d 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d aram { Boolean }
4f9d0 20 69 73 53 76 67 20 2d 20 73 76 67 20 74 61 67 isSvg - svg tag
4f9e0 73 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 s should be trea
4f9f0 74 65 64 20 61 20 62 69 74 20 64 69 66 66 65 72 ted a bit differ
4fa00 65 6e 74 6c 79 0a 20 20 20 2a 2f 0a 20 20 2f 2a ently. */. /*
4fa10 20 69 73 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 istanbul ignore
4fa20 20 6e 65 78 74 20 2a 2f 0a 20 20 66 75 6e 63 74 next */. funct
4fa30 69 6f 6e 20 73 65 74 49 6e 6e 65 72 48 54 4d 4c ion setInnerHTML
4fa40 28 63 6f 6e 74 61 69 6e 65 72 2c 20 68 74 6d 6c (container, html
4fa50 2c 20 69 73 53 76 67 29 20 7b 0a 20 20 20 20 2f , isSvg) {. /
4fa60 2f 20 69 6e 6e 65 72 48 54 4d 4c 20 69 73 20 6e / innerHTML is n
4fa70 6f 74 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 ot supported on
4fa80 73 76 67 20 74 61 67 73 20 73 6f 20 77 65 20 6e svg tags so we n
4fa90 65 65 74 20 74 6f 20 74 72 65 61 74 20 74 68 65 eet to treat the
4faa0 6d 20 64 69 66 66 65 72 65 6e 74 6c 79 0a 20 20 m differently.
4fab0 20 20 69 66 20 28 69 73 53 76 67 29 20 7b 0a 20 if (isSvg) {.
4fac0 20 20 20 20 20 76 61 72 20 6e 6f 64 65 20 3d 20 var node =
4fad0 63 6f 6e 74 61 69 6e 65 72 2e 6f 77 6e 65 72 44 container.ownerD
4fae0 6f 63 75 6d 65 6e 74 2e 69 6d 70 6f 72 74 4e 6f ocument.importNo
4faf0 64 65 28 0a 20 20 20 20 20 20 20 20 6e 65 77 20 de(. new
4fb00 44 4f 4d 50 61 72 73 65 72 28 29 0a 20 20 20 20 DOMParser().
4fb10 20 20 20 20 20 20 2e 70 61 72 73 65 46 72 6f 6d .parseFrom
4fb20 53 74 72 69 6e 67 28 28 22 3c 73 76 67 20 78 6d String(("<svg xm
4fb30 6c 6e 73 3d 5c 22 22 20 2b 20 53 56 47 5f 4e 53 lns=\"" + SVG_NS
4fb40 20 2b 20 22 5c 22 3e 22 20 2b 20 68 74 6d 6c 20 + "\">" + html
4fb50 2b 20 22 3c 2f 73 76 67 3e 22 29 2c 20 27 61 70 + "</svg>"), 'ap
4fb60 70 6c 69 63 61 74 69 6f 6e 2f 78 6d 6c 27 29 0a plication/xml').
4fb70 20 20 20 20 20 20 20 20 20 20 2e 64 6f 63 75 6d .docum
4fb80 65 6e 74 45 6c 65 6d 65 6e 74 2c 0a 20 20 20 20 entElement,.
4fb90 20 20 20 20 74 72 75 65 0a 20 20 20 20 20 20 29 true. )
4fba0 3b 0a 0a 20 20 20 20 20 20 63 6f 6e 74 61 69 6e ;.. contain
4fbb0 65 72 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 6e er.appendChild(n
4fbc0 6f 64 65 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 ode);. } else
4fbd0 20 7b 0a 20 20 20 20 20 20 63 6f 6e 74 61 69 6e {. contain
4fbe0 65 72 2e 69 6e 6e 65 72 48 54 4d 4c 20 3d 20 68 er.innerHTML = h
4fbf0 74 6d 6c 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a tml;. }. }..
4fc00 20 20 2f 2a 2a 0a 20 20 20 2a 20 4d 69 6e 69 6d /**. * Minim
4fc10 69 7a 65 20 72 69 73 6b 3a 20 6f 6e 6c 79 20 7a ize risk: only z
4fc20 65 72 6f 20 6f 72 20 6f 6e 65 20 5f 73 70 61 63 ero or one _spac
4fc30 65 5f 20 62 65 74 77 65 65 6e 20 61 74 74 72 20 e_ between attr
4fc40 26 20 76 61 6c 75 65 0a 20 20 20 2a 20 40 70 61 & value. * @pa
4fc50 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d ram { String }
4fc60 20 20 20 68 74 6d 6c 20 2d 20 68 74 6d 6c 20 73 html - html s
4fc70 74 72 69 6e 67 20 77 65 20 77 61 6e 74 20 74 6f tring we want to
4fc80 20 70 61 72 73 65 0a 20 20 20 2a 20 40 70 61 72 parse. * @par
4fc90 61 6d 20 20 20 7b 20 46 75 6e 63 74 69 6f 6e 20 am { Function
4fca0 7d 20 66 6e 20 2d 20 63 61 6c 6c 62 61 63 6b 20 } fn - callback
4fcb0 66 75 6e 63 74 69 6f 6e 20 74 6f 20 61 70 70 6c function to appl
4fcc0 79 20 6f 6e 20 61 6e 79 20 61 74 74 72 69 62 75 y on any attribu
4fcd0 74 65 20 66 6f 75 6e 64 0a 20 20 20 2a 2f 0a 20 te found. */.
4fce0 20 66 75 6e 63 74 69 6f 6e 20 77 61 6c 6b 41 74 function walkAt
4fcf0 74 72 69 62 75 74 65 73 28 68 74 6d 6c 2c 20 66 tributes(html, f
4fd00 6e 29 20 7b 0a 20 20 20 20 69 66 20 28 21 68 74 n) {. if (!ht
4fd10 6d 6c 29 20 7b 20 72 65 74 75 72 6e 20 7d 0a 20 ml) { return }.
4fd20 20 20 20 76 61 72 20 6d 3b 0a 20 20 20 20 77 68 var m;. wh
4fd30 69 6c 65 20 28 6d 20 3d 20 52 45 5f 48 54 4d 4c ile (m = RE_HTML
4fd40 5f 41 54 54 52 53 2e 65 78 65 63 28 68 74 6d 6c _ATTRS.exec(html
4fd50 29 29 0a 20 20 20 20 20 20 7b 20 66 6e 28 6d 5b )). { fn(m[
4fd60 31 5d 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28 29 1].toLowerCase()
4fd70 2c 20 6d 5b 32 5d 20 7c 7c 20 6d 5b 33 5d 20 7c , m[2] || m[3] |
4fd80 7c 20 6d 5b 34 5d 29 3b 20 7d 0a 20 20 7d 0a 0a | m[4]); }. }..
4fd90 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 /**. * Creat
4fda0 65 20 61 20 64 6f 63 75 6d 65 6e 74 20 66 72 61 e a document fra
4fdb0 67 6d 65 6e 74 0a 20 20 20 2a 20 40 72 65 74 75 gment. * @retu
4fdc0 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d 20 64 rns { Object } d
4fdd0 6f 63 75 6d 65 6e 74 20 66 72 61 67 6d 65 6e 74 ocument fragment
4fde0 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f . */. functio
4fdf0 6e 20 63 72 65 61 74 65 46 72 61 67 6d 65 6e 74 n createFragment
4fe00 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 () {. return
4fe10 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 44 document.createD
4fe20 6f 63 75 6d 65 6e 74 46 72 61 67 6d 65 6e 74 28 ocumentFragment(
4fe30 29 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 ). }.. /**.
4fe40 2a 20 49 6e 73 65 72 74 20 73 61 66 65 6c 79 20 * Insert safely
4fe50 61 20 74 61 67 20 74 6f 20 66 69 78 20 23 31 39 a tag to fix #19
4fe60 36 32 20 23 31 36 34 39 0a 20 20 20 2a 20 40 70 62 #1649. * @p
4fe70 61 72 61 6d 20 20 20 7b 20 48 54 4d 4c 45 6c 65 aram { HTMLEle
4fe80 6d 65 6e 74 20 7d 20 72 6f 6f 74 20 2d 20 63 68 ment } root - ch
4fe90 69 6c 64 72 65 6e 20 63 6f 6e 74 61 69 6e 65 72 ildren container
4fea0 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b . * @param {
4feb0 20 48 54 4d 4c 45 6c 65 6d 65 6e 74 20 7d 20 63 HTMLElement } c
4fec0 75 72 72 20 2d 20 6e 6f 64 65 20 74 6f 20 69 6e urr - node to in
4fed0 73 65 72 74 0a 20 20 20 2a 20 40 70 61 72 61 6d sert. * @param
4fee0 20 20 20 7b 20 48 54 4d 4c 45 6c 65 6d 65 6e 74 { HTMLElement
4fef0 20 7d 20 6e 65 78 74 20 2d 20 6e 6f 64 65 20 74 } next - node t
4ff00 68 61 74 20 73 68 6f 75 6c 64 20 70 72 65 63 65 hat should prece
4ff10 65 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e ed the current n
4ff20 6f 64 65 20 69 6e 73 65 72 74 65 64 0a 20 20 20 ode inserted.
4ff30 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 73 61 */. function sa
4ff40 66 65 49 6e 73 65 72 74 28 72 6f 6f 74 2c 20 63 feInsert(root, c
4ff50 75 72 72 2c 20 6e 65 78 74 29 20 7b 0a 20 20 20 urr, next) {.
4ff60 20 72 6f 6f 74 2e 69 6e 73 65 72 74 42 65 66 6f root.insertBefo
4ff70 72 65 28 63 75 72 72 2c 20 6e 65 78 74 2e 70 61 re(curr, next.pa
4ff80 72 65 6e 74 4e 6f 64 65 20 26 26 20 6e 65 78 74 rentNode && next
4ff90 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 );. }.. /**.
4ffa0 20 2a 20 43 6f 6e 76 65 72 74 20 61 20 73 74 79 * Convert a sty
4ffb0 6c 65 20 6f 62 6a 65 63 74 20 74 6f 20 61 20 73 le object to a s
4ffc0 74 72 69 6e 67 0a 20 20 20 2a 20 40 70 61 72 61 tring. * @para
4ffd0 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 73 m { Object } s
4ffe0 74 79 6c 65 20 2d 20 73 74 79 6c 65 20 6f 62 6a tyle - style obj
4fff0 65 63 74 20 77 65 20 6e 65 65 64 20 74 6f 20 70 ect we need to p
50000 61 72 73 65 0a 20 20 20 2a 20 40 72 65 74 75 72 arse. * @retur
50010 6e 73 20 7b 20 53 74 72 69 6e 67 20 7d 20 72 65 ns { String } re
50020 73 75 6c 74 69 6e 67 20 63 73 73 20 73 74 72 69 sulting css stri
50030 6e 67 0a 20 20 20 2a 20 40 65 78 61 6d 70 6c 65 ng. * @example
50040 0a 20 20 20 2a 20 73 74 79 6c 65 4f 62 6a 65 63 . * styleObjec
50050 74 54 6f 53 74 72 69 6e 67 28 7b 20 63 6f 6c 6f tToString({ colo
50060 72 3a 20 27 72 65 64 27 2c 20 68 65 69 67 68 74 r: 'red', height
50070 3a 20 27 31 30 70 78 27 7d 29 20 2f 2f 20 3d 3e : '10px'}) // =>
50080 20 27 63 6f 6c 6f 72 3a 20 72 65 64 3b 20 68 65 'color: red; he
50090 69 67 68 74 3a 20 31 30 70 78 27 0a 20 20 20 2a ight: 10px'. *
500a0 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 73 74 79 /. function sty
500b0 6c 65 4f 62 6a 65 63 74 54 6f 53 74 72 69 6e 67 leObjectToString
500c0 28 73 74 79 6c 65 29 20 7b 0a 20 20 20 20 72 65 (style) {. re
500d0 74 75 72 6e 20 4f 62 6a 65 63 74 2e 6b 65 79 73 turn Object.keys
500e0 28 73 74 79 6c 65 29 2e 72 65 64 75 63 65 28 66 (style).reduce(f
500f0 75 6e 63 74 69 6f 6e 20 28 61 63 63 2c 20 70 72 unction (acc, pr
50100 6f 70 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 op) {. retu
50110 72 6e 20 28 61 63 63 20 2b 20 22 20 22 20 2b 20 rn (acc + " " +
50120 70 72 6f 70 20 2b 20 22 3a 20 22 20 2b 20 28 73 prop + ": " + (s
50130 74 79 6c 65 5b 70 72 6f 70 5d 29 20 2b 20 22 3b tyle[prop]) + ";
50140 22 29 0a 20 20 20 20 7d 2c 20 27 27 29 0a 20 20 "). }, '').
50150 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 57 61 }.. /**. * Wa
50160 6c 6b 20 64 6f 77 6e 20 72 65 63 75 72 73 69 76 lk down recursiv
50170 65 6c 79 20 61 6c 6c 20 74 68 65 20 63 68 69 6c ely all the chil
50180 64 72 65 6e 20 74 61 67 73 20 73 74 61 72 74 69 dren tags starti
50190 6e 67 20 64 6f 6d 20 6e 6f 64 65 0a 20 20 20 2a ng dom node. *
501a0 20 40 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 @param { Obje
501b0 63 74 20 7d 20 20 20 64 6f 6d 20 2d 20 73 74 61 ct } dom - sta
501c0 72 74 69 6e 67 20 6e 6f 64 65 20 77 68 65 72 65 rting node where
501d0 20 77 65 20 77 69 6c 6c 20 73 74 61 72 74 20 74 we will start t
501e0 68 65 20 72 65 63 75 72 73 69 6f 6e 0a 20 20 20 he recursion.
501f0 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 46 75 6e * @param { Fun
50200 63 74 69 6f 6e 20 7d 20 66 6e 20 2d 20 63 61 6c ction } fn - cal
50210 6c 62 61 63 6b 20 74 6f 20 74 72 61 6e 73 66 6f lback to transfo
50220 72 6d 20 74 68 65 20 63 68 69 6c 64 20 6e 6f 64 rm the child nod
50230 65 20 6a 75 73 74 20 66 6f 75 6e 64 0a 20 20 20 e just found.
50240 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a * @param { Obj
50250 65 63 74 20 7d 20 20 20 63 6f 6e 74 65 78 74 20 ect } context
50260 2d 20 66 6e 20 63 61 6e 20 6f 70 74 69 6f 6e 61 - fn can optiona
50270 6c 6c 79 20 72 65 74 75 72 6e 20 61 6e 20 6f 62 lly return an ob
50280 6a 65 63 74 2c 20 77 68 69 63 68 20 69 73 20 70 ject, which is p
50290 61 73 73 65 64 20 74 6f 20 63 68 69 6c 64 72 65 assed to childre
502a0 6e 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 n. */. functi
502b0 6f 6e 20 77 61 6c 6b 4e 6f 64 65 73 28 64 6f 6d on walkNodes(dom
502c0 2c 20 66 6e 2c 20 63 6f 6e 74 65 78 74 29 20 7b , fn, context) {
502d0 0a 20 20 20 20 69 66 20 28 64 6f 6d 29 20 7b 0a . if (dom) {.
502e0 20 20 20 20 20 20 76 61 72 20 72 65 73 20 3d 20 var res =
502f0 66 6e 28 64 6f 6d 2c 20 63 6f 6e 74 65 78 74 29 fn(dom, context)
50300 3b 0a 20 20 20 20 20 20 76 61 72 20 6e 65 78 74 ;. var next
50310 3b 0a 20 20 20 20 20 20 2f 2f 20 73 74 6f 70 20 ;. // stop
50320 74 68 65 20 72 65 63 75 72 73 69 6f 6e 0a 20 20 the recursion.
50330 20 20 20 20 69 66 20 28 72 65 73 20 3d 3d 3d 20 if (res ===
50340 66 61 6c 73 65 29 20 7b 20 72 65 74 75 72 6e 20 false) { return
50350 7d 0a 0a 20 20 20 20 20 20 64 6f 6d 20 3d 20 64 }.. dom = d
50360 6f 6d 2e 66 69 72 73 74 43 68 69 6c 64 3b 0a 0a om.firstChild;..
50370 20 20 20 20 20 20 77 68 69 6c 65 20 28 64 6f 6d while (dom
50380 29 20 7b 0a 20 20 20 20 20 20 20 20 6e 65 78 74 ) {. next
50390 20 3d 20 64 6f 6d 2e 6e 65 78 74 53 69 62 6c 69 = dom.nextSibli
503a0 6e 67 3b 0a 20 20 20 20 20 20 20 20 77 61 6c 6b ng;. walk
503b0 4e 6f 64 65 73 28 64 6f 6d 2c 20 66 6e 2c 20 72 Nodes(dom, fn, r
503c0 65 73 29 3b 0a 20 20 20 20 20 20 20 20 64 6f 6d es);. dom
503d0 20 3d 20 6e 65 78 74 3b 0a 20 20 20 20 20 20 7d = next;. }
503e0 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 0a 20 20 . }. }....
503f0 76 61 72 20 64 6f 6d 20 3d 20 2f 2a 23 5f 5f 50 var dom = /*#__P
50400 55 52 45 5f 5f 2a 2f 4f 62 6a 65 63 74 2e 66 72 URE__*/Object.fr
50410 65 65 7a 65 28 7b 0a 20 20 20 20 24 24 3a 20 24 eeze({. $$: $
50420 24 2c 0a 20 20 20 20 24 3a 20 24 2c 0a 20 20 20 $,. $: $,.
50430 20 63 72 65 61 74 65 44 4f 4d 50 6c 61 63 65 68 createDOMPlaceh
50440 6f 6c 64 65 72 3a 20 63 72 65 61 74 65 44 4f 4d older: createDOM
50450 50 6c 61 63 65 68 6f 6c 64 65 72 2c 0a 20 20 20 Placeholder,.
50460 20 6d 6b 45 6c 3a 20 6d 61 6b 65 45 6c 65 6d 65 mkEl: makeEleme
50470 6e 74 2c 0a 20 20 20 20 73 65 74 41 74 74 72 3a nt,. setAttr:
50480 20 73 65 74 41 74 74 72 69 62 75 74 65 2c 0a 20 setAttribute,.
50490 20 20 20 74 6f 67 67 6c 65 56 69 73 69 62 69 6c toggleVisibil
504a0 69 74 79 3a 20 74 6f 67 67 6c 65 56 69 73 69 62 ity: toggleVisib
504b0 69 6c 69 74 79 2c 0a 20 20 20 20 67 65 74 41 74 ility,. getAt
504c0 74 72 3a 20 67 65 74 41 74 74 72 69 62 75 74 65 tr: getAttribute
504d0 2c 0a 20 20 20 20 72 65 6d 41 74 74 72 3a 20 72 ,. remAttr: r
504e0 65 6d 6f 76 65 41 74 74 72 69 62 75 74 65 2c 0a emoveAttribute,.
504f0 20 20 20 20 73 65 74 49 6e 6e 65 72 48 54 4d 4c setInnerHTML
50500 3a 20 73 65 74 49 6e 6e 65 72 48 54 4d 4c 2c 0a : setInnerHTML,.
50510 20 20 20 20 77 61 6c 6b 41 74 74 72 73 3a 20 77 walkAttrs: w
50520 61 6c 6b 41 74 74 72 69 62 75 74 65 73 2c 0a 20 alkAttributes,.
50530 20 20 20 63 72 65 61 74 65 46 72 61 67 3a 20 63 createFrag: c
50540 72 65 61 74 65 46 72 61 67 6d 65 6e 74 2c 0a 20 reateFragment,.
50550 20 20 20 73 61 66 65 49 6e 73 65 72 74 3a 20 73 safeInsert: s
50560 61 66 65 49 6e 73 65 72 74 2c 0a 20 20 20 20 73 afeInsert,. s
50570 74 79 6c 65 4f 62 6a 65 63 74 54 6f 53 74 72 69 tyleObjectToStri
50580 6e 67 3a 20 73 74 79 6c 65 4f 62 6a 65 63 74 54 ng: styleObjectT
50590 6f 53 74 72 69 6e 67 2c 0a 20 20 20 20 77 61 6c oString,. wal
505a0 6b 4e 6f 64 65 73 3a 20 77 61 6c 6b 4e 6f 64 65 kNodes: walkNode
505b0 73 0a 20 20 7d 29 3b 0a 0a 20 20 2f 2a 2a 0a 20 s. });.. /**.
505c0 20 20 2a 20 43 68 65 63 6b 20 61 67 61 69 6e 73 * Check agains
505d0 74 20 74 68 65 20 6e 75 6c 6c 20 61 6e 64 20 75 t the null and u
505e0 6e 64 65 66 69 6e 65 64 20 76 61 6c 75 65 73 0a ndefined values.
505f0 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
50600 2a 20 7d 20 20 76 61 6c 75 65 20 2d 0a 20 20 20 * } value -.
50610 2a 20 40 72 65 74 75 72 6e 73 20 7b 42 6f 6f 6c * @returns {Bool
50620 65 61 6e 7d 20 2d 0a 20 20 20 2a 2f 0a 20 20 66 ean} -. */. f
50630 75 6e 63 74 69 6f 6e 20 69 73 4e 69 6c 28 76 61 unction isNil(va
50640 6c 75 65 29 20 7b 0a 20 20 20 20 72 65 74 75 72 lue) {. retur
50650 6e 20 69 73 55 6e 64 65 66 69 6e 65 64 28 76 61 n isUndefined(va
50660 6c 75 65 29 20 7c 7c 20 76 61 6c 75 65 20 3d 3d lue) || value ==
50670 3d 20 6e 75 6c 6c 0a 20 20 7d 0a 0a 20 20 2f 2a = null. }.. /*
50680 2a 0a 20 20 20 2a 20 43 68 65 63 6b 20 69 66 20 *. * Check if
50690 70 61 73 73 65 64 20 61 72 67 75 6d 65 6e 74 20 passed argument
506a0 69 73 20 65 6d 70 74 79 2e 20 44 69 66 66 65 72 is empty. Differ
506b0 65 6e 74 20 66 72 6f 6d 20 66 61 6c 73 79 2c 20 ent from falsy,
506c0 62 65 63 61 75 73 65 20 77 65 20 64 6f 6e 74 20 because we dont
506d0 63 6f 6e 73 69 64 65 72 20 30 20 6f 72 20 66 61 consider 0 or fa
506e0 6c 73 65 20 74 6f 20 62 65 20 62 6c 61 6e 6b 0a lse to be blank.
506f0 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 2a 20 * @param { *
50700 7d 20 76 61 6c 75 65 20 2d 0a 20 20 20 2a 20 40 } value -. * @
50710 72 65 74 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 returns { Boolea
50720 6e 20 7d 20 2d 0a 20 20 20 2a 2f 0a 20 20 66 75 n } -. */. fu
50730 6e 63 74 69 6f 6e 20 69 73 42 6c 61 6e 6b 28 76 nction isBlank(v
50740 61 6c 75 65 29 20 7b 0a 20 20 20 20 72 65 74 75 alue) {. retu
50750 72 6e 20 69 73 4e 69 6c 28 76 61 6c 75 65 29 20 rn isNil(value)
50760 7c 7c 20 76 61 6c 75 65 20 3d 3d 3d 20 27 27 0a || value === ''.
50770 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
50780 43 68 65 63 6b 20 69 66 20 70 61 73 73 65 64 20 Check if passed
50790 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 66 75 argument is a fu
507a0 6e 63 74 69 6f 6e 0a 20 20 20 2a 20 40 70 61 72 nction. * @par
507b0 61 6d 20 20 20 7b 20 2a 20 7d 20 76 61 6c 75 65 am { * } value
507c0 20 2d 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 -. * @returns
507d0 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d 20 2d 0a 20 { Boolean } -.
507e0 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 */. function
507f0 69 73 46 75 6e 63 74 69 6f 6e 28 76 61 6c 75 65 isFunction(value
50800 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 74 ) {. return t
50810 79 70 65 6f 66 20 76 61 6c 75 65 20 3d 3d 3d 20 ypeof value ===
50820 54 5f 46 55 4e 43 54 49 4f 4e 0a 20 20 7d 0a 0a T_FUNCTION. }..
50830 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 68 65 63 6b /**. * Check
50840 20 69 66 20 70 61 73 73 65 64 20 61 72 67 75 6d if passed argum
50850 65 6e 74 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 ent is an object
50860 2c 20 65 78 63 6c 75 64 65 20 6e 75 6c 6c 0a 20 , exclude null.
50870 20 20 2a 20 4e 4f 54 45 3a 20 75 73 65 20 69 73 * NOTE: use is
50880 4f 62 6a 65 63 74 28 78 29 20 26 26 20 21 69 73 Object(x) && !is
50890 41 72 72 61 79 28 78 29 20 74 6f 20 65 78 63 6c Array(x) to excl
508a0 75 64 65 73 20 61 72 72 61 79 73 2e 0a 20 20 20 udes arrays..
508b0 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 2a 20 7d * @param { * }
508c0 20 76 61 6c 75 65 20 2d 0a 20 20 20 2a 20 40 72 value -. * @r
508d0 65 74 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 6e eturns { Boolean
508e0 20 7d 20 2d 0a 20 20 20 2a 2f 0a 20 20 66 75 6e } -. */. fun
508f0 63 74 69 6f 6e 20 69 73 4f 62 6a 65 63 74 28 76 ction isObject(v
50900 61 6c 75 65 29 20 7b 0a 20 20 20 20 72 65 74 75 alue) {. retu
50910 72 6e 20 76 61 6c 75 65 20 26 26 20 74 79 70 65 rn value && type
50920 6f 66 20 76 61 6c 75 65 20 3d 3d 3d 20 54 5f 4f of value === T_O
50930 42 4a 45 43 54 20 2f 2f 20 74 79 70 65 6f 66 20 BJECT // typeof
50940 6e 75 6c 6c 20 69 73 20 27 6f 62 6a 65 63 74 27 null is 'object'
50950 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
50960 20 43 68 65 63 6b 20 69 66 20 61 20 44 4f 4d 20 Check if a DOM
50970 6e 6f 64 65 20 69 73 20 61 6e 20 73 76 67 20 74 node is an svg t
50980 61 67 20 6f 72 20 70 61 72 74 20 6f 66 20 61 6e ag or part of an
50990 20 73 76 67 0a 20 20 20 2a 20 40 70 61 72 61 6d svg. * @param
509a0 20 20 20 7b 20 48 54 4d 4c 45 6c 65 6d 65 6e 74 { HTMLElement
509b0 20 7d 20 20 65 6c 20 2d 20 6e 6f 64 65 20 77 65 } el - node we
509c0 20 77 61 6e 74 20 74 6f 20 74 65 73 74 0a 20 20 want to test.
509d0 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 42 6f 6f * @returns {Boo
509e0 6c 65 61 6e 7d 20 74 72 75 65 20 69 66 20 69 74 lean} true if it
509f0 27 73 20 61 6e 20 73 76 67 20 6e 6f 64 65 0a 20 's an svg node.
50a00 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 */. function
50a10 69 73 53 76 67 28 65 6c 29 20 7b 0a 20 20 20 20 isSvg(el) {.
50a20 76 61 72 20 6f 77 6e 65 72 20 3d 20 65 6c 2e 6f var owner = el.o
50a30 77 6e 65 72 53 56 47 45 6c 65 6d 65 6e 74 3b 0a wnerSVGElement;.
50a40 20 20 20 20 72 65 74 75 72 6e 20 21 21 6f 77 6e return !!own
50a50 65 72 20 7c 7c 20 6f 77 6e 65 72 20 3d 3d 3d 20 er || owner ===
50a60 6e 75 6c 6c 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a null. }.. /**.
50a70 20 20 20 2a 20 43 68 65 63 6b 20 69 66 20 70 61 * Check if pa
50a80 73 73 65 64 20 61 72 67 75 6d 65 6e 74 20 69 73 ssed argument is
50a90 20 61 20 6b 69 6e 64 20 6f 66 20 61 72 72 61 79 a kind of array
50aa0 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b . * @param {
50ab0 20 2a 20 7d 20 76 61 6c 75 65 20 2d 0a 20 20 20 * } value -.
50ac0 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 42 6f 6f * @returns { Boo
50ad0 6c 65 61 6e 20 7d 20 2d 0a 20 20 20 2a 2f 0a 20 lean } -. */.
50ae0 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 function isArra
50af0 79 28 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 72 y(value) {. r
50b00 65 74 75 72 6e 20 41 72 72 61 79 2e 69 73 41 72 eturn Array.isAr
50b10 72 61 79 28 76 61 6c 75 65 29 20 7c 7c 20 76 61 ray(value) || va
50b20 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 lue instanceof A
50b30 72 72 61 79 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a rray. }.. /**.
50b40 20 20 20 2a 20 43 68 65 63 6b 20 69 66 20 74 68 * Check if th
50b50 65 20 70 61 73 73 65 64 20 61 72 67 75 6d 65 6e e passed argumen
50b60 74 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 61 t is a boolean a
50b70 74 74 72 69 62 75 74 65 0a 20 20 20 2a 20 40 70 ttribute. * @p
50b80 61 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 aram { String
50b90 7d 20 76 61 6c 75 65 20 2d 0a 20 20 20 2a 20 40 } value -. * @
50ba0 72 65 74 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 returns { Boolea
50bb0 6e 20 7d 20 2d 0a 20 20 20 2a 2f 0a 20 20 66 75 n } -. */. fu
50bc0 6e 63 74 69 6f 6e 20 69 73 42 6f 6f 6c 41 74 74 nction isBoolAtt
50bd0 72 28 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 72 r(value) {. r
50be0 65 74 75 72 6e 20 52 45 5f 42 4f 4f 4c 5f 41 54 eturn RE_BOOL_AT
50bf0 54 52 53 2e 74 65 73 74 28 76 61 6c 75 65 29 0a TRS.test(value).
50c00 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
50c10 43 68 65 63 6b 20 69 66 20 70 61 73 73 65 64 20 Check if passed
50c20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 20 73 74 argument is a st
50c30 72 69 6e 67 0a 20 20 20 2a 20 40 70 61 72 61 6d ring. * @param
50c40 20 20 20 7b 20 2a 20 7d 20 76 61 6c 75 65 20 2d { * } value -
50c50 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b . * @returns {
50c60 20 42 6f 6f 6c 65 61 6e 20 7d 20 2d 0a 20 20 20 Boolean } -.
50c70 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 69 73 */. function is
50c80 53 74 72 69 6e 67 28 76 61 6c 75 65 29 20 7b 0a String(value) {.
50c90 20 20 20 20 72 65 74 75 72 6e 20 74 79 70 65 6f return typeo
50ca0 66 20 76 61 6c 75 65 20 3d 3d 3d 20 54 5f 53 54 f value === T_ST
50cb0 52 49 4e 47 0a 20 20 7d 0a 0a 0a 0a 20 20 76 61 RING. }.... va
50cc0 72 20 63 68 65 63 6b 20 3d 20 2f 2a 23 5f 5f 50 r check = /*#__P
50cd0 55 52 45 5f 5f 2a 2f 4f 62 6a 65 63 74 2e 66 72 URE__*/Object.fr
50ce0 65 65 7a 65 28 7b 0a 20 20 20 20 69 73 42 6c 61 eeze({. isBla
50cf0 6e 6b 3a 20 69 73 42 6c 61 6e 6b 2c 0a 20 20 20 nk: isBlank,.
50d00 20 69 73 46 75 6e 63 74 69 6f 6e 3a 20 69 73 46 isFunction: isF
50d10 75 6e 63 74 69 6f 6e 2c 0a 20 20 20 20 69 73 4f unction,. isO
50d20 62 6a 65 63 74 3a 20 69 73 4f 62 6a 65 63 74 2c bject: isObject,
50d30 0a 20 20 20 20 69 73 53 76 67 3a 20 69 73 53 76 . isSvg: isSv
50d40 67 2c 0a 20 20 20 20 69 73 57 72 69 74 61 62 6c g,. isWritabl
50d50 65 3a 20 69 73 57 72 69 74 61 62 6c 65 2c 0a 20 e: isWritable,.
50d60 20 20 20 69 73 41 72 72 61 79 3a 20 69 73 41 72 isArray: isAr
50d70 72 61 79 2c 0a 20 20 20 20 69 73 42 6f 6f 6c 41 ray,. isBoolA
50d80 74 74 72 3a 20 69 73 42 6f 6f 6c 41 74 74 72 2c ttr: isBoolAttr,
50d90 0a 20 20 20 20 69 73 4e 69 6c 3a 20 69 73 4e 69 . isNil: isNi
50da0 6c 2c 0a 20 20 20 20 69 73 53 74 72 69 6e 67 3a l,. isString:
50db0 20 69 73 53 74 72 69 6e 67 2c 0a 20 20 20 20 69 isString,. i
50dc0 73 55 6e 64 65 66 69 6e 65 64 3a 20 69 73 55 6e sUndefined: isUn
50dd0 64 65 66 69 6e 65 64 0a 20 20 7d 29 3b 0a 0a 20 defined. });..
50de0 20 2f 2a 2a 0a 20 20 20 2a 20 43 68 65 63 6b 20 /**. * Check
50df0 77 68 65 74 68 65 72 20 61 6e 20 61 72 72 61 79 whether an array
50e00 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 74 65 contains an ite
50e10 6d 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 m. * @param
50e20 7b 20 41 72 72 61 79 20 7d 20 61 72 72 61 79 20 { Array } array
50e30 2d 20 74 61 72 67 65 74 20 61 72 72 61 79 0a 20 - target array.
50e40 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 2a * @param { *
50e50 20 7d 20 69 74 65 6d 20 2d 20 69 74 65 6d 20 74 } item - item t
50e60 6f 20 74 65 73 74 0a 20 20 20 2a 20 40 72 65 74 o test. * @ret
50e70 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d urns { Boolean }
50e80 20 2d 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 -. */. funct
50e90 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 28 61 72 72 ion contains(arr
50ea0 61 79 2c 20 69 74 65 6d 29 20 7b 0a 20 20 20 20 ay, item) {.
50eb0 72 65 74 75 72 6e 20 61 72 72 61 79 2e 69 6e 64 return array.ind
50ec0 65 78 4f 66 28 69 74 65 6d 29 20 21 3d 3d 20 2d exOf(item) !== -
50ed0 31 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 1. }.. /**.
50ee0 2a 20 53 70 65 63 69 61 6c 69 7a 65 64 20 66 75 * Specialized fu
50ef0 6e 63 74 69 6f 6e 20 66 6f 72 20 6c 6f 6f 70 69 nction for loopi
50f00 6e 67 20 61 6e 20 61 72 72 61 79 2d 6c 69 6b 65 ng an array-like
50f10 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 77 69 74 68 collection with
50f20 20 60 65 61 63 68 3d 7b 7d 60 0a 20 20 20 2a 20 `each={}`. *
50f30 40 70 61 72 61 6d 20 20 20 7b 20 41 72 72 61 79 @param { Array
50f40 20 7d 20 6c 69 73 74 20 2d 20 63 6f 6c 6c 65 63 } list - collec
50f50 74 69 6f 6e 20 6f 66 20 69 74 65 6d 73 0a 20 20 tion of items.
50f60 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 46 75 6e * @param {Fun
50f70 63 74 69 6f 6e 7d 20 66 6e 20 2d 20 63 61 6c 6c ction} fn - call
50f80 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e 0a 20 20 back function.
50f90 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 41 72 * @returns { Ar
50fa0 72 61 79 20 7d 20 74 68 65 20 61 72 72 61 79 20 ray } the array
50fb0 6c 6f 6f 70 65 64 0a 20 20 20 2a 2f 0a 20 20 66 looped. */. f
50fc0 75 6e 63 74 69 6f 6e 20 65 61 63 68 28 6c 69 73 unction each(lis
50fd0 74 2c 20 66 6e 29 20 7b 0a 20 20 20 20 76 61 72 t, fn) {. var
50fe0 20 6c 65 6e 20 3d 20 6c 69 73 74 20 3f 20 6c 69 len = list ? li
50ff0 73 74 2e 6c 65 6e 67 74 68 20 3a 20 30 3b 0a 20 st.length : 0;.
51000 20 20 20 76 61 72 20 69 20 3d 20 30 3b 0a 20 20 var i = 0;.
51010 20 20 66 6f 72 20 28 3b 20 69 20 3c 20 6c 65 6e for (; i < len
51020 3b 20 69 2b 2b 29 20 7b 20 66 6e 28 6c 69 73 74 ; i++) { fn(list
51030 5b 69 5d 2c 20 69 29 3b 20 7d 0a 20 20 20 20 72 [i], i); }. r
51040 65 74 75 72 6e 20 6c 69 73 74 0a 20 20 7d 0a 0a eturn list. }..
51050 20 20 2f 2a 2a 0a 20 20 20 2a 20 46 61 73 74 65 /**. * Faste
51060 72 20 53 74 72 69 6e 67 20 73 74 61 72 74 73 57 r String startsW
51070 69 74 68 20 61 6c 74 65 72 6e 61 74 69 76 65 0a ith alternative.
51080 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
51090 53 74 72 69 6e 67 20 7d 20 73 74 72 20 2d 20 73 String } str - s
510a0 6f 75 72 63 65 20 73 74 72 69 6e 67 0a 20 20 20 ource string.
510b0 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
510c0 69 6e 67 20 7d 20 76 61 6c 75 65 20 2d 20 74 65 ing } value - te
510d0 73 74 20 73 74 72 69 6e 67 0a 20 20 20 2a 20 40 st string. * @
510e0 72 65 74 75 72 6e 73 20 7b 20 42 6f 6f 6c 65 61 returns { Boolea
510f0 6e 20 7d 20 2d 0a 20 20 20 2a 2f 0a 20 20 66 75 n } -. */. fu
51100 6e 63 74 69 6f 6e 20 73 74 61 72 74 73 57 69 74 nction startsWit
51110 68 28 73 74 72 2c 20 76 61 6c 75 65 29 20 7b 0a h(str, value) {.
51120 20 20 20 20 72 65 74 75 72 6e 20 73 74 72 2e 73 return str.s
51130 6c 69 63 65 28 30 2c 20 76 61 6c 75 65 2e 6c 65 lice(0, value.le
51140 6e 67 74 68 29 20 3d 3d 3d 20 76 61 6c 75 65 0a ngth) === value.
51150 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
51160 46 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 69 Function returni
51170 6e 67 20 61 6c 77 61 79 73 20 61 20 75 6e 69 71 ng always a uniq
51180 75 65 20 69 64 65 6e 74 69 66 69 65 72 0a 20 20 ue identifier.
51190 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 4e 75 * @returns { Nu
511a0 6d 62 65 72 20 7d 20 2d 20 6e 75 6d 62 65 72 20 mber } - number
511b0 66 72 6f 6d 20 30 2e 2e 2e 6e 0a 20 20 20 2a 2f from 0...n. */
511c0 0a 20 20 76 61 72 20 75 69 64 20 3d 20 28 66 75 . var uid = (fu
511d0 6e 63 74 69 6f 6e 20 75 69 64 28 29 20 7b 0a 20 nction uid() {.
511e0 20 20 20 76 61 72 20 69 20 3d 20 2d 31 3b 0a 20 var i = -1;.
511f0 20 20 20 72 65 74 75 72 6e 20 66 75 6e 63 74 69 return functi
51200 6f 6e 20 28 29 20 7b 20 72 65 74 75 72 6e 20 2b on () { return +
51210 2b 69 3b 20 7d 0a 20 20 7d 29 28 29 3b 0a 0a 20 +i; }. })();..
51220 20 2f 2a 2a 0a 20 20 20 2a 20 48 65 6c 70 65 72 /**. * Helper
51230 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 73 65 74 function to set
51240 20 61 6e 20 69 6d 6d 75 74 61 62 6c 65 20 70 72 an immutable pr
51250 6f 70 65 72 74 79 0a 20 20 20 2a 20 40 70 61 72 operty. * @par
51260 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 am { Object }
51270 65 6c 20 2d 20 6f 62 6a 65 63 74 20 77 68 65 72 el - object wher
51280 65 20 74 68 65 20 6e 65 77 20 70 72 6f 70 65 72 e the new proper
51290 74 79 20 77 69 6c 6c 20 62 65 20 73 65 74 0a 20 ty will be set.
512a0 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 * @param { S
512b0 74 72 69 6e 67 20 7d 20 6b 65 79 20 2d 20 6f 62 tring } key - ob
512c0 6a 65 63 74 20 6b 65 79 20 77 68 65 72 65 20 74 ject key where t
512d0 68 65 20 6e 65 77 20 70 72 6f 70 65 72 74 79 20 he new property
512e0 77 69 6c 6c 20 62 65 20 73 74 6f 72 65 64 0a 20 will be stored.
512f0 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 2a * @param { *
51300 20 7d 20 76 61 6c 75 65 20 2d 20 76 61 6c 75 65 } value - value
51310 20 6f 66 20 74 68 65 20 6e 65 77 20 70 72 6f 70 of the new prop
51320 65 72 74 79 0a 20 20 20 2a 20 40 70 61 72 61 6d erty. * @param
51330 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 6f 70 { Object } op
51340 74 69 6f 6e 73 20 2d 20 73 65 74 20 74 68 65 20 tions - set the
51350 70 72 6f 70 65 72 79 20 6f 76 65 72 72 69 64 69 propery overridi
51360 6e 67 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f ng the default o
51370 70 74 69 6f 6e 73 0a 20 20 20 2a 20 40 72 65 74 ptions. * @ret
51380 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d 20 urns { Object }
51390 2d 20 74 68 65 20 69 6e 69 74 69 61 6c 20 6f 62 - the initial ob
513a0 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 66 75 6e ject. */. fun
513b0 63 74 69 6f 6e 20 64 65 66 69 6e 65 28 65 6c 2c ction define(el,
513c0 20 6b 65 79 2c 20 76 61 6c 75 65 2c 20 6f 70 74 key, value, opt
513d0 69 6f 6e 73 29 20 7b 0a 20 20 20 20 4f 62 6a 65 ions) {. Obje
513e0 63 74 2e 64 65 66 69 6e 65 50 72 6f 70 65 72 74 ct.definePropert
513f0 79 28 65 6c 2c 20 6b 65 79 2c 20 65 78 74 65 6e y(el, key, exten
51400 64 28 7b 0a 20 20 20 20 20 20 76 61 6c 75 65 3a d({. value:
51410 20 76 61 6c 75 65 2c 0a 20 20 20 20 20 20 65 6e value,. en
51420 75 6d 65 72 61 62 6c 65 3a 20 66 61 6c 73 65 2c umerable: false,
51430 0a 20 20 20 20 20 20 77 72 69 74 61 62 6c 65 3a . writable:
51440 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 63 6f false,. co
51450 6e 66 69 67 75 72 61 62 6c 65 3a 20 74 72 75 65 nfigurable: true
51460 0a 20 20 20 20 7d 2c 20 6f 70 74 69 6f 6e 73 29 . }, options)
51470 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6c );. return el
51480 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
51490 20 43 6f 6e 76 65 72 74 20 61 20 73 74 72 69 6e Convert a strin
514a0 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 64 61 73 g containing das
514b0 68 65 73 20 74 6f 20 63 61 6d 65 6c 20 63 61 73 hes to camel cas
514c0 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 e. * @param
514d0 7b 20 53 74 72 69 6e 67 20 7d 20 73 74 72 20 2d { String } str -
514e0 20 69 6e 70 75 74 20 73 74 72 69 6e 67 0a 20 20 input string.
514f0 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 53 74 * @returns { St
51500 72 69 6e 67 20 7d 20 6d 79 2d 73 74 72 69 6e 67 ring } my-string
51510 20 2d 3e 20 6d 79 53 74 72 69 6e 67 0a 20 20 20 -> myString.
51520 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 74 6f */. function to
51530 43 61 6d 65 6c 28 73 74 72 29 20 7b 0a 20 20 20 Camel(str) {.
51540 20 72 65 74 75 72 6e 20 73 74 72 2e 72 65 70 6c return str.repl
51550 61 63 65 28 2f 2d 28 5c 77 29 2f 67 2c 20 66 75 ace(/-(\w)/g, fu
51560 6e 63 74 69 6f 6e 20 28 5f 2c 20 63 29 20 7b 20 nction (_, c) {
51570 72 65 74 75 72 6e 20 63 2e 74 6f 55 70 70 65 72 return c.toUpper
51580 43 61 73 65 28 29 3b 20 7d 29 0a 20 20 7d 0a 0a Case(); }). }..
51590 20 20 2f 2a 2a 0a 20 20 20 2a 20 57 61 72 6e 20 /**. * Warn
515a0 61 20 6d 65 73 73 61 67 65 20 76 69 61 20 63 6f a message via co
515b0 6e 73 6f 6c 65 0a 20 20 20 2a 20 40 70 61 72 61 nsole. * @para
515c0 6d 20 20 20 7b 53 74 72 69 6e 67 7d 20 6d 65 73 m {String} mes
515d0 73 61 67 65 20 2d 20 77 61 72 6e 69 6e 67 20 6d sage - warning m
515e0 65 73 73 61 67 65 0a 20 20 20 2a 2f 0a 20 20 66 essage. */. f
515f0 75 6e 63 74 69 6f 6e 20 77 61 72 6e 28 6d 65 73 unction warn(mes
51600 73 61 67 65 29 20 7b 0a 20 20 20 20 69 66 20 28 sage) {. if (
51610 63 6f 6e 73 6f 6c 65 20 26 26 20 63 6f 6e 73 6f console && conso
51620 6c 65 2e 77 61 72 6e 29 20 7b 20 63 6f 6e 73 6f le.warn) { conso
51630 6c 65 2e 77 61 72 6e 28 6d 65 73 73 61 67 65 29 le.warn(message)
51640 3b 20 7d 0a 20 20 7d 0a 0a 0a 0a 20 20 76 61 72 ; }. }.... var
51650 20 6d 69 73 63 20 3d 20 2f 2a 23 5f 5f 50 55 52 misc = /*#__PUR
51660 45 5f 5f 2a 2f 4f 62 6a 65 63 74 2e 66 72 65 65 E__*/Object.free
51670 7a 65 28 7b 0a 20 20 20 20 63 6f 6e 74 61 69 6e ze({. contain
51680 73 3a 20 63 6f 6e 74 61 69 6e 73 2c 0a 20 20 20 s: contains,.
51690 20 65 61 63 68 3a 20 65 61 63 68 2c 0a 20 20 20 each: each,.
516a0 20 67 65 74 50 72 6f 70 44 65 73 63 72 69 70 74 getPropDescript
516b0 6f 72 3a 20 67 65 74 50 72 6f 70 44 65 73 63 72 or: getPropDescr
516c0 69 70 74 6f 72 2c 0a 20 20 20 20 73 74 61 72 74 iptor,. start
516d0 73 57 69 74 68 3a 20 73 74 61 72 74 73 57 69 74 sWith: startsWit
516e0 68 2c 0a 20 20 20 20 75 69 64 3a 20 75 69 64 2c h,. uid: uid,
516f0 0a 20 20 20 20 64 65 66 69 6e 65 50 72 6f 70 65 . definePrope
51700 72 74 79 3a 20 64 65 66 69 6e 65 2c 0a 20 20 20 rty: define,.
51710 20 6f 62 6a 65 63 74 43 72 65 61 74 65 3a 20 63 objectCreate: c
51720 72 65 61 74 65 2c 0a 20 20 20 20 65 78 74 65 6e reate,. exten
51730 64 3a 20 65 78 74 65 6e 64 2c 0a 20 20 20 20 74 d: extend,. t
51740 6f 43 61 6d 65 6c 3a 20 74 6f 43 61 6d 65 6c 2c oCamel: toCamel,
51750 0a 20 20 20 20 77 61 72 6e 3a 20 77 61 72 6e 0a . warn: warn.
51760 20 20 7d 29 3b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 });.. /**.
51770 2a 20 53 65 74 20 74 68 65 20 70 72 6f 70 65 72 * Set the proper
51780 74 79 20 6f 66 20 61 6e 20 6f 62 6a 65 63 74 20 ty of an object
51790 66 6f 72 20 61 20 67 69 76 65 6e 20 6b 65 79 2e for a given key.
517a0 20 49 66 20 73 6f 6d 65 74 68 69 6e 67 20 61 6c If something al
517b0 72 65 61 64 79 0a 20 20 20 2a 20 65 78 69 73 74 ready. * exist
517c0 73 20 74 68 65 72 65 2c 20 74 68 65 6e 20 69 74 s there, then it
517d0 20 62 65 63 6f 6d 65 73 20 61 6e 20 61 72 72 61 becomes an arra
517e0 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 62 6f 74 y containing bot
517f0 68 20 74 68 65 20 6f 6c 64 20 61 6e 64 20 6e 65 h the old and ne
51800 77 20 76 61 6c 75 65 2e 0a 20 20 20 2a 20 40 70 w value.. * @p
51810 61 72 61 6d 20 7b 20 4f 62 6a 65 63 74 20 7d 20 aram { Object }
51820 6f 62 6a 20 2d 20 6f 62 6a 65 63 74 20 6f 6e 20 obj - object on
51830 77 68 69 63 68 20 74 6f 20 73 65 74 20 74 68 65 which to set the
51840 20 70 72 6f 70 65 72 74 79 0a 20 20 20 2a 20 40 property. * @
51850 70 61 72 61 6d 20 7b 20 53 74 72 69 6e 67 20 7d param { String }
51860 20 6b 65 79 20 2d 20 70 72 6f 70 65 72 74 79 20 key - property
51870 6e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d name. * @param
51880 20 7b 20 4f 62 6a 65 63 74 20 7d 20 76 61 6c 75 { Object } valu
51890 65 20 2d 20 74 68 65 20 76 61 6c 75 65 20 6f 66 e - the value of
518a0 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 74 6f the property to
518b0 20 62 65 20 73 65 74 0a 20 20 20 2a 20 40 70 61 be set. * @pa
518c0 72 61 6d 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d 20 ram { Boolean }
518d0 65 6e 73 75 72 65 41 72 72 61 79 20 2d 20 65 6e ensureArray - en
518e0 73 75 72 65 20 74 68 61 74 20 74 68 65 20 70 72 sure that the pr
518f0 6f 70 65 72 74 79 20 72 65 6d 61 69 6e 73 20 61 operty remains a
51900 6e 20 61 72 72 61 79 0a 20 20 20 2a 20 40 70 61 n array. * @pa
51910 72 61 6d 20 7b 20 4e 75 6d 62 65 72 20 7d 20 69 ram { Number } i
51920 6e 64 65 78 20 2d 20 61 64 64 20 74 68 65 20 6e ndex - add the n
51930 65 77 20 69 74 65 6d 20 69 6e 20 61 20 63 65 72 ew item in a cer
51940 74 61 69 6e 20 61 72 72 61 79 20 70 6f 73 69 74 tain array posit
51950 69 6f 6e 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 ion. */. func
51960 74 69 6f 6e 20 61 72 72 61 79 69 73 68 41 64 64 tion arrayishAdd
51970 28 6f 62 6a 2c 20 6b 65 79 2c 20 76 61 6c 75 65 (obj, key, value
51980 2c 20 65 6e 73 75 72 65 41 72 72 61 79 2c 20 69 , ensureArray, i
51990 6e 64 65 78 29 20 7b 0a 20 20 20 20 76 61 72 20 ndex) {. var
519a0 64 65 73 74 20 3d 20 6f 62 6a 5b 6b 65 79 5d 3b dest = obj[key];
519b0 0a 20 20 20 20 76 61 72 20 69 73 41 72 72 20 3d . var isArr =
519c0 20 69 73 41 72 72 61 79 28 64 65 73 74 29 3b 0a isArray(dest);.
519d0 20 20 20 20 76 61 72 20 68 61 73 49 6e 64 65 78 var hasIndex
519e0 20 3d 20 21 69 73 55 6e 64 65 66 69 6e 65 64 28 = !isUndefined(
519f0 69 6e 64 65 78 29 3b 0a 0a 20 20 20 20 69 66 20 index);.. if
51a00 28 64 65 73 74 20 26 26 20 64 65 73 74 20 3d 3d (dest && dest ==
51a10 3d 20 76 61 6c 75 65 29 20 7b 20 72 65 74 75 72 = value) { retur
51a20 6e 20 7d 0a 0a 20 20 20 20 2f 2f 20 69 66 20 74 n }.. // if t
51a30 68 65 20 6b 65 79 20 77 61 73 20 6e 65 76 65 72 he key was never
51a40 20 73 65 74 2c 20 73 65 74 20 69 74 20 6f 6e 63 set, set it onc
51a50 65 0a 20 20 20 20 69 66 20 28 21 64 65 73 74 20 e. if (!dest
51a60 26 26 20 65 6e 73 75 72 65 41 72 72 61 79 29 20 && ensureArray)
51a70 7b 20 6f 62 6a 5b 6b 65 79 5d 20 3d 20 5b 76 61 { obj[key] = [va
51a80 6c 75 65 5d 3b 20 7d 0a 20 20 20 20 65 6c 73 65 lue]; }. else
51a90 20 69 66 20 28 21 64 65 73 74 29 20 7b 20 6f 62 if (!dest) { ob
51aa0 6a 5b 6b 65 79 5d 20 3d 20 76 61 6c 75 65 3b 20 j[key] = value;
51ab0 7d 0a 20 20 20 20 2f 2f 20 69 66 20 69 74 20 77 }. // if it w
51ac0 61 73 20 61 6e 20 61 72 72 61 79 20 61 6e 64 20 as an array and
51ad0 6e 6f 74 20 79 65 74 20 73 65 74 0a 20 20 20 20 not yet set.
51ae0 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 69 66 20 else {. if
51af0 28 69 73 41 72 72 29 20 7b 0a 20 20 20 20 20 20 (isArr) {.
51b00 20 20 76 61 72 20 6f 6c 64 49 6e 64 65 78 20 3d var oldIndex =
51b10 20 64 65 73 74 2e 69 6e 64 65 78 4f 66 28 76 61 dest.indexOf(va
51b20 6c 75 65 29 3b 0a 20 20 20 20 20 20 20 20 2f 2f lue);. //
51b30 20 74 68 69 73 20 69 74 65 6d 20 6e 65 76 65 72 this item never
51b40 20 63 68 61 6e 67 65 64 20 69 74 73 20 70 6f 73 changed its pos
51b50 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 69 66 ition. if
51b60 20 28 6f 6c 64 49 6e 64 65 78 20 3d 3d 3d 20 69 (oldIndex === i
51b70 6e 64 65 78 29 20 7b 20 72 65 74 75 72 6e 20 7d ndex) { return }
51b80 0a 20 20 20 20 20 20 20 20 2f 2f 20 72 65 6d 6f . // remo
51b90 76 65 20 74 68 65 20 69 74 65 6d 20 66 72 6f 6d ve the item from
51ba0 20 69 74 73 20 6f 6c 64 20 70 6f 73 69 74 69 6f its old positio
51bb0 6e 0a 20 20 20 20 20 20 20 20 69 66 20 28 6f 6c n. if (ol
51bc0 64 49 6e 64 65 78 20 21 3d 3d 20 2d 31 29 20 7b dIndex !== -1) {
51bd0 20 64 65 73 74 2e 73 70 6c 69 63 65 28 6f 6c 64 dest.splice(old
51be0 49 6e 64 65 78 2c 20 31 29 3b 20 7d 0a 20 20 20 Index, 1); }.
51bf0 20 20 20 20 20 2f 2f 20 6d 6f 76 65 20 6f 72 20 // move or
51c00 61 64 64 20 74 68 65 20 69 74 65 6d 0a 20 20 20 add the item.
51c10 20 20 20 20 20 69 66 20 28 68 61 73 49 6e 64 65 if (hasInde
51c20 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 64 x) {. d
51c30 65 73 74 2e 73 70 6c 69 63 65 28 69 6e 64 65 78 est.splice(index
51c40 2c 20 30 2c 20 76 61 6c 75 65 29 3b 0a 20 20 20 , 0, value);.
51c50 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 } else {.
51c60 20 20 20 20 20 20 20 20 64 65 73 74 2e 70 75 73 dest.pus
51c70 68 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 h(value);.
51c80 20 20 7d 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 }. } else
51c90 20 7b 20 6f 62 6a 5b 6b 65 79 5d 20 3d 20 5b 64 { obj[key] = [d
51ca0 65 73 74 2c 20 76 61 6c 75 65 5d 3b 20 7d 0a 20 est, value]; }.
51cb0 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a }. }.. /**.
51cc0 20 20 20 2a 20 44 65 74 65 63 74 20 74 68 65 20 * Detect the
51cd0 74 61 67 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 tag implementati
51ce0 6f 6e 20 62 79 20 61 20 44 4f 4d 20 6e 6f 64 65 on by a DOM node
51cf0 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b . * @param {
51d00 20 4f 62 6a 65 63 74 20 7d 20 64 6f 6d 20 2d 20 Object } dom -
51d10 44 4f 4d 20 6e 6f 64 65 20 77 65 20 6e 65 65 64 DOM node we need
51d20 20 74 6f 20 70 61 72 73 65 20 74 6f 20 67 65 74 to parse to get
51d30 20 69 74 73 20 74 61 67 20 69 6d 70 6c 65 6d 65 its tag impleme
51d40 6e 74 61 74 69 6f 6e 0a 20 20 20 2a 20 40 72 65 ntation. * @re
51d50 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d turns { Object }
51d60 20 69 74 20 72 65 74 75 72 6e 73 20 61 6e 20 6f it returns an o
51d70 62 6a 65 63 74 20 63 6f 6e 74 61 69 6e 69 6e 67 bject containing
51d80 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 the implementat
51d90 69 6f 6e 20 6f 66 20 61 20 63 75 73 74 6f 6d 20 ion of a custom
51da0 74 61 67 20 28 74 65 6d 70 6c 61 74 65 20 61 6e tag (template an
51db0 64 20 62 6f 6f 74 20 66 75 6e 63 74 69 6f 6e 29 d boot function)
51dc0 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f . */. functio
51dd0 6e 20 67 65 74 28 64 6f 6d 29 20 7b 0a 20 20 20 n get(dom) {.
51de0 20 72 65 74 75 72 6e 20 64 6f 6d 2e 74 61 67 4e return dom.tagN
51df0 61 6d 65 20 26 26 20 5f 5f 54 41 47 5f 49 4d 50 ame && __TAG_IMP
51e00 4c 5b 67 65 74 41 74 74 72 69 62 75 74 65 28 64 L[getAttribute(d
51e10 6f 6d 2c 20 49 53 5f 44 49 52 45 43 54 49 56 45 om, IS_DIRECTIVE
51e20 29 20 7c 7c 0a 20 20 20 20 20 20 67 65 74 41 74 ) ||. getAt
51e30 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 49 53 5f tribute(dom, IS_
51e40 44 49 52 45 43 54 49 56 45 29 20 7c 7c 20 64 6f DIRECTIVE) || do
51e50 6d 2e 74 61 67 4e 61 6d 65 2e 74 6f 4c 6f 77 65 m.tagName.toLowe
51e60 72 43 61 73 65 28 29 5d 0a 20 20 7d 0a 0a 20 20 rCase()]. }..
51e70 2f 2a 2a 0a 20 20 20 2a 20 47 65 74 20 74 68 65 /**. * Get the
51e80 20 74 61 67 20 6e 61 6d 65 20 6f 66 20 61 6e 79 tag name of any
51e90 20 44 4f 4d 20 6e 6f 64 65 0a 20 20 20 2a 20 40 DOM node. * @
51ea0 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 param { Object
51eb0 20 7d 20 64 6f 6d 20 2d 20 44 4f 4d 20 6e 6f 64 } dom - DOM nod
51ec0 65 20 77 65 20 77 61 6e 74 20 74 6f 20 70 61 72 e we want to par
51ed0 73 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 se. * @param
51ee0 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d 20 73 6b 69 { Boolean } ski
51ef0 70 44 61 74 61 49 73 20 2d 20 68 61 63 6b 20 74 pDataIs - hack t
51f00 6f 20 69 67 6e 6f 72 65 20 74 68 65 20 64 61 74 o ignore the dat
51f10 61 2d 69 73 20 61 74 74 72 69 62 75 74 65 20 77 a-is attribute w
51f20 68 65 6e 20 61 74 74 61 63 68 69 6e 67 20 74 6f hen attaching to
51f30 20 70 61 72 65 6e 74 0a 20 20 20 2a 20 40 72 65 parent. * @re
51f40 74 75 72 6e 73 20 7b 20 53 74 72 69 6e 67 20 7d turns { String }
51f50 20 6e 61 6d 65 20 74 6f 20 69 64 65 6e 74 69 66 name to identif
51f60 79 20 74 68 69 73 20 64 6f 6d 20 6e 6f 64 65 20 y this dom node
51f70 69 6e 20 72 69 6f 74 0a 20 20 20 2a 2f 0a 20 20 in riot. */.
51f80 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 function getName
51f90 28 64 6f 6d 2c 20 73 6b 69 70 44 61 74 61 49 73 (dom, skipDataIs
51fa0 29 20 7b 0a 20 20 20 20 76 61 72 20 63 68 69 6c ) {. var chil
51fb0 64 20 3d 20 67 65 74 28 64 6f 6d 29 3b 0a 20 20 d = get(dom);.
51fc0 20 20 76 61 72 20 6e 61 6d 65 64 54 61 67 20 3d var namedTag =
51fd0 20 21 73 6b 69 70 44 61 74 61 49 73 20 26 26 20 !skipDataIs &&
51fe0 67 65 74 41 74 74 72 69 62 75 74 65 28 64 6f 6d getAttribute(dom
51ff0 2c 20 49 53 5f 44 49 52 45 43 54 49 56 45 29 3b , IS_DIRECTIVE);
52000 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 61 6d 65 . return name
52010 64 54 61 67 20 26 26 20 21 63 73 70 5f 74 6d 70 dTag && !csp_tmp
52020 6c 5f 31 2e 68 61 73 45 78 70 72 28 6e 61 6d 65 l_1.hasExpr(name
52030 64 54 61 67 29 20 3f 0a 20 20 20 20 20 20 6e 61 dTag) ?. na
52040 6d 65 64 54 61 67 20 3a 20 63 68 69 6c 64 20 3f medTag : child ?
52050 20 63 68 69 6c 64 2e 6e 61 6d 65 20 3a 20 64 6f child.name : do
52060 6d 2e 74 61 67 4e 61 6d 65 2e 74 6f 4c 6f 77 65 m.tagName.toLowe
52070 72 43 61 73 65 28 29 0a 20 20 7d 0a 0a 20 20 2f rCase(). }.. /
52080 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 61 **. * Return a
52090 20 74 65 6d 70 6f 72 61 72 79 20 63 6f 6e 74 65 temporary conte
520a0 78 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c xt containing al
520b0 73 6f 20 74 68 65 20 70 61 72 65 6e 74 20 70 72 so the parent pr
520c0 6f 70 65 72 74 69 65 73 0a 20 20 20 2a 20 40 74 operties. * @t
520d0 68 69 73 20 54 61 67 0a 20 20 20 2a 20 40 70 61 his Tag. * @pa
520e0 72 61 6d 20 7b 20 54 61 67 20 7d 20 2d 20 74 65 ram { Tag } - te
520f0 6d 70 6f 72 61 72 79 20 74 61 67 20 63 6f 6e 74 mporary tag cont
52100 65 78 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 ext containing a
52110 6c 6c 20 74 68 65 20 70 61 72 65 6e 74 20 70 72 ll the parent pr
52120 6f 70 65 72 74 69 65 73 0a 20 20 20 2a 2f 0a 20 operties. */.
52130 20 66 75 6e 63 74 69 6f 6e 20 69 6e 68 65 72 69 function inheri
52140 74 50 61 72 65 6e 74 50 72 6f 70 73 28 29 20 7b tParentProps() {
52150 0a 20 20 20 20 69 66 20 28 74 68 69 73 2e 70 61 . if (this.pa
52160 72 65 6e 74 29 20 7b 20 72 65 74 75 72 6e 20 65 rent) { return e
52170 78 74 65 6e 64 28 63 72 65 61 74 65 28 74 68 69 xtend(create(thi
52180 73 29 2c 20 74 68 69 73 2e 70 61 72 65 6e 74 29 s), this.parent)
52190 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 }. return th
521a0 69 73 0a 20 20 7d 0a 0a 20 20 2f 2a 0a 20 20 20 is. }.. /*.
521b0 20 49 6e 63 6c 75 64 65 73 20 68 61 63 6b 73 20 Includes hacks
521c0 6e 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 49 needed for the I
521d0 6e 74 65 72 6e 65 74 20 45 78 70 6c 6f 72 65 72 nternet Explorer
521e0 20 76 65 72 73 69 6f 6e 20 39 20 61 6e 64 20 62 version 9 and b
521f0 65 6c 6f 77 0a 20 20 20 20 53 65 65 3a 20 68 74 elow. See: ht
52200 74 70 3a 2f 2f 6b 61 6e 67 61 78 2e 67 69 74 68 tp://kangax.gith
52210 75 62 2e 69 6f 2f 63 6f 6d 70 61 74 2d 74 61 62 ub.io/compat-tab
52220 6c 65 2f 65 73 35 2f 23 69 65 38 0a 20 20 20 20 le/es5/#ie8.
52230 20 20 20 20 20 68 74 74 70 3a 2f 2f 63 6f 64 65 http://code
52240 70 6c 61 6e 65 74 2e 69 6f 2f 64 72 6f 70 70 69 planet.io/droppi
52250 6e 67 2d 69 65 38 2f 0a 20 20 2a 2f 0a 0a 20 20 ng-ie8/. */..
52260 76 61 72 0a 20 20 20 20 72 65 48 61 73 59 69 65 var. reHasYie
52270 6c 64 20 20 3d 20 2f 3c 79 69 65 6c 64 5c 62 2f ld = /<yield\b/
52280 69 2c 0a 20 20 20 20 72 65 59 69 65 6c 64 41 6c i,. reYieldAl
52290 6c 20 20 3d 20 2f 3c 79 69 65 6c 64 5c 73 2a 28 l = /<yield\s*(
522a0 3f 3a 5c 2f 3e 7c 3e 28 5b 5c 53 5c 73 5d 2a 3f ?:\/>|>([\S\s]*?
522b0 29 3c 5c 2f 79 69 65 6c 64 5c 73 2a 3e 7c 3e 29 )<\/yield\s*>|>)
522c0 2f 69 67 2c 0a 20 20 20 20 72 65 59 69 65 6c 64 /ig,. reYield
522d0 53 72 63 20 20 3d 20 2f 3c 79 69 65 6c 64 5c 73 Src = /<yield\s
522e0 2b 74 6f 3d 5b 27 22 5d 28 5b 5e 27 22 3e 5d 2a +to=['"]([^'">]*
522f0 29 5b 27 22 5d 5c 73 2a 3e 28 5b 5c 53 5c 73 5d )['"]\s*>([\S\s]
52300 2a 3f 29 3c 5c 2f 79 69 65 6c 64 5c 73 2a 3e 2f *?)<\/yield\s*>/
52310 69 67 2c 0a 20 20 20 20 72 65 59 69 65 6c 64 44 ig,. reYieldD
52320 65 73 74 20 3d 20 2f 3c 79 69 65 6c 64 5c 73 2b est = /<yield\s+
52330 66 72 6f 6d 3d 5b 27 22 5d 3f 28 5b 2d 5c 77 5d from=['"]?([-\w]
52340 2b 29 5b 27 22 5d 3f 5c 73 2a 28 3f 3a 5c 2f 3e +)['"]?\s*(?:\/>
52350 7c 3e 28 5b 5c 53 5c 73 5d 2a 3f 29 3c 5c 2f 79 |>([\S\s]*?)<\/y
52360 69 65 6c 64 5c 73 2a 3e 29 2f 69 67 2c 0a 20 20 ield\s*>)/ig,.
52370 20 20 72 6f 6f 74 45 6c 73 20 3d 20 7b 20 74 72 rootEls = { tr
52380 3a 20 27 74 62 6f 64 79 27 2c 20 74 68 3a 20 27 : 'tbody', th: '
52390 74 72 27 2c 20 74 64 3a 20 27 74 72 27 2c 20 63 tr', td: 'tr', c
523a0 6f 6c 3a 20 27 63 6f 6c 67 72 6f 75 70 27 20 7d ol: 'colgroup' }
523b0 2c 0a 20 20 20 20 74 62 6c 54 61 67 73 20 3d 20 ,. tblTags =
523c0 49 45 5f 56 45 52 53 49 4f 4e 20 26 26 20 49 45 IE_VERSION && IE
523d0 5f 56 45 52 53 49 4f 4e 20 3c 20 31 30 20 3f 20 _VERSION < 10 ?
523e0 52 45 5f 53 50 45 43 49 41 4c 5f 54 41 47 53 20 RE_SPECIAL_TAGS
523f0 3a 20 52 45 5f 53 50 45 43 49 41 4c 5f 54 41 47 : RE_SPECIAL_TAG
52400 53 5f 4e 4f 5f 4f 50 54 49 4f 4e 2c 0a 20 20 20 S_NO_OPTION,.
52410 20 47 45 4e 45 52 49 43 20 3d 20 27 64 69 76 27 GENERIC = 'div'
52420 2c 0a 20 20 20 20 53 56 47 20 3d 20 27 73 76 67 ,. SVG = 'svg
52430 27 3b 0a 0a 0a 20 20 2f 2a 0a 20 20 20 20 43 72 ';... /*. Cr
52440 65 61 74 65 73 20 74 68 65 20 72 6f 6f 74 20 65 eates the root e
52450 6c 65 6d 65 6e 74 20 66 6f 72 20 74 61 62 6c 65 lement for table
52460 20 6f 72 20 73 65 6c 65 63 74 20 63 68 69 6c 64 or select child
52470 20 65 6c 65 6d 65 6e 74 73 3a 0a 20 20 20 20 74 elements:. t
52480 72 2f 74 68 2f 74 64 2f 74 68 65 61 64 2f 74 66 r/th/td/thead/tf
52490 6f 6f 74 2f 74 62 6f 64 79 2f 63 61 70 74 69 6f oot/tbody/captio
524a0 6e 2f 63 6f 6c 2f 63 6f 6c 67 72 6f 75 70 2f 6f n/col/colgroup/o
524b0 70 74 69 6f 6e 2f 6f 70 74 67 72 6f 75 70 0a 20 ption/optgroup.
524c0 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 73 */. function s
524d0 70 65 63 69 61 6c 54 61 67 73 28 65 6c 2c 20 74 pecialTags(el, t
524e0 6d 70 6c 2c 20 74 61 67 4e 61 6d 65 29 20 7b 0a mpl, tagName) {.
524f0 0a 20 20 20 20 76 61 72 0a 20 20 20 20 20 20 73 . var. s
52500 65 6c 65 63 74 20 3d 20 74 61 67 4e 61 6d 65 5b elect = tagName[
52510 30 5d 20 3d 3d 3d 20 27 6f 27 2c 0a 20 20 20 20 0] === 'o',.
52520 20 20 70 61 72 65 6e 74 20 3d 20 73 65 6c 65 63 parent = selec
52530 74 20 3f 20 27 73 65 6c 65 63 74 3e 27 20 3a 20 t ? 'select>' :
52540 27 74 61 62 6c 65 3e 27 3b 0a 0a 20 20 20 20 2f 'table>';.. /
52550 2f 20 74 72 69 6d 28 29 20 69 73 20 69 6d 70 6f / trim() is impo
52560 72 74 61 6e 74 20 68 65 72 65 2c 20 74 68 69 73 rtant here, this
52570 20 65 6e 73 75 72 65 73 20 77 65 20 64 6f 6e 27 ensures we don'
52580 74 20 68 61 76 65 20 61 72 74 69 66 61 63 74 73 t have artifacts
52590 2c 0a 20 20 20 20 2f 2f 20 73 6f 20 77 65 20 63 ,. // so we c
525a0 61 6e 20 63 68 65 63 6b 20 69 66 20 77 65 20 68 an check if we h
525b0 61 76 65 20 6f 6e 6c 79 20 6f 6e 65 20 65 6c 65 ave only one ele
525c0 6d 65 6e 74 20 69 6e 73 69 64 65 20 74 68 65 20 ment inside the
525d0 70 61 72 65 6e 74 0a 20 20 20 20 65 6c 2e 69 6e parent. el.in
525e0 6e 65 72 48 54 4d 4c 20 3d 20 27 3c 27 20 2b 20 nerHTML = '<' +
525f0 70 61 72 65 6e 74 20 2b 20 74 6d 70 6c 2e 74 72 parent + tmpl.tr
52600 69 6d 28 29 20 2b 20 27 3c 2f 27 20 2b 20 70 61 im() + '</' + pa
52610 72 65 6e 74 3b 0a 20 20 20 20 70 61 72 65 6e 74 rent;. parent
52620 20 3d 20 65 6c 2e 66 69 72 73 74 43 68 69 6c 64 = el.firstChild
52630 3b 0a 0a 20 20 20 20 2f 2f 20 72 65 74 75 72 6e ;.. // return
52640 73 20 74 68 65 20 69 6d 6d 65 64 69 61 74 65 20 s the immediate
52650 70 61 72 65 6e 74 20 69 66 20 74 72 2f 74 68 2f parent if tr/th/
52660 74 64 2f 63 6f 6c 20 69 73 20 74 68 65 20 6f 6e td/col is the on
52670 6c 79 20 65 6c 65 6d 65 6e 74 2c 20 69 66 20 6e ly element, if n
52680 6f 74 0a 20 20 20 20 2f 2f 20 72 65 74 75 72 6e ot. // return
52690 73 20 74 68 65 20 77 68 6f 6c 65 20 74 72 65 65 s the whole tree
526a0 2c 20 61 73 20 74 68 69 73 20 63 61 6e 20 69 6e , as this can in
526b0 63 6c 75 64 65 20 61 64 64 69 74 69 6f 6e 61 6c clude additional
526c0 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 2f 2a elements. /*
526d0 20 69 73 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 istanbul ignore
526e0 20 6e 65 78 74 20 2a 2f 0a 20 20 20 20 69 66 20 next */. if
526f0 28 73 65 6c 65 63 74 29 20 7b 0a 20 20 20 20 20 (select) {.
52700 20 70 61 72 65 6e 74 2e 73 65 6c 65 63 74 65 64 parent.selected
52710 49 6e 64 65 78 20 3d 20 2d 31 3b 20 20 2f 2f 20 Index = -1; //
52720 66 6f 72 20 49 45 39 2c 20 63 6f 6d 70 61 74 69 for IE9, compati
52730 62 6c 65 20 77 2f 63 75 72 72 65 6e 74 20 72 69 ble w/current ri
52740 6f 74 20 62 65 68 61 76 69 6f 72 0a 20 20 20 20 ot behavior.
52750 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 2f } else {. /
52760 2f 20 61 76 6f 69 64 73 20 69 6e 73 65 72 74 69 / avoids inserti
52770 6f 6e 20 6f 66 20 63 6f 69 6e 74 61 69 6e 65 72 on of cointainer
52780 20 69 6e 73 69 64 65 20 63 6f 6e 74 61 69 6e 65 inside containe
52790 72 20 28 65 78 3a 20 74 62 6f 64 79 20 69 6e 73 r (ex: tbody ins
527a0 69 64 65 20 74 62 6f 64 79 29 0a 20 20 20 20 20 ide tbody).
527b0 20 76 61 72 20 74 6e 61 6d 65 20 3d 20 72 6f 6f var tname = roo
527c0 74 45 6c 73 5b 74 61 67 4e 61 6d 65 5d 3b 0a 20 tEls[tagName];.
527d0 20 20 20 20 20 69 66 20 28 74 6e 61 6d 65 20 26 if (tname &
527e0 26 20 70 61 72 65 6e 74 2e 63 68 69 6c 64 45 6c & parent.childEl
527f0 65 6d 65 6e 74 43 6f 75 6e 74 20 3d 3d 3d 20 31 ementCount === 1
52800 29 20 7b 20 70 61 72 65 6e 74 20 3d 20 24 28 74 ) { parent = $(t
52810 6e 61 6d 65 2c 20 70 61 72 65 6e 74 29 3b 20 7d name, parent); }
52820 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 . }. retur
52830 6e 20 70 61 72 65 6e 74 0a 20 20 7d 0a 0a 20 20 n parent. }..
52840 2f 2a 0a 20 20 20 20 52 65 70 6c 61 63 65 20 74 /*. Replace t
52850 68 65 20 79 69 65 6c 64 20 74 61 67 20 66 72 6f he yield tag fro
52860 6d 20 61 6e 79 20 74 61 67 20 74 65 6d 70 6c 61 m any tag templa
52870 74 65 20 77 69 74 68 20 74 68 65 20 69 6e 6e 65 te with the inne
52880 72 48 54 4d 4c 20 6f 66 20 74 68 65 0a 20 20 20 rHTML of the.
52890 20 6f 72 69 67 69 6e 61 6c 20 74 61 67 20 69 6e original tag in
528a0 20 74 68 65 20 70 61 67 65 0a 20 20 2a 2f 0a 20 the page. */.
528b0 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 function replac
528c0 65 59 69 65 6c 64 28 74 6d 70 6c 2c 20 68 74 6d eYield(tmpl, htm
528d0 6c 29 20 7b 0a 20 20 20 20 2f 2f 20 64 6f 20 6e l) {. // do n
528e0 6f 74 68 69 6e 67 20 69 66 20 6e 6f 20 79 69 65 othing if no yie
528f0 6c 64 0a 20 20 20 20 69 66 20 28 21 72 65 48 61 ld. if (!reHa
52900 73 59 69 65 6c 64 2e 74 65 73 74 28 74 6d 70 6c sYield.test(tmpl
52910 29 29 20 7b 20 72 65 74 75 72 6e 20 74 6d 70 6c )) { return tmpl
52920 20 7d 0a 0a 20 20 20 20 2f 2f 20 62 65 20 63 61 }.. // be ca
52930 72 65 66 75 6c 20 77 69 74 68 20 23 31 33 34 33 reful with #1343
52940 20 2d 20 73 74 72 69 6e 67 20 6f 6e 20 74 68 65 - string on the
52950 20 73 6f 75 72 63 65 20 68 61 76 69 6e 67 20 60 source having `
52960 24 31 60 0a 20 20 20 20 76 61 72 20 73 72 63 20 $1`. var src
52970 3d 20 7b 7d 3b 0a 0a 20 20 20 20 68 74 6d 6c 20 = {};.. html
52980 3d 20 68 74 6d 6c 20 26 26 20 68 74 6d 6c 2e 72 = html && html.r
52990 65 70 6c 61 63 65 28 72 65 59 69 65 6c 64 53 72 eplace(reYieldSr
529a0 63 2c 20 66 75 6e 63 74 69 6f 6e 20 28 5f 2c 20 c, function (_,
529b0 72 65 66 2c 20 74 65 78 74 29 20 7b 0a 20 20 20 ref, text) {.
529c0 20 20 20 73 72 63 5b 72 65 66 5d 20 3d 20 73 72 src[ref] = sr
529d0 63 5b 72 65 66 5d 20 7c 7c 20 74 65 78 74 3b 20 c[ref] || text;
529e0 20 20 2f 2f 20 70 72 65 73 65 72 76 65 20 66 69 // preserve fi
529f0 72 73 74 20 64 65 66 69 6e 69 74 69 6f 6e 0a 20 rst definition.
52a00 20 20 20 20 20 72 65 74 75 72 6e 20 27 27 0a 20 return ''.
52a10 20 20 20 7d 29 2e 74 72 69 6d 28 29 3b 0a 0a 20 }).trim();..
52a20 20 20 20 72 65 74 75 72 6e 20 74 6d 70 6c 0a 20 return tmpl.
52a30 20 20 20 20 20 2e 72 65 70 6c 61 63 65 28 72 65 .replace(re
52a40 59 69 65 6c 64 44 65 73 74 2c 20 66 75 6e 63 74 YieldDest, funct
52a50 69 6f 6e 20 28 5f 2c 20 72 65 66 2c 20 64 65 66 ion (_, ref, def
52a60 29 20 7b 20 20 2f 2f 20 79 69 65 6c 64 20 77 69 ) { // yield wi
52a70 74 68 20 66 72 6f 6d 20 2d 20 74 6f 20 61 74 74 th from - to att
52a80 72 73 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 rs. retur
52a90 6e 20 73 72 63 5b 72 65 66 5d 20 7c 7c 20 64 65 n src[ref] || de
52aa0 66 20 7c 7c 20 27 27 0a 20 20 20 20 20 20 7d 29 f || ''. })
52ab0 0a 20 20 20 20 20 20 2e 72 65 70 6c 61 63 65 28 . .replace(
52ac0 72 65 59 69 65 6c 64 41 6c 6c 2c 20 66 75 6e 63 reYieldAll, func
52ad0 74 69 6f 6e 20 28 5f 2c 20 64 65 66 29 20 7b 20 tion (_, def) {
52ae0 20 20 20 20 20 20 20 2f 2f 20 79 69 65 6c 64 20 // yield
52af0 77 69 74 68 6f 75 74 20 61 6e 79 20 22 66 72 6f without any "fro
52b00 6d 22 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 m". retur
52b10 6e 20 68 74 6d 6c 20 7c 7c 20 64 65 66 20 7c 7c n html || def ||
52b20 20 27 27 0a 20 20 20 20 20 20 7d 29 0a 20 20 7d ''. }). }
52b30 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 .. /**. * Cre
52b40 61 74 65 73 20 61 20 44 4f 4d 20 65 6c 65 6d 65 ates a DOM eleme
52b50 6e 74 20 74 6f 20 77 72 61 70 20 74 68 65 20 67 nt to wrap the g
52b60 69 76 65 6e 20 63 6f 6e 74 65 6e 74 2e 20 4e 6f iven content. No
52b70 72 6d 61 6c 6c 79 20 61 6e 20 60 44 49 56 60 2c rmally an `DIV`,
52b80 20 62 75 74 20 63 61 6e 20 62 65 0a 20 20 20 2a but can be. *
52b90 20 61 6c 73 6f 20 61 20 60 54 41 42 4c 45 60 2c also a `TABLE`,
52ba0 20 60 53 45 4c 45 43 54 60 2c 20 60 54 42 4f 44 `SELECT`, `TBOD
52bb0 59 60 2c 20 60 54 52 60 2c 20 6f 72 20 60 43 4f Y`, `TR`, or `CO
52bc0 4c 47 52 4f 55 50 60 20 65 6c 65 6d 65 6e 74 2e LGROUP` element.
52bd0 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 . *. * @para
52be0 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 74 m { String } t
52bf0 6d 70 6c 20 20 2d 20 54 68 65 20 74 65 6d 70 6c mpl - The templ
52c00 61 74 65 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 ate coming from
52c10 74 68 65 20 63 75 73 74 6f 6d 20 74 61 67 20 64 the custom tag d
52c20 65 66 69 6e 69 74 69 6f 6e 0a 20 20 20 2a 20 40 efinition. * @
52c30 70 61 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 param { String
52c40 20 7d 20 68 74 6d 6c 20 2d 20 48 54 4d 4c 20 63 } html - HTML c
52c50 6f 6e 74 65 6e 74 20 74 68 61 74 20 63 6f 6d 65 ontent that come
52c60 73 20 66 72 6f 6d 20 74 68 65 20 44 4f 4d 20 65 s from the DOM e
52c70 6c 65 6d 65 6e 74 20 77 68 65 72 65 20 79 6f 75 lement where you
52c80 0a 20 20 20 2a 20 20 20 20 20 20 20 20 20 20 20 . *
52c90 77 69 6c 6c 20 6d 6f 75 6e 74 20 74 68 65 20 74 will mount the t
52ca0 61 67 2c 20 6d 6f 73 74 6c 79 20 74 68 65 20 6f ag, mostly the o
52cb0 72 69 67 69 6e 61 6c 20 74 61 67 20 69 6e 20 74 riginal tag in t
52cc0 68 65 20 70 61 67 65 0a 20 20 20 2a 20 40 70 61 he page. * @pa
52cd0 72 61 6d 20 20 20 7b 20 42 6f 6f 6c 65 61 6e 20 ram { Boolean
52ce0 7d 20 69 73 53 76 67 20 2d 20 74 72 75 65 20 69 } isSvg - true i
52cf0 66 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 20 f the root node
52d00 69 73 20 61 6e 20 73 76 67 0a 20 20 20 2a 20 40 is an svg. * @
52d10 72 65 74 75 72 6e 73 20 7b 20 48 54 4d 4c 45 6c returns { HTMLEl
52d20 65 6d 65 6e 74 20 7d 20 44 4f 4d 20 65 6c 65 6d ement } DOM elem
52d30 65 6e 74 20 77 69 74 68 20 5f 74 6d 70 6c 5f 20 ent with _tmpl_
52d40 6d 65 72 67 65 64 20 74 68 72 6f 75 67 68 20 60 merged through `
52d50 59 49 45 4c 44 60 20 77 69 74 68 20 74 68 65 20 YIELD` with the
52d60 5f 68 74 6d 6c 5f 2e 0a 20 20 20 2a 2f 0a 20 20 _html_.. */.
52d70 66 75 6e 63 74 69 6f 6e 20 6d 6b 64 6f 6d 28 74 function mkdom(t
52d80 6d 70 6c 2c 20 68 74 6d 6c 2c 20 69 73 53 76 67 mpl, html, isSvg
52d90 29 20 7b 0a 20 20 20 20 76 61 72 20 6d 61 74 63 ) {. var matc
52da0 68 20 20 20 3d 20 74 6d 70 6c 20 26 26 20 74 6d h = tmpl && tm
52db0 70 6c 2e 6d 61 74 63 68 28 2f 5e 5c 73 2a 3c 28 pl.match(/^\s*<(
52dc0 5b 2d 5c 77 5d 2b 29 2f 29 3b 0a 20 20 20 20 76 [-\w]+)/);. v
52dd0 61 72 20 20 74 61 67 4e 61 6d 65 20 3d 20 6d 61 ar tagName = ma
52de0 74 63 68 20 26 26 20 6d 61 74 63 68 5b 31 5d 2e tch && match[1].
52df0 74 6f 4c 6f 77 65 72 43 61 73 65 28 29 3b 0a 20 toLowerCase();.
52e00 20 20 20 76 61 72 20 65 6c 20 3d 20 6d 61 6b 65 var el = make
52e10 45 6c 65 6d 65 6e 74 28 69 73 53 76 67 20 3f 20 Element(isSvg ?
52e20 53 56 47 20 3a 20 47 45 4e 45 52 49 43 29 3b 0a SVG : GENERIC);.
52e30 0a 20 20 20 20 2f 2f 20 72 65 70 6c 61 63 65 20 . // replace
52e40 61 6c 6c 20 74 68 65 20 79 69 65 6c 64 20 74 61 all the yield ta
52e50 67 73 20 77 69 74 68 20 74 68 65 20 74 61 67 20 gs with the tag
52e60 69 6e 6e 65 72 20 68 74 6d 6c 0a 20 20 20 20 74 inner html. t
52e70 6d 70 6c 20 3d 20 72 65 70 6c 61 63 65 59 69 65 mpl = replaceYie
52e80 6c 64 28 74 6d 70 6c 2c 20 68 74 6d 6c 29 3b 0a ld(tmpl, html);.
52e90 0a 20 20 20 20 2f 2a 20 69 73 74 61 6e 62 75 6c . /* istanbul
52ea0 20 69 67 6e 6f 72 65 20 6e 65 78 74 20 2a 2f 0a ignore next */.
52eb0 20 20 20 20 69 66 20 28 74 62 6c 54 61 67 73 2e if (tblTags.
52ec0 74 65 73 74 28 74 61 67 4e 61 6d 65 29 29 0a 20 test(tagName)).
52ed0 20 20 20 20 20 7b 20 65 6c 20 3d 20 73 70 65 63 { el = spec
52ee0 69 61 6c 54 61 67 73 28 65 6c 2c 20 74 6d 70 6c ialTags(el, tmpl
52ef0 2c 20 74 61 67 4e 61 6d 65 29 3b 20 7d 0a 20 20 , tagName); }.
52f00 20 20 65 6c 73 65 0a 20 20 20 20 20 20 7b 20 73 else. { s
52f10 65 74 49 6e 6e 65 72 48 54 4d 4c 28 65 6c 2c 20 etInnerHTML(el,
52f20 74 6d 70 6c 2c 20 69 73 53 76 67 29 3b 20 7d 0a tmpl, isSvg); }.
52f30 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6c 0a 20 . return el.
52f40 20 7d 0a 0a 20 20 76 61 72 20 45 56 45 4e 54 5f }.. var EVENT_
52f50 41 54 54 52 5f 52 45 20 3d 20 2f 5e 6f 6e 2f 3b ATTR_RE = /^on/;
52f60 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54 72 75 .. /**. * Tru
52f70 65 20 69 66 20 74 68 65 20 65 76 65 6e 74 20 61 e if the event a
52f80 74 74 72 69 62 75 74 65 20 73 74 61 72 74 73 20 ttribute starts
52f90 77 69 74 68 20 27 6f 6e 27 0a 20 20 20 2a 20 40 with 'on'. * @
52fa0 70 61 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 param { String
52fb0 20 7d 20 61 74 74 72 69 62 75 74 65 20 2d 20 65 } attribute - e
52fc0 76 65 6e 74 20 61 74 74 72 69 62 75 74 65 0a 20 vent attribute.
52fd0 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 42 * @returns { B
52fe0 6f 6f 6c 65 61 6e 20 7d 0a 20 20 20 2a 2f 0a 20 oolean }. */.
52ff0 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 76 65 6e function isEven
53000 74 41 74 74 72 69 62 75 74 65 28 61 74 74 72 69 tAttribute(attri
53010 62 75 74 65 29 20 7b 0a 20 20 20 20 72 65 74 75 bute) {. retu
53020 72 6e 20 45 56 45 4e 54 5f 41 54 54 52 5f 52 45 rn EVENT_ATTR_RE
53030 2e 74 65 73 74 28 61 74 74 72 69 62 75 74 65 29 .test(attribute)
53040 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
53050 20 4c 6f 6f 70 20 62 61 63 6b 77 61 72 64 20 61 Loop backward a
53060 6c 6c 20 74 68 65 20 70 61 72 65 6e 74 73 20 74 ll the parents t
53070 72 65 65 20 74 6f 20 64 65 74 65 63 74 20 74 68 ree to detect th
53080 65 20 66 69 72 73 74 20 63 75 73 74 6f 6d 20 70 e first custom p
53090 61 72 65 6e 74 20 74 61 67 0a 20 20 20 2a 20 40 arent tag. * @
530a0 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 param { Object
530b0 20 7d 20 74 61 67 20 2d 20 61 20 54 61 67 20 69 } tag - a Tag i
530c0 6e 73 74 61 6e 63 65 0a 20 20 20 2a 20 40 72 65 nstance. * @re
530d0 74 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d turns { Object }
530e0 20 74 68 65 20 69 6e 73 74 61 6e 63 65 20 6f 66 the instance of
530f0 20 74 68 65 20 66 69 72 73 74 20 63 75 73 74 6f the first custo
53100 6d 20 70 61 72 65 6e 74 20 74 61 67 20 66 6f 75 m parent tag fou
53110 6e 64 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 nd. */. funct
53120 69 6f 6e 20 67 65 74 49 6d 6d 65 64 69 61 74 65 ion getImmediate
53130 43 75 73 74 6f 6d 50 61 72 65 6e 74 28 74 61 67 CustomParent(tag
53140 29 20 7b 0a 20 20 20 20 76 61 72 20 70 74 61 67 ) {. var ptag
53150 20 3d 20 74 61 67 3b 0a 20 20 20 20 77 68 69 6c = tag;. whil
53160 65 20 28 70 74 61 67 2e 5f 5f 2e 69 73 41 6e 6f e (ptag.__.isAno
53170 6e 79 6d 6f 75 73 29 20 7b 0a 20 20 20 20 20 20 nymous) {.
53180 69 66 20 28 21 70 74 61 67 2e 70 61 72 65 6e 74 if (!ptag.parent
53190 29 20 7b 20 62 72 65 61 6b 20 7d 0a 20 20 20 20 ) { break }.
531a0 20 20 70 74 61 67 20 3d 20 70 74 61 67 2e 70 61 ptag = ptag.pa
531b0 72 65 6e 74 3b 0a 20 20 20 20 7d 0a 20 20 20 20 rent;. }.
531c0 72 65 74 75 72 6e 20 70 74 61 67 0a 20 20 7d 0a return ptag. }.
531d0 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54 72 69 67 . /**. * Trig
531e0 67 65 72 20 44 4f 4d 20 65 76 65 6e 74 73 0a 20 ger DOM events.
531f0 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 48 * @param { H
53200 54 4d 4c 45 6c 65 6d 65 6e 74 20 7d 20 64 6f 6d TMLElement } dom
53210 20 2d 20 64 6f 6d 20 65 6c 65 6d 65 6e 74 20 74 - dom element t
53220 61 72 67 65 74 20 6f 66 20 74 68 65 20 65 76 65 arget of the eve
53230 6e 74 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 nt. * @param
53240 20 7b 20 46 75 6e 63 74 69 6f 6e 20 7d 20 68 61 { Function } ha
53250 6e 64 6c 65 72 20 2d 20 75 73 65 72 20 66 75 6e ndler - user fun
53260 63 74 69 6f 6e 0a 20 20 20 2a 20 40 70 61 72 61 ction. * @para
53270 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 65 m { Object } e
53280 20 2d 20 65 76 65 6e 74 20 6f 62 6a 65 63 74 0a - event object.
53290 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e */. function
532a0 20 68 61 6e 64 6c 65 45 76 65 6e 74 28 64 6f 6d handleEvent(dom
532b0 2c 20 68 61 6e 64 6c 65 72 2c 20 65 29 20 7b 0a , handler, e) {.
532c0 20 20 20 20 76 61 72 20 70 74 61 67 20 3d 20 74 var ptag = t
532d0 68 69 73 2e 5f 5f 2e 70 61 72 65 6e 74 3b 0a 20 his.__.parent;.
532e0 20 20 20 76 61 72 20 69 74 65 6d 20 3d 20 74 68 var item = th
532f0 69 73 2e 5f 5f 2e 69 74 65 6d 3b 0a 0a 20 20 20 is.__.item;..
53300 20 69 66 20 28 21 69 74 65 6d 29 0a 20 20 20 20 if (!item).
53310 20 20 7b 20 77 68 69 6c 65 20 28 70 74 61 67 20 { while (ptag
53320 26 26 20 21 69 74 65 6d 29 20 7b 0a 20 20 20 20 && !item) {.
53330 20 20 20 20 69 74 65 6d 20 3d 20 70 74 61 67 2e item = ptag.
53340 5f 5f 2e 69 74 65 6d 3b 0a 20 20 20 20 20 20 20 __.item;.
53350 20 70 74 61 67 20 3d 20 70 74 61 67 2e 5f 5f 2e ptag = ptag.__.
53360 70 61 72 65 6e 74 3b 0a 20 20 20 20 20 20 7d 20 parent;. }
53370 7d 0a 0a 20 20 20 20 2f 2f 20 6f 76 65 72 72 69 }.. // overri
53380 64 65 20 74 68 65 20 65 76 65 6e 74 20 70 72 6f de the event pro
53390 70 65 72 74 69 65 73 0a 20 20 20 20 2f 2a 20 69 perties. /* i
533a0 73 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 20 6e stanbul ignore n
533b0 65 78 74 20 2a 2f 0a 20 20 20 20 69 66 20 28 69 ext */. if (i
533c0 73 57 72 69 74 61 62 6c 65 28 65 2c 20 27 63 75 sWritable(e, 'cu
533d0 72 72 65 6e 74 54 61 72 67 65 74 27 29 29 20 7b rrentTarget')) {
533e0 20 65 2e 63 75 72 72 65 6e 74 54 61 72 67 65 74 e.currentTarget
533f0 20 3d 20 64 6f 6d 3b 20 7d 0a 20 20 20 20 2f 2a = dom; }. /*
53400 20 69 73 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 istanbul ignore
53410 20 6e 65 78 74 20 2a 2f 0a 20 20 20 20 69 66 20 next */. if
53420 28 69 73 57 72 69 74 61 62 6c 65 28 65 2c 20 27 (isWritable(e, '
53430 74 61 72 67 65 74 27 29 29 20 7b 20 65 2e 74 61 target')) { e.ta
53440 72 67 65 74 20 3d 20 65 2e 73 72 63 45 6c 65 6d rget = e.srcElem
53450 65 6e 74 3b 20 7d 0a 20 20 20 20 2f 2a 20 69 73 ent; }. /* is
53460 74 61 6e 62 75 6c 20 69 67 6e 6f 72 65 20 6e 65 tanbul ignore ne
53470 78 74 20 2a 2f 0a 20 20 20 20 69 66 20 28 69 73 xt */. if (is
53480 57 72 69 74 61 62 6c 65 28 65 2c 20 27 77 68 69 Writable(e, 'whi
53490 63 68 27 29 29 20 7b 20 65 2e 77 68 69 63 68 20 ch')) { e.which
534a0 3d 20 65 2e 63 68 61 72 43 6f 64 65 20 7c 7c 20 = e.charCode ||
534b0 65 2e 6b 65 79 43 6f 64 65 3b 20 7d 0a 0a 20 20 e.keyCode; }..
534c0 20 20 65 2e 69 74 65 6d 20 3d 20 69 74 65 6d 3b e.item = item;
534d0 0a 0a 20 20 20 20 68 61 6e 64 6c 65 72 2e 63 61 .. handler.ca
534e0 6c 6c 28 74 68 69 73 2c 20 65 29 3b 0a 0a 20 20 ll(this, e);..
534f0 20 20 2f 2f 20 61 76 6f 69 64 20 61 75 74 6f 20 // avoid auto
53500 75 70 64 61 74 65 73 0a 20 20 20 20 69 66 20 28 updates. if (
53510 21 73 65 74 74 69 6e 67 73 2e 61 75 74 6f 55 70 !settings.autoUp
53520 64 61 74 65 29 20 7b 20 72 65 74 75 72 6e 20 7d date) { return }
53530 0a 0a 20 20 20 20 69 66 20 28 21 65 2e 70 72 65 .. if (!e.pre
53540 76 65 6e 74 55 70 64 61 74 65 29 20 7b 0a 20 20 ventUpdate) {.
53550 20 20 20 20 76 61 72 20 70 20 3d 20 67 65 74 49 var p = getI
53560 6d 6d 65 64 69 61 74 65 43 75 73 74 6f 6d 50 61 mmediateCustomPa
53570 72 65 6e 74 28 74 68 69 73 29 3b 0a 20 20 20 20 rent(this);.
53580 20 20 2f 2f 20 66 69 78 65 73 20 23 32 30 38 33 // fixes #2083
53590 0a 20 20 20 20 20 20 69 66 20 28 70 2e 69 73 4d . if (p.isM
535a0 6f 75 6e 74 65 64 29 20 7b 20 70 2e 75 70 64 61 ounted) { p.upda
535b0 74 65 28 29 3b 20 7d 0a 20 20 20 20 7d 0a 20 20 te(); }. }.
535c0 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 74 }.. /**. * At
535d0 74 61 63 68 20 61 6e 20 65 76 65 6e 74 20 74 6f tach an event to
535e0 20 61 20 44 4f 4d 20 6e 6f 64 65 0a 20 20 20 2a a DOM node. *
535f0 20 40 70 61 72 61 6d 20 7b 20 53 74 72 69 6e 67 @param { String
53600 20 7d 20 6e 61 6d 65 20 2d 20 65 76 65 6e 74 20 } name - event
53610 6e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d name. * @param
53620 20 7b 20 46 75 6e 63 74 69 6f 6e 20 7d 20 68 61 { Function } ha
53630 6e 64 6c 65 72 20 2d 20 65 76 65 6e 74 20 63 61 ndler - event ca
53640 6c 6c 62 61 63 6b 0a 20 20 20 2a 20 40 70 61 72 llback. * @par
53650 61 6d 20 7b 20 4f 62 6a 65 63 74 20 7d 20 64 6f am { Object } do
53660 6d 20 2d 20 64 6f 6d 20 6e 6f 64 65 0a 20 20 20 m - dom node.
53670 2a 20 40 70 61 72 61 6d 20 7b 20 54 61 67 20 7d * @param { Tag }
53680 20 74 61 67 20 2d 20 74 61 67 20 69 6e 73 74 61 tag - tag insta
53690 6e 63 65 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 nce. */. func
536a0 74 69 6f 6e 20 73 65 74 45 76 65 6e 74 48 61 6e tion setEventHan
536b0 64 6c 65 72 28 6e 61 6d 65 2c 20 68 61 6e 64 6c dler(name, handl
536c0 65 72 2c 20 64 6f 6d 2c 20 74 61 67 29 20 7b 0a er, dom, tag) {.
536d0 20 20 20 20 76 61 72 20 65 76 65 6e 74 4e 61 6d var eventNam
536e0 65 3b 0a 20 20 20 20 76 61 72 20 63 62 20 3d 20 e;. var cb =
536f0 68 61 6e 64 6c 65 45 76 65 6e 74 2e 62 69 6e 64 handleEvent.bind
53700 28 74 61 67 2c 20 64 6f 6d 2c 20 68 61 6e 64 6c (tag, dom, handl
53710 65 72 29 3b 0a 0a 20 20 20 20 2f 2f 20 61 76 6f er);.. // avo
53720 69 64 20 74 6f 20 62 69 6e 64 20 74 77 69 63 65 id to bind twice
53730 20 74 68 65 20 73 61 6d 65 20 65 76 65 6e 74 0a the same event.
53740 20 20 20 20 2f 2f 20 70 6f 73 73 69 62 6c 65 20 // possible
53750 66 69 78 20 66 6f 72 20 23 32 33 33 32 0a 20 20 fix for #2332.
53760 20 20 64 6f 6d 5b 6e 61 6d 65 5d 20 3d 20 6e 75 dom[name] = nu
53770 6c 6c 3b 0a 0a 20 20 20 20 2f 2f 20 6e 6f 72 6d ll;.. // norm
53780 61 6c 69 7a 65 20 65 76 65 6e 74 20 6e 61 6d 65 alize event name
53790 0a 20 20 20 20 65 76 65 6e 74 4e 61 6d 65 20 3d . eventName =
537a0 20 6e 61 6d 65 2e 72 65 70 6c 61 63 65 28 52 45 name.replace(RE
537b0 5f 45 56 45 4e 54 53 5f 50 52 45 46 49 58 2c 20 _EVENTS_PREFIX,
537c0 27 27 29 3b 0a 0a 20 20 20 20 2f 2f 20 63 61 63 '');.. // cac
537d0 68 65 20 74 68 65 20 6c 69 73 74 65 6e 65 72 20 he the listener
537e0 69 6e 74 6f 20 74 68 65 20 6c 69 73 74 65 6e 65 into the listene
537f0 72 73 20 61 72 72 61 79 0a 20 20 20 20 69 66 20 rs array. if
53800 28 21 63 6f 6e 74 61 69 6e 73 28 74 61 67 2e 5f (!contains(tag._
53810 5f 2e 6c 69 73 74 65 6e 65 72 73 2c 20 64 6f 6d _.listeners, dom
53820 29 29 20 7b 20 74 61 67 2e 5f 5f 2e 6c 69 73 74 )) { tag.__.list
53830 65 6e 65 72 73 2e 70 75 73 68 28 64 6f 6d 29 3b eners.push(dom);
53840 20 7d 0a 20 20 20 20 69 66 20 28 21 64 6f 6d 5b }. if (!dom[
53850 52 49 4f 54 5f 45 56 45 4e 54 53 5f 4b 45 59 5d RIOT_EVENTS_KEY]
53860 29 20 7b 20 64 6f 6d 5b 52 49 4f 54 5f 45 56 45 ) { dom[RIOT_EVE
53870 4e 54 53 5f 4b 45 59 5d 20 3d 20 7b 7d 3b 20 7d NTS_KEY] = {}; }
53880 0a 20 20 20 20 69 66 20 28 64 6f 6d 5b 52 49 4f . if (dom[RIO
53890 54 5f 45 56 45 4e 54 53 5f 4b 45 59 5d 5b 6e 61 T_EVENTS_KEY][na
538a0 6d 65 5d 29 20 7b 20 64 6f 6d 2e 72 65 6d 6f 76 me]) { dom.remov
538b0 65 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 28 65 eEventListener(e
538c0 76 65 6e 74 4e 61 6d 65 2c 20 64 6f 6d 5b 52 49 ventName, dom[RI
538d0 4f 54 5f 45 56 45 4e 54 53 5f 4b 45 59 5d 5b 6e OT_EVENTS_KEY][n
538e0 61 6d 65 5d 29 3b 20 7d 0a 0a 20 20 20 20 64 6f ame]); }.. do
538f0 6d 5b 52 49 4f 54 5f 45 56 45 4e 54 53 5f 4b 45 m[RIOT_EVENTS_KE
53900 59 5d 5b 6e 61 6d 65 5d 20 3d 20 63 62 3b 0a 20 Y][name] = cb;.
53910 20 20 20 64 6f 6d 2e 61 64 64 45 76 65 6e 74 4c dom.addEventL
53920 69 73 74 65 6e 65 72 28 65 76 65 6e 74 4e 61 6d istener(eventNam
53930 65 2c 20 63 62 2c 20 66 61 6c 73 65 29 3b 0a 20 e, cb, false);.
53940 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 }.. /**. * C
53950 72 65 61 74 65 20 61 20 6e 65 77 20 63 68 69 6c reate a new chil
53960 64 20 74 61 67 20 69 6e 63 6c 75 64 69 6e 67 20 d tag including
53970 69 74 20 63 6f 72 72 65 63 74 6c 79 20 69 6e 74 it correctly int
53980 6f 20 69 74 73 20 70 61 72 65 6e 74 0a 20 20 20 o its parent.
53990 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a * @param { Obj
539a0 65 63 74 20 7d 20 63 68 69 6c 64 20 2d 20 63 68 ect } child - ch
539b0 69 6c 64 20 74 61 67 20 69 6d 70 6c 65 6d 65 6e ild tag implemen
539c0 74 61 74 69 6f 6e 0a 20 20 20 2a 20 40 70 61 72 tation. * @par
539d0 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 am { Object }
539e0 6f 70 74 73 20 2d 20 74 61 67 20 6f 70 74 69 6f opts - tag optio
539f0 6e 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 ns containing th
53a00 65 20 44 4f 4d 20 6e 6f 64 65 20 77 68 65 72 65 e DOM node where
53a10 20 74 68 65 20 74 61 67 20 77 69 6c 6c 20 62 65 the tag will be
53a20 20 6d 6f 75 6e 74 65 64 0a 20 20 20 2a 20 40 70 mounted. * @p
53a30 61 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 aram { String
53a40 7d 20 69 6e 6e 65 72 48 54 4d 4c 20 2d 20 69 6e } innerHTML - in
53a50 6e 65 72 20 68 74 6d 6c 20 6f 66 20 74 68 65 20 ner html of the
53a60 63 68 69 6c 64 20 6e 6f 64 65 0a 20 20 20 2a 20 child node. *
53a70 40 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 @param { Objec
53a80 74 20 7d 20 70 61 72 65 6e 74 20 2d 20 69 6e 73 t } parent - ins
53a90 74 61 6e 63 65 20 6f 66 20 74 68 65 20 70 61 72 tance of the par
53aa0 65 6e 74 20 74 61 67 20 69 6e 63 6c 75 64 69 6e ent tag includin
53ab0 67 20 74 68 65 20 63 68 69 6c 64 20 63 75 73 74 g the child cust
53ac0 6f 6d 20 74 61 67 0a 20 20 20 2a 20 40 72 65 74 om tag. * @ret
53ad0 75 72 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d 20 urns { Object }
53ae0 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 65 20 instance of the
53af0 6e 65 77 20 63 68 69 6c 64 20 74 61 67 20 6a 75 new child tag ju
53b00 73 74 20 63 72 65 61 74 65 64 0a 20 20 20 2a 2f st created. */
53b10 0a 20 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 . function init
53b20 43 68 69 6c 64 28 63 68 69 6c 64 2c 20 6f 70 74 Child(child, opt
53b30 73 2c 20 69 6e 6e 65 72 48 54 4d 4c 2c 20 70 61 s, innerHTML, pa
53b40 72 65 6e 74 29 20 7b 0a 20 20 20 20 76 61 72 20 rent) {. var
53b50 74 61 67 20 3d 20 63 72 65 61 74 65 54 61 67 28 tag = createTag(
53b60 63 68 69 6c 64 2c 20 6f 70 74 73 2c 20 69 6e 6e child, opts, inn
53b70 65 72 48 54 4d 4c 29 3b 0a 20 20 20 20 76 61 72 erHTML);. var
53b80 20 74 61 67 4e 61 6d 65 20 3d 20 6f 70 74 73 2e tagName = opts.
53b90 74 61 67 4e 61 6d 65 20 7c 7c 20 67 65 74 4e 61 tagName || getNa
53ba0 6d 65 28 6f 70 74 73 2e 72 6f 6f 74 2c 20 74 72 me(opts.root, tr
53bb0 75 65 29 3b 0a 20 20 20 20 76 61 72 20 70 74 61 ue);. var pta
53bc0 67 20 3d 20 67 65 74 49 6d 6d 65 64 69 61 74 65 g = getImmediate
53bd0 43 75 73 74 6f 6d 50 61 72 65 6e 74 28 70 61 72 CustomParent(par
53be0 65 6e 74 29 3b 0a 20 20 20 20 2f 2f 20 66 69 78 ent);. // fix
53bf0 20 66 6f 72 20 74 68 65 20 70 61 72 65 6e 74 20 for the parent
53c00 61 74 74 72 69 62 75 74 65 20 69 6e 20 74 68 65 attribute in the
53c10 20 6c 6f 6f 70 65 64 20 65 6c 65 6d 65 6e 74 73 looped elements
53c20 0a 20 20 20 20 64 65 66 69 6e 65 28 74 61 67 2c . define(tag,
53c30 20 27 70 61 72 65 6e 74 27 2c 20 70 74 61 67 29 'parent', ptag)
53c40 3b 0a 20 20 20 20 2f 2f 20 73 74 6f 72 65 20 74 ;. // store t
53c50 68 65 20 72 65 61 6c 20 70 61 72 65 6e 74 20 74 he real parent t
53c60 61 67 0a 20 20 20 20 2f 2f 20 69 6e 20 73 6f 6d ag. // in som
53c70 65 20 63 61 73 65 73 20 74 68 69 73 20 63 6f 75 e cases this cou
53c80 6c 64 20 62 65 20 64 69 66 66 65 72 65 6e 74 20 ld be different
53c90 66 72 6f 6d 20 74 68 65 20 63 75 73 74 6f 6d 20 from the custom
53ca0 70 61 72 65 6e 74 20 74 61 67 0a 20 20 20 20 2f parent tag. /
53cb0 2f 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 69 6e / for example in
53cc0 20 6e 65 73 74 65 64 20 6c 6f 6f 70 73 0a 20 20 nested loops.
53cd0 20 20 74 61 67 2e 5f 5f 2e 70 61 72 65 6e 74 20 tag.__.parent
53ce0 3d 20 70 61 72 65 6e 74 3b 0a 0a 20 20 20 20 2f = parent;.. /
53cf0 2f 20 61 64 64 20 74 68 69 73 20 74 61 67 20 74 / add this tag t
53d00 6f 20 74 68 65 20 63 75 73 74 6f 6d 20 70 61 72 o the custom par
53d10 65 6e 74 20 74 61 67 0a 20 20 20 20 61 72 72 61 ent tag. arra
53d20 79 69 73 68 41 64 64 28 70 74 61 67 2e 74 61 67 yishAdd(ptag.tag
53d30 73 2c 20 74 61 67 4e 61 6d 65 2c 20 74 61 67 29 s, tagName, tag)
53d40 3b 0a 0a 20 20 20 20 2f 2f 20 61 6e 64 20 61 6c ;.. // and al
53d50 73 6f 20 74 6f 20 74 68 65 20 72 65 61 6c 20 70 so to the real p
53d60 61 72 65 6e 74 20 74 61 67 0a 20 20 20 20 69 66 arent tag. if
53d70 20 28 70 74 61 67 20 21 3d 3d 20 70 61 72 65 6e (ptag !== paren
53d80 74 29 0a 20 20 20 20 20 20 7b 20 61 72 72 61 79 t). { array
53d90 69 73 68 41 64 64 28 70 61 72 65 6e 74 2e 74 61 ishAdd(parent.ta
53da0 67 73 2c 20 74 61 67 4e 61 6d 65 2c 20 74 61 67 gs, tagName, tag
53db0 29 3b 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e ); }.. return
53dc0 20 74 61 67 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a tag. }.. /**.
53dd0 20 20 20 2a 20 52 65 6d 6f 76 65 73 20 61 6e 20 * Removes an
53de0 69 74 65 6d 20 66 72 6f 6d 20 61 6e 20 6f 62 6a item from an obj
53df0 65 63 74 20 61 74 20 61 20 67 69 76 65 6e 20 6b ect at a given k
53e00 65 79 2e 20 49 66 20 74 68 65 20 6b 65 79 20 70 ey. If the key p
53e10 6f 69 6e 74 73 20 74 6f 20 61 6e 20 61 72 72 61 oints to an arra
53e20 79 2c 0a 20 20 20 2a 20 74 68 65 6e 20 74 68 65 y,. * then the
53e30 20 69 74 65 6d 20 69 73 20 6a 75 73 74 20 72 65 item is just re
53e40 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 61 moved from the a
53e50 72 72 61 79 2e 0a 20 20 20 2a 20 40 70 61 72 61 rray.. * @para
53e60 6d 20 7b 20 4f 62 6a 65 63 74 20 7d 20 6f 62 6a m { Object } obj
53e70 20 2d 20 6f 62 6a 65 63 74 20 6f 6e 20 77 68 69 - object on whi
53e80 63 68 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 ch to remove the
53e90 20 70 72 6f 70 65 72 74 79 0a 20 20 20 2a 20 40 property. * @
53ea0 70 61 72 61 6d 20 7b 20 53 74 72 69 6e 67 20 7d param { String }
53eb0 20 6b 65 79 20 2d 20 70 72 6f 70 65 72 74 79 20 key - property
53ec0 6e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d name. * @param
53ed0 20 7b 20 4f 62 6a 65 63 74 20 7d 20 76 61 6c 75 { Object } valu
53ee0 65 20 2d 20 74 68 65 20 76 61 6c 75 65 20 6f 66 e - the value of
53ef0 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 74 6f the property to
53f00 20 62 65 20 72 65 6d 6f 76 65 64 0a 20 20 20 2a be removed. *
53f10 20 40 70 61 72 61 6d 20 7b 20 42 6f 6f 6c 65 61 @param { Boolea
53f20 6e 20 7d 20 65 6e 73 75 72 65 41 72 72 61 79 20 n } ensureArray
53f30 2d 20 65 6e 73 75 72 65 20 74 68 61 74 20 74 68 - ensure that th
53f40 65 20 70 72 6f 70 65 72 74 79 20 72 65 6d 61 69 e property remai
53f50 6e 73 20 61 6e 20 61 72 72 61 79 0a 20 20 2a 2f ns an array. */
53f60 0a 20 20 66 75 6e 63 74 69 6f 6e 20 61 72 72 61 . function arra
53f70 79 69 73 68 52 65 6d 6f 76 65 28 6f 62 6a 2c 20 yishRemove(obj,
53f80 6b 65 79 2c 20 76 61 6c 75 65 2c 20 65 6e 73 75 key, value, ensu
53f90 72 65 41 72 72 61 79 29 20 7b 0a 20 20 20 20 69 reArray) {. i
53fa0 66 20 28 69 73 41 72 72 61 79 28 6f 62 6a 5b 6b f (isArray(obj[k
53fb0 65 79 5d 29 29 20 7b 0a 20 20 20 20 20 20 76 61 ey])) {. va
53fc0 72 20 69 6e 64 65 78 20 3d 20 6f 62 6a 5b 6b 65 r index = obj[ke
53fd0 79 5d 2e 69 6e 64 65 78 4f 66 28 76 61 6c 75 65 y].indexOf(value
53fe0 29 3b 0a 20 20 20 20 20 20 69 66 20 28 69 6e 64 );. if (ind
53ff0 65 78 20 21 3d 3d 20 2d 31 29 20 7b 20 6f 62 6a ex !== -1) { obj
54000 5b 6b 65 79 5d 2e 73 70 6c 69 63 65 28 69 6e 64 [key].splice(ind
54010 65 78 2c 20 31 29 3b 20 7d 0a 20 20 20 20 20 20 ex, 1); }.
54020 69 66 20 28 21 6f 62 6a 5b 6b 65 79 5d 2e 6c 65 if (!obj[key].le
54030 6e 67 74 68 29 20 7b 20 64 65 6c 65 74 65 20 6f ngth) { delete o
54040 62 6a 5b 6b 65 79 5d 3b 20 7d 0a 20 20 20 20 20 bj[key]; }.
54050 20 65 6c 73 65 20 69 66 20 28 6f 62 6a 5b 6b 65 else if (obj[ke
54060 79 5d 2e 6c 65 6e 67 74 68 20 3d 3d 3d 20 31 20 y].length === 1
54070 26 26 20 21 65 6e 73 75 72 65 41 72 72 61 79 29 && !ensureArray)
54080 20 7b 20 6f 62 6a 5b 6b 65 79 5d 20 3d 20 6f 62 { obj[key] = ob
54090 6a 5b 6b 65 79 5d 5b 30 5d 3b 20 7d 0a 20 20 20 j[key][0]; }.
540a0 20 7d 20 65 6c 73 65 20 69 66 20 28 6f 62 6a 5b } else if (obj[
540b0 6b 65 79 5d 20 3d 3d 3d 20 76 61 6c 75 65 29 0a key] === value).
540c0 20 20 20 20 20 20 7b 20 64 65 6c 65 74 65 20 6f { delete o
540d0 62 6a 5b 6b 65 79 5d 3b 20 7d 20 2f 2f 20 6f 74 bj[key]; } // ot
540e0 68 65 72 77 69 73 65 20 6a 75 73 74 20 64 65 6c herwise just del
540f0 65 74 65 20 74 68 65 20 6b 65 79 0a 20 20 7d 0a ete the key. }.
54100 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 73 . /**. * Adds
54110 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 66 6f the elements fo
54120 72 20 61 20 76 69 72 74 75 61 6c 20 74 61 67 0a r a virtual tag.
54130 20 20 20 2a 20 40 74 68 69 73 20 54 61 67 0a 20 * @this Tag.
54140 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 4e 6f 64 * @param { Nod
54150 65 20 7d 20 73 72 63 20 2d 20 74 68 65 20 6e 6f e } src - the no
54160 64 65 20 74 68 61 74 20 77 69 6c 6c 20 64 6f 20 de that will do
54170 74 68 65 20 69 6e 73 65 72 74 69 6e 67 20 6f 72 the inserting or
54180 20 61 70 70 65 6e 64 69 6e 67 0a 20 20 20 2a 20 appending. *
54190 40 70 61 72 61 6d 20 7b 20 54 61 67 20 7d 20 74 @param { Tag } t
541a0 61 72 67 65 74 20 2d 20 6f 6e 6c 79 20 69 66 20 arget - only if
541b0 69 6e 73 65 72 74 69 6e 67 2c 20 69 6e 73 65 72 inserting, inser
541c0 74 20 62 65 66 6f 72 65 20 74 68 69 73 20 74 61 t before this ta
541d0 67 27 73 20 66 69 72 73 74 20 63 68 69 6c 64 0a g's first child.
541e0 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e */. function
541f0 20 6d 61 6b 65 56 69 72 74 75 61 6c 28 73 72 63 makeVirtual(src
54200 2c 20 74 61 72 67 65 74 29 20 7b 0a 20 20 20 20 , target) {.
54210 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 69 var this$1 = thi
54220 73 3b 0a 0a 20 20 20 20 76 61 72 20 68 65 61 64 s;.. var head
54230 20 3d 20 63 72 65 61 74 65 44 4f 4d 50 6c 61 63 = createDOMPlac
54240 65 68 6f 6c 64 65 72 28 29 3b 0a 20 20 20 20 76 eholder();. v
54250 61 72 20 74 61 69 6c 20 3d 20 63 72 65 61 74 65 ar tail = create
54260 44 4f 4d 50 6c 61 63 65 68 6f 6c 64 65 72 28 29 DOMPlaceholder()
54270 3b 0a 20 20 20 20 76 61 72 20 66 72 61 67 20 3d ;. var frag =
54280 20 63 72 65 61 74 65 46 72 61 67 6d 65 6e 74 28 createFragment(
54290 29 3b 0a 20 20 20 20 76 61 72 20 73 69 62 3b 0a );. var sib;.
542a0 20 20 20 20 76 61 72 20 65 6c 3b 0a 0a 20 20 20 var el;..
542b0 20 74 68 69 73 2e 72 6f 6f 74 2e 69 6e 73 65 72 this.root.inser
542c0 74 42 65 66 6f 72 65 28 68 65 61 64 2c 20 74 68 tBefore(head, th
542d0 69 73 2e 72 6f 6f 74 2e 66 69 72 73 74 43 68 69 is.root.firstChi
542e0 6c 64 29 3b 0a 20 20 20 20 74 68 69 73 2e 72 6f ld);. this.ro
542f0 6f 74 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 74 ot.appendChild(t
54300 61 69 6c 29 3b 0a 0a 20 20 20 20 74 68 69 73 2e ail);.. this.
54310 5f 5f 2e 68 65 61 64 20 3d 20 65 6c 20 3d 20 68 __.head = el = h
54320 65 61 64 3b 0a 20 20 20 20 74 68 69 73 2e 5f 5f ead;. this.__
54330 2e 74 61 69 6c 20 3d 20 74 61 69 6c 3b 0a 0a 20 .tail = tail;..
54340 20 20 20 77 68 69 6c 65 20 28 65 6c 29 20 7b 0a while (el) {.
54350 20 20 20 20 20 20 73 69 62 20 3d 20 65 6c 2e 6e sib = el.n
54360 65 78 74 53 69 62 6c 69 6e 67 3b 0a 20 20 20 20 extSibling;.
54370 20 20 66 72 61 67 2e 61 70 70 65 6e 64 43 68 69 frag.appendChi
54380 6c 64 28 65 6c 29 3b 0a 20 20 20 20 20 20 74 68 ld(el);. th
54390 69 73 24 31 2e 5f 5f 2e 76 69 72 74 73 2e 70 75 is$1.__.virts.pu
543a0 73 68 28 65 6c 29 3b 20 2f 2f 20 68 6f 6c 64 20 sh(el); // hold
543b0 66 6f 72 20 75 6e 6d 6f 75 6e 74 69 6e 67 0a 20 for unmounting.
543c0 20 20 20 20 20 65 6c 20 3d 20 73 69 62 3b 0a 20 el = sib;.
543d0 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 74 61 }.. if (ta
543e0 72 67 65 74 29 0a 20 20 20 20 20 20 7b 20 73 72 rget). { sr
543f0 63 2e 69 6e 73 65 72 74 42 65 66 6f 72 65 28 66 c.insertBefore(f
54400 72 61 67 2c 20 74 61 72 67 65 74 2e 5f 5f 2e 68 rag, target.__.h
54410 65 61 64 29 3b 20 7d 0a 20 20 20 20 65 6c 73 65 ead); }. else
54420 0a 20 20 20 20 20 20 7b 20 73 72 63 2e 61 70 70 . { src.app
54430 65 6e 64 43 68 69 6c 64 28 66 72 61 67 29 3b 20 endChild(frag);
54440 7d 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 }. }.. /**.
54450 2a 20 6d 61 6b 65 73 20 61 20 74 61 67 20 76 69 * makes a tag vi
54460 72 74 75 61 6c 20 61 6e 64 20 72 65 70 6c 61 63 rtual and replac
54470 65 73 20 61 20 72 65 66 65 72 65 6e 63 65 20 69 es a reference i
54480 6e 20 74 68 65 20 64 6f 6d 0a 20 20 20 2a 20 40 n the dom. * @
54490 74 68 69 73 20 54 61 67 0a 20 20 20 2a 20 40 70 this Tag. * @p
544a0 61 72 61 6d 20 7b 20 74 61 67 20 7d 20 74 68 65 aram { tag } the
544b0 20 74 61 67 20 74 6f 20 6d 61 6b 65 20 76 69 72 tag to make vir
544c0 74 75 61 6c 0a 20 20 20 2a 20 40 70 61 72 61 6d tual. * @param
544d0 20 7b 20 72 65 66 20 7d 20 74 68 65 20 64 6f 6d { ref } the dom
544e0 20 72 65 66 65 72 65 6e 63 65 20 6c 6f 63 61 74 reference locat
544f0 69 6f 6e 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 ion. */. func
54500 74 69 6f 6e 20 6d 61 6b 65 52 65 70 6c 61 63 65 tion makeReplace
54510 56 69 72 74 75 61 6c 28 74 61 67 2c 20 72 65 66 Virtual(tag, ref
54520 29 20 7b 0a 20 20 20 20 69 66 20 28 21 72 65 66 ) {. if (!ref
54530 2e 70 61 72 65 6e 74 4e 6f 64 65 29 20 7b 20 72 .parentNode) { r
54540 65 74 75 72 6e 20 7d 0a 20 20 20 20 76 61 72 20 eturn }. var
54550 66 72 61 67 20 3d 20 63 72 65 61 74 65 46 72 61 frag = createFra
54560 67 6d 65 6e 74 28 29 3b 0a 20 20 20 20 6d 61 6b gment();. mak
54570 65 56 69 72 74 75 61 6c 2e 63 61 6c 6c 28 74 61 eVirtual.call(ta
54580 67 2c 20 66 72 61 67 29 3b 0a 20 20 20 20 72 65 g, frag);. re
54590 66 2e 70 61 72 65 6e 74 4e 6f 64 65 2e 72 65 70 f.parentNode.rep
545a0 6c 61 63 65 43 68 69 6c 64 28 66 72 61 67 2c 20 laceChild(frag,
545b0 72 65 66 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a ref);. }.. /**
545c0 0a 20 20 20 2a 20 55 70 64 61 74 65 20 64 79 6e . * Update dyn
545d0 61 6d 69 63 61 6c 6c 79 20 63 72 65 61 74 65 64 amically created
545e0 20 64 61 74 61 2d 69 73 20 74 61 67 73 20 77 69 data-is tags wi
545f0 74 68 20 63 68 61 6e 67 69 6e 67 20 65 78 70 72 th changing expr
54600 65 73 73 69 6f 6e 73 0a 20 20 20 2a 20 40 70 61 essions. * @pa
54610 72 61 6d 20 7b 20 4f 62 6a 65 63 74 20 7d 20 65 ram { Object } e
54620 78 70 72 20 2d 20 65 78 70 72 65 73 73 69 6f 6e xpr - expression
54630 20 74 61 67 20 61 6e 64 20 65 78 70 72 65 73 73 tag and express
54640 69 6f 6e 20 69 6e 66 6f 0a 20 20 20 2a 20 40 70 ion info. * @p
54650 61 72 61 6d 20 7b 20 54 61 67 20 7d 20 20 20 20 aram { Tag }
54660 70 61 72 65 6e 74 20 2d 20 70 61 72 65 6e 74 20 parent - parent
54670 66 6f 72 20 74 61 67 20 63 72 65 61 74 69 6f 6e for tag creation
54680 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 53 . * @param { S
54690 74 72 69 6e 67 20 7d 20 74 61 67 4e 61 6d 65 20 tring } tagName
546a0 2d 20 74 61 67 20 69 6d 70 6c 65 6d 65 6e 74 61 - tag implementa
546b0 74 69 6f 6e 20 77 65 20 77 61 6e 74 20 74 6f 20 tion we want to
546c0 75 73 65 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 use. */. func
546d0 74 69 6f 6e 20 75 70 64 61 74 65 44 61 74 61 49 tion updateDataI
546e0 73 28 65 78 70 72 2c 20 70 61 72 65 6e 74 2c 20 s(expr, parent,
546f0 74 61 67 4e 61 6d 65 29 20 7b 0a 20 20 20 20 76 tagName) {. v
54700 61 72 20 74 61 67 20 3d 20 65 78 70 72 2e 74 61 ar tag = expr.ta
54710 67 20 7c 7c 20 65 78 70 72 2e 64 6f 6d 2e 5f 74 g || expr.dom._t
54720 61 67 3b 0a 20 20 20 20 76 61 72 20 72 65 66 3b ag;. var ref;
54730 0a 0a 20 20 20 20 76 61 72 20 72 65 66 24 31 20 .. var ref$1
54740 3d 20 74 61 67 20 3f 20 74 61 67 2e 5f 5f 20 3a = tag ? tag.__ :
54750 20 7b 7d 3b 0a 20 20 20 20 76 61 72 20 68 65 61 {};. var hea
54760 64 20 3d 20 72 65 66 24 31 2e 68 65 61 64 3b 0a d = ref$1.head;.
54770 20 20 20 20 76 61 72 20 69 73 56 69 72 74 75 61 var isVirtua
54780 6c 20 3d 20 65 78 70 72 2e 64 6f 6d 2e 74 61 67 l = expr.dom.tag
54790 4e 61 6d 65 20 3d 3d 3d 20 27 56 49 52 54 55 41 Name === 'VIRTUA
547a0 4c 27 3b 0a 0a 20 20 20 20 69 66 20 28 74 61 67 L';.. if (tag
547b0 20 26 26 20 65 78 70 72 2e 74 61 67 4e 61 6d 65 && expr.tagName
547c0 20 3d 3d 3d 20 74 61 67 4e 61 6d 65 29 20 7b 0a === tagName) {.
547d0 20 20 20 20 20 20 74 61 67 2e 75 70 64 61 74 65 tag.update
547e0 28 29 3b 0a 20 20 20 20 20 20 72 65 74 75 72 6e ();. return
547f0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 73 . }.. // s
54800 79 6e 63 20 5f 70 61 72 65 6e 74 20 74 6f 20 61 ync _parent to a
54810 63 63 6f 6d 6d 6f 64 61 74 65 20 63 68 61 6e 67 ccommodate chang
54820 69 6e 67 20 74 61 67 6e 61 6d 65 73 0a 20 20 20 ing tagnames.
54830 20 69 66 20 28 74 61 67 29 20 7b 0a 20 20 20 20 if (tag) {.
54840 20 20 2f 2f 20 6e 65 65 64 20 70 6c 61 63 65 68 // need placeh
54850 6f 6c 64 65 72 20 62 65 66 6f 72 65 20 75 6e 6d older before unm
54860 6f 75 6e 74 0a 20 20 20 20 20 20 69 66 28 69 73 ount. if(is
54870 56 69 72 74 75 61 6c 29 20 7b 0a 20 20 20 20 20 Virtual) {.
54880 20 20 20 72 65 66 20 3d 20 63 72 65 61 74 65 44 ref = createD
54890 4f 4d 50 6c 61 63 65 68 6f 6c 64 65 72 28 29 3b OMPlaceholder();
548a0 0a 20 20 20 20 20 20 20 20 68 65 61 64 2e 70 61 . head.pa
548b0 72 65 6e 74 4e 6f 64 65 2e 69 6e 73 65 72 74 42 rentNode.insertB
548c0 65 66 6f 72 65 28 72 65 66 2c 20 68 65 61 64 29 efore(ref, head)
548d0 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ;. }..
548e0 20 74 61 67 2e 75 6e 6d 6f 75 6e 74 28 74 72 75 tag.unmount(tru
548f0 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f e);. }.. /
54900 2f 20 75 6e 61 62 6c 65 20 74 6f 20 67 65 74 20 / unable to get
54910 74 68 65 20 74 61 67 20 6e 61 6d 65 0a 20 20 20 the tag name.
54920 20 69 66 20 28 21 69 73 53 74 72 69 6e 67 28 74 if (!isString(t
54930 61 67 4e 61 6d 65 29 29 20 7b 20 72 65 74 75 72 agName)) { retur
54940 6e 20 7d 0a 0a 20 20 20 20 65 78 70 72 2e 69 6d n }.. expr.im
54950 70 6c 20 3d 20 5f 5f 54 41 47 5f 49 4d 50 4c 5b pl = __TAG_IMPL[
54960 74 61 67 4e 61 6d 65 5d 3b 0a 0a 20 20 20 20 2f tagName];.. /
54970 2f 20 75 6e 6b 6e 6f 77 6e 20 69 6d 70 6c 65 6d / unknown implem
54980 65 6e 74 61 74 69 6f 6e 0a 20 20 20 20 69 66 20 entation. if
54990 28 21 65 78 70 72 2e 69 6d 70 6c 29 20 7b 20 72 (!expr.impl) { r
549a0 65 74 75 72 6e 20 7d 0a 0a 20 20 20 20 65 78 70 eturn }.. exp
549b0 72 2e 74 61 67 20 3d 20 74 61 67 20 3d 20 69 6e r.tag = tag = in
549c0 69 74 43 68 69 6c 64 28 0a 20 20 20 20 20 20 65 itChild(. e
549d0 78 70 72 2e 69 6d 70 6c 2c 20 7b 0a 20 20 20 20 xpr.impl, {.
549e0 20 20 20 20 72 6f 6f 74 3a 20 65 78 70 72 2e 64 root: expr.d
549f0 6f 6d 2c 0a 20 20 20 20 20 20 20 20 70 61 72 65 om,. pare
54a00 6e 74 3a 20 70 61 72 65 6e 74 2c 0a 20 20 20 20 nt: parent,.
54a10 20 20 20 20 74 61 67 4e 61 6d 65 3a 20 74 61 67 tagName: tag
54a20 4e 61 6d 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 Name. },.
54a30 20 20 20 20 65 78 70 72 2e 64 6f 6d 2e 69 6e 6e expr.dom.inn
54a40 65 72 48 54 4d 4c 2c 0a 20 20 20 20 20 20 70 61 erHTML,. pa
54a50 72 65 6e 74 0a 20 20 20 20 29 3b 0a 0a 20 20 20 rent. );..
54a60 20 65 61 63 68 28 65 78 70 72 2e 61 74 74 72 73 each(expr.attrs
54a70 2c 20 66 75 6e 63 74 69 6f 6e 20 28 61 29 20 7b , function (a) {
54a80 20 72 65 74 75 72 6e 20 73 65 74 41 74 74 72 69 return setAttri
54a90 62 75 74 65 28 74 61 67 2e 72 6f 6f 74 2c 20 61 bute(tag.root, a
54aa0 2e 6e 61 6d 65 2c 20 61 2e 76 61 6c 75 65 29 3b .name, a.value);
54ab0 20 7d 29 3b 0a 20 20 20 20 65 78 70 72 2e 74 61 });. expr.ta
54ac0 67 4e 61 6d 65 20 3d 20 74 61 67 4e 61 6d 65 3b gName = tagName;
54ad0 0a 20 20 20 20 74 61 67 2e 6d 6f 75 6e 74 28 29 . tag.mount()
54ae0 3b 0a 0a 20 20 20 20 2f 2f 20 72 6f 6f 74 20 65 ;.. // root e
54af0 78 69 73 74 20 66 69 72 73 74 20 74 69 6d 65 2c xist first time,
54b00 20 61 66 74 65 72 20 75 73 65 20 70 6c 61 63 65 after use place
54b10 68 6f 6c 64 65 72 0a 20 20 20 20 69 66 20 28 69 holder. if (i
54b20 73 56 69 72 74 75 61 6c 29 20 7b 20 6d 61 6b 65 sVirtual) { make
54b30 52 65 70 6c 61 63 65 56 69 72 74 75 61 6c 28 74 ReplaceVirtual(t
54b40 61 67 2c 20 72 65 66 20 7c 7c 20 74 61 67 2e 72 ag, ref || tag.r
54b50 6f 6f 74 29 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 oot); }.. //
54b60 70 61 72 65 6e 74 20 69 73 20 74 68 65 20 70 6c parent is the pl
54b70 61 63 65 68 6f 6c 64 65 72 20 74 61 67 2c 20 6e aceholder tag, n
54b80 6f 74 20 74 68 65 20 64 79 6e 61 6d 69 63 20 74 ot the dynamic t
54b90 61 67 20 73 6f 20 63 6c 65 61 6e 20 75 70 0a 20 ag so clean up.
54ba0 20 20 20 70 61 72 65 6e 74 2e 5f 5f 2e 6f 6e 55 parent.__.onU
54bb0 6e 6d 6f 75 6e 74 20 3d 20 66 75 6e 63 74 69 6f nmount = functio
54bc0 6e 20 28 29 20 7b 0a 20 20 20 20 20 20 76 61 72 n () {. var
54bd0 20 64 65 6c 4e 61 6d 65 20 3d 20 74 61 67 2e 6f delName = tag.o
54be0 70 74 73 2e 64 61 74 61 49 73 3b 0a 20 20 20 20 pts.dataIs;.
54bf0 20 20 61 72 72 61 79 69 73 68 52 65 6d 6f 76 65 arrayishRemove
54c00 28 74 61 67 2e 70 61 72 65 6e 74 2e 74 61 67 73 (tag.parent.tags
54c10 2c 20 64 65 6c 4e 61 6d 65 2c 20 74 61 67 29 3b , delName, tag);
54c20 0a 20 20 20 20 20 20 61 72 72 61 79 69 73 68 52 . arrayishR
54c30 65 6d 6f 76 65 28 74 61 67 2e 5f 5f 2e 70 61 72 emove(tag.__.par
54c40 65 6e 74 2e 74 61 67 73 2c 20 64 65 6c 4e 61 6d ent.tags, delNam
54c50 65 2c 20 74 61 67 29 3b 0a 20 20 20 20 20 20 74 e, tag);. t
54c60 61 67 2e 75 6e 6d 6f 75 6e 74 28 29 3b 0a 20 20 ag.unmount();.
54c70 20 20 7d 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a };. }.. /**.
54c80 20 20 20 2a 20 4e 6f 6d 61 6c 69 7a 65 20 61 6e * Nomalize an
54c90 79 20 61 74 74 72 69 62 75 74 65 20 72 65 6d 6f y attribute remo
54ca0 76 69 6e 67 20 74 68 65 20 22 72 69 6f 74 2d 22 ving the "riot-"
54cb0 20 70 72 65 66 69 78 0a 20 20 20 2a 20 40 70 61 prefix. * @pa
54cc0 72 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d ram { String }
54cd0 20 61 74 74 72 4e 61 6d 65 20 2d 20 6f 72 69 67 attrName - orig
54ce0 69 6e 61 6c 20 61 74 74 72 69 62 75 74 65 20 6e inal attribute n
54cf0 61 6d 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e ame. * @return
54d00 73 20 7b 20 53 74 72 69 6e 67 20 7d 20 76 61 6c s { String } val
54d10 69 64 20 68 74 6d 6c 20 61 74 74 72 69 62 75 74 id html attribut
54d20 65 20 6e 61 6d 65 0a 20 20 20 2a 2f 0a 20 20 66 e name. */. f
54d30 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a unction normaliz
54d40 65 41 74 74 72 4e 61 6d 65 28 61 74 74 72 4e 61 eAttrName(attrNa
54d50 6d 65 29 20 7b 0a 20 20 20 20 69 66 20 28 21 61 me) {. if (!a
54d60 74 74 72 4e 61 6d 65 29 20 7b 20 72 65 74 75 72 ttrName) { retur
54d70 6e 20 6e 75 6c 6c 20 7d 0a 20 20 20 20 61 74 74 n null }. att
54d80 72 4e 61 6d 65 20 3d 20 61 74 74 72 4e 61 6d 65 rName = attrName
54d90 2e 72 65 70 6c 61 63 65 28 41 54 54 52 53 5f 50 .replace(ATTRS_P
54da0 52 45 46 49 58 2c 20 27 27 29 3b 0a 20 20 20 20 REFIX, '');.
54db0 69 66 20 28 43 41 53 45 5f 53 45 4e 53 49 54 49 if (CASE_SENSITI
54dc0 56 45 5f 41 54 54 52 49 42 55 54 45 53 5b 61 74 VE_ATTRIBUTES[at
54dd0 74 72 4e 61 6d 65 5d 29 20 7b 20 61 74 74 72 4e trName]) { attrN
54de0 61 6d 65 20 3d 20 43 41 53 45 5f 53 45 4e 53 49 ame = CASE_SENSI
54df0 54 49 56 45 5f 41 54 54 52 49 42 55 54 45 53 5b TIVE_ATTRIBUTES[
54e00 61 74 74 72 4e 61 6d 65 5d 3b 20 7d 0a 20 20 20 attrName]; }.
54e10 20 72 65 74 75 72 6e 20 61 74 74 72 4e 61 6d 65 return attrName
54e20 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
54e30 20 55 70 64 61 74 65 20 6f 6e 20 73 69 6e 67 6c Update on singl
54e40 65 20 74 61 67 20 65 78 70 72 65 73 73 69 6f 6e e tag expression
54e50 0a 20 20 20 2a 20 40 74 68 69 73 20 54 61 67 0a . * @this Tag.
54e60 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 4f 62 * @param { Ob
54e70 6a 65 63 74 20 7d 20 65 78 70 72 20 2d 20 65 78 ject } expr - ex
54e80 70 72 65 73 73 69 6f 6e 20 6c 6f 67 69 63 0a 20 pression logic.
54e90 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 75 * @returns { u
54ea0 6e 64 65 66 69 6e 65 64 20 7d 0a 20 20 20 2a 2f ndefined }. */
54eb0 0a 20 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 . function upda
54ec0 74 65 45 78 70 72 65 73 73 69 6f 6e 28 65 78 70 teExpression(exp
54ed0 72 29 20 7b 0a 20 20 20 20 69 66 20 28 74 68 69 r) {. if (thi
54ee0 73 2e 72 6f 6f 74 20 26 26 20 67 65 74 41 74 74 s.root && getAtt
54ef0 72 69 62 75 74 65 28 74 68 69 73 2e 72 6f 6f 74 ribute(this.root
54f00 2c 27 76 69 72 74 75 61 6c 69 7a 65 64 27 29 29 ,'virtualized'))
54f10 20 7b 20 72 65 74 75 72 6e 20 7d 0a 0a 20 20 20 { return }..
54f20 20 76 61 72 20 64 6f 6d 20 3d 20 65 78 70 72 2e var dom = expr.
54f30 64 6f 6d 3b 0a 20 20 20 20 2f 2f 20 72 65 6d 6f dom;. // remo
54f40 76 65 20 74 68 65 20 72 69 6f 74 2d 20 70 72 65 ve the riot- pre
54f50 66 69 78 0a 20 20 20 20 76 61 72 20 61 74 74 72 fix. var attr
54f60 4e 61 6d 65 20 3d 20 6e 6f 72 6d 61 6c 69 7a 65 Name = normalize
54f70 41 74 74 72 4e 61 6d 65 28 65 78 70 72 2e 61 74 AttrName(expr.at
54f80 74 72 29 3b 0a 20 20 20 20 76 61 72 20 69 73 54 tr);. var isT
54f90 6f 67 67 6c 65 20 3d 20 63 6f 6e 74 61 69 6e 73 oggle = contains
54fa0 28 5b 53 48 4f 57 5f 44 49 52 45 43 54 49 56 45 ([SHOW_DIRECTIVE
54fb0 2c 20 48 49 44 45 5f 44 49 52 45 43 54 49 56 45 , HIDE_DIRECTIVE
54fc0 5d 2c 20 61 74 74 72 4e 61 6d 65 29 3b 0a 20 20 ], attrName);.
54fd0 20 20 76 61 72 20 69 73 56 69 72 74 75 61 6c 20 var isVirtual
54fe0 3d 20 65 78 70 72 2e 72 6f 6f 74 20 26 26 20 65 = expr.root && e
54ff0 78 70 72 2e 72 6f 6f 74 2e 74 61 67 4e 61 6d 65 xpr.root.tagName
55000 20 3d 3d 3d 20 27 56 49 52 54 55 41 4c 27 3b 0a === 'VIRTUAL';.
55010 20 20 20 20 76 61 72 20 72 65 66 20 3d 20 74 68 var ref = th
55020 69 73 2e 5f 5f 3b 0a 20 20 20 20 76 61 72 20 69 is.__;. var i
55030 73 41 6e 6f 6e 79 6d 6f 75 73 20 3d 20 72 65 66 sAnonymous = ref
55040 2e 69 73 41 6e 6f 6e 79 6d 6f 75 73 3b 0a 20 20 .isAnonymous;.
55050 20 20 76 61 72 20 70 61 72 65 6e 74 20 3d 20 64 var parent = d
55060 6f 6d 20 26 26 20 28 65 78 70 72 2e 70 61 72 65 om && (expr.pare
55070 6e 74 20 7c 7c 20 64 6f 6d 2e 70 61 72 65 6e 74 nt || dom.parent
55080 4e 6f 64 65 29 3b 0a 20 20 20 20 76 61 72 20 6b Node);. var k
55090 65 65 70 56 61 6c 75 65 41 74 74 72 69 62 75 74 eepValueAttribut
550a0 65 73 20 3d 20 73 65 74 74 69 6e 67 73 2e 6b 65 es = settings.ke
550b0 65 70 56 61 6c 75 65 41 74 74 72 69 62 75 74 65 epValueAttribute
550c0 73 3b 0a 20 20 20 20 2f 2f 20 64 65 74 65 63 74 s;. // detect
550d0 20 74 68 65 20 73 74 79 6c 65 20 61 74 74 72 69 the style attri
550e0 62 75 74 65 73 0a 20 20 20 20 76 61 72 20 69 73 butes. var is
550f0 53 74 79 6c 65 41 74 74 72 20 3d 20 61 74 74 72 StyleAttr = attr
55100 4e 61 6d 65 20 3d 3d 3d 20 27 73 74 79 6c 65 27 Name === 'style'
55110 3b 0a 20 20 20 20 76 61 72 20 69 73 43 6c 61 73 ;. var isClas
55120 73 41 74 74 72 20 3d 20 61 74 74 72 4e 61 6d 65 sAttr = attrName
55130 20 3d 3d 3d 20 27 63 6c 61 73 73 27 3b 0a 20 20 === 'class';.
55140 20 20 76 61 72 20 69 73 56 61 6c 75 65 41 74 74 var isValueAtt
55150 72 20 3d 20 61 74 74 72 4e 61 6d 65 20 3d 3d 3d r = attrName ===
55160 20 27 76 61 6c 75 65 27 3b 0a 0a 20 20 20 20 76 'value';.. v
55170 61 72 20 76 61 6c 75 65 3b 0a 0a 20 20 20 20 2f ar value;.. /
55180 2f 20 69 66 20 69 74 27 73 20 61 20 74 61 67 20 / if it's a tag
55190 77 65 20 63 6f 75 6c 64 20 74 6f 74 61 6c 6c 79 we could totally
551a0 20 73 6b 69 70 20 74 68 65 20 72 65 73 74 0a 20 skip the rest.
551b0 20 20 20 69 66 20 28 65 78 70 72 2e 5f 72 69 6f if (expr._rio
551c0 74 5f 69 64 29 20 7b 0a 20 20 20 20 20 20 69 66 t_id) {. if
551d0 20 28 65 78 70 72 2e 5f 5f 2e 77 61 73 43 72 65 (expr.__.wasCre
551e0 61 74 65 64 29 20 7b 0a 20 20 20 20 20 20 20 20 ated) {.
551f0 65 78 70 72 2e 75 70 64 61 74 65 28 29 3b 0a 20 expr.update();.
55200 20 20 20 20 20 2f 2f 20 69 66 20 69 74 20 68 61 // if it ha
55210 73 6e 27 74 20 62 65 65 6e 20 6d 6f 75 6e 74 65 sn't been mounte
55220 64 20 79 65 74 2c 20 64 6f 20 74 68 61 74 20 6e d yet, do that n
55230 6f 77 2e 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 ow.. } else
55240 20 7b 0a 20 20 20 20 20 20 20 20 65 78 70 72 2e {. expr.
55250 6d 6f 75 6e 74 28 29 3b 0a 20 20 20 20 20 20 20 mount();.
55260 20 69 66 20 28 69 73 56 69 72 74 75 61 6c 29 20 if (isVirtual)
55270 7b 0a 20 20 20 20 20 20 20 20 20 20 6d 61 6b 65 {. make
55280 52 65 70 6c 61 63 65 56 69 72 74 75 61 6c 28 65 ReplaceVirtual(e
55290 78 70 72 2c 20 65 78 70 72 2e 72 6f 6f 74 29 3b xpr, expr.root);
552a0 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
552b0 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 0a }. return.
552c0 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 69 66 }.. // if
552d0 20 74 68 69 73 20 65 78 70 72 65 73 73 69 6f 6e this expression
552e0 20 68 61 73 20 74 68 65 20 75 70 64 61 74 65 20 has the update
552f0 6d 65 74 68 6f 64 20 69 74 20 6d 65 61 6e 73 20 method it means
55300 69 74 20 63 61 6e 20 68 61 6e 64 6c 65 20 74 68 it can handle th
55310 65 20 44 4f 4d 20 63 68 61 6e 67 65 73 20 62 79 e DOM changes by
55320 20 69 74 73 65 6c 66 0a 20 20 20 20 69 66 20 28 itself. if (
55330 65 78 70 72 2e 75 70 64 61 74 65 29 20 7b 20 72 expr.update) { r
55340 65 74 75 72 6e 20 65 78 70 72 2e 75 70 64 61 74 eturn expr.updat
55350 65 28 29 20 7d 0a 0a 20 20 20 20 76 61 72 20 63 e() }.. var c
55360 6f 6e 74 65 78 74 20 3d 20 69 73 54 6f 67 67 6c ontext = isToggl
55370 65 20 26 26 20 21 69 73 41 6e 6f 6e 79 6d 6f 75 e && !isAnonymou
55380 73 20 3f 20 69 6e 68 65 72 69 74 50 61 72 65 6e s ? inheritParen
55390 74 50 72 6f 70 73 2e 63 61 6c 6c 28 74 68 69 73 tProps.call(this
553a0 29 20 3a 20 74 68 69 73 3b 0a 0a 20 20 20 20 2f ) : this;.. /
553b0 2f 20 2e 2e 2e 69 74 20 73 65 65 6d 73 20 74 6f / ...it seems to
553c0 20 62 65 20 61 20 73 69 6d 70 6c 65 20 65 78 70 be a simple exp
553d0 72 65 73 73 69 6f 6e 20 73 6f 20 77 65 20 74 72 ression so we tr
553e0 79 20 74 6f 20 63 61 6c 63 75 6c 61 74 65 20 69 y to calculate i
553f0 74 73 20 76 61 6c 75 65 0a 20 20 20 20 76 61 6c ts value. val
55400 75 65 20 3d 20 63 73 70 5f 74 6d 70 6c 5f 31 28 ue = csp_tmpl_1(
55410 65 78 70 72 2e 65 78 70 72 2c 20 63 6f 6e 74 65 expr.expr, conte
55420 78 74 29 3b 0a 0a 20 20 20 20 76 61 72 20 68 61 xt);.. var ha
55430 73 56 61 6c 75 65 20 3d 20 21 69 73 42 6c 61 6e sValue = !isBlan
55440 6b 28 76 61 6c 75 65 29 3b 0a 20 20 20 20 76 61 k(value);. va
55450 72 20 69 73 4f 62 6a 20 3d 20 69 73 4f 62 6a 65 r isObj = isObje
55460 63 74 28 76 61 6c 75 65 29 3b 0a 0a 20 20 20 20 ct(value);..
55470 2f 2f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 73 // convert the s
55480 74 79 6c 65 2f 63 6c 61 73 73 20 6f 62 6a 65 63 tyle/class objec
55490 74 73 20 74 6f 20 73 74 72 69 6e 67 73 0a 20 20 ts to strings.
554a0 20 20 69 66 20 28 69 73 4f 62 6a 29 20 7b 0a 20 if (isObj) {.
554b0 20 20 20 20 20 69 66 20 28 69 73 43 6c 61 73 73 if (isClass
554c0 41 74 74 72 29 20 7b 0a 20 20 20 20 20 20 20 20 Attr) {.
554d0 76 61 6c 75 65 20 3d 20 63 73 70 5f 74 6d 70 6c value = csp_tmpl
554e0 5f 31 28 4a 53 4f 4e 2e 73 74 72 69 6e 67 69 66 _1(JSON.stringif
554f0 79 28 76 61 6c 75 65 29 2c 20 74 68 69 73 29 3b y(value), this);
55500 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 . } else if
55510 20 28 69 73 53 74 79 6c 65 41 74 74 72 29 20 7b (isStyleAttr) {
55520 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d . value =
55530 20 73 74 79 6c 65 4f 62 6a 65 63 74 54 6f 53 74 styleObjectToSt
55540 72 69 6e 67 28 76 61 6c 75 65 29 3b 0a 20 20 20 ring(value);.
55550 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 }. }..
55560 2f 2f 20 72 65 6d 6f 76 65 20 6f 72 69 67 69 6e // remove origin
55570 61 6c 20 61 74 74 72 69 62 75 74 65 0a 20 20 20 al attribute.
55580 20 69 66 20 28 65 78 70 72 2e 61 74 74 72 20 26 if (expr.attr &
55590 26 0a 20 20 20 20 20 20 20 20 28 0a 20 20 20 20 &. (.
555a0 20 20 20 20 20 20 2f 2f 20 74 68 65 20 6f 72 69 // the ori
555b0 67 69 6e 61 6c 20 61 74 74 72 69 62 75 74 65 20 ginal attribute
555c0 63 61 6e 20 62 65 20 72 65 6d 6f 76 65 64 20 6f can be removed o
555d0 6e 6c 79 20 69 66 20 77 65 20 61 72 65 20 70 61 nly if we are pa
555e0 72 73 69 6e 67 20 74 68 65 20 6f 72 69 67 69 6e rsing the origin
555f0 61 6c 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 20 al expression.
55600 20 20 20 20 20 20 20 20 21 65 78 70 72 2e 77 61 !expr.wa
55610 73 50 61 72 73 65 64 4f 6e 63 65 20 7c 7c 0a 20 sParsedOnce ||.
55620 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 72 20 69 // or i
55630 74 73 20 76 61 6c 75 65 20 69 73 20 66 61 6c 73 ts value is fals
55640 65 0a 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 e. valu
55650 65 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 0a 20 e === false ||.
55660 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 72 20 69 // or i
55670 66 20 69 74 73 20 76 61 6c 75 65 20 69 73 20 63 f its value is c
55680 75 72 72 65 6e 74 6c 79 20 66 61 6c 73 79 2e 2e urrently falsy..
55690 2e 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 57 .. // W
556a0 65 20 77 69 6c 6c 20 6b 65 65 70 20 74 68 65 20 e will keep the
556b0 22 76 61 6c 75 65 22 20 61 74 74 72 69 62 75 74 "value" attribut
556c0 65 73 20 69 66 20 74 68 65 20 22 6b 65 65 70 56 es if the "keepV
556d0 61 6c 75 65 41 74 74 72 69 62 75 74 65 73 22 0a alueAttributes".
556e0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 73 20 // is
556f0 65 6e 61 62 6c 65 64 20 74 68 6f 75 67 68 0a 20 enabled though.
55700 20 20 20 20 20 20 20 20 20 28 21 68 61 73 56 61 (!hasVa
55710 6c 75 65 20 26 26 20 28 21 69 73 56 61 6c 75 65 lue && (!isValue
55720 41 74 74 72 20 7c 7c 20 69 73 56 61 6c 75 65 41 Attr || isValueA
55730 74 74 72 20 26 26 20 21 6b 65 65 70 56 61 6c 75 ttr && !keepValu
55740 65 41 74 74 72 69 62 75 74 65 73 29 29 0a 20 20 eAttributes)).
55750 20 20 20 20 20 20 29 0a 20 20 20 20 29 20 7b 0a ). ) {.
55760 20 20 20 20 20 20 2f 2f 20 72 65 6d 6f 76 65 20 // remove
55770 65 69 74 68 65 72 20 72 69 6f 74 2d 2a 20 61 74 either riot-* at
55780 74 72 69 62 75 74 65 73 20 6f 72 20 6a 75 73 74 tributes or just
55790 20 74 68 65 20 61 74 74 72 69 62 75 74 65 20 6e the attribute n
557a0 61 6d 65 0a 20 20 20 20 20 20 72 65 6d 6f 76 65 ame. remove
557b0 41 74 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 67 Attribute(dom, g
557c0 65 74 41 74 74 72 69 62 75 74 65 28 64 6f 6d 2c etAttribute(dom,
557d0 20 65 78 70 72 2e 61 74 74 72 29 20 3f 20 65 78 expr.attr) ? ex
557e0 70 72 2e 61 74 74 72 20 3a 20 61 74 74 72 4e 61 pr.attr : attrNa
557f0 6d 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 me);. }..
55800 2f 2f 20 66 6f 72 20 74 68 65 20 62 6f 6f 6c 65 // for the boole
55810 61 6e 20 61 74 74 72 69 62 75 74 65 73 20 77 65 an attributes we
55820 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 68 65 20 don't need the
55830 76 61 6c 75 65 0a 20 20 20 20 2f 2f 20 77 65 20 value. // we
55840 63 61 6e 20 63 6f 6e 76 65 72 74 20 69 74 20 74 can convert it t
55850 6f 20 63 68 65 63 6b 65 64 3d 74 72 75 65 20 74 o checked=true t
55860 6f 20 63 68 65 63 6b 65 64 3d 63 68 65 63 6b 65 o checked=checke
55870 64 0a 20 20 20 20 69 66 20 28 65 78 70 72 2e 62 d. if (expr.b
55880 6f 6f 6c 29 20 7b 20 76 61 6c 75 65 20 3d 20 76 ool) { value = v
55890 61 6c 75 65 20 3f 20 61 74 74 72 4e 61 6d 65 20 alue ? attrName
558a0 3a 20 66 61 6c 73 65 3b 20 7d 0a 20 20 20 20 69 : false; }. i
558b0 66 20 28 65 78 70 72 2e 69 73 52 74 61 67 29 20 f (expr.isRtag)
558c0 7b 20 72 65 74 75 72 6e 20 75 70 64 61 74 65 44 { return updateD
558d0 61 74 61 49 73 28 65 78 70 72 2c 20 74 68 69 73 ataIs(expr, this
558e0 2c 20 76 61 6c 75 65 29 20 7d 0a 20 20 20 20 69 , value) }. i
558f0 66 20 28 65 78 70 72 2e 77 61 73 50 61 72 73 65 f (expr.wasParse
55900 64 4f 6e 63 65 20 26 26 20 65 78 70 72 2e 76 61 dOnce && expr.va
55910 6c 75 65 20 3d 3d 3d 20 76 61 6c 75 65 29 20 7b lue === value) {
55920 20 72 65 74 75 72 6e 20 7d 0a 0a 20 20 20 20 2f return }.. /
55930 2f 20 75 70 64 61 74 65 20 74 68 65 20 65 78 70 / update the exp
55940 72 65 73 73 69 6f 6e 20 76 61 6c 75 65 0a 20 20 ression value.
55950 20 20 65 78 70 72 2e 76 61 6c 75 65 20 3d 20 76 expr.value = v
55960 61 6c 75 65 3b 0a 20 20 20 20 65 78 70 72 2e 77 alue;. expr.w
55970 61 73 50 61 72 73 65 64 4f 6e 63 65 20 3d 20 74 asParsedOnce = t
55980 72 75 65 3b 0a 0a 20 20 20 20 2f 2f 20 69 66 20 rue;.. // if
55990 74 68 65 20 76 61 6c 75 65 20 69 73 20 61 6e 20 the value is an
559a0 6f 62 6a 65 63 74 20 28 61 6e 64 20 69 74 27 73 object (and it's
559b0 20 6e 6f 74 20 61 20 73 74 79 6c 65 20 6f 72 20 not a style or
559c0 63 6c 61 73 73 20 61 74 74 72 69 62 75 74 65 29 class attribute)
559d0 20 77 65 20 63 61 6e 20 6e 6f 74 20 64 6f 20 6d we can not do m
559e0 75 63 68 20 6d 6f 72 65 20 77 69 74 68 20 69 74 uch more with it
559f0 0a 20 20 20 20 69 66 20 28 69 73 4f 62 6a 20 26 . if (isObj &
55a00 26 20 21 69 73 43 6c 61 73 73 41 74 74 72 20 26 & !isClassAttr &
55a10 26 20 21 69 73 53 74 79 6c 65 41 74 74 72 20 26 & !isStyleAttr &
55a20 26 20 21 69 73 54 6f 67 67 6c 65 29 20 7b 20 72 & !isToggle) { r
55a30 65 74 75 72 6e 20 7d 0a 20 20 20 20 2f 2f 20 61 eturn }. // a
55a40 76 6f 69 64 20 74 6f 20 72 65 6e 64 65 72 20 75 void to render u
55a50 6e 64 65 66 69 6e 65 64 2f 6e 75 6c 6c 20 76 61 ndefined/null va
55a60 6c 75 65 73 0a 20 20 20 20 69 66 20 28 21 68 61 lues. if (!ha
55a70 73 56 61 6c 75 65 29 20 7b 20 76 61 6c 75 65 20 sValue) { value
55a80 3d 20 27 27 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 = ''; }.. //
55a90 74 65 78 74 61 72 65 61 20 61 6e 64 20 74 65 78 textarea and tex
55aa0 74 20 6e 6f 64 65 73 20 68 61 76 65 20 6e 6f 20 t nodes have no
55ab0 61 74 74 72 69 62 75 74 65 20 6e 61 6d 65 0a 20 attribute name.
55ac0 20 20 20 69 66 20 28 21 61 74 74 72 4e 61 6d 65 if (!attrName
55ad0 29 20 7b 0a 20 20 20 20 20 20 2f 2f 20 61 62 6f ) {. // abo
55ae0 75 74 20 23 38 31 35 20 77 2f 6f 20 72 65 70 6c ut #815 w/o repl
55af0 61 63 65 3a 20 74 68 65 20 62 72 6f 77 73 65 72 ace: the browser
55b00 20 63 6f 6e 76 65 72 74 73 20 74 68 65 20 76 61 converts the va
55b10 6c 75 65 20 74 6f 20 61 20 73 74 72 69 6e 67 2c lue to a string,
55b20 0a 20 20 20 20 20 20 2f 2f 20 74 68 65 20 63 6f . // the co
55b30 6d 70 61 72 69 73 6f 6e 20 62 79 20 22 3d 3d 22 mparison by "=="
55b40 20 64 6f 65 73 20 74 6f 6f 2c 20 62 75 74 20 6e does too, but n
55b50 6f 74 20 69 6e 20 74 68 65 20 73 65 72 76 65 72 ot in the server
55b60 0a 20 20 20 20 20 20 76 61 6c 75 65 20 2b 3d 20 . value +=
55b70 27 27 3b 0a 20 20 20 20 20 20 2f 2f 20 74 65 73 '';. // tes
55b80 74 20 66 6f 72 20 70 61 72 65 6e 74 20 61 76 6f t for parent avo
55b90 69 64 73 20 65 72 72 6f 72 20 77 69 74 68 20 69 ids error with i
55ba0 6e 76 61 6c 69 64 20 61 73 73 69 67 6e 6d 65 6e nvalid assignmen
55bb0 74 20 74 6f 20 6e 6f 64 65 56 61 6c 75 65 0a 20 t to nodeValue.
55bc0 20 20 20 20 20 69 66 20 28 70 61 72 65 6e 74 29 if (parent)
55bd0 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 61 {. // ca
55be0 63 68 65 20 74 68 65 20 70 61 72 65 6e 74 20 6e che the parent n
55bf0 6f 64 65 20 62 65 63 61 75 73 65 20 73 6f 6d 65 ode because some
55c00 68 6f 77 20 69 74 20 77 69 6c 6c 20 62 65 63 6f how it will beco
55c10 6d 65 20 6e 75 6c 6c 20 6f 6e 20 49 45 0a 20 20 me null on IE.
55c20 20 20 20 20 20 20 2f 2f 20 6f 6e 20 74 68 65 20 // on the
55c30 6e 65 78 74 20 69 74 65 72 61 74 69 6f 6e 0a 20 next iteration.
55c40 20 20 20 20 20 20 20 65 78 70 72 2e 70 61 72 65 expr.pare
55c50 6e 74 20 3d 20 70 61 72 65 6e 74 3b 0a 20 20 20 nt = parent;.
55c60 20 20 20 20 20 69 66 20 28 70 61 72 65 6e 74 2e if (parent.
55c70 74 61 67 4e 61 6d 65 20 3d 3d 3d 20 27 54 45 58 tagName === 'TEX
55c80 54 41 52 45 41 27 29 20 7b 0a 20 20 20 20 20 20 TAREA') {.
55c90 20 20 20 20 70 61 72 65 6e 74 2e 76 61 6c 75 65 parent.value
55ca0 20 3d 20 76 61 6c 75 65 3b 20 20 20 20 20 20 20 = value;
55cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
55cc0 23 31 31 31 33 0a 20 20 20 20 20 20 20 20 20 20 #1113.
55cd0 69 66 20 28 21 49 45 5f 56 45 52 53 49 4f 4e 29 if (!IE_VERSION)
55ce0 20 7b 20 64 6f 6d 2e 6e 6f 64 65 56 61 6c 75 65 { dom.nodeValue
55cf0 20 3d 20 76 61 6c 75 65 3b 20 7d 20 20 2f 2f 20 = value; } //
55d00 23 31 36 32 35 20 49 45 20 74 68 72 6f 77 73 20 #1625 IE throws
55d10 68 65 72 65 2c 20 6e 6f 64 65 56 61 6c 75 65 0a here, nodeValue.
55d20 20 20 20 20 20 20 20 20 7d 20 20 20 20 20 20 20 }
55d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
55d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
55d50 20 20 2f 2f 20 77 69 6c 6c 20 62 65 20 61 76 61 // will be ava
55d60 69 6c 61 62 6c 65 20 6f 6e 20 27 75 70 64 61 74 ilable on 'updat
55d70 65 64 27 0a 20 20 20 20 20 20 20 20 65 6c 73 65 ed'. else
55d80 20 7b 20 64 6f 6d 2e 6e 6f 64 65 56 61 6c 75 65 { dom.nodeValue
55d90 20 3d 20 76 61 6c 75 65 3b 20 7d 0a 20 20 20 20 = value; }.
55da0 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e }. return
55db0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 77 69 74 . }.. swit
55dc0 63 68 20 28 74 72 75 65 29 20 7b 0a 20 20 20 20 ch (true) {.
55dd0 2f 2f 20 68 61 6e 64 6c 65 20 65 76 65 6e 74 73 // handle events
55de0 20 62 69 6e 64 69 6e 67 0a 20 20 20 20 63 61 73 binding. cas
55df0 65 20 69 73 46 75 6e 63 74 69 6f 6e 28 76 61 6c e isFunction(val
55e00 75 65 29 3a 0a 20 20 20 20 20 20 69 66 20 28 69 ue):. if (i
55e10 73 45 76 65 6e 74 41 74 74 72 69 62 75 74 65 28 sEventAttribute(
55e20 61 74 74 72 4e 61 6d 65 29 29 20 7b 0a 20 20 20 attrName)) {.
55e30 20 20 20 20 20 73 65 74 45 76 65 6e 74 48 61 6e setEventHan
55e40 64 6c 65 72 28 61 74 74 72 4e 61 6d 65 2c 20 76 dler(attrName, v
55e50 61 6c 75 65 2c 20 64 6f 6d 2c 20 74 68 69 73 29 alue, dom, this)
55e60 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;. }.
55e70 62 72 65 61 6b 0a 20 20 20 20 2f 2f 20 73 68 6f break. // sho
55e80 77 20 2f 20 68 69 64 65 0a 20 20 20 20 63 61 73 w / hide. cas
55e90 65 20 69 73 54 6f 67 67 6c 65 3a 0a 20 20 20 20 e isToggle:.
55ea0 20 20 74 6f 67 67 6c 65 56 69 73 69 62 69 6c 69 toggleVisibili
55eb0 74 79 28 64 6f 6d 2c 20 61 74 74 72 4e 61 6d 65 ty(dom, attrName
55ec0 20 3d 3d 3d 20 48 49 44 45 5f 44 49 52 45 43 54 === HIDE_DIRECT
55ed0 49 56 45 20 3f 20 21 76 61 6c 75 65 20 3a 20 76 IVE ? !value : v
55ee0 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 62 72 65 alue);. bre
55ef0 61 6b 0a 20 20 20 20 2f 2f 20 68 61 6e 64 6c 65 ak. // handle
55f00 20 61 74 74 72 69 62 75 74 65 73 0a 20 20 20 20 attributes.
55f10 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 69 default:. i
55f20 66 20 28 65 78 70 72 2e 62 6f 6f 6c 29 20 7b 0a f (expr.bool) {.
55f30 20 20 20 20 20 20 20 20 64 6f 6d 5b 61 74 74 72 dom[attr
55f40 4e 61 6d 65 5d 20 3d 20 76 61 6c 75 65 3b 0a 20 Name] = value;.
55f50 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 }.. if
55f60 20 28 69 73 56 61 6c 75 65 41 74 74 72 20 26 26 (isValueAttr &&
55f70 20 64 6f 6d 2e 76 61 6c 75 65 20 21 3d 3d 20 76 dom.value !== v
55f80 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 alue) {.
55f90 64 6f 6d 2e 76 61 6c 75 65 20 3d 20 76 61 6c 75 dom.value = valu
55fa0 65 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 e;. } else
55fb0 69 66 20 28 68 61 73 56 61 6c 75 65 20 26 26 20 if (hasValue &&
55fc0 76 61 6c 75 65 20 21 3d 3d 20 66 61 6c 73 65 29 value !== false)
55fd0 20 7b 0a 20 20 20 20 20 20 20 20 73 65 74 41 74 {. setAt
55fe0 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 61 74 74 tribute(dom, att
55ff0 72 4e 61 6d 65 2c 20 76 61 6c 75 65 29 3b 0a 20 rName, value);.
56000 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 2f 2f }.. //
56010 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 make sure that
56020 69 6e 20 63 61 73 65 20 6f 66 20 73 74 79 6c 65 in case of style
56030 20 63 68 61 6e 67 65 73 0a 20 20 20 20 20 20 2f changes. /
56040 2f 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 73 74 / the element st
56050 61 79 73 20 68 69 64 64 65 6e 0a 20 20 20 20 20 ays hidden.
56060 20 69 66 20 28 69 73 53 74 79 6c 65 41 74 74 72 if (isStyleAttr
56070 20 26 26 20 64 6f 6d 2e 68 69 64 64 65 6e 29 20 && dom.hidden)
56080 7b 20 74 6f 67 67 6c 65 56 69 73 69 62 69 6c 69 { toggleVisibili
56090 74 79 28 64 6f 6d 2c 20 66 61 6c 73 65 29 3b 20 ty(dom, false);
560a0 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 2f }. }. }.. /
560b0 2a 2a 0a 20 20 20 2a 20 55 70 64 61 74 65 20 61 **. * Update a
560c0 6c 6c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f ll the expressio
560d0 6e 73 20 69 6e 20 61 20 54 61 67 20 69 6e 73 74 ns in a Tag inst
560e0 61 6e 63 65 0a 20 20 20 2a 20 40 74 68 69 73 20 ance. * @this
560f0 54 61 67 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 Tag. * @param
56100 7b 20 41 72 72 61 79 20 7d 20 65 78 70 72 65 73 { Array } expres
56110 73 69 6f 6e 73 20 2d 20 65 78 70 72 65 73 73 69 sions - expressi
56120 6f 6e 20 74 68 61 74 20 6d 75 73 74 20 62 65 20 on that must be
56130 72 65 20 65 76 61 6c 75 61 74 65 64 0a 20 20 20 re evaluated.
56140 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 75 70 */. function up
56150 64 61 74 65 28 65 78 70 72 65 73 73 69 6f 6e 73 date(expressions
56160 29 20 7b 0a 20 20 20 20 65 61 63 68 28 65 78 70 ) {. each(exp
56170 72 65 73 73 69 6f 6e 73 2c 20 75 70 64 61 74 65 ressions, update
56180 45 78 70 72 65 73 73 69 6f 6e 2e 62 69 6e 64 28 Expression.bind(
56190 74 68 69 73 29 29 3b 0a 20 20 7d 0a 0a 20 20 2f this));. }.. /
561a0 2a 2a 0a 20 20 20 2a 20 57 65 20 6e 65 65 64 20 **. * We need
561b0 74 6f 20 75 70 64 61 74 65 20 6f 70 74 73 20 66 to update opts f
561c0 6f 72 20 74 68 69 73 20 74 61 67 2e 20 54 68 61 or this tag. Tha
561d0 74 20 72 65 71 75 69 72 65 73 20 75 70 64 61 74 t requires updat
561e0 69 6e 67 20 74 68 65 20 65 78 70 72 65 73 73 69 ing the expressi
561f0 6f 6e 73 0a 20 20 20 2a 20 69 6e 20 61 6e 79 20 ons. * in any
56200 61 74 74 72 69 62 75 74 65 73 20 6f 6e 20 74 68 attributes on th
56210 65 20 74 61 67 2c 20 61 6e 64 20 74 68 65 6e 20 e tag, and then
56220 63 6f 70 79 69 6e 67 20 74 68 65 20 72 65 73 75 copying the resu
56230 6c 74 20 6f 6e 74 6f 20 6f 70 74 73 2e 0a 20 20 lt onto opts..
56240 20 2a 20 40 74 68 69 73 20 54 61 67 0a 20 20 20 * @this Tag.
56250 2a 20 40 70 61 72 61 6d 20 20 20 7b 42 6f 6f 6c * @param {Bool
56260 65 61 6e 7d 20 69 73 4c 6f 6f 70 20 2d 20 69 73 ean} isLoop - is
56270 20 69 74 20 61 20 6c 6f 6f 70 20 74 61 67 3f 0a it a loop tag?.
56280 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
56290 54 61 67 20 7d 20 20 70 61 72 65 6e 74 20 2d 20 Tag } parent -
562a0 70 61 72 65 6e 74 20 74 61 67 20 6e 6f 64 65 0a parent tag node.
562b0 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
562c0 42 6f 6f 6c 65 61 6e 20 7d 20 20 69 73 41 6e 6f Boolean } isAno
562d0 6e 79 6d 6f 75 73 20 2d 20 69 73 20 69 74 20 61 nymous - is it a
562e0 20 74 61 67 20 77 69 74 68 6f 75 74 20 61 6e 79 tag without any
562f0 20 69 6d 70 6c 3f 20 28 61 20 74 61 67 20 6e 6f impl? (a tag no
56300 74 20 72 65 67 69 73 74 65 72 65 64 29 0a 20 20 t registered).
56310 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 4f 62 * @param { Ob
56320 6a 65 63 74 20 7d 20 20 6f 70 74 73 20 2d 20 74 ject } opts - t
56330 61 67 20 6f 70 74 69 6f 6e 73 0a 20 20 20 2a 20 ag options. *
56340 40 70 61 72 61 6d 20 20 20 7b 20 41 72 72 61 79 @param { Array
56350 20 7d 20 20 69 6e 73 74 41 74 74 72 73 20 2d 20 } instAttrs -
56360 74 61 67 20 61 74 74 72 69 62 75 74 65 73 20 61 tag attributes a
56370 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 66 75 6e rray. */. fun
56380 63 74 69 6f 6e 20 75 70 64 61 74 65 4f 70 74 73 ction updateOpts
56390 28 69 73 4c 6f 6f 70 2c 20 70 61 72 65 6e 74 2c (isLoop, parent,
563a0 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 2c 20 6f 70 isAnonymous, op
563b0 74 73 2c 20 69 6e 73 74 41 74 74 72 73 29 20 7b ts, instAttrs) {
563c0 0a 20 20 20 20 2f 2f 20 69 73 41 6e 6f 6e 79 6d . // isAnonym
563d0 6f 75 73 20 60 65 61 63 68 60 20 74 61 67 73 20 ous `each` tags
563e0 74 72 65 61 74 20 60 64 6f 6d 60 20 61 6e 64 20 treat `dom` and
563f0 60 72 6f 6f 74 60 20 64 69 66 66 65 72 65 6e 74 `root` different
56400 6c 79 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 ly. In this case
56410 0a 20 20 20 20 2f 2f 20 28 61 6e 64 20 6f 6e 6c . // (and onl
56420 79 20 74 68 69 73 20 63 61 73 65 29 20 77 65 20 y this case) we
56430 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 64 6f don't need to do
56440 20 75 70 64 61 74 65 4f 70 74 73 2c 20 62 65 63 updateOpts, bec
56450 61 75 73 65 20 74 68 65 20 72 65 67 75 6c 61 72 ause the regular
56460 20 70 61 72 73 65 0a 20 20 20 20 2f 2f 20 77 69 parse. // wi
56470 6c 6c 20 75 70 64 61 74 65 20 74 68 6f 73 65 20 ll update those
56480 61 74 74 72 73 2e 20 50 6c 75 73 2c 20 69 73 41 attrs. Plus, isA
56490 6e 6f 6e 79 6d 6f 75 73 20 74 61 67 73 20 64 6f nonymous tags do
564a0 6e 27 74 20 6e 65 65 64 20 6f 70 74 73 20 61 6e n't need opts an
564b0 79 77 61 79 0a 20 20 20 20 69 66 20 28 69 73 4c yway. if (isL
564c0 6f 6f 70 20 26 26 20 69 73 41 6e 6f 6e 79 6d 6f oop && isAnonymo
564d0 75 73 29 20 7b 20 72 65 74 75 72 6e 20 7d 0a 20 us) { return }.
564e0 20 20 20 76 61 72 20 63 74 78 20 3d 20 69 73 4c var ctx = isL
564f0 6f 6f 70 20 3f 20 69 6e 68 65 72 69 74 50 61 72 oop ? inheritPar
56500 65 6e 74 50 72 6f 70 73 2e 63 61 6c 6c 28 74 68 entProps.call(th
56510 69 73 29 20 3a 20 70 61 72 65 6e 74 20 7c 7c 20 is) : parent ||
56520 74 68 69 73 3b 0a 0a 20 20 20 20 65 61 63 68 28 this;.. each(
56530 69 6e 73 74 41 74 74 72 73 2c 20 66 75 6e 63 74 instAttrs, funct
56540 69 6f 6e 20 28 61 74 74 72 29 20 7b 0a 20 20 20 ion (attr) {.
56550 20 20 20 69 66 20 28 61 74 74 72 2e 65 78 70 72 if (attr.expr
56560 29 20 7b 20 75 70 64 61 74 65 45 78 70 72 65 73 ) { updateExpres
56570 73 69 6f 6e 2e 63 61 6c 6c 28 63 74 78 2c 20 61 sion.call(ctx, a
56580 74 74 72 2e 65 78 70 72 29 3b 20 7d 0a 20 20 20 ttr.expr); }.
56590 20 20 20 2f 2f 20 6e 6f 72 6d 61 6c 69 7a 65 20 // normalize
565a0 74 68 65 20 61 74 74 72 69 62 75 74 65 20 6e 61 the attribute na
565b0 6d 65 73 0a 20 20 20 20 20 20 6f 70 74 73 5b 74 mes. opts[t
565c0 6f 43 61 6d 65 6c 28 61 74 74 72 2e 6e 61 6d 65 oCamel(attr.name
565d0 29 2e 72 65 70 6c 61 63 65 28 41 54 54 52 53 5f ).replace(ATTRS_
565e0 50 52 45 46 49 58 2c 20 27 27 29 5d 20 3d 20 61 PREFIX, '')] = a
565f0 74 74 72 2e 65 78 70 72 20 3f 20 61 74 74 72 2e ttr.expr ? attr.
56600 65 78 70 72 2e 76 61 6c 75 65 20 3a 20 61 74 74 expr.value : att
56610 72 2e 76 61 6c 75 65 3b 0a 20 20 20 20 7d 29 3b r.value;. });
56620 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
56630 20 55 70 64 61 74 65 20 74 68 65 20 74 61 67 20 Update the tag
56640 65 78 70 72 65 73 73 69 6f 6e 73 20 61 6e 64 20 expressions and
56650 6f 70 74 69 6f 6e 73 0a 20 20 20 2a 20 40 70 61 options. * @pa
56660 72 61 6d 20 7b 20 54 61 67 20 7d 20 74 61 67 20 ram { Tag } tag
56670 2d 20 74 61 67 20 6f 62 6a 65 63 74 0a 20 20 20 - tag object.
56680 2a 20 40 70 61 72 61 6d 20 7b 20 2a 20 7d 20 64 * @param { * } d
56690 61 74 61 20 2d 20 64 61 74 61 20 77 65 20 77 61 ata - data we wa
566a0 6e 74 20 74 6f 20 75 73 65 20 74 6f 20 65 78 74 nt to use to ext
566b0 65 6e 64 20 74 68 65 20 74 61 67 20 70 72 6f 70 end the tag prop
566c0 65 72 74 69 65 73 0a 20 20 20 2a 20 40 70 61 72 erties. * @par
566d0 61 6d 20 7b 20 41 72 72 61 79 20 7d 20 65 78 70 am { Array } exp
566e0 72 65 73 73 69 6f 6e 73 20 2d 20 63 6f 6d 70 6f ressions - compo
566f0 6e 65 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 73 nent expressions
56700 20 61 72 72 61 79 0a 20 20 20 2a 20 40 72 65 74 array. * @ret
56710 75 72 6e 73 20 7b 20 54 61 67 20 7d 20 74 68 65 urns { Tag } the
56720 20 63 75 72 72 65 6e 74 20 74 61 67 20 69 6e 73 current tag ins
56730 74 61 6e 63 65 0a 20 20 20 2a 2f 0a 20 20 66 75 tance. */. fu
56740 6e 63 74 69 6f 6e 20 63 6f 6d 70 6f 6e 65 6e 74 nction component
56750 55 70 64 61 74 65 28 74 61 67 2c 20 64 61 74 61 Update(tag, data
56760 2c 20 65 78 70 72 65 73 73 69 6f 6e 73 29 20 7b , expressions) {
56770 0a 20 20 20 20 76 61 72 20 5f 5f 20 3d 20 74 61 . var __ = ta
56780 67 2e 5f 5f 3b 0a 20 20 20 20 76 61 72 20 6e 65 g.__;. var ne
56790 78 74 4f 70 74 73 20 3d 20 7b 7d 3b 0a 20 20 20 xtOpts = {};.
567a0 20 76 61 72 20 63 61 6e 54 72 69 67 67 65 72 20 var canTrigger
567b0 3d 20 74 61 67 2e 69 73 4d 6f 75 6e 74 65 64 20 = tag.isMounted
567c0 26 26 20 21 5f 5f 2e 73 6b 69 70 41 6e 6f 6e 79 && !__.skipAnony
567d0 6d 6f 75 73 3b 0a 0a 20 20 20 20 2f 2f 20 69 6e mous;.. // in
567e0 68 65 72 69 74 20 70 72 6f 70 65 72 74 69 65 73 herit properties
567f0 20 66 72 6f 6d 20 74 68 65 20 70 61 72 65 6e 74 from the parent
56800 20 74 61 67 0a 20 20 20 20 69 66 20 28 5f 5f 2e tag. if (__.
56810 69 73 41 6e 6f 6e 79 6d 6f 75 73 20 26 26 20 5f isAnonymous && _
56820 5f 2e 70 61 72 65 6e 74 29 20 7b 20 65 78 74 65 _.parent) { exte
56830 6e 64 28 74 61 67 2c 20 5f 5f 2e 70 61 72 65 6e nd(tag, __.paren
56840 74 29 3b 20 7d 0a 20 20 20 20 65 78 74 65 6e 64 t); }. extend
56850 28 74 61 67 2c 20 64 61 74 61 29 3b 0a 0a 20 20 (tag, data);..
56860 20 20 75 70 64 61 74 65 4f 70 74 73 2e 61 70 70 updateOpts.app
56870 6c 79 28 74 61 67 2c 20 5b 5f 5f 2e 69 73 4c 6f ly(tag, [__.isLo
56880 6f 70 2c 20 5f 5f 2e 70 61 72 65 6e 74 2c 20 5f op, __.parent, _
56890 5f 2e 69 73 41 6e 6f 6e 79 6d 6f 75 73 2c 20 6e _.isAnonymous, n
568a0 65 78 74 4f 70 74 73 2c 20 5f 5f 2e 69 6e 73 74 extOpts, __.inst
568b0 41 74 74 72 73 5d 29 3b 0a 0a 20 20 20 20 69 66 Attrs]);.. if
568c0 20 28 0a 20 20 20 20 20 20 63 61 6e 54 72 69 67 (. canTrig
568d0 67 65 72 20 26 26 0a 20 20 20 20 20 20 74 61 67 ger &&. tag
568e0 2e 69 73 4d 6f 75 6e 74 65 64 20 26 26 0a 20 20 .isMounted &&.
568f0 20 20 20 20 69 73 46 75 6e 63 74 69 6f 6e 28 74 isFunction(t
56900 61 67 2e 73 68 6f 75 6c 64 55 70 64 61 74 65 29 ag.shouldUpdate)
56910 20 26 26 20 21 74 61 67 2e 73 68 6f 75 6c 64 55 && !tag.shouldU
56920 70 64 61 74 65 28 64 61 74 61 2c 20 6e 65 78 74 pdate(data, next
56930 4f 70 74 73 29 0a 20 20 20 20 29 20 7b 0a 20 20 Opts). ) {.
56940 20 20 20 20 72 65 74 75 72 6e 20 74 61 67 0a 20 return tag.
56950 20 20 20 7d 0a 0a 20 20 20 20 65 78 74 65 6e 64 }.. extend
56960 28 74 61 67 2e 6f 70 74 73 2c 20 6e 65 78 74 4f (tag.opts, nextO
56970 70 74 73 29 3b 0a 0a 20 20 20 20 69 66 20 28 63 pts);.. if (c
56980 61 6e 54 72 69 67 67 65 72 29 20 7b 20 74 61 67 anTrigger) { tag
56990 2e 74 72 69 67 67 65 72 28 27 75 70 64 61 74 65 .trigger('update
569a0 27 2c 20 64 61 74 61 29 3b 20 7d 0a 20 20 20 20 ', data); }.
569b0 75 70 64 61 74 65 2e 63 61 6c 6c 28 74 61 67 2c update.call(tag,
569c0 20 65 78 70 72 65 73 73 69 6f 6e 73 29 3b 0a 20 expressions);.
569d0 20 20 20 69 66 20 28 63 61 6e 54 72 69 67 67 65 if (canTrigge
569e0 72 29 20 7b 20 74 61 67 2e 74 72 69 67 67 65 72 r) { tag.trigger
569f0 28 27 75 70 64 61 74 65 64 27 29 3b 20 7d 0a 0a ('updated'); }..
56a00 20 20 20 20 72 65 74 75 72 6e 20 74 61 67 0a 20 return tag.
56a10 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 47 }.. /**. * G
56a20 65 74 20 73 65 6c 65 63 74 6f 72 73 20 66 6f 72 et selectors for
56a30 20 74 61 67 73 0a 20 20 20 2a 20 40 70 61 72 61 tags. * @para
56a40 6d 20 20 20 7b 20 41 72 72 61 79 20 7d 20 74 61 m { Array } ta
56a50 67 73 20 2d 20 74 61 67 20 6e 61 6d 65 73 20 74 gs - tag names t
56a60 6f 20 73 65 6c 65 63 74 0a 20 20 20 2a 20 40 72 o select. * @r
56a70 65 74 75 72 6e 73 20 7b 20 53 74 72 69 6e 67 20 eturns { String
56a80 7d 20 73 65 6c 65 63 74 6f 72 0a 20 20 20 2a 2f } selector. */
56a90 0a 20 20 66 75 6e 63 74 69 6f 6e 20 71 75 65 72 . function quer
56aa0 79 28 74 61 67 73 29 20 7b 0a 20 20 20 20 2f 2f y(tags) {. //
56ab0 20 73 65 6c 65 63 74 20 61 6c 6c 20 74 61 67 73 select all tags
56ac0 0a 20 20 20 20 69 66 20 28 21 74 61 67 73 29 20 . if (!tags)
56ad0 7b 0a 20 20 20 20 20 20 76 61 72 20 6b 65 79 73 {. var keys
56ae0 20 3d 20 4f 62 6a 65 63 74 2e 6b 65 79 73 28 5f = Object.keys(_
56af0 5f 54 41 47 5f 49 4d 50 4c 29 3b 0a 20 20 20 20 _TAG_IMPL);.
56b00 20 20 72 65 74 75 72 6e 20 6b 65 79 73 20 2b 20 return keys +
56b10 71 75 65 72 79 28 6b 65 79 73 29 0a 20 20 20 20 query(keys).
56b20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 74 61 }.. return ta
56b30 67 73 0a 20 20 20 20 20 20 2e 66 69 6c 74 65 72 gs. .filter
56b40 28 66 75 6e 63 74 69 6f 6e 20 28 74 29 20 7b 20 (function (t) {
56b50 72 65 74 75 72 6e 20 21 2f 5b 5e 2d 5c 77 5d 2f return !/[^-\w]/
56b60 2e 74 65 73 74 28 74 29 3b 20 7d 29 0a 20 20 20 .test(t); }).
56b70 20 20 20 2e 72 65 64 75 63 65 28 66 75 6e 63 74 .reduce(funct
56b80 69 6f 6e 20 28 6c 69 73 74 2c 20 74 29 20 7b 0a ion (list, t) {.
56b90 20 20 20 20 20 20 20 20 76 61 72 20 6e 61 6d 65 var name
56ba0 20 3d 20 74 2e 74 72 69 6d 28 29 2e 74 6f 4c 6f = t.trim().toLo
56bb0 77 65 72 43 61 73 65 28 29 3b 0a 20 20 20 20 20 werCase();.
56bc0 20 20 20 72 65 74 75 72 6e 20 6c 69 73 74 20 2b return list +
56bd0 20 22 2c 5b 22 20 2b 20 49 53 5f 44 49 52 45 43 ",[" + IS_DIREC
56be0 54 49 56 45 20 2b 20 22 3d 5c 22 22 20 2b 20 6e TIVE + "=\"" + n
56bf0 61 6d 65 20 2b 20 22 5c 22 5d 22 0a 20 20 20 20 ame + "\"]".
56c00 20 20 7d 2c 20 27 27 29 0a 20 20 7d 0a 0a 20 20 }, ''). }..
56c10 2f 2a 2a 0a 20 20 20 2a 20 41 6e 6f 74 68 65 72 /**. * Another
56c20 20 77 61 79 20 74 6f 20 63 72 65 61 74 65 20 61 way to create a
56c30 20 72 69 6f 74 20 74 61 67 20 61 20 62 69 74 20 riot tag a bit
56c40 6d 6f 72 65 20 65 73 36 20 66 72 69 65 6e 64 6c more es6 friendl
56c50 79 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 y. * @param {
56c60 48 54 4d 4c 45 6c 65 6d 65 6e 74 20 7d 20 65 6c HTMLElement } el
56c70 20 2d 20 74 61 67 20 44 4f 4d 20 73 65 6c 65 63 - tag DOM selec
56c80 74 6f 72 20 6f 72 20 44 4f 4d 20 6e 6f 64 65 2f tor or DOM node/
56c90 73 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 20 s. * @param {
56ca0 4f 62 6a 65 63 74 20 7d 20 6f 70 74 73 20 2d 20 Object } opts -
56cb0 74 61 67 20 6c 6f 67 69 63 0a 20 20 20 2a 20 40 tag logic. * @
56cc0 72 65 74 75 72 6e 73 20 7b 20 54 61 67 20 7d 20 returns { Tag }
56cd0 6e 65 77 20 72 69 6f 74 20 74 61 67 20 69 6e 73 new riot tag ins
56ce0 74 61 6e 63 65 0a 20 20 20 2a 2f 0a 20 20 66 75 tance. */. fu
56cf0 6e 63 74 69 6f 6e 20 54 61 67 28 65 6c 2c 20 6f nction Tag(el, o
56d00 70 74 73 29 20 7b 0a 20 20 20 20 2f 2f 20 67 65 pts) {. // ge
56d10 74 20 74 68 65 20 74 61 67 20 70 72 6f 70 65 72 t the tag proper
56d20 74 69 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6c ties from the cl
56d30 61 73 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a ass constructor.
56d40 20 20 20 20 76 61 72 20 72 65 66 20 3d 20 74 68 var ref = th
56d50 69 73 3b 0a 20 20 20 20 76 61 72 20 6e 61 6d 65 is;. var name
56d60 20 3d 20 72 65 66 2e 6e 61 6d 65 3b 0a 20 20 20 = ref.name;.
56d70 20 76 61 72 20 74 6d 70 6c 20 3d 20 72 65 66 2e var tmpl = ref.
56d80 74 6d 70 6c 3b 0a 20 20 20 20 76 61 72 20 63 73 tmpl;. var cs
56d90 73 20 3d 20 72 65 66 2e 63 73 73 3b 0a 20 20 20 s = ref.css;.
56da0 20 76 61 72 20 61 74 74 72 73 20 3d 20 72 65 66 var attrs = ref
56db0 2e 61 74 74 72 73 3b 0a 20 20 20 20 76 61 72 20 .attrs;. var
56dc0 6f 6e 43 72 65 61 74 65 20 3d 20 72 65 66 2e 6f onCreate = ref.o
56dd0 6e 43 72 65 61 74 65 3b 0a 20 20 20 20 2f 2f 20 nCreate;. //
56de0 72 65 67 69 73 74 65 72 20 61 20 6e 65 77 20 74 register a new t
56df0 61 67 20 61 6e 64 20 63 61 63 68 65 20 74 68 65 ag and cache the
56e00 20 63 6c 61 73 73 20 70 72 6f 74 6f 74 79 70 65 class prototype
56e10 0a 20 20 20 20 69 66 20 28 21 5f 5f 54 41 47 5f . if (!__TAG_
56e20 49 4d 50 4c 5b 6e 61 6d 65 5d 29 20 7b 0a 20 20 IMPL[name]) {.
56e30 20 20 20 20 74 61 67 28 6e 61 6d 65 2c 20 74 6d tag(name, tm
56e40 70 6c 2c 20 63 73 73 2c 20 61 74 74 72 73 2c 20 pl, css, attrs,
56e50 6f 6e 43 72 65 61 74 65 29 3b 0a 20 20 20 20 20 onCreate);.
56e60 20 2f 2f 20 63 61 63 68 65 20 74 68 65 20 63 6c // cache the cl
56e70 61 73 73 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a ass constructor.
56e80 20 20 20 20 20 20 5f 5f 54 41 47 5f 49 4d 50 4c __TAG_IMPL
56e90 5b 6e 61 6d 65 5d 2e 63 6c 61 73 73 20 3d 20 74 [name].class = t
56ea0 68 69 73 2e 63 6f 6e 73 74 72 75 63 74 6f 72 3b his.constructor;
56eb0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 6d . }.. // m
56ec0 6f 75 6e 74 20 74 68 65 20 74 61 67 20 75 73 69 ount the tag usi
56ed0 6e 67 20 74 68 65 20 63 6c 61 73 73 20 69 6e 73 ng the class ins
56ee0 74 61 6e 63 65 0a 20 20 20 20 6d 6f 75 6e 74 24 tance. mount$
56ef0 31 28 65 6c 2c 20 6e 61 6d 65 2c 20 6f 70 74 73 1(el, name, opts
56f00 2c 20 74 68 69 73 29 3b 0a 20 20 20 20 2f 2f 20 , this);. //
56f10 69 6e 6a 65 63 74 20 74 68 65 20 63 6f 6d 70 6f inject the compo
56f20 6e 65 6e 74 20 63 73 73 0a 20 20 20 20 69 66 20 nent css. if
56f30 28 63 73 73 29 20 7b 20 73 74 79 6c 65 4d 61 6e (css) { styleMan
56f40 61 67 65 72 2e 69 6e 6a 65 63 74 28 29 3b 20 7d ager.inject(); }
56f50 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 .. return thi
56f60 73 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 s. }.. /**.
56f70 2a 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 72 * Create a new r
56f80 69 6f 74 20 74 61 67 20 69 6d 70 6c 65 6d 65 6e iot tag implemen
56f90 74 61 74 69 6f 6e 0a 20 20 20 2a 20 40 70 61 72 tation. * @par
56fa0 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 am { String }
56fb0 20 20 6e 61 6d 65 20 2d 20 6e 61 6d 65 2f 69 64 name - name/id
56fc0 20 6f 66 20 74 68 65 20 6e 65 77 20 72 69 6f 74 of the new riot
56fd0 20 74 61 67 0a 20 20 20 2a 20 40 70 61 72 61 6d tag. * @param
56fe0 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 20 20 { String }
56ff0 74 6d 70 6c 20 2d 20 74 61 67 20 74 65 6d 70 6c tmpl - tag templ
57000 61 74 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 ate. * @param
57010 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 20 20 63 { String } c
57020 73 73 20 2d 20 63 75 73 74 6f 6d 20 74 61 67 20 ss - custom tag
57030 63 73 73 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 css. * @param
57040 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 20 20 61 { String } a
57050 74 74 72 73 20 2d 20 72 6f 6f 74 20 74 61 67 20 ttrs - root tag
57060 61 74 74 72 69 62 75 74 65 73 0a 20 20 20 2a 20 attributes. *
57070 40 70 61 72 61 6d 20 20 20 7b 20 46 75 6e 63 74 @param { Funct
57080 69 6f 6e 20 7d 20 66 6e 20 2d 20 75 73 65 72 20 ion } fn - user
57090 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 20 40 72 function. * @r
570a0 65 74 75 72 6e 73 20 7b 20 53 74 72 69 6e 67 20 eturns { String
570b0 7d 20 6e 61 6d 65 2f 69 64 20 6f 66 20 74 68 65 } name/id of the
570c0 20 74 61 67 20 6a 75 73 74 20 63 72 65 61 74 65 tag just create
570d0 64 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 d. */. functi
570e0 6f 6e 20 74 61 67 28 6e 61 6d 65 2c 20 74 6d 70 on tag(name, tmp
570f0 6c 2c 20 63 73 73 2c 20 61 74 74 72 73 2c 20 66 l, css, attrs, f
57100 6e 29 20 7b 0a 20 20 20 20 69 66 20 28 69 73 46 n) {. if (isF
57110 75 6e 63 74 69 6f 6e 28 61 74 74 72 73 29 29 20 unction(attrs))
57120 7b 0a 20 20 20 20 20 20 66 6e 20 3d 20 61 74 74 {. fn = att
57130 72 73 3b 0a 0a 20 20 20 20 20 20 69 66 20 28 2f rs;.. if (/
57140 5e 5b 5c 77 2d 5d 2b 5c 73 3f 3d 2f 2e 74 65 73 ^[\w-]+\s?=/.tes
57150 74 28 63 73 73 29 29 20 7b 0a 20 20 20 20 20 20 t(css)) {.
57160 20 20 61 74 74 72 73 20 3d 20 63 73 73 3b 0a 20 attrs = css;.
57170 20 20 20 20 20 20 20 63 73 73 20 3d 20 27 27 3b css = '';
57180 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 0a 20 20 . } else.
57190 20 20 20 20 20 20 7b 20 61 74 74 72 73 20 3d 20 { attrs =
571a0 27 27 3b 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 ''; }. }..
571b0 20 69 66 20 28 63 73 73 29 20 7b 0a 20 20 20 20 if (css) {.
571c0 20 20 69 66 20 28 69 73 46 75 6e 63 74 69 6f 6e if (isFunction
571d0 28 63 73 73 29 29 0a 20 20 20 20 20 20 20 20 7b (css)). {
571e0 20 66 6e 20 3d 20 63 73 73 3b 20 7d 0a 20 20 20 fn = css; }.
571f0 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 else.
57200 7b 20 73 74 79 6c 65 4d 61 6e 61 67 65 72 2e 61 { styleManager.a
57210 64 64 28 63 73 73 2c 20 6e 61 6d 65 29 3b 20 7d dd(css, name); }
57220 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6e 61 6d 65 . }.. name
57230 20 3d 20 6e 61 6d 65 2e 74 6f 4c 6f 77 65 72 43 = name.toLowerC
57240 61 73 65 28 29 3b 0a 20 20 20 20 5f 5f 54 41 47 ase();. __TAG
57250 5f 49 4d 50 4c 5b 6e 61 6d 65 5d 20 3d 20 7b 20 _IMPL[name] = {
57260 6e 61 6d 65 3a 20 6e 61 6d 65 2c 20 74 6d 70 6c name: name, tmpl
57270 3a 20 74 6d 70 6c 2c 20 61 74 74 72 73 3a 20 61 : tmpl, attrs: a
57280 74 74 72 73 2c 20 66 6e 3a 20 66 6e 20 7d 3b 0a ttrs, fn: fn };.
57290 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 61 6d 65 . return name
572a0 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
572b0 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 72 69 Create a new ri
572c0 6f 74 20 74 61 67 20 69 6d 70 6c 65 6d 65 6e 74 ot tag implement
572d0 61 74 69 6f 6e 20 28 66 6f 72 20 75 73 65 20 62 ation (for use b
572e0 79 20 74 68 65 20 63 6f 6d 70 69 6c 65 72 29 0a y the compiler).
572f0 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
57300 53 74 72 69 6e 67 20 7d 20 20 20 6e 61 6d 65 20 String } name
57310 2d 20 6e 61 6d 65 2f 69 64 20 6f 66 20 74 68 65 - name/id of the
57320 20 6e 65 77 20 72 69 6f 74 20 74 61 67 0a 20 20 new riot tag.
57330 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 * @param { St
57340 72 69 6e 67 20 7d 20 20 20 74 6d 70 6c 20 2d 20 ring } tmpl -
57350 74 61 67 20 74 65 6d 70 6c 61 74 65 0a 20 20 20 tag template.
57360 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
57370 69 6e 67 20 7d 20 20 20 63 73 73 20 2d 20 63 75 ing } css - cu
57380 73 74 6f 6d 20 74 61 67 20 63 73 73 0a 20 20 20 stom tag css.
57390 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
573a0 69 6e 67 20 7d 20 20 20 61 74 74 72 73 20 2d 20 ing } attrs -
573b0 72 6f 6f 74 20 74 61 67 20 61 74 74 72 69 62 75 root tag attribu
573c0 74 65 73 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 tes. * @param
573d0 20 20 7b 20 46 75 6e 63 74 69 6f 6e 20 7d 20 66 { Function } f
573e0 6e 20 2d 20 75 73 65 72 20 66 75 6e 63 74 69 6f n - user functio
573f0 6e 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 n. * @returns
57400 7b 20 53 74 72 69 6e 67 20 7d 20 6e 61 6d 65 2f { String } name/
57410 69 64 20 6f 66 20 74 68 65 20 74 61 67 20 6a 75 id of the tag ju
57420 73 74 20 63 72 65 61 74 65 64 0a 20 20 20 2a 2f st created. */
57430 0a 20 20 66 75 6e 63 74 69 6f 6e 20 74 61 67 32 . function tag2
57440 28 6e 61 6d 65 2c 20 74 6d 70 6c 2c 20 63 73 73 (name, tmpl, css
57450 2c 20 61 74 74 72 73 2c 20 66 6e 29 20 7b 0a 20 , attrs, fn) {.
57460 20 20 20 69 66 20 28 63 73 73 29 20 7b 20 73 74 if (css) { st
57470 79 6c 65 4d 61 6e 61 67 65 72 2e 61 64 64 28 63 yleManager.add(c
57480 73 73 2c 20 6e 61 6d 65 29 3b 20 7d 0a 0a 20 20 ss, name); }..
57490 20 20 5f 5f 54 41 47 5f 49 4d 50 4c 5b 6e 61 6d __TAG_IMPL[nam
574a0 65 5d 20 3d 20 7b 20 6e 61 6d 65 3a 20 6e 61 6d e] = { name: nam
574b0 65 2c 20 74 6d 70 6c 3a 20 74 6d 70 6c 2c 20 61 e, tmpl: tmpl, a
574c0 74 74 72 73 3a 20 61 74 74 72 73 2c 20 66 6e 3a ttrs: attrs, fn:
574d0 20 66 6e 20 7d 3b 0a 0a 20 20 20 20 72 65 74 75 fn };.. retu
574e0 72 6e 20 6e 61 6d 65 0a 20 20 7d 0a 0a 20 20 2f rn name. }.. /
574f0 2a 2a 0a 20 20 20 2a 20 4d 6f 75 6e 74 20 61 20 **. * Mount a
57500 74 61 67 20 75 73 69 6e 67 20 61 20 73 70 65 63 tag using a spec
57510 69 66 69 63 20 74 61 67 20 69 6d 70 6c 65 6d 65 ific tag impleme
57520 6e 74 61 74 69 6f 6e 0a 20 20 20 2a 20 40 70 61 ntation. * @pa
57530 72 61 6d 20 20 20 7b 20 2a 20 7d 20 73 65 6c 65 ram { * } sele
57540 63 74 6f 72 20 2d 20 74 61 67 20 44 4f 4d 20 73 ctor - tag DOM s
57550 65 6c 65 63 74 6f 72 20 6f 72 20 44 4f 4d 20 6e elector or DOM n
57560 6f 64 65 2f 73 0a 20 20 20 2a 20 40 70 61 72 61 ode/s. * @para
57570 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 74 m { String } t
57580 61 67 4e 61 6d 65 20 2d 20 74 61 67 20 69 6d 70 agName - tag imp
57590 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6e 61 6d 65 lementation name
575a0 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b . * @param {
575b0 20 4f 62 6a 65 63 74 20 7d 20 6f 70 74 73 20 2d Object } opts -
575c0 20 74 61 67 20 6c 6f 67 69 63 0a 20 20 20 2a 20 tag logic. *
575d0 40 72 65 74 75 72 6e 73 20 7b 20 41 72 72 61 79 @returns { Array
575e0 20 7d 20 6e 65 77 20 74 61 67 73 20 69 6e 73 74 } new tags inst
575f0 61 6e 63 65 73 0a 20 20 20 2a 2f 0a 20 20 66 75 ances. */. fu
57600 6e 63 74 69 6f 6e 20 6d 6f 75 6e 74 28 73 65 6c nction mount(sel
57610 65 63 74 6f 72 2c 20 74 61 67 4e 61 6d 65 2c 20 ector, tagName,
57620 6f 70 74 73 29 20 7b 0a 20 20 20 20 76 61 72 20 opts) {. var
57630 74 61 67 73 20 3d 20 5b 5d 3b 0a 20 20 20 20 76 tags = [];. v
57640 61 72 20 65 6c 65 6d 2c 20 61 6c 6c 54 61 67 73 ar elem, allTags
57650 3b 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 ;.. function
57660 70 75 73 68 54 61 67 73 54 6f 28 72 6f 6f 74 29 pushTagsTo(root)
57670 20 7b 0a 20 20 20 20 20 20 69 66 20 28 72 6f 6f {. if (roo
57680 74 2e 74 61 67 4e 61 6d 65 29 20 7b 0a 20 20 20 t.tagName) {.
57690 20 20 20 20 20 76 61 72 20 72 69 6f 74 54 61 67 var riotTag
576a0 20 3d 20 67 65 74 41 74 74 72 69 62 75 74 65 28 = getAttribute(
576b0 72 6f 6f 74 2c 20 49 53 5f 44 49 52 45 43 54 49 root, IS_DIRECTI
576c0 56 45 29 2c 20 74 61 67 3b 0a 0a 20 20 20 20 20 VE), tag;..
576d0 20 20 20 2f 2f 20 68 61 76 65 20 74 61 67 4e 61 // have tagNa
576e0 6d 65 3f 20 66 6f 72 63 65 20 72 69 6f 74 2d 74 me? force riot-t
576f0 61 67 20 74 6f 20 62 65 20 74 68 65 20 73 61 6d ag to be the sam
57700 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 61 e. if (ta
57710 67 4e 61 6d 65 20 26 26 20 72 69 6f 74 54 61 67 gName && riotTag
57720 20 21 3d 3d 20 74 61 67 4e 61 6d 65 29 20 7b 0a !== tagName) {.
57730 20 20 20 20 20 20 20 20 20 20 72 69 6f 74 54 61 riotTa
57740 67 20 3d 20 74 61 67 4e 61 6d 65 3b 0a 20 20 20 g = tagName;.
57750 20 20 20 20 20 20 20 73 65 74 41 74 74 72 69 62 setAttrib
57760 75 74 65 28 72 6f 6f 74 2c 20 49 53 5f 44 49 52 ute(root, IS_DIR
57770 45 43 54 49 56 45 2c 20 74 61 67 4e 61 6d 65 29 ECTIVE, tagName)
57780 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 ;. }..
57790 20 20 20 20 20 74 61 67 20 3d 20 6d 6f 75 6e 74 tag = mount
577a0 24 31 28 0a 20 20 20 20 20 20 20 20 20 20 72 6f $1(. ro
577b0 6f 74 2c 0a 20 20 20 20 20 20 20 20 20 20 72 69 ot,. ri
577c0 6f 74 54 61 67 20 7c 7c 20 72 6f 6f 74 2e 74 61 otTag || root.ta
577d0 67 4e 61 6d 65 2e 74 6f 4c 6f 77 65 72 43 61 73 gName.toLowerCas
577e0 65 28 29 2c 0a 20 20 20 20 20 20 20 20 20 20 69 e(),. i
577f0 73 46 75 6e 63 74 69 6f 6e 28 6f 70 74 73 29 20 sFunction(opts)
57800 3f 20 6f 70 74 73 28 29 20 3a 20 6f 70 74 73 0a ? opts() : opts.
57810 20 20 20 20 20 20 20 20 29 3b 0a 0a 20 20 20 20 );..
57820 20 20 20 20 69 66 20 28 74 61 67 29 0a 20 20 20 if (tag).
57830 20 20 20 20 20 20 20 7b 20 74 61 67 73 2e 70 75 { tags.pu
57840 73 68 28 74 61 67 29 3b 20 7d 0a 20 20 20 20 20 sh(tag); }.
57850 20 7d 20 65 6c 73 65 20 69 66 20 28 72 6f 6f 74 } else if (root
57860 2e 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 .length).
57870 20 7b 20 65 61 63 68 28 72 6f 6f 74 2c 20 70 75 { each(root, pu
57880 73 68 54 61 67 73 54 6f 29 3b 20 7d 20 2f 2f 20 shTagsTo); } //
57890 61 73 73 75 6d 65 20 6e 6f 64 65 4c 69 73 74 0a assume nodeList.
578a0 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 69 6e }.. // in
578b0 6a 65 63 74 20 73 74 79 6c 65 73 20 69 6e 74 6f ject styles into
578c0 20 44 4f 4d 0a 20 20 20 20 73 74 79 6c 65 4d 61 DOM. styleMa
578d0 6e 61 67 65 72 2e 69 6e 6a 65 63 74 28 29 3b 0a nager.inject();.
578e0 0a 20 20 20 20 69 66 20 28 69 73 4f 62 6a 65 63 . if (isObjec
578f0 74 28 74 61 67 4e 61 6d 65 29 20 7c 7c 20 69 73 t(tagName) || is
57900 46 75 6e 63 74 69 6f 6e 28 74 61 67 4e 61 6d 65 Function(tagName
57910 29 29 20 7b 0a 20 20 20 20 20 20 6f 70 74 73 20 )) {. opts
57920 3d 20 74 61 67 4e 61 6d 65 3b 0a 20 20 20 20 20 = tagName;.
57930 20 74 61 67 4e 61 6d 65 20 3d 20 30 3b 0a 20 20 tagName = 0;.
57940 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 63 72 61 77 }.. // craw
57950 6c 20 74 68 65 20 44 4f 4d 20 74 6f 20 66 69 6e l the DOM to fin
57960 64 20 74 68 65 20 74 61 67 0a 20 20 20 20 69 66 d the tag. if
57970 20 28 69 73 53 74 72 69 6e 67 28 73 65 6c 65 63 (isString(selec
57980 74 6f 72 29 29 20 7b 0a 20 20 20 20 20 20 73 65 tor)) {. se
57990 6c 65 63 74 6f 72 20 3d 20 73 65 6c 65 63 74 6f lector = selecto
579a0 72 20 3d 3d 3d 20 27 2a 27 20 3f 0a 20 20 20 20 r === '*' ?.
579b0 20 20 20 20 2f 2f 20 73 65 6c 65 63 74 20 61 6c // select al
579c0 6c 20 72 65 67 69 73 74 65 72 65 64 20 74 61 67 l registered tag
579d0 73 0a 20 20 20 20 20 20 20 20 2f 2f 20 26 20 74 s. // & t
579e0 61 67 73 20 66 6f 75 6e 64 20 77 69 74 68 20 74 ags found with t
579f0 68 65 20 72 69 6f 74 2d 74 61 67 20 61 74 74 72 he riot-tag attr
57a00 69 62 75 74 65 20 73 65 74 0a 20 20 20 20 20 20 ibute set.
57a10 20 20 61 6c 6c 54 61 67 73 20 3d 20 71 75 65 72 allTags = quer
57a20 79 28 29 20 3a 0a 20 20 20 20 20 20 20 20 2f 2f y() :. //
57a30 20 6f 72 20 6a 75 73 74 20 74 68 65 20 6f 6e 65 or just the one
57a40 73 20 6e 61 6d 65 64 20 6c 69 6b 65 20 74 68 65 s named like the
57a50 20 73 65 6c 65 63 74 6f 72 0a 20 20 20 20 20 20 selector.
57a60 20 20 73 65 6c 65 63 74 6f 72 20 2b 20 71 75 65 selector + que
57a70 72 79 28 73 65 6c 65 63 74 6f 72 2e 73 70 6c 69 ry(selector.spli
57a80 74 28 2f 2c 20 2a 2f 29 29 3b 0a 0a 20 20 20 20 t(/, */));..
57a90 20 20 2f 2f 20 6d 61 6b 65 20 73 75 72 65 20 74 // make sure t
57aa0 6f 20 70 61 73 73 20 61 6c 77 61 79 73 20 61 20 o pass always a
57ab0 73 65 6c 65 63 74 6f 72 0a 20 20 20 20 20 20 2f selector. /
57ac0 2f 20 74 6f 20 74 68 65 20 71 75 65 72 79 53 65 / to the querySe
57ad0 6c 65 63 74 6f 72 41 6c 6c 20 66 75 6e 63 74 69 lectorAll functi
57ae0 6f 6e 0a 20 20 20 20 20 20 65 6c 65 6d 20 3d 20 on. elem =
57af0 73 65 6c 65 63 74 6f 72 20 3f 20 24 24 28 73 65 selector ? $$(se
57b00 6c 65 63 74 6f 72 29 20 3a 20 5b 5d 3b 0a 20 20 lector) : [];.
57b10 20 20 7d 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 }. else.
57b20 20 20 20 2f 2f 20 70 72 6f 62 61 62 6c 79 20 79 // probably y
57b30 6f 75 20 68 61 76 65 20 70 61 73 73 65 64 20 61 ou have passed a
57b40 6c 72 65 61 64 79 20 61 20 74 61 67 20 6f 72 20 lready a tag or
57b50 61 20 4e 6f 64 65 4c 69 73 74 0a 20 20 20 20 20 a NodeList.
57b60 20 7b 20 65 6c 65 6d 20 3d 20 73 65 6c 65 63 74 { elem = select
57b70 6f 72 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 73 65 or; }.. // se
57b80 6c 65 63 74 20 61 6c 6c 20 74 68 65 20 72 65 67 lect all the reg
57b90 69 73 74 65 72 65 64 20 61 6e 64 20 6d 6f 75 6e istered and moun
57ba0 74 20 74 68 65 6d 20 69 6e 73 69 64 65 20 74 68 t them inside th
57bb0 65 69 72 20 72 6f 6f 74 20 65 6c 65 6d 65 6e 74 eir root element
57bc0 73 0a 20 20 20 20 69 66 20 28 74 61 67 4e 61 6d s. if (tagNam
57bd0 65 20 3d 3d 3d 20 27 2a 27 29 20 7b 0a 20 20 20 e === '*') {.
57be0 20 20 20 2f 2f 20 67 65 74 20 61 6c 6c 20 63 75 // get all cu
57bf0 73 74 6f 6d 20 74 61 67 73 0a 20 20 20 20 20 20 stom tags.
57c00 74 61 67 4e 61 6d 65 20 3d 20 61 6c 6c 54 61 67 tagName = allTag
57c10 73 20 7c 7c 20 71 75 65 72 79 28 29 3b 0a 20 20 s || query();.
57c20 20 20 20 20 2f 2f 20 69 66 20 74 68 65 20 72 6f // if the ro
57c30 6f 74 20 65 6c 73 20 69 74 27 73 20 6a 75 73 74 ot els it's just
57c40 20 61 20 73 69 6e 67 6c 65 20 74 61 67 0a 20 20 a single tag.
57c50 20 20 20 20 69 66 20 28 65 6c 65 6d 2e 74 61 67 if (elem.tag
57c60 4e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 7b 20 Name). {
57c70 65 6c 65 6d 20 3d 20 24 24 28 74 61 67 4e 61 6d elem = $$(tagNam
57c80 65 2c 20 65 6c 65 6d 29 3b 20 7d 0a 20 20 20 20 e, elem); }.
57c90 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 else {.
57ca0 20 2f 2f 20 73 65 6c 65 63 74 20 61 6c 6c 20 74 // select all t
57cb0 68 65 20 63 68 69 6c 64 72 65 6e 20 66 6f 72 20 he children for
57cc0 61 6c 6c 20 74 68 65 20 64 69 66 66 65 72 65 6e all the differen
57cd0 74 20 72 6f 6f 74 20 65 6c 65 6d 65 6e 74 73 0a t root elements.
57ce0 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 64 65 var node
57cf0 4c 69 73 74 20 3d 20 5b 5d 3b 0a 0a 20 20 20 20 List = [];..
57d00 20 20 20 20 65 61 63 68 28 65 6c 65 6d 2c 20 66 each(elem, f
57d10 75 6e 63 74 69 6f 6e 20 28 5f 65 6c 29 20 7b 20 unction (_el) {
57d20 72 65 74 75 72 6e 20 6e 6f 64 65 4c 69 73 74 2e return nodeList.
57d30 70 75 73 68 28 24 24 28 74 61 67 4e 61 6d 65 2c push($$(tagName,
57d40 20 5f 65 6c 29 29 3b 20 7d 29 3b 0a 0a 20 20 20 _el)); });..
57d50 20 20 20 20 20 65 6c 65 6d 20 3d 20 6e 6f 64 65 elem = node
57d60 4c 69 73 74 3b 0a 20 20 20 20 20 20 7d 0a 20 20 List;. }.
57d70 20 20 20 20 2f 2f 20 67 65 74 20 72 69 64 20 6f // get rid o
57d80 66 20 74 68 65 20 74 61 67 4e 61 6d 65 0a 20 20 f the tagName.
57d90 20 20 20 20 74 61 67 4e 61 6d 65 20 3d 20 30 3b tagName = 0;
57da0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 73 68 . }.. push
57db0 54 61 67 73 54 6f 28 65 6c 65 6d 29 3b 0a 0a 20 TagsTo(elem);..
57dc0 20 20 20 72 65 74 75 72 6e 20 74 61 67 73 0a 20 return tags.
57dd0 20 7d 0a 0a 20 20 2f 2f 20 43 72 65 61 74 65 20 }.. // Create
57de0 61 20 6d 69 78 69 6e 20 74 68 61 74 20 63 6f 75 a mixin that cou
57df0 6c 64 20 62 65 20 67 6c 6f 62 61 6c 6c 79 20 73 ld be globally s
57e00 68 61 72 65 64 20 61 63 72 6f 73 73 20 61 6c 6c hared across all
57e10 20 74 68 65 20 74 61 67 73 0a 20 20 76 61 72 20 the tags. var
57e20 6d 69 78 69 6e 73 20 3d 20 7b 7d 3b 0a 20 20 76 mixins = {};. v
57e30 61 72 20 67 6c 6f 62 61 6c 73 20 3d 20 6d 69 78 ar globals = mix
57e40 69 6e 73 5b 47 4c 4f 42 41 4c 5f 4d 49 58 49 4e ins[GLOBAL_MIXIN
57e50 5d 20 3d 20 7b 7d 3b 0a 20 20 76 61 72 20 6d 69 ] = {};. var mi
57e60 78 69 6e 73 5f 69 64 20 3d 20 30 3b 0a 0a 20 20 xins_id = 0;..
57e70 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 2f /**. * Create/
57e80 52 65 74 75 72 6e 20 61 20 6d 69 78 69 6e 20 62 Return a mixin b
57e90 79 20 69 74 73 20 6e 61 6d 65 0a 20 20 20 2a 20 y its name. *
57ea0 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 69 6e @param { Strin
57eb0 67 20 7d 20 20 6e 61 6d 65 20 2d 20 6d 69 78 69 g } name - mixi
57ec0 6e 20 6e 61 6d 65 20 28 67 6c 6f 62 61 6c 20 6d n name (global m
57ed0 69 78 69 6e 20 69 66 20 6f 62 6a 65 63 74 29 0a ixin if object).
57ee0 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 * @param {
57ef0 4f 62 6a 65 63 74 20 7d 20 20 6d 69 78 20 2d 20 Object } mix -
57f00 6d 69 78 69 6e 20 6c 6f 67 69 63 0a 20 20 20 2a mixin logic. *
57f10 20 40 70 61 72 61 6d 20 20 20 7b 20 42 6f 6f 6c @param { Bool
57f20 65 61 6e 20 7d 20 67 20 2d 20 69 73 20 67 6c 6f ean } g - is glo
57f30 62 61 6c 3f 0a 20 20 20 2a 20 40 72 65 74 75 72 bal?. * @retur
57f40 6e 73 20 7b 20 4f 62 6a 65 63 74 20 7d 20 20 74 ns { Object } t
57f50 68 65 20 6d 69 78 69 6e 20 6c 6f 67 69 63 0a 20 he mixin logic.
57f60 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 */. function
57f70 6d 69 78 69 6e 28 6e 61 6d 65 2c 20 6d 69 78 2c mixin(name, mix,
57f80 20 67 29 20 7b 0a 20 20 20 20 2f 2f 20 55 6e 6e g) {. // Unn
57f90 61 6d 65 64 20 67 6c 6f 62 61 6c 0a 20 20 20 20 amed global.
57fa0 69 66 20 28 69 73 4f 62 6a 65 63 74 28 6e 61 6d if (isObject(nam
57fb0 65 29 29 20 7b 0a 20 20 20 20 20 20 6d 69 78 69 e)) {. mixi
57fc0 6e 28 28 22 5f 5f 22 20 2b 20 28 6d 69 78 69 6e n(("__" + (mixin
57fd0 73 5f 69 64 2b 2b 29 20 2b 20 22 5f 5f 22 29 2c s_id++) + "__"),
57fe0 20 6e 61 6d 65 2c 20 74 72 75 65 29 3b 0a 20 20 name, true);.
57ff0 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 7d return. }
58000 0a 0a 20 20 20 20 76 61 72 20 73 74 6f 72 65 20 .. var store
58010 3d 20 67 20 3f 20 67 6c 6f 62 61 6c 73 20 3a 20 = g ? globals :
58020 6d 69 78 69 6e 73 3b 0a 0a 20 20 20 20 2f 2f 20 mixins;.. //
58030 47 65 74 74 65 72 0a 20 20 20 20 69 66 20 28 21 Getter. if (!
58040 6d 69 78 29 20 7b 0a 20 20 20 20 20 20 69 66 20 mix) {. if
58050 28 69 73 55 6e 64 65 66 69 6e 65 64 28 73 74 6f (isUndefined(sto
58060 72 65 5b 6e 61 6d 65 5d 29 29 0a 20 20 20 20 20 re[name])).
58070 20 20 20 7b 20 74 68 72 6f 77 20 6e 65 77 20 45 { throw new E
58080 72 72 6f 72 28 28 22 55 6e 72 65 67 69 73 74 65 rror(("Unregiste
58090 72 65 64 20 6d 69 78 69 6e 3a 20 22 20 2b 20 6e red mixin: " + n
580a0 61 6d 65 29 29 20 7d 0a 0a 20 20 20 20 20 20 72 ame)) }.. r
580b0 65 74 75 72 6e 20 73 74 6f 72 65 5b 6e 61 6d 65 eturn store[name
580c0 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f 20 ]. }.. //
580d0 53 65 74 74 65 72 0a 20 20 20 20 73 74 6f 72 65 Setter. store
580e0 5b 6e 61 6d 65 5d 20 3d 20 69 73 46 75 6e 63 74 [name] = isFunct
580f0 69 6f 6e 28 6d 69 78 29 20 3f 0a 20 20 20 20 20 ion(mix) ?.
58100 20 65 78 74 65 6e 64 28 6d 69 78 2e 70 72 6f 74 extend(mix.prot
58110 6f 74 79 70 65 2c 20 73 74 6f 72 65 5b 6e 61 6d otype, store[nam
58120 65 5d 20 7c 7c 20 7b 7d 29 20 26 26 20 6d 69 78 e] || {}) && mix
58130 20 3a 0a 20 20 20 20 20 20 65 78 74 65 6e 64 28 :. extend(
58140 73 74 6f 72 65 5b 6e 61 6d 65 5d 20 7c 7c 20 7b store[name] || {
58150 7d 2c 20 6d 69 78 29 3b 0a 20 20 7d 0a 0a 20 20 }, mix);. }..
58160 2f 2a 2a 0a 20 20 20 2a 20 55 70 64 61 74 65 20 /**. * Update
58170 61 6c 6c 20 74 68 65 20 74 61 67 73 20 69 6e 73 all the tags ins
58180 74 61 6e 63 65 73 20 63 72 65 61 74 65 64 0a 20 tances created.
58190 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 41 * @returns { A
581a0 72 72 61 79 20 7d 20 61 6c 6c 20 74 68 65 20 74 rray } all the t
581b0 61 67 73 20 69 6e 73 74 61 6e 63 65 73 0a 20 20 ags instances.
581c0 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 75 */. function u
581d0 70 64 61 74 65 24 31 28 29 20 7b 0a 20 20 20 20 pdate$1() {.
581e0 72 65 74 75 72 6e 20 65 61 63 68 28 5f 5f 54 41 return each(__TA
581f0 47 53 5f 43 41 43 48 45 2c 20 66 75 6e 63 74 69 GS_CACHE, functi
58200 6f 6e 20 28 74 61 67 29 20 7b 20 72 65 74 75 72 on (tag) { retur
58210 6e 20 74 61 67 2e 75 70 64 61 74 65 28 29 3b 20 n tag.update();
58220 7d 29 0a 20 20 7d 0a 0a 20 20 66 75 6e 63 74 69 }). }.. functi
58230 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 6e 61 on unregister(na
58240 6d 65 29 20 7b 0a 20 20 20 20 73 74 79 6c 65 4d me) {. styleM
58250 61 6e 61 67 65 72 2e 72 65 6d 6f 76 65 28 6e 61 anager.remove(na
58260 6d 65 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 me);. return
58270 64 65 6c 65 74 65 20 5f 5f 54 41 47 5f 49 4d 50 delete __TAG_IMP
58280 4c 5b 6e 61 6d 65 5d 0a 20 20 7d 0a 0a 20 20 76 L[name]. }.. v
58290 61 72 20 76 65 72 73 69 6f 6e 20 3d 20 27 76 33 ar version = 'v3
582a0 2e 31 33 2e 32 27 3b 0a 0a 20 20 76 61 72 20 63 .13.2';.. var c
582b0 6f 72 65 20 3d 20 2f 2a 23 5f 5f 50 55 52 45 5f ore = /*#__PURE_
582c0 5f 2a 2f 4f 62 6a 65 63 74 2e 66 72 65 65 7a 65 _*/Object.freeze
582d0 28 7b 0a 20 20 20 20 54 61 67 3a 20 54 61 67 2c ({. Tag: Tag,
582e0 0a 20 20 20 20 74 61 67 3a 20 74 61 67 2c 0a 20 . tag: tag,.
582f0 20 20 20 74 61 67 32 3a 20 74 61 67 32 2c 0a 20 tag2: tag2,.
58300 20 20 20 6d 6f 75 6e 74 3a 20 6d 6f 75 6e 74 2c mount: mount,
58310 0a 20 20 20 20 6d 69 78 69 6e 3a 20 6d 69 78 69 . mixin: mixi
58320 6e 2c 0a 20 20 20 20 75 70 64 61 74 65 3a 20 75 n,. update: u
58330 70 64 61 74 65 24 31 2c 0a 20 20 20 20 75 6e 72 pdate$1,. unr
58340 65 67 69 73 74 65 72 3a 20 75 6e 72 65 67 69 73 egister: unregis
58350 74 65 72 2c 0a 20 20 20 20 76 65 72 73 69 6f 6e ter,. version
58360 3a 20 76 65 72 73 69 6f 6e 0a 20 20 7d 29 3b 0a : version. });.
58370 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 . /**. * Add
58380 61 20 6d 69 78 69 6e 20 74 6f 20 74 68 69 73 20 a mixin to this
58390 74 61 67 0a 20 20 20 2a 20 40 72 65 74 75 72 6e tag. * @return
583a0 73 20 7b 20 54 61 67 20 7d 20 74 68 65 20 63 75 s { Tag } the cu
583b0 72 72 65 6e 74 20 74 61 67 20 69 6e 73 74 61 6e rrent tag instan
583c0 63 65 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 ce. */. funct
583d0 69 6f 6e 20 63 6f 6d 70 6f 6e 65 6e 74 4d 69 78 ion componentMix
583e0 69 6e 28 74 61 67 24 24 31 29 20 7b 0a 20 20 20 in(tag$$1) {.
583f0 20 76 61 72 20 6d 69 78 69 6e 73 20 3d 20 5b 5d var mixins = []
58400 2c 20 6c 65 6e 20 3d 20 61 72 67 75 6d 65 6e 74 , len = argument
58410 73 2e 6c 65 6e 67 74 68 20 2d 20 31 3b 0a 20 20 s.length - 1;.
58420 20 20 77 68 69 6c 65 20 28 20 6c 65 6e 2d 2d 20 while ( len--
58430 3e 20 30 20 29 20 6d 69 78 69 6e 73 5b 20 6c 65 > 0 ) mixins[ le
58440 6e 20 5d 20 3d 20 61 72 67 75 6d 65 6e 74 73 5b n ] = arguments[
58450 20 6c 65 6e 20 2b 20 31 20 5d 3b 0a 0a 20 20 20 len + 1 ];..
58460 20 65 61 63 68 28 6d 69 78 69 6e 73 2c 20 66 75 each(mixins, fu
58470 6e 63 74 69 6f 6e 20 28 6d 69 78 29 20 7b 0a 20 nction (mix) {.
58480 20 20 20 20 20 76 61 72 20 69 6e 73 74 61 6e 63 var instanc
58490 65 3b 0a 20 20 20 20 20 20 76 61 72 20 6f 62 6a e;. var obj
584a0 3b 0a 20 20 20 20 20 20 76 61 72 20 70 72 6f 70 ;. var prop
584b0 73 20 3d 20 5b 5d 3b 0a 0a 20 20 20 20 20 20 2f s = [];.. /
584c0 2f 20 70 72 6f 70 65 72 74 69 65 73 20 62 6c 61 / properties bla
584d0 63 6b 6c 69 73 74 65 64 20 61 6e 64 20 77 69 6c cklisted and wil
584e0 6c 20 6e 6f 74 20 62 65 20 62 6f 75 6e 64 20 74 l not be bound t
584f0 6f 20 74 68 65 20 74 61 67 20 69 6e 73 74 61 6e o the tag instan
58500 63 65 0a 20 20 20 20 20 20 76 61 72 20 70 72 6f ce. var pro
58510 70 73 42 6c 61 63 6b 6c 69 73 74 20 3d 20 5b 27 psBlacklist = ['
58520 69 6e 69 74 27 2c 20 27 5f 5f 70 72 6f 74 6f 5f init', '__proto_
58530 5f 27 5d 3b 0a 0a 20 20 20 20 20 20 6d 69 78 20 _'];.. mix
58540 3d 20 69 73 53 74 72 69 6e 67 28 6d 69 78 29 20 = isString(mix)
58550 3f 20 6d 69 78 69 6e 28 6d 69 78 29 20 3a 20 6d ? mixin(mix) : m
58560 69 78 3b 0a 0a 20 20 20 20 20 20 2f 2f 20 63 68 ix;.. // ch
58570 65 63 6b 20 69 66 20 74 68 65 20 6d 69 78 69 6e eck if the mixin
58580 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 is a function.
58590 20 20 20 20 20 69 66 20 28 69 73 46 75 6e 63 74 if (isFunct
585a0 69 6f 6e 28 6d 69 78 29 29 20 7b 0a 20 20 20 20 ion(mix)) {.
585b0 20 20 20 20 2f 2f 20 63 72 65 61 74 65 20 74 68 // create th
585c0 65 20 6e 65 77 20 6d 69 78 69 6e 20 69 6e 73 74 e new mixin inst
585d0 61 6e 63 65 0a 20 20 20 20 20 20 20 20 69 6e 73 ance. ins
585e0 74 61 6e 63 65 20 3d 20 6e 65 77 20 6d 69 78 28 tance = new mix(
585f0 29 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 );. } else
58600 7b 20 69 6e 73 74 61 6e 63 65 20 3d 20 6d 69 78 { instance = mix
58610 3b 20 7d 0a 0a 20 20 20 20 20 20 76 61 72 20 70 ; }.. var p
58620 72 6f 74 6f 20 3d 20 4f 62 6a 65 63 74 2e 67 65 roto = Object.ge
58630 74 50 72 6f 74 6f 74 79 70 65 4f 66 28 69 6e 73 tPrototypeOf(ins
58640 74 61 6e 63 65 29 3b 0a 0a 20 20 20 20 20 20 2f tance);.. /
58650 2f 20 62 75 69 6c 64 20 6d 75 6c 74 69 6c 65 76 / build multilev
58660 65 6c 20 70 72 6f 74 6f 74 79 70 65 20 69 6e 68 el prototype inh
58670 65 72 69 74 61 6e 63 65 20 63 68 61 69 6e 20 70 eritance chain p
58680 72 6f 70 65 72 74 79 20 6c 69 73 74 0a 20 20 20 roperty list.
58690 20 20 20 64 6f 20 7b 20 70 72 6f 70 73 20 3d 20 do { props =
586a0 70 72 6f 70 73 2e 63 6f 6e 63 61 74 28 4f 62 6a props.concat(Obj
586b0 65 63 74 2e 67 65 74 4f 77 6e 50 72 6f 70 65 72 ect.getOwnProper
586c0 74 79 4e 61 6d 65 73 28 6f 62 6a 20 7c 7c 20 69 tyNames(obj || i
586d0 6e 73 74 61 6e 63 65 29 29 3b 20 7d 0a 20 20 20 nstance)); }.
586e0 20 20 20 77 68 69 6c 65 20 28 6f 62 6a 20 3d 20 while (obj =
586f0 4f 62 6a 65 63 74 2e 67 65 74 50 72 6f 74 6f 74 Object.getProtot
58700 79 70 65 4f 66 28 6f 62 6a 20 7c 7c 20 69 6e 73 ypeOf(obj || ins
58710 74 61 6e 63 65 29 29 0a 0a 20 20 20 20 20 20 2f tance)).. /
58720 2f 20 6c 6f 6f 70 20 74 68 65 20 6b 65 79 73 20 / loop the keys
58730 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 in the function
58740 70 72 6f 74 6f 74 79 70 65 20 6f 72 20 74 68 65 prototype or the
58750 20 61 6c 6c 20 6f 62 6a 65 63 74 20 6b 65 79 73 all object keys
58760 0a 20 20 20 20 20 20 65 61 63 68 28 70 72 6f 70 . each(prop
58770 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 6b 65 79 s, function (key
58780 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 62 ) {. // b
58790 69 6e 64 20 6d 65 74 68 6f 64 73 20 74 6f 20 74 ind methods to t
587a0 61 67 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 6c ag. // al
587b0 6c 6f 77 20 6d 69 78 69 6e 73 20 74 6f 20 6f 76 low mixins to ov
587c0 65 72 72 69 64 65 20 6f 74 68 65 72 20 70 72 6f erride other pro
587d0 70 65 72 74 69 65 73 2f 70 61 72 65 6e 74 20 6d perties/parent m
587e0 69 78 69 6e 73 0a 20 20 20 20 20 20 20 20 69 66 ixins. if
587f0 20 28 21 63 6f 6e 74 61 69 6e 73 28 70 72 6f 70 (!contains(prop
58800 73 42 6c 61 63 6b 6c 69 73 74 2c 20 6b 65 79 29 sBlacklist, key)
58810 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 2f 2f ) {. //
58820 20 63 68 65 63 6b 20 66 6f 72 20 67 65 74 74 65 check for gette
58830 72 73 2f 73 65 74 74 65 72 73 0a 20 20 20 20 20 rs/setters.
58840 20 20 20 20 20 76 61 72 20 64 65 73 63 72 69 70 var descrip
58850 74 6f 72 20 3d 20 67 65 74 50 72 6f 70 44 65 73 tor = getPropDes
58860 63 72 69 70 74 6f 72 28 69 6e 73 74 61 6e 63 65 criptor(instance
58870 2c 20 6b 65 79 29 20 7c 7c 20 67 65 74 50 72 6f , key) || getPro
58880 70 44 65 73 63 72 69 70 74 6f 72 28 70 72 6f 74 pDescriptor(prot
58890 6f 2c 20 6b 65 79 29 3b 0a 20 20 20 20 20 20 20 o, key);.
588a0 20 20 20 76 61 72 20 68 61 73 47 65 74 74 65 72 var hasGetter
588b0 53 65 74 74 65 72 20 3d 20 64 65 73 63 72 69 70 Setter = descrip
588c0 74 6f 72 20 26 26 20 28 64 65 73 63 72 69 70 74 tor && (descript
588d0 6f 72 2e 67 65 74 20 7c 7c 20 64 65 73 63 72 69 or.get || descri
588e0 70 74 6f 72 2e 73 65 74 29 3b 0a 0a 20 20 20 20 ptor.set);..
588f0 20 20 20 20 20 20 2f 2f 20 61 70 70 6c 79 20 6d // apply m
58900 65 74 68 6f 64 20 6f 6e 6c 79 20 69 66 20 69 74 ethod only if it
58910 20 64 6f 65 73 20 6e 6f 74 20 61 6c 72 65 61 64 does not alread
58920 79 20 65 78 69 73 74 20 6f 6e 20 74 68 65 20 69 y exist on the i
58930 6e 73 74 61 6e 63 65 0a 20 20 20 20 20 20 20 20 nstance.
58940 20 20 69 66 20 28 21 74 61 67 24 24 31 2e 68 61 if (!tag$$1.ha
58950 73 4f 77 6e 50 72 6f 70 65 72 74 79 28 6b 65 79 sOwnProperty(key
58960 29 20 26 26 20 68 61 73 47 65 74 74 65 72 53 65 ) && hasGetterSe
58970 74 74 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 tter) {.
58980 20 20 20 20 4f 62 6a 65 63 74 2e 64 65 66 69 6e Object.defin
58990 65 50 72 6f 70 65 72 74 79 28 74 61 67 24 24 31 eProperty(tag$$1
589a0 2c 20 6b 65 79 2c 20 64 65 73 63 72 69 70 74 6f , key, descripto
589b0 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 20 r);. }
589c0 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 else {.
589d0 20 20 20 74 61 67 24 24 31 5b 6b 65 79 5d 20 3d tag$$1[key] =
589e0 20 69 73 46 75 6e 63 74 69 6f 6e 28 69 6e 73 74 isFunction(inst
589f0 61 6e 63 65 5b 6b 65 79 5d 29 20 3f 0a 20 20 20 ance[key]) ?.
58a00 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 74 61 insta
58a10 6e 63 65 5b 6b 65 79 5d 2e 62 69 6e 64 28 74 61 nce[key].bind(ta
58a20 67 24 24 31 29 20 3a 0a 20 20 20 20 20 20 20 20 g$$1) :.
58a30 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 5b 6b instance[k
58a40 65 79 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 7d ey];. }
58a50 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 . }.
58a60 20 7d 29 3b 0a 0a 20 20 20 20 20 20 2f 2f 20 69 });.. // i
58a70 6e 69 74 20 6d 65 74 68 6f 64 20 77 69 6c 6c 20 nit method will
58a80 62 65 20 63 61 6c 6c 65 64 20 61 75 74 6f 6d 61 be called automa
58a90 74 69 63 61 6c 6c 79 0a 20 20 20 20 20 20 69 66 tically. if
58aa0 20 28 69 6e 73 74 61 6e 63 65 2e 69 6e 69 74 29 (instance.init)
58ab0 0a 20 20 20 20 20 20 20 20 7b 20 69 6e 73 74 61 . { insta
58ac0 6e 63 65 2e 69 6e 69 74 2e 62 69 6e 64 28 74 61 nce.init.bind(ta
58ad0 67 24 24 31 29 28 74 61 67 24 24 31 2e 6f 70 74 g$$1)(tag$$1.opt
58ae0 73 29 3b 20 7d 0a 20 20 20 20 7d 29 3b 0a 0a 20 s); }. });..
58af0 20 20 20 72 65 74 75 72 6e 20 74 61 67 24 24 31 return tag$$1
58b00 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
58b10 20 4d 6f 76 65 20 74 68 65 20 70 6f 73 69 74 69 Move the positi
58b20 6f 6e 20 6f 66 20 61 20 63 75 73 74 6f 6d 20 74 on of a custom t
58b30 61 67 20 69 6e 20 69 74 73 20 70 61 72 65 6e 74 ag in its parent
58b40 20 74 61 67 0a 20 20 20 2a 20 40 74 68 69 73 20 tag. * @this
58b50 54 61 67 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 Tag. * @param
58b60 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 74 61 67 { String } tag
58b70 4e 61 6d 65 20 2d 20 6b 65 79 20 77 68 65 72 65 Name - key where
58b80 20 74 68 65 20 74 61 67 20 77 61 73 20 73 74 6f the tag was sto
58b90 72 65 64 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 red. * @param
58ba0 20 20 7b 20 4e 75 6d 62 65 72 20 7d 20 6e 65 77 { Number } new
58bb0 50 6f 73 20 2d 20 69 6e 64 65 78 20 77 68 65 72 Pos - index wher
58bc0 65 20 74 68 65 20 6e 65 77 20 74 61 67 20 77 69 e the new tag wi
58bd0 6c 6c 20 62 65 20 73 74 6f 72 65 64 0a 20 20 20 ll be stored.
58be0 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f */. function mo
58bf0 76 65 43 68 69 6c 64 28 74 61 67 4e 61 6d 65 2c veChild(tagName,
58c00 20 6e 65 77 50 6f 73 29 20 7b 0a 20 20 20 20 76 newPos) {. v
58c10 61 72 20 70 61 72 65 6e 74 20 3d 20 74 68 69 73 ar parent = this
58c20 2e 70 61 72 65 6e 74 3b 0a 20 20 20 20 76 61 72 .parent;. var
58c30 20 74 61 67 73 3b 0a 20 20 20 20 2f 2f 20 6e 6f tags;. // no
58c40 20 70 61 72 65 6e 74 20 6e 6f 20 6d 6f 76 65 0a parent no move.
58c50 20 20 20 20 69 66 20 28 21 70 61 72 65 6e 74 29 if (!parent)
58c60 20 7b 20 72 65 74 75 72 6e 20 7d 0a 0a 20 20 20 { return }..
58c70 20 74 61 67 73 20 3d 20 70 61 72 65 6e 74 2e 74 tags = parent.t
58c80 61 67 73 5b 74 61 67 4e 61 6d 65 5d 3b 0a 0a 20 ags[tagName];..
58c90 20 20 20 69 66 20 28 69 73 41 72 72 61 79 28 74 if (isArray(t
58ca0 61 67 73 29 29 0a 20 20 20 20 20 20 7b 20 74 61 ags)). { ta
58cb0 67 73 2e 73 70 6c 69 63 65 28 6e 65 77 50 6f 73 gs.splice(newPos
58cc0 2c 20 30 2c 20 74 61 67 73 2e 73 70 6c 69 63 65 , 0, tags.splice
58cd0 28 74 61 67 73 2e 69 6e 64 65 78 4f 66 28 74 68 (tags.indexOf(th
58ce0 69 73 29 2c 20 31 29 5b 30 5d 29 3b 20 7d 0a 20 is), 1)[0]); }.
58cf0 20 20 20 65 6c 73 65 20 7b 20 61 72 72 61 79 69 else { arrayi
58d00 73 68 41 64 64 28 70 61 72 65 6e 74 2e 74 61 67 shAdd(parent.tag
58d10 73 2c 20 74 61 67 4e 61 6d 65 2c 20 74 68 69 73 s, tagName, this
58d20 29 3b 20 7d 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a ); }. }.. /**.
58d30 20 20 20 2a 20 4d 6f 76 65 20 76 69 72 74 75 61 * Move virtua
58d40 6c 20 74 61 67 20 61 6e 64 20 61 6c 6c 20 63 68 l tag and all ch
58d50 69 6c 64 20 6e 6f 64 65 73 0a 20 20 20 2a 20 40 ild nodes. * @
58d60 74 68 69 73 20 54 61 67 0a 20 20 20 2a 20 40 70 this Tag. * @p
58d70 61 72 61 6d 20 7b 20 4e 6f 64 65 20 7d 20 73 72 aram { Node } sr
58d80 63 20 20 2d 20 74 68 65 20 6e 6f 64 65 20 74 68 c - the node th
58d90 61 74 20 77 69 6c 6c 20 64 6f 20 74 68 65 20 69 at will do the i
58da0 6e 73 65 72 74 69 6e 67 0a 20 20 20 2a 20 40 70 nserting. * @p
58db0 61 72 61 6d 20 7b 20 54 61 67 20 7d 20 74 61 72 aram { Tag } tar
58dc0 67 65 74 20 2d 20 69 6e 73 65 72 74 20 62 65 66 get - insert bef
58dd0 6f 72 65 20 74 68 69 73 20 74 61 67 27 73 20 66 ore this tag's f
58de0 69 72 73 74 20 63 68 69 6c 64 0a 20 20 20 2a 2f irst child. */
58df0 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 . function move
58e00 56 69 72 74 75 61 6c 28 73 72 63 2c 20 74 61 72 Virtual(src, tar
58e10 67 65 74 29 20 7b 0a 20 20 20 20 76 61 72 20 74 get) {. var t
58e20 68 69 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 his$1 = this;..
58e30 20 20 20 76 61 72 20 65 6c 20 3d 20 74 68 69 73 var el = this
58e40 2e 5f 5f 2e 68 65 61 64 3b 0a 20 20 20 20 76 61 .__.head;. va
58e50 72 20 73 69 62 3b 0a 20 20 20 20 76 61 72 20 66 r sib;. var f
58e60 72 61 67 20 3d 20 63 72 65 61 74 65 46 72 61 67 rag = createFrag
58e70 6d 65 6e 74 28 29 3b 0a 0a 20 20 20 20 77 68 69 ment();.. whi
58e80 6c 65 20 28 65 6c 29 20 7b 0a 20 20 20 20 20 20 le (el) {.
58e90 73 69 62 20 3d 20 65 6c 2e 6e 65 78 74 53 69 62 sib = el.nextSib
58ea0 6c 69 6e 67 3b 0a 20 20 20 20 20 20 66 72 61 67 ling;. frag
58eb0 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 65 6c 29 .appendChild(el)
58ec0 3b 0a 20 20 20 20 20 20 65 6c 20 3d 20 73 69 62 ;. el = sib
58ed0 3b 0a 20 20 20 20 20 20 69 66 20 28 65 6c 20 3d ;. if (el =
58ee0 3d 3d 20 74 68 69 73 24 31 2e 5f 5f 2e 74 61 69 == this$1.__.tai
58ef0 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 66 72 61 l) {. fra
58f00 67 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 65 6c g.appendChild(el
58f10 29 3b 0a 20 20 20 20 20 20 20 20 73 72 63 2e 69 );. src.i
58f20 6e 73 65 72 74 42 65 66 6f 72 65 28 66 72 61 67 nsertBefore(frag
58f30 2c 20 74 61 72 67 65 74 2e 5f 5f 2e 68 65 61 64 , target.__.head
58f40 29 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b );. break
58f50 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 . }. }.
58f60 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 }.. /**. * C
58f70 6f 6e 76 65 72 74 20 74 68 65 20 69 74 65 6d 20 onvert the item
58f80 6c 6f 6f 70 65 64 20 69 6e 74 6f 20 61 6e 20 6f looped into an o
58f90 62 6a 65 63 74 20 75 73 65 64 20 74 6f 20 65 78 bject used to ex
58fa0 74 65 6e 64 20 74 68 65 20 63 68 69 6c 64 20 74 tend the child t
58fb0 61 67 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 ag properties.
58fc0 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 4f 62 * @param { Ob
58fd0 6a 65 63 74 20 7d 20 65 78 70 72 20 2d 20 6f 62 ject } expr - ob
58fe0 6a 65 63 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 ject containing
58ff0 74 68 65 20 6b 65 79 73 20 75 73 65 64 20 74 6f the keys used to
59000 20 65 78 74 65 6e 64 20 74 68 65 20 63 68 69 6c extend the chil
59010 64 72 65 6e 20 74 61 67 73 0a 20 20 20 2a 20 40 dren tags. * @
59020 70 61 72 61 6d 20 20 20 7b 20 2a 20 7d 20 6b 65 param { * } ke
59030 79 20 2d 20 76 61 6c 75 65 20 74 6f 20 61 73 73 y - value to ass
59040 69 67 6e 20 74 6f 20 74 68 65 20 6e 65 77 20 6f ign to the new o
59050 62 6a 65 63 74 20 72 65 74 75 72 6e 65 64 0a 20 bject returned.
59060 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 2a * @param { *
59070 20 7d 20 76 61 6c 20 2d 20 76 61 6c 75 65 20 63 } val - value c
59080 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 70 6f ontaining the po
59090 73 69 74 69 6f 6e 20 6f 66 20 74 68 65 20 69 74 sition of the it
590a0 65 6d 20 69 6e 20 74 68 65 20 61 72 72 61 79 0a em in the array.
590b0 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 * @returns {
590c0 4f 62 6a 65 63 74 20 7d 20 2d 20 6e 65 77 20 6f Object } - new o
590d0 62 6a 65 63 74 20 63 6f 6e 74 61 69 6e 69 6e 67 bject containing
590e0 20 74 68 65 20 76 61 6c 75 65 73 20 6f 66 20 74 the values of t
590f0 68 65 20 6f 72 69 67 69 6e 61 6c 20 69 74 65 6d he original item
59100 0a 20 20 20 2a 0a 20 20 20 2a 20 54 68 65 20 76 . *. * The v
59110 61 72 69 61 62 6c 65 73 20 27 6b 65 79 27 20 61 ariables 'key' a
59120 6e 64 20 27 76 61 6c 27 20 61 72 65 20 61 72 62 nd 'val' are arb
59130 69 74 72 61 72 79 2e 0a 20 20 20 2a 20 54 68 65 itrary.. * The
59140 79 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 y depend on the
59150 63 6f 6c 6c 65 63 74 69 6f 6e 20 74 79 70 65 20 collection type
59160 6c 6f 6f 70 65 64 20 28 41 72 72 61 79 2c 20 4f looped (Array, O
59170 62 6a 65 63 74 29 0a 20 20 20 2a 20 61 6e 64 20 bject). * and
59180 6f 6e 20 74 68 65 20 65 78 70 72 65 73 73 69 6f on the expressio
59190 6e 20 75 73 65 64 20 6f 6e 20 74 68 65 20 65 61 n used on the ea
591a0 63 68 20 74 61 67 0a 20 20 20 2a 0a 20 20 20 2a ch tag. *. *
591b0 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6b 69 /. function mki
591c0 74 65 6d 28 65 78 70 72 2c 20 6b 65 79 2c 20 76 tem(expr, key, v
591d0 61 6c 29 20 7b 0a 20 20 20 20 76 61 72 20 69 74 al) {. var it
591e0 65 6d 20 3d 20 7b 7d 3b 0a 20 20 20 20 69 74 65 em = {};. ite
591f0 6d 5b 65 78 70 72 2e 6b 65 79 5d 20 3d 20 6b 65 m[expr.key] = ke
59200 79 3b 0a 20 20 20 20 69 66 20 28 65 78 70 72 2e y;. if (expr.
59210 70 6f 73 29 20 7b 20 69 74 65 6d 5b 65 78 70 72 pos) { item[expr
59220 2e 70 6f 73 5d 20 3d 20 76 61 6c 3b 20 7d 0a 20 .pos] = val; }.
59230 20 20 20 72 65 74 75 72 6e 20 69 74 65 6d 0a 20 return item.
59240 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 55 }.. /**. * U
59250 6e 6d 6f 75 6e 74 20 74 68 65 20 72 65 64 75 6e nmount the redun
59260 64 61 6e 74 20 74 61 67 73 0a 20 20 20 2a 20 40 dant tags. * @
59270 70 61 72 61 6d 20 20 20 7b 20 41 72 72 61 79 20 param { Array
59280 7d 20 69 74 65 6d 73 20 2d 20 61 72 72 61 79 20 } items - array
59290 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 63 containing the c
592a0 75 72 72 65 6e 74 20 69 74 65 6d 73 20 74 6f 20 urrent items to
592b0 6c 6f 6f 70 0a 20 20 20 2a 20 40 70 61 72 61 6d loop. * @param
592c0 20 20 20 7b 20 41 72 72 61 79 20 7d 20 74 61 67 { Array } tag
592d0 73 20 2d 20 61 72 72 61 79 20 63 6f 6e 74 61 69 s - array contai
592e0 6e 69 6e 67 20 61 6c 6c 20 74 68 65 20 63 68 69 ning all the chi
592f0 6c 64 72 65 6e 20 74 61 67 73 0a 20 20 20 2a 2f ldren tags. */
59300 0a 20 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6d 6f . function unmo
59310 75 6e 74 52 65 64 75 6e 64 61 6e 74 28 69 74 65 untRedundant(ite
59320 6d 73 2c 20 74 61 67 73 2c 20 66 69 6c 74 65 72 ms, tags, filter
59330 65 64 49 74 65 6d 73 43 6f 75 6e 74 29 20 7b 0a edItemsCount) {.
59340 20 20 20 20 76 61 72 20 69 20 3d 20 74 61 67 73 var i = tags
59350 2e 6c 65 6e 67 74 68 3b 0a 20 20 20 20 76 61 72 .length;. var
59360 20 6a 20 3d 20 69 74 65 6d 73 2e 6c 65 6e 67 74 j = items.lengt
59370 68 20 2d 20 66 69 6c 74 65 72 65 64 49 74 65 6d h - filteredItem
59380 73 43 6f 75 6e 74 3b 0a 0a 20 20 20 20 77 68 69 sCount;.. whi
59390 6c 65 20 28 69 20 3e 20 6a 29 20 7b 0a 20 20 20 le (i > j) {.
593a0 20 20 20 69 2d 2d 3b 0a 20 20 20 20 20 20 72 65 i--;. re
593b0 6d 6f 76 65 2e 61 70 70 6c 79 28 74 61 67 73 5b move.apply(tags[
593c0 69 5d 2c 20 5b 74 61 67 73 2c 20 69 5d 29 3b 0a i], [tags, i]);.
593d0 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a }. }... /*
593e0 2a 0a 20 20 20 2a 20 52 65 6d 6f 76 65 20 61 20 *. * Remove a
593f0 63 68 69 6c 64 20 74 61 67 0a 20 20 20 2a 20 40 child tag. * @
59400 74 68 69 73 20 54 61 67 0a 20 20 20 2a 20 40 70 this Tag. * @p
59410 61 72 61 6d 20 20 20 7b 20 41 72 72 61 79 20 7d aram { Array }
59420 20 74 61 67 73 20 2d 20 74 61 67 73 20 63 6f 6c tags - tags col
59430 6c 65 63 74 69 6f 6e 0a 20 20 20 2a 20 40 70 61 lection. * @pa
59440 72 61 6d 20 20 20 7b 20 4e 75 6d 62 65 72 20 7d ram { Number }
59450 20 69 20 2d 20 69 6e 64 65 78 20 6f 66 20 74 68 i - index of th
59460 65 20 74 61 67 20 74 6f 20 72 65 6d 6f 76 65 0a e tag to remove.
59470 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e */. function
59480 20 72 65 6d 6f 76 65 28 74 61 67 73 2c 20 69 29 remove(tags, i)
59490 20 7b 0a 20 20 20 20 74 61 67 73 2e 73 70 6c 69 {. tags.spli
594a0 63 65 28 69 2c 20 31 29 3b 0a 20 20 20 20 74 68 ce(i, 1);. th
594b0 69 73 2e 75 6e 6d 6f 75 6e 74 28 29 3b 0a 20 20 is.unmount();.
594c0 20 20 61 72 72 61 79 69 73 68 52 65 6d 6f 76 65 arrayishRemove
594d0 28 74 68 69 73 2e 70 61 72 65 6e 74 2c 20 74 68 (this.parent, th
594e0 69 73 2c 20 74 68 69 73 2e 5f 5f 2e 74 61 67 4e is, this.__.tagN
594f0 61 6d 65 2c 20 74 72 75 65 29 3b 0a 20 20 7d 0a ame, true);. }.
59500 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 4d 6f 76 65 . /**. * Move
59510 20 74 68 65 20 6e 65 73 74 65 64 20 63 75 73 74 the nested cust
59520 6f 6d 20 74 61 67 73 20 69 6e 20 6e 6f 6e 20 63 om tags in non c
59530 75 73 74 6f 6d 20 6c 6f 6f 70 20 74 61 67 73 0a ustom loop tags.
59540 20 20 20 2a 20 40 74 68 69 73 20 54 61 67 0a 20 * @this Tag.
59550 20 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 4e * @param { N
59560 75 6d 62 65 72 20 7d 20 69 20 2d 20 63 75 72 72 umber } i - curr
59570 65 6e 74 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 ent position of
59580 74 68 65 20 6c 6f 6f 70 20 74 61 67 0a 20 20 20 the loop tag.
59590 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 6d 6f */. function mo
595a0 76 65 4e 65 73 74 65 64 54 61 67 73 28 69 29 20 veNestedTags(i)
595b0 7b 0a 20 20 20 20 76 61 72 20 74 68 69 73 24 31 {. var this$1
595c0 20 3d 20 74 68 69 73 3b 0a 0a 20 20 20 20 65 61 = this;.. ea
595d0 63 68 28 4f 62 6a 65 63 74 2e 6b 65 79 73 28 74 ch(Object.keys(t
595e0 68 69 73 2e 74 61 67 73 29 2c 20 66 75 6e 63 74 his.tags), funct
595f0 69 6f 6e 20 28 74 61 67 4e 61 6d 65 29 20 7b 0a ion (tagName) {.
59600 20 20 20 20 20 20 6d 6f 76 65 43 68 69 6c 64 2e moveChild.
59610 61 70 70 6c 79 28 74 68 69 73 24 31 2e 74 61 67 apply(this$1.tag
59620 73 5b 74 61 67 4e 61 6d 65 5d 2c 20 5b 74 61 67 s[tagName], [tag
59630 4e 61 6d 65 2c 20 69 5d 29 3b 0a 20 20 20 20 7d Name, i]);. }
59640 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 );. }.. /**.
59650 20 2a 20 4d 6f 76 65 20 61 20 63 68 69 6c 64 20 * Move a child
59660 74 61 67 0a 20 20 20 2a 20 40 74 68 69 73 20 54 tag. * @this T
59670 61 67 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 ag. * @param
59680 20 7b 20 48 54 4d 4c 45 6c 65 6d 65 6e 74 20 7d { HTMLElement }
59690 20 72 6f 6f 74 20 2d 20 64 6f 6d 20 6e 6f 64 65 root - dom node
596a0 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 containing all
596b0 74 68 65 20 6c 6f 6f 70 20 63 68 69 6c 64 72 65 the loop childre
596c0 6e 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 n. * @param
596d0 7b 20 54 61 67 20 7d 20 6e 65 78 74 54 61 67 20 { Tag } nextTag
596e0 2d 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 - instance of th
596f0 65 20 6e 65 78 74 20 74 61 67 20 70 72 65 63 65 e next tag prece
59700 64 69 6e 67 20 74 68 65 20 6f 6e 65 20 77 65 20 ding the one we
59710 77 61 6e 74 20 74 6f 20 6d 6f 76 65 0a 20 20 20 want to move.
59720 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 42 6f 6f * @param { Boo
59730 6c 65 61 6e 20 7d 20 69 73 56 69 72 74 75 61 6c lean } isVirtual
59740 20 2d 20 69 73 20 69 74 20 61 20 76 69 72 74 75 - is it a virtu
59750 61 6c 20 74 61 67 3f 0a 20 20 20 2a 2f 0a 20 20 al tag?. */.
59760 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 28 72 6f function move(ro
59770 6f 74 2c 20 6e 65 78 74 54 61 67 2c 20 69 73 56 ot, nextTag, isV
59780 69 72 74 75 61 6c 29 20 7b 0a 20 20 20 20 69 66 irtual) {. if
59790 20 28 69 73 56 69 72 74 75 61 6c 29 0a 20 20 20 (isVirtual).
597a0 20 20 20 7b 20 6d 6f 76 65 56 69 72 74 75 61 6c { moveVirtual
597b0 2e 61 70 70 6c 79 28 74 68 69 73 2c 20 5b 72 6f .apply(this, [ro
597c0 6f 74 2c 20 6e 65 78 74 54 61 67 5d 29 3b 20 7d ot, nextTag]); }
597d0 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 . else.
597e0 7b 20 73 61 66 65 49 6e 73 65 72 74 28 72 6f 6f { safeInsert(roo
597f0 74 2c 20 74 68 69 73 2e 72 6f 6f 74 2c 20 6e 65 t, this.root, ne
59800 78 74 54 61 67 2e 72 6f 6f 74 29 3b 20 7d 0a 20 xtTag.root); }.
59810 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 49 }.. /**. * I
59820 6e 73 65 72 74 20 61 6e 64 20 6d 6f 75 6e 74 20 nsert and mount
59830 61 20 63 68 69 6c 64 20 74 61 67 0a 20 20 20 2a a child tag. *
59840 20 40 74 68 69 73 20 54 61 67 0a 20 20 20 2a 20 @this Tag. *
59850 40 70 61 72 61 6d 20 20 20 7b 20 48 54 4d 4c 45 @param { HTMLE
59860 6c 65 6d 65 6e 74 20 7d 20 72 6f 6f 74 20 2d 20 lement } root -
59870 64 6f 6d 20 6e 6f 64 65 20 63 6f 6e 74 61 69 6e dom node contain
59880 69 6e 67 20 61 6c 6c 20 74 68 65 20 6c 6f 6f 70 ing all the loop
59890 20 63 68 69 6c 64 72 65 6e 0a 20 20 20 2a 20 40 children. * @
598a0 70 61 72 61 6d 20 20 20 7b 20 54 61 67 20 7d 20 param { Tag }
598b0 6e 65 78 74 54 61 67 20 2d 20 69 6e 73 74 61 6e nextTag - instan
598c0 63 65 20 6f 66 20 74 68 65 20 6e 65 78 74 20 74 ce of the next t
598d0 61 67 20 70 72 65 63 65 64 69 6e 67 20 74 68 65 ag preceding the
598e0 20 6f 6e 65 20 77 65 20 77 61 6e 74 20 74 6f 20 one we want to
598f0 69 6e 73 65 72 74 0a 20 20 20 2a 20 40 70 61 72 insert. * @par
59900 61 6d 20 20 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d am { Boolean }
59910 20 69 73 56 69 72 74 75 61 6c 20 2d 20 69 73 20 isVirtual - is
59920 69 74 20 61 20 76 69 72 74 75 61 6c 20 74 61 67 it a virtual tag
59930 3f 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 ?. */. functi
59940 6f 6e 20 69 6e 73 65 72 74 28 72 6f 6f 74 2c 20 on insert(root,
59950 6e 65 78 74 54 61 67 2c 20 69 73 56 69 72 74 75 nextTag, isVirtu
59960 61 6c 29 20 7b 0a 20 20 20 20 69 66 20 28 69 73 al) {. if (is
59970 56 69 72 74 75 61 6c 29 0a 20 20 20 20 20 20 7b Virtual). {
59980 20 6d 61 6b 65 56 69 72 74 75 61 6c 2e 61 70 70 makeVirtual.app
59990 6c 79 28 74 68 69 73 2c 20 5b 72 6f 6f 74 2c 20 ly(this, [root,
599a0 6e 65 78 74 54 61 67 5d 29 3b 20 7d 0a 20 20 20 nextTag]); }.
599b0 20 65 6c 73 65 0a 20 20 20 20 20 20 7b 20 73 61 else. { sa
599c0 66 65 49 6e 73 65 72 74 28 72 6f 6f 74 2c 20 74 feInsert(root, t
599d0 68 69 73 2e 72 6f 6f 74 2c 20 6e 65 78 74 54 61 his.root, nextTa
599e0 67 2e 72 6f 6f 74 29 3b 20 7d 0a 20 20 7d 0a 0a g.root); }. }..
599f0 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 70 70 65 6e /**. * Appen
59a00 64 20 61 20 6e 65 77 20 74 61 67 20 69 6e 74 6f d a new tag into
59a10 20 74 68 65 20 44 4f 4d 0a 20 20 20 2a 20 40 74 the DOM. * @t
59a20 68 69 73 20 54 61 67 0a 20 20 20 2a 20 40 70 61 his Tag. * @pa
59a30 72 61 6d 20 20 20 7b 20 48 54 4d 4c 45 6c 65 6d ram { HTMLElem
59a40 65 6e 74 20 7d 20 72 6f 6f 74 20 2d 20 64 6f 6d ent } root - dom
59a50 20 6e 6f 64 65 20 63 6f 6e 74 61 69 6e 69 6e 67 node containing
59a60 20 61 6c 6c 20 74 68 65 20 6c 6f 6f 70 20 63 68 all the loop ch
59a70 69 6c 64 72 65 6e 0a 20 20 20 2a 20 40 70 61 72 ildren. * @par
59a80 61 6d 20 20 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d am { Boolean }
59a90 20 69 73 56 69 72 74 75 61 6c 20 2d 20 69 73 20 isVirtual - is
59aa0 69 74 20 61 20 76 69 72 74 75 61 6c 20 74 61 67 it a virtual tag
59ab0 3f 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 ?. */. functi
59ac0 6f 6e 20 61 70 70 65 6e 64 28 72 6f 6f 74 2c 20 on append(root,
59ad0 69 73 56 69 72 74 75 61 6c 29 20 7b 0a 20 20 20 isVirtual) {.
59ae0 20 69 66 20 28 69 73 56 69 72 74 75 61 6c 29 0a if (isVirtual).
59af0 20 20 20 20 20 20 7b 20 6d 61 6b 65 56 69 72 74 { makeVirt
59b00 75 61 6c 2e 63 61 6c 6c 28 74 68 69 73 2c 20 72 ual.call(this, r
59b10 6f 6f 74 29 3b 20 7d 0a 20 20 20 20 65 6c 73 65 oot); }. else
59b20 0a 20 20 20 20 20 20 7b 20 72 6f 6f 74 2e 61 70 . { root.ap
59b30 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 72 pendChild(this.r
59b40 6f 6f 74 29 3b 20 7d 0a 20 20 7d 0a 0a 20 20 2f oot); }. }.. /
59b50 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 **. * Return t
59b60 68 65 20 76 61 6c 75 65 20 77 65 20 77 61 6e 74 he value we want
59b70 20 74 6f 20 75 73 65 20 74 6f 20 6c 6f 6f 6b 75 to use to looku
59b80 70 20 74 68 65 20 70 6f 73 74 69 6f 6e 20 6f 66 p the postion of
59b90 20 6f 75 72 20 69 74 65 6d 73 20 69 6e 20 74 68 our items in th
59ba0 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 e collection.
59bb0 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
59bc0 69 6e 67 20 7d 20 20 6b 65 79 41 74 74 72 20 20 ing } keyAttr
59bd0 20 20 20 20 20 20 20 2d 20 6c 6f 6f 6b 75 70 20 - lookup
59be0 73 74 72 69 6e 67 20 6f 72 20 65 78 70 72 65 73 string or expres
59bf0 73 69 6f 6e 0a 20 20 20 2a 20 40 70 61 72 61 6d sion. * @param
59c00 20 20 20 7b 20 2a 20 7d 20 20 20 20 20 20 20 6f { * } o
59c10 72 69 67 69 6e 61 6c 49 74 65 6d 20 20 20 20 2d riginalItem -
59c20 20 6f 72 69 67 69 6e 61 6c 20 69 74 65 6d 20 66 original item f
59c30 72 6f 6d 20 74 68 65 20 63 6f 6c 6c 65 63 74 69 rom the collecti
59c40 6f 6e 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 on. * @param
59c50 20 7b 20 4f 62 6a 65 63 74 20 7d 20 20 6b 65 79 { Object } key
59c60 65 64 49 74 65 6d 20 20 20 20 20 20 20 2d 20 6f edItem - o
59c70 62 6a 65 63 74 20 63 72 65 61 74 65 64 20 62 79 bject created by
59c80 20 72 69 6f 74 20 76 69 61 20 7b 20 69 74 65 6d riot via { item
59c90 2c 20 69 20 69 6e 20 63 6f 6c 6c 65 63 74 69 6f , i in collectio
59ca0 6e 20 7d 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 n }. * @param
59cb0 20 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d 20 68 61 { Boolean } ha
59cc0 73 4b 65 79 41 74 74 72 45 78 70 72 20 20 2d 20 sKeyAttrExpr -
59cd0 66 6c 61 67 20 74 6f 20 63 68 65 63 6b 20 77 68 flag to check wh
59ce0 65 74 68 65 72 20 74 68 65 20 6b 65 79 20 69 73 ether the key is
59cf0 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 0a 20 an expression.
59d00 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 2a * @returns { *
59d10 20 7d 20 76 61 6c 75 65 20 74 68 61 74 20 77 65 } value that we
59d20 20 77 69 6c 6c 20 75 73 65 20 74 6f 20 66 69 67 will use to fig
59d30 75 72 65 20 6f 75 74 20 74 68 65 20 69 74 65 6d ure out the item
59d40 20 70 6f 73 69 74 69 6f 6e 20 76 69 61 20 63 6f position via co
59d50 6c 6c 65 63 74 69 6f 6e 2e 69 6e 64 65 78 4f 66 llection.indexOf
59d60 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f . */. functio
59d70 6e 20 67 65 74 49 74 65 6d 49 64 28 6b 65 79 41 n getItemId(keyA
59d80 74 74 72 2c 20 6f 72 69 67 69 6e 61 6c 49 74 65 ttr, originalIte
59d90 6d 2c 20 6b 65 79 65 64 49 74 65 6d 2c 20 68 61 m, keyedItem, ha
59da0 73 4b 65 79 41 74 74 72 45 78 70 72 29 20 7b 0a sKeyAttrExpr) {.
59db0 20 20 20 20 69 66 20 28 6b 65 79 41 74 74 72 29 if (keyAttr)
59dc0 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 {. return
59dd0 68 61 73 4b 65 79 41 74 74 72 45 78 70 72 20 3f hasKeyAttrExpr ?
59de0 20 20 63 73 70 5f 74 6d 70 6c 5f 31 28 6b 65 79 csp_tmpl_1(key
59df0 41 74 74 72 2c 20 6b 65 79 65 64 49 74 65 6d 29 Attr, keyedItem)
59e00 20 3a 20 20 6f 72 69 67 69 6e 61 6c 49 74 65 6d : originalItem
59e10 5b 6b 65 79 41 74 74 72 5d 0a 20 20 20 20 7d 0a [keyAttr]. }.
59e20 0a 20 20 20 20 72 65 74 75 72 6e 20 6f 72 69 67 . return orig
59e30 69 6e 61 6c 49 74 65 6d 0a 20 20 7d 0a 0a 20 20 inalItem. }..
59e40 2f 2a 2a 0a 20 20 20 2a 20 4d 61 6e 61 67 65 20 /**. * Manage
59e50 74 61 67 73 20 68 61 76 69 6e 67 20 74 68 65 20 tags having the
59e60 27 65 61 63 68 27 0a 20 20 20 2a 20 40 70 61 72 'each'. * @par
59e70 61 6d 20 20 20 7b 20 48 54 4d 4c 45 6c 65 6d 65 am { HTMLEleme
59e80 6e 74 20 7d 20 64 6f 6d 20 2d 20 44 4f 4d 20 6e nt } dom - DOM n
59e90 6f 64 65 20 77 65 20 6e 65 65 64 20 74 6f 20 6c ode we need to l
59ea0 6f 6f 70 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 oop. * @param
59eb0 20 20 7b 20 54 61 67 20 7d 20 70 61 72 65 6e 74 { Tag } parent
59ec0 20 2d 20 70 61 72 65 6e 74 20 74 61 67 20 69 6e - parent tag in
59ed0 73 74 61 6e 63 65 20 77 68 65 72 65 20 74 68 65 stance where the
59ee0 20 64 6f 6d 20 6e 6f 64 65 20 69 73 20 63 6f 6e dom node is con
59ef0 74 61 69 6e 65 64 0a 20 20 20 2a 20 40 70 61 72 tained. * @par
59f00 61 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 am { String }
59f10 65 78 70 72 20 2d 20 73 74 72 69 6e 67 20 63 6f expr - string co
59f20 6e 74 61 69 6e 65 64 20 69 6e 20 74 68 65 20 27 ntained in the '
59f30 65 61 63 68 27 20 61 74 74 72 69 62 75 74 65 0a each' attribute.
59f40 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 * @returns {
59f50 4f 62 6a 65 63 74 20 7d 20 65 78 70 72 65 73 73 Object } express
59f60 69 6f 6e 20 6f 62 6a 65 63 74 20 66 6f 72 20 74 ion object for t
59f70 68 69 73 20 65 61 63 68 20 6c 6f 6f 70 0a 20 20 his each loop.
59f80 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 5f */. function _
59f90 65 61 63 68 28 64 6f 6d 2c 20 70 61 72 65 6e 74 each(dom, parent
59fa0 2c 20 65 78 70 72 29 20 7b 0a 20 20 20 20 76 61 , expr) {. va
59fb0 72 20 6d 75 73 74 52 65 6f 72 64 65 72 20 3d 20 r mustReorder =
59fc0 74 79 70 65 6f 66 20 67 65 74 41 74 74 72 69 62 typeof getAttrib
59fd0 75 74 65 28 64 6f 6d 2c 20 4c 4f 4f 50 5f 4e 4f ute(dom, LOOP_NO
59fe0 5f 52 45 4f 52 44 45 52 5f 44 49 52 45 43 54 49 _REORDER_DIRECTI
59ff0 56 45 29 20 21 3d 3d 20 54 5f 53 54 52 49 4e 47 VE) !== T_STRING
5a000 20 7c 7c 20 72 65 6d 6f 76 65 41 74 74 72 69 62 || removeAttrib
5a010 75 74 65 28 64 6f 6d 2c 20 4c 4f 4f 50 5f 4e 4f ute(dom, LOOP_NO
5a020 5f 52 45 4f 52 44 45 52 5f 44 49 52 45 43 54 49 _REORDER_DIRECTI
5a030 56 45 29 3b 0a 20 20 20 20 76 61 72 20 6b 65 79 VE);. var key
5a040 41 74 74 72 20 3d 20 67 65 74 41 74 74 72 69 62 Attr = getAttrib
5a050 75 74 65 28 64 6f 6d 2c 20 4b 45 59 5f 44 49 52 ute(dom, KEY_DIR
5a060 45 43 54 49 56 45 29 3b 0a 20 20 20 20 76 61 72 ECTIVE);. var
5a070 20 68 61 73 4b 65 79 41 74 74 72 45 78 70 72 20 hasKeyAttrExpr
5a080 3d 20 6b 65 79 41 74 74 72 20 3f 20 63 73 70 5f = keyAttr ? csp_
5a090 74 6d 70 6c 5f 31 2e 68 61 73 45 78 70 72 28 6b tmpl_1.hasExpr(k
5a0a0 65 79 41 74 74 72 29 20 3a 20 66 61 6c 73 65 3b eyAttr) : false;
5a0b0 0a 20 20 20 20 76 61 72 20 74 61 67 4e 61 6d 65 . var tagName
5a0c0 20 3d 20 67 65 74 4e 61 6d 65 28 64 6f 6d 29 3b = getName(dom);
5a0d0 0a 20 20 20 20 76 61 72 20 69 6d 70 6c 20 3d 20 . var impl =
5a0e0 5f 5f 54 41 47 5f 49 4d 50 4c 5b 74 61 67 4e 61 __TAG_IMPL[tagNa
5a0f0 6d 65 5d 3b 0a 20 20 20 20 76 61 72 20 70 61 72 me];. var par
5a100 65 6e 74 4e 6f 64 65 20 3d 20 64 6f 6d 2e 70 61 entNode = dom.pa
5a110 72 65 6e 74 4e 6f 64 65 3b 0a 20 20 20 20 76 61 rentNode;. va
5a120 72 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 3d 20 r placeholder =
5a130 63 72 65 61 74 65 44 4f 4d 50 6c 61 63 65 68 6f createDOMPlaceho
5a140 6c 64 65 72 28 29 3b 0a 20 20 20 20 76 61 72 20 lder();. var
5a150 63 68 69 6c 64 20 3d 20 67 65 74 28 64 6f 6d 29 child = get(dom)
5a160 3b 0a 20 20 20 20 76 61 72 20 69 66 45 78 70 72 ;. var ifExpr
5a170 20 3d 20 67 65 74 41 74 74 72 69 62 75 74 65 28 = getAttribute(
5a180 64 6f 6d 2c 20 43 4f 4e 44 49 54 49 4f 4e 41 4c dom, CONDITIONAL
5a190 5f 44 49 52 45 43 54 49 56 45 29 3b 0a 20 20 20 _DIRECTIVE);.
5a1a0 20 76 61 72 20 74 61 67 73 20 3d 20 5b 5d 3b 0a var tags = [];.
5a1b0 20 20 20 20 76 61 72 20 69 73 4c 6f 6f 70 20 3d var isLoop =
5a1c0 20 74 72 75 65 3b 0a 20 20 20 20 76 61 72 20 69 true;. var i
5a1d0 6e 6e 65 72 48 54 4d 4c 20 3d 20 64 6f 6d 2e 69 nnerHTML = dom.i
5a1e0 6e 6e 65 72 48 54 4d 4c 3b 0a 20 20 20 20 76 61 nnerHTML;. va
5a1f0 72 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 20 3d 20 r isAnonymous =
5a200 21 5f 5f 54 41 47 5f 49 4d 50 4c 5b 74 61 67 4e !__TAG_IMPL[tagN
5a210 61 6d 65 5d 3b 0a 20 20 20 20 76 61 72 20 69 73 ame];. var is
5a220 56 69 72 74 75 61 6c 20 3d 20 64 6f 6d 2e 74 61 Virtual = dom.ta
5a230 67 4e 61 6d 65 20 3d 3d 3d 20 27 56 49 52 54 55 gName === 'VIRTU
5a240 41 4c 27 3b 0a 20 20 20 20 76 61 72 20 6f 6c 64 AL';. var old
5a250 49 74 65 6d 73 20 3d 20 5b 5d 3b 0a 0a 20 20 20 Items = [];..
5a260 20 2f 2f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 // remove the e
5a270 61 63 68 20 70 72 6f 70 65 72 74 79 20 66 72 6f ach property fro
5a280 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 m the original t
5a290 61 67 0a 20 20 20 20 72 65 6d 6f 76 65 41 74 74 ag. removeAtt
5a2a0 72 69 62 75 74 65 28 64 6f 6d 2c 20 4c 4f 4f 50 ribute(dom, LOOP
5a2b0 5f 44 49 52 45 43 54 49 56 45 29 3b 0a 20 20 20 _DIRECTIVE);.
5a2c0 20 72 65 6d 6f 76 65 41 74 74 72 69 62 75 74 65 removeAttribute
5a2d0 28 64 6f 6d 2c 20 4b 45 59 5f 44 49 52 45 43 54 (dom, KEY_DIRECT
5a2e0 49 56 45 29 3b 0a 0a 20 20 20 20 2f 2f 20 70 61 IVE);.. // pa
5a2f0 72 73 65 20 74 68 65 20 65 61 63 68 20 65 78 70 rse the each exp
5a300 72 65 73 73 69 6f 6e 0a 20 20 20 20 65 78 70 72 ression. expr
5a310 20 3d 20 63 73 70 5f 74 6d 70 6c 5f 31 2e 6c 6f = csp_tmpl_1.lo
5a320 6f 70 4b 65 79 73 28 65 78 70 72 29 3b 0a 20 20 opKeys(expr);.
5a330 20 20 65 78 70 72 2e 69 73 4c 6f 6f 70 20 3d 20 expr.isLoop =
5a340 74 72 75 65 3b 0a 0a 20 20 20 20 69 66 20 28 69 true;.. if (i
5a350 66 45 78 70 72 29 20 7b 20 72 65 6d 6f 76 65 41 fExpr) { removeA
5a360 74 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 43 4f ttribute(dom, CO
5a370 4e 44 49 54 49 4f 4e 41 4c 5f 44 49 52 45 43 54 NDITIONAL_DIRECT
5a380 49 56 45 29 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 IVE); }.. //
5a390 69 6e 73 65 72 74 20 61 20 6d 61 72 6b 65 64 20 insert a marked
5a3a0 77 68 65 72 65 20 74 68 65 20 6c 6f 6f 70 20 74 where the loop t
5a3b0 61 67 73 20 77 69 6c 6c 20 62 65 20 69 6e 6a 65 ags will be inje
5a3c0 63 74 65 64 0a 20 20 20 20 70 61 72 65 6e 74 4e cted. parentN
5a3d0 6f 64 65 2e 69 6e 73 65 72 74 42 65 66 6f 72 65 ode.insertBefore
5a3e0 28 70 6c 61 63 65 68 6f 6c 64 65 72 2c 20 64 6f (placeholder, do
5a3f0 6d 29 3b 0a 20 20 20 20 70 61 72 65 6e 74 4e 6f m);. parentNo
5a400 64 65 2e 72 65 6d 6f 76 65 43 68 69 6c 64 28 64 de.removeChild(d
5a410 6f 6d 29 3b 0a 0a 20 20 20 20 65 78 70 72 2e 75 om);.. expr.u
5a420 70 64 61 74 65 20 3d 20 66 75 6e 63 74 69 6f 6e pdate = function
5a430 20 75 70 64 61 74 65 45 61 63 68 28 29 20 7b 0a updateEach() {.
5a440 20 20 20 20 20 20 2f 2f 20 67 65 74 20 74 68 65 // get the
5a450 20 6e 65 77 20 69 74 65 6d 73 20 63 6f 6c 6c 65 new items colle
5a460 63 74 69 6f 6e 0a 20 20 20 20 20 20 65 78 70 72 ction. expr
5a470 2e 76 61 6c 75 65 20 3d 20 63 73 70 5f 74 6d 70 .value = csp_tmp
5a480 6c 5f 31 28 65 78 70 72 2e 76 61 6c 2c 20 70 61 l_1(expr.val, pa
5a490 72 65 6e 74 29 3b 0a 0a 20 20 20 20 20 20 76 61 rent);.. va
5a4a0 72 20 69 74 65 6d 73 20 3d 20 65 78 70 72 2e 76 r items = expr.v
5a4b0 61 6c 75 65 3b 0a 20 20 20 20 20 20 76 61 72 20 alue;. var
5a4c0 66 72 61 67 20 3d 20 63 72 65 61 74 65 46 72 61 frag = createFra
5a4d0 67 6d 65 6e 74 28 29 3b 0a 20 20 20 20 20 20 76 gment();. v
5a4e0 61 72 20 69 73 4f 62 6a 65 63 74 20 3d 20 21 69 ar isObject = !i
5a4f0 73 41 72 72 61 79 28 69 74 65 6d 73 29 20 26 26 sArray(items) &&
5a500 20 21 69 73 53 74 72 69 6e 67 28 69 74 65 6d 73 !isString(items
5a510 29 3b 0a 20 20 20 20 20 20 76 61 72 20 72 6f 6f );. var roo
5a520 74 20 3d 20 70 6c 61 63 65 68 6f 6c 64 65 72 2e t = placeholder.
5a530 70 61 72 65 6e 74 4e 6f 64 65 3b 0a 20 20 20 20 parentNode;.
5a540 20 20 76 61 72 20 74 6d 70 49 74 65 6d 73 20 3d var tmpItems =
5a550 20 5b 5d 3b 0a 20 20 20 20 20 20 76 61 72 20 68 [];. var h
5a560 61 73 4b 65 79 73 20 3d 20 69 73 4f 62 6a 65 63 asKeys = isObjec
5a570 74 20 26 26 20 21 21 69 74 65 6d 73 3b 0a 0a 20 t && !!items;..
5a580 20 20 20 20 20 2f 2f 20 69 66 20 74 68 69 73 20 // if this
5a590 44 4f 4d 20 77 61 73 20 72 65 6d 6f 76 65 64 20 DOM was removed
5a5a0 74 68 65 20 75 70 64 61 74 65 20 68 65 72 65 20 the update here
5a5b0 69 73 20 75 73 65 6c 65 73 73 0a 20 20 20 20 20 is useless.
5a5c0 20 2f 2f 20 74 68 69 73 20 63 6f 6e 64 69 74 69 // this conditi
5a5d0 6f 6e 20 66 69 78 65 73 20 61 6c 73 6f 20 61 20 on fixes also a
5a5e0 77 65 69 72 64 20 61 73 79 6e 63 20 69 73 73 75 weird async issu
5a5f0 65 20 6f 6e 20 49 45 20 69 6e 20 6f 75 72 20 75 e on IE in our u
5a600 6e 69 74 20 74 65 73 74 0a 20 20 20 20 20 20 69 nit test. i
5a610 66 20 28 21 72 6f 6f 74 29 20 7b 20 72 65 74 75 f (!root) { retu
5a620 72 6e 20 7d 0a 0a 20 20 20 20 20 20 2f 2f 20 6f rn }.. // o
5a630 62 6a 65 63 74 20 6c 6f 6f 70 2e 20 61 6e 79 20 bject loop. any
5a640 63 68 61 6e 67 65 73 20 63 61 75 73 65 20 66 75 changes cause fu
5a650 6c 6c 20 72 65 64 72 61 77 0a 20 20 20 20 20 20 ll redraw.
5a660 69 66 20 28 69 73 4f 62 6a 65 63 74 29 20 7b 0a if (isObject) {.
5a670 20 20 20 20 20 20 20 20 69 74 65 6d 73 20 3d 20 items =
5a680 69 74 65 6d 73 20 3f 20 4f 62 6a 65 63 74 2e 6b items ? Object.k
5a690 65 79 73 28 69 74 65 6d 73 29 2e 6d 61 70 28 66 eys(items).map(f
5a6a0 75 6e 63 74 69 6f 6e 20 28 6b 65 79 29 20 7b 20 unction (key) {
5a6b0 72 65 74 75 72 6e 20 6d 6b 69 74 65 6d 28 65 78 return mkitem(ex
5a6c0 70 72 2c 20 69 74 65 6d 73 5b 6b 65 79 5d 2c 20 pr, items[key],
5a6d0 6b 65 79 29 3b 20 7d 29 20 3a 20 5b 5d 3b 0a 20 key); }) : [];.
5a6e0 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 2f 2f }.. //
5a6f0 20 73 74 6f 72 65 20 74 68 65 20 61 6d 6f 75 6e store the amoun
5a700 74 20 6f 66 20 66 69 6c 74 65 72 65 64 20 69 74 t of filtered it
5a710 65 6d 73 0a 20 20 20 20 20 20 76 61 72 20 66 69 ems. var fi
5a720 6c 74 65 72 65 64 49 74 65 6d 73 43 6f 75 6e 74 lteredItemsCount
5a730 20 3d 20 30 3b 0a 0a 20 20 20 20 20 20 2f 2f 20 = 0;.. //
5a740 6c 6f 6f 70 20 61 6c 6c 20 74 68 65 20 6e 65 77 loop all the new
5a750 20 69 74 65 6d 73 0a 20 20 20 20 20 20 65 61 63 items. eac
5a760 68 28 69 74 65 6d 73 2c 20 66 75 6e 63 74 69 6f h(items, functio
5a770 6e 20 28 5f 69 74 65 6d 2c 20 69 6e 64 65 78 29 n (_item, index)
5a780 20 7b 0a 20 20 20 20 20 20 20 20 76 61 72 20 69 {. var i
5a790 20 3d 20 69 6e 64 65 78 20 2d 20 66 69 6c 74 65 = index - filte
5a7a0 72 65 64 49 74 65 6d 73 43 6f 75 6e 74 3b 0a 20 redItemsCount;.
5a7b0 20 20 20 20 20 20 20 76 61 72 20 69 74 65 6d 20 var item
5a7c0 3d 20 21 68 61 73 4b 65 79 73 20 26 26 20 65 78 = !hasKeys && ex
5a7d0 70 72 2e 6b 65 79 20 3f 20 6d 6b 69 74 65 6d 28 pr.key ? mkitem(
5a7e0 65 78 70 72 2c 20 5f 69 74 65 6d 2c 20 69 6e 64 expr, _item, ind
5a7f0 65 78 29 20 3a 20 5f 69 74 65 6d 3b 0a 0a 20 20 ex) : _item;..
5a800 20 20 20 20 20 20 2f 2f 20 73 6b 69 70 20 74 68 // skip th
5a810 69 73 20 69 74 65 6d 20 62 65 63 61 75 73 65 20 is item because
5a820 69 74 20 6d 75 73 74 20 62 65 20 66 69 6c 74 65 it must be filte
5a830 72 65 64 0a 20 20 20 20 20 20 20 20 69 66 20 28 red. if (
5a840 69 66 45 78 70 72 20 26 26 20 21 63 73 70 5f 74 ifExpr && !csp_t
5a850 6d 70 6c 5f 31 28 69 66 45 78 70 72 2c 20 65 78 mpl_1(ifExpr, ex
5a860 74 65 6e 64 28 63 72 65 61 74 65 28 70 61 72 65 tend(create(pare
5a870 6e 74 29 2c 20 69 74 65 6d 29 29 29 20 7b 0a 20 nt), item))) {.
5a880 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 72 65 filtere
5a890 64 49 74 65 6d 73 43 6f 75 6e 74 20 2b 2b 3b 0a dItemsCount ++;.
5a8a0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
5a8b0 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 . }..
5a8c0 20 20 20 20 76 61 72 20 69 74 65 6d 49 64 20 3d var itemId =
5a8d0 20 67 65 74 49 74 65 6d 49 64 28 6b 65 79 41 74 getItemId(keyAt
5a8e0 74 72 2c 20 5f 69 74 65 6d 2c 20 69 74 65 6d 2c tr, _item, item,
5a8f0 20 68 61 73 4b 65 79 41 74 74 72 45 78 70 72 29 hasKeyAttrExpr)
5a900 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 72 65 6f ;. // reo
5a910 72 64 65 72 20 6f 6e 6c 79 20 69 66 20 74 68 65 rder only if the
5a920 20 69 74 65 6d 73 20 61 72 65 20 6e 6f 74 20 6f items are not o
5a930 62 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 2f bjects. /
5a940 2f 20 6f 72 20 61 20 6b 65 79 20 61 74 74 72 69 / or a key attri
5a950 62 75 74 65 20 68 61 73 20 62 65 65 6e 20 70 72 bute has been pr
5a960 6f 76 69 64 65 64 0a 20 20 20 20 20 20 20 20 76 ovided. v
5a970 61 72 20 64 6f 52 65 6f 72 64 65 72 20 3d 20 21 ar doReorder = !
5a980 69 73 4f 62 6a 65 63 74 20 26 26 20 6d 75 73 74 isObject && must
5a990 52 65 6f 72 64 65 72 20 26 26 20 74 79 70 65 6f Reorder && typeo
5a9a0 66 20 5f 69 74 65 6d 20 3d 3d 3d 20 54 5f 4f 42 f _item === T_OB
5a9b0 4a 45 43 54 20 7c 7c 20 6b 65 79 41 74 74 72 3b JECT || keyAttr;
5a9c0 0a 20 20 20 20 20 20 20 20 76 61 72 20 6f 6c 64 . var old
5a9d0 50 6f 73 20 3d 20 6f 6c 64 49 74 65 6d 73 2e 69 Pos = oldItems.i
5a9e0 6e 64 65 78 4f 66 28 69 74 65 6d 49 64 29 3b 0a ndexOf(itemId);.
5a9f0 20 20 20 20 20 20 20 20 76 61 72 20 69 73 4e 65 var isNe
5aa00 77 20 3d 20 6f 6c 64 50 6f 73 20 3d 3d 3d 20 2d w = oldPos === -
5aa10 31 3b 0a 20 20 20 20 20 20 20 20 76 61 72 20 70 1;. var p
5aa20 6f 73 20 3d 20 21 69 73 4e 65 77 20 26 26 20 64 os = !isNew && d
5aa30 6f 52 65 6f 72 64 65 72 20 3f 20 6f 6c 64 50 6f oReorder ? oldPo
5aa40 73 20 3a 20 69 3b 0a 20 20 20 20 20 20 20 20 2f s : i;. /
5aa50 2f 20 64 6f 65 73 20 61 20 74 61 67 20 65 78 69 / does a tag exi
5aa60 73 74 20 69 6e 20 74 68 69 73 20 70 6f 73 69 74 st in this posit
5aa70 69 6f 6e 3f 0a 20 20 20 20 20 20 20 20 76 61 72 ion?. var
5aa80 20 74 61 67 20 3d 20 74 61 67 73 5b 70 6f 73 5d tag = tags[pos]
5aa90 3b 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d 75 ;. var mu
5aaa0 73 74 41 70 70 65 6e 64 20 3d 20 69 20 3e 3d 20 stAppend = i >=
5aab0 6f 6c 64 49 74 65 6d 73 2e 6c 65 6e 67 74 68 3b oldItems.length;
5aac0 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d 75 73 . var mus
5aad0 74 43 72 65 61 74 65 20 3d 20 64 6f 52 65 6f 72 tCreate = doReor
5aae0 64 65 72 20 26 26 20 69 73 4e 65 77 20 7c 7c 20 der && isNew ||
5aaf0 21 64 6f 52 65 6f 72 64 65 72 20 26 26 20 21 74 !doReorder && !t
5ab00 61 67 20 7c 7c 20 21 74 61 67 73 5b 69 5d 3b 0a ag || !tags[i];.
5ab10 0a 20 20 20 20 20 20 20 20 2f 2f 20 6e 65 77 20 . // new
5ab20 74 61 67 0a 20 20 20 20 20 20 20 20 69 66 20 28 tag. if (
5ab30 6d 75 73 74 43 72 65 61 74 65 29 20 7b 0a 20 20 mustCreate) {.
5ab40 20 20 20 20 20 20 20 20 74 61 67 20 3d 20 63 72 tag = cr
5ab50 65 61 74 65 54 61 67 28 69 6d 70 6c 2c 20 7b 0a eateTag(impl, {.
5ab60 20 20 20 20 20 20 20 20 20 20 20 20 70 61 72 65 pare
5ab70 6e 74 3a 20 70 61 72 65 6e 74 2c 0a 20 20 20 20 nt: parent,.
5ab80 20 20 20 20 20 20 20 20 69 73 4c 6f 6f 70 3a 20 isLoop:
5ab90 69 73 4c 6f 6f 70 2c 0a 20 20 20 20 20 20 20 20 isLoop,.
5aba0 20 20 20 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 3a isAnonymous:
5abb0 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 2c 0a 20 20 isAnonymous,.
5abc0 20 20 20 20 20 20 20 20 20 20 74 61 67 4e 61 6d tagNam
5abd0 65 3a 20 74 61 67 4e 61 6d 65 2c 0a 20 20 20 20 e: tagName,.
5abe0 20 20 20 20 20 20 20 20 72 6f 6f 74 3a 20 64 6f root: do
5abf0 6d 2e 63 6c 6f 6e 65 4e 6f 64 65 28 69 73 41 6e m.cloneNode(isAn
5ac00 6f 6e 79 6d 6f 75 73 29 2c 0a 20 20 20 20 20 20 onymous),.
5ac10 20 20 20 20 20 20 69 74 65 6d 3a 20 69 74 65 6d item: item
5ac20 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e ,. in
5ac30 64 65 78 3a 20 69 2c 0a 20 20 20 20 20 20 20 20 dex: i,.
5ac40 20 20 7d 2c 20 69 6e 6e 65 72 48 54 4d 4c 29 3b }, innerHTML);
5ac50 0a 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6d .. // m
5ac60 6f 75 6e 74 20 74 68 65 20 74 61 67 0a 20 20 20 ount the tag.
5ac70 20 20 20 20 20 20 20 74 61 67 2e 6d 6f 75 6e 74 tag.mount
5ac80 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 69 ();.. i
5ac90 66 20 28 6d 75 73 74 41 70 70 65 6e 64 29 0a 20 f (mustAppend).
5aca0 20 20 20 20 20 20 20 20 20 20 20 7b 20 61 70 70 { app
5acb0 65 6e 64 2e 61 70 70 6c 79 28 74 61 67 2c 20 5b end.apply(tag, [
5acc0 66 72 61 67 20 7c 7c 20 72 6f 6f 74 2c 20 69 73 frag || root, is
5acd0 56 69 72 74 75 61 6c 5d 29 3b 20 7d 0a 20 20 20 Virtual]); }.
5ace0 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 else.
5acf0 20 20 20 20 20 20 20 20 7b 20 69 6e 73 65 72 74 { insert
5ad00 2e 61 70 70 6c 79 28 74 61 67 2c 20 5b 72 6f 6f .apply(tag, [roo
5ad10 74 2c 20 74 61 67 73 5b 69 5d 2c 20 69 73 56 69 t, tags[i], isVi
5ad20 72 74 75 61 6c 5d 29 3b 20 7d 0a 0a 20 20 20 20 rtual]); }..
5ad30 20 20 20 20 20 20 69 66 20 28 21 6d 75 73 74 41 if (!mustA
5ad40 70 70 65 6e 64 29 20 7b 20 6f 6c 64 49 74 65 6d ppend) { oldItem
5ad50 73 2e 73 70 6c 69 63 65 28 69 2c 20 30 2c 20 69 s.splice(i, 0, i
5ad60 74 65 6d 29 3b 20 7d 0a 20 20 20 20 20 20 20 20 tem); }.
5ad70 20 20 74 61 67 73 2e 73 70 6c 69 63 65 28 69 2c tags.splice(i,
5ad80 20 30 2c 20 74 61 67 29 3b 0a 20 20 20 20 20 20 0, tag);.
5ad90 20 20 20 20 69 66 20 28 63 68 69 6c 64 29 20 7b if (child) {
5ada0 20 61 72 72 61 79 69 73 68 41 64 64 28 70 61 72 arrayishAdd(par
5adb0 65 6e 74 2e 74 61 67 73 2c 20 74 61 67 4e 61 6d ent.tags, tagNam
5adc0 65 2c 20 74 61 67 2c 20 74 72 75 65 29 3b 20 7d e, tag, true); }
5add0 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 . } else
5ade0 69 66 20 28 70 6f 73 20 21 3d 3d 20 69 20 26 26 if (pos !== i &&
5adf0 20 64 6f 52 65 6f 72 64 65 72 29 20 7b 0a 20 20 doReorder) {.
5ae00 20 20 20 20 20 20 20 20 2f 2f 20 6d 6f 76 65 0a // move.
5ae10 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6b 65 if (ke
5ae20 79 41 74 74 72 20 7c 7c 20 63 6f 6e 74 61 69 6e yAttr || contain
5ae30 73 28 69 74 65 6d 73 2c 20 6f 6c 64 49 74 65 6d s(items, oldItem
5ae40 73 5b 70 6f 73 5d 29 29 20 7b 0a 20 20 20 20 20 s[pos])) {.
5ae50 20 20 20 20 20 20 20 6d 6f 76 65 2e 61 70 70 6c move.appl
5ae60 79 28 74 61 67 2c 20 5b 72 6f 6f 74 2c 20 74 61 y(tag, [root, ta
5ae70 67 73 5b 69 5d 2c 20 69 73 56 69 72 74 75 61 6c gs[i], isVirtual
5ae80 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ]);.
5ae90 2f 2f 20 6d 6f 76 65 20 74 68 65 20 6f 6c 64 20 // move the old
5aea0 74 61 67 20 69 6e 73 74 61 6e 63 65 0a 20 20 20 tag instance.
5aeb0 20 20 20 20 20 20 20 20 20 74 61 67 73 2e 73 70 tags.sp
5aec0 6c 69 63 65 28 69 2c 20 30 2c 20 74 61 67 73 2e lice(i, 0, tags.
5aed0 73 70 6c 69 63 65 28 70 6f 73 2c 20 31 29 5b 30 splice(pos, 1)[0
5aee0 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ]);.
5aef0 2f 2f 20 6d 6f 76 65 20 74 68 65 20 6f 6c 64 20 // move the old
5af00 69 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 item.
5af10 20 6f 6c 64 49 74 65 6d 73 2e 73 70 6c 69 63 65 oldItems.splice
5af20 28 69 2c 20 30 2c 20 6f 6c 64 49 74 65 6d 73 2e (i, 0, oldItems.
5af30 73 70 6c 69 63 65 28 70 6f 73 2c 20 31 29 5b 30 splice(pos, 1)[0
5af40 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 7d 0a ]);. }.
5af50 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 75 70 . // up
5af60 64 61 74 65 20 74 68 65 20 70 6f 73 69 74 69 6f date the positio
5af70 6e 20 61 74 74 72 69 62 75 74 65 20 69 66 20 69 n attribute if i
5af80 74 20 65 78 69 73 74 73 0a 20 20 20 20 20 20 20 t exists.
5af90 20 20 20 69 66 20 28 65 78 70 72 2e 70 6f 73 29 if (expr.pos)
5afa0 20 7b 20 74 61 67 5b 65 78 70 72 2e 70 6f 73 5d { tag[expr.pos]
5afb0 20 3d 20 69 3b 20 7d 0a 0a 20 20 20 20 20 20 20 = i; }..
5afc0 20 20 20 2f 2f 20 69 66 20 74 68 65 20 6c 6f 6f // if the loo
5afd0 70 20 74 61 67 73 20 61 72 65 20 6e 6f 74 20 63 p tags are not c
5afe0 75 73 74 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 ustom.
5aff0 2f 2f 20 77 65 20 6e 65 65 64 20 74 6f 20 6d 6f // we need to mo
5b000 76 65 20 61 6c 6c 20 74 68 65 69 72 20 63 75 73 ve all their cus
5b010 74 6f 6d 20 74 61 67 73 20 69 6e 74 6f 20 74 68 tom tags into th
5b020 65 20 72 69 67 68 74 20 70 6f 73 69 74 69 6f 6e e right position
5b030 0a 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 . if (!
5b040 63 68 69 6c 64 20 26 26 20 74 61 67 2e 74 61 67 child && tag.tag
5b050 73 29 20 7b 20 6d 6f 76 65 4e 65 73 74 65 64 54 s) { moveNestedT
5b060 61 67 73 2e 63 61 6c 6c 28 74 61 67 2c 20 69 29 ags.call(tag, i)
5b070 3b 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 ; }. }..
5b080 20 20 20 20 20 20 20 2f 2f 20 63 61 63 68 65 20 // cache
5b090 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 69 74 65 the original ite
5b0a0 6d 20 74 6f 20 75 73 65 20 69 74 20 69 6e 20 74 m to use it in t
5b0b0 68 65 20 65 76 65 6e 74 73 20 62 6f 75 6e 64 20 he events bound
5b0c0 74 6f 20 74 68 69 73 20 6e 6f 64 65 0a 20 20 20 to this node.
5b0d0 20 20 20 20 20 2f 2f 20 61 6e 64 20 69 74 73 20 // and its
5b0e0 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 20 20 20 children.
5b0f0 20 65 78 74 65 6e 64 28 74 61 67 2e 5f 5f 2c 20 extend(tag.__,
5b100 7b 0a 20 20 20 20 20 20 20 20 20 20 69 74 65 6d {. item
5b110 3a 20 69 74 65 6d 2c 0a 20 20 20 20 20 20 20 20 : item,.
5b120 20 20 69 6e 64 65 78 3a 20 69 2c 0a 20 20 20 20 index: i,.
5b130 20 20 20 20 20 20 70 61 72 65 6e 74 3a 20 70 61 parent: pa
5b140 72 65 6e 74 0a 20 20 20 20 20 20 20 20 7d 29 3b rent. });
5b150 0a 0a 20 20 20 20 20 20 20 20 74 6d 70 49 74 65 .. tmpIte
5b160 6d 73 5b 69 5d 20 3d 20 69 74 65 6d 49 64 3b 0a ms[i] = itemId;.
5b170 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 6d 75 . if (!mu
5b180 73 74 43 72 65 61 74 65 29 20 7b 20 74 61 67 2e stCreate) { tag.
5b190 75 70 64 61 74 65 28 69 74 65 6d 29 3b 20 7d 0a update(item); }.
5b1a0 20 20 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 20 });..
5b1b0 20 2f 2f 20 72 65 6d 6f 76 65 20 74 68 65 20 72 // remove the r
5b1c0 65 64 75 6e 64 61 6e 74 20 74 61 67 73 0a 20 20 edundant tags.
5b1d0 20 20 20 20 75 6e 6d 6f 75 6e 74 52 65 64 75 6e unmountRedun
5b1e0 64 61 6e 74 28 69 74 65 6d 73 2c 20 74 61 67 73 dant(items, tags
5b1f0 2c 20 66 69 6c 74 65 72 65 64 49 74 65 6d 73 43 , filteredItemsC
5b200 6f 75 6e 74 29 3b 0a 0a 20 20 20 20 20 20 2f 2f ount);.. //
5b210 20 63 6c 6f 6e 65 20 74 68 65 20 69 74 65 6d 73 clone the items
5b220 20 61 72 72 61 79 0a 20 20 20 20 20 20 6f 6c 64 array. old
5b230 49 74 65 6d 73 20 3d 20 74 6d 70 49 74 65 6d 73 Items = tmpItems
5b240 2e 73 6c 69 63 65 28 29 3b 0a 0a 20 20 20 20 20 .slice();..
5b250 20 72 6f 6f 74 2e 69 6e 73 65 72 74 42 65 66 6f root.insertBefo
5b260 72 65 28 66 72 61 67 2c 20 70 6c 61 63 65 68 6f re(frag, placeho
5b270 6c 64 65 72 29 3b 0a 20 20 20 20 7d 3b 0a 0a 20 lder);. };..
5b280 20 20 20 65 78 70 72 2e 75 6e 6d 6f 75 6e 74 20 expr.unmount
5b290 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a = function () {.
5b2a0 20 20 20 20 20 20 65 61 63 68 28 74 61 67 73 2c each(tags,
5b2b0 20 66 75 6e 63 74 69 6f 6e 20 28 74 29 20 7b 20 function (t) {
5b2c0 74 2e 75 6e 6d 6f 75 6e 74 28 29 3b 20 7d 29 3b t.unmount(); });
5b2d0 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 72 65 74 . };.. ret
5b2e0 75 72 6e 20 65 78 70 72 0a 20 20 7d 0a 0a 20 20 urn expr. }..
5b2f0 76 61 72 20 52 65 66 45 78 70 72 20 3d 20 7b 0a var RefExpr = {.
5b300 20 20 20 20 69 6e 69 74 3a 20 66 75 6e 63 74 69 init: functi
5b310 6f 6e 20 69 6e 69 74 28 64 6f 6d 2c 20 70 61 72 on init(dom, par
5b320 65 6e 74 2c 20 61 74 74 72 4e 61 6d 65 2c 20 61 ent, attrName, a
5b330 74 74 72 56 61 6c 75 65 29 20 7b 0a 20 20 20 20 ttrValue) {.
5b340 20 20 74 68 69 73 2e 64 6f 6d 20 3d 20 64 6f 6d this.dom = dom
5b350 3b 0a 20 20 20 20 20 20 74 68 69 73 2e 61 74 74 ;. this.att
5b360 72 20 3d 20 61 74 74 72 4e 61 6d 65 3b 0a 20 20 r = attrName;.
5b370 20 20 20 20 74 68 69 73 2e 72 61 77 56 61 6c 75 this.rawValu
5b380 65 20 3d 20 61 74 74 72 56 61 6c 75 65 3b 0a 20 e = attrValue;.
5b390 20 20 20 20 20 74 68 69 73 2e 70 61 72 65 6e 74 this.parent
5b3a0 20 3d 20 70 61 72 65 6e 74 3b 0a 20 20 20 20 20 = parent;.
5b3b0 20 74 68 69 73 2e 68 61 73 45 78 70 20 3d 20 63 this.hasExp = c
5b3c0 73 70 5f 74 6d 70 6c 5f 31 2e 68 61 73 45 78 70 sp_tmpl_1.hasExp
5b3d0 72 28 61 74 74 72 56 61 6c 75 65 29 3b 0a 20 20 r(attrValue);.
5b3e0 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 0a return this.
5b3f0 20 20 20 20 7d 2c 0a 20 20 20 20 75 70 64 61 74 },. updat
5b400 65 3a 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 e: function upda
5b410 74 65 28 29 20 7b 0a 20 20 20 20 20 20 76 61 72 te() {. var
5b420 20 6f 6c 64 20 3d 20 74 68 69 73 2e 76 61 6c 75 old = this.valu
5b430 65 3b 0a 20 20 20 20 20 20 76 61 72 20 63 75 73 e;. var cus
5b440 74 6f 6d 50 61 72 65 6e 74 20 3d 20 74 68 69 73 tomParent = this
5b450 2e 70 61 72 65 6e 74 20 26 26 20 67 65 74 49 6d .parent && getIm
5b460 6d 65 64 69 61 74 65 43 75 73 74 6f 6d 50 61 72 mediateCustomPar
5b470 65 6e 74 28 74 68 69 73 2e 70 61 72 65 6e 74 29 ent(this.parent)
5b480 3b 0a 20 20 20 20 20 20 2f 2f 20 69 66 20 74 68 ;. // if th
5b490 65 20 72 65 66 65 72 65 6e 63 65 64 20 65 6c 65 e referenced ele
5b4a0 6d 65 6e 74 20 69 73 20 61 20 63 75 73 74 6f 6d ment is a custom
5b4b0 20 74 61 67 2c 20 74 68 65 6e 20 77 65 20 73 65 tag, then we se
5b4c0 74 20 74 68 65 20 74 61 67 20 69 74 73 65 6c 66 t the tag itself
5b4d0 2c 20 72 61 74 68 65 72 20 74 68 61 6e 20 44 4f , rather than DO
5b4e0 4d 0a 20 20 20 20 20 20 76 61 72 20 74 61 67 4f M. var tagO
5b4f0 72 44 6f 6d 20 3d 20 74 68 69 73 2e 64 6f 6d 2e rDom = this.dom.
5b500 5f 5f 72 65 66 20 7c 7c 20 74 68 69 73 2e 74 61 __ref || this.ta
5b510 67 20 7c 7c 20 74 68 69 73 2e 64 6f 6d 3b 0a 0a g || this.dom;..
5b520 20 20 20 20 20 20 74 68 69 73 2e 76 61 6c 75 65 this.value
5b530 20 3d 20 74 68 69 73 2e 68 61 73 45 78 70 20 3f = this.hasExp ?
5b540 20 63 73 70 5f 74 6d 70 6c 5f 31 28 74 68 69 73 csp_tmpl_1(this
5b550 2e 72 61 77 56 61 6c 75 65 2c 20 74 68 69 73 2e .rawValue, this.
5b560 70 61 72 65 6e 74 29 20 3a 20 74 68 69 73 2e 72 parent) : this.r
5b570 61 77 56 61 6c 75 65 3b 0a 0a 20 20 20 20 20 20 awValue;..
5b580 2f 2f 20 74 68 65 20 6e 61 6d 65 20 63 68 61 6e // the name chan
5b590 67 65 64 2c 20 73 6f 20 77 65 20 6e 65 65 64 20 ged, so we need
5b5a0 74 6f 20 72 65 6d 6f 76 65 20 69 74 20 66 72 6f to remove it fro
5b5b0 6d 20 74 68 65 20 6f 6c 64 20 6b 65 79 20 28 69 m the old key (i
5b5c0 66 20 70 72 65 73 65 6e 74 29 0a 20 20 20 20 20 f present).
5b5d0 20 69 66 20 28 21 69 73 42 6c 61 6e 6b 28 6f 6c if (!isBlank(ol
5b5e0 64 29 20 26 26 20 63 75 73 74 6f 6d 50 61 72 65 d) && customPare
5b5f0 6e 74 29 20 7b 20 61 72 72 61 79 69 73 68 52 65 nt) { arrayishRe
5b600 6d 6f 76 65 28 63 75 73 74 6f 6d 50 61 72 65 6e move(customParen
5b610 74 2e 72 65 66 73 2c 20 6f 6c 64 2c 20 74 61 67 t.refs, old, tag
5b620 4f 72 44 6f 6d 29 3b 20 7d 0a 20 20 20 20 20 20 OrDom); }.
5b630 69 66 20 28 21 69 73 42 6c 61 6e 6b 28 74 68 69 if (!isBlank(thi
5b640 73 2e 76 61 6c 75 65 29 20 26 26 20 69 73 53 74 s.value) && isSt
5b650 72 69 6e 67 28 74 68 69 73 2e 76 61 6c 75 65 29 ring(this.value)
5b660 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 ) {. // a
5b670 64 64 20 69 74 20 74 6f 20 74 68 65 20 72 65 66 dd it to the ref
5b680 73 20 6f 66 20 70 61 72 65 6e 74 20 74 61 67 20 s of parent tag
5b690 28 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 77 (this behavior w
5b6a0 61 73 20 63 68 61 6e 67 65 64 20 3e 3d 33 2e 30 as changed >=3.0
5b6b0 29 0a 20 20 20 20 20 20 20 20 69 66 20 28 63 75 ). if (cu
5b6c0 73 74 6f 6d 50 61 72 65 6e 74 29 20 7b 20 61 72 stomParent) { ar
5b6d0 72 61 79 69 73 68 41 64 64 28 0a 20 20 20 20 20 rayishAdd(.
5b6e0 20 20 20 20 20 63 75 73 74 6f 6d 50 61 72 65 6e customParen
5b6f0 74 2e 72 65 66 73 2c 0a 20 20 20 20 20 20 20 20 t.refs,.
5b700 20 20 74 68 69 73 2e 76 61 6c 75 65 2c 0a 20 20 this.value,.
5b710 20 20 20 20 20 20 20 20 74 61 67 4f 72 44 6f 6d tagOrDom
5b720 2c 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 75 ,. // u
5b730 73 65 20 61 6e 20 61 72 72 61 79 20 69 66 20 69 se an array if i
5b740 74 27 73 20 61 20 6c 6f 6f 70 65 64 20 6e 6f 64 t's a looped nod
5b750 65 20 61 6e 64 20 74 68 65 20 72 65 66 20 69 73 e and the ref is
5b760 20 6e 6f 74 20 61 6e 20 65 78 70 72 65 73 73 69 not an expressi
5b770 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 6e 75 6c on. nul
5b780 6c 2c 0a 20 20 20 20 20 20 20 20 20 20 74 68 69 l,. thi
5b790 73 2e 70 61 72 65 6e 74 2e 5f 5f 2e 69 6e 64 65 s.parent.__.inde
5b7a0 78 0a 20 20 20 20 20 20 20 20 29 3b 20 7d 0a 0a x. ); }..
5b7b0 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 if (this
5b7c0 2e 76 61 6c 75 65 20 21 3d 3d 20 6f 6c 64 29 20 .value !== old)
5b7d0 7b 0a 20 20 20 20 20 20 20 20 20 20 73 65 74 41 {. setA
5b7e0 74 74 72 69 62 75 74 65 28 74 68 69 73 2e 64 6f ttribute(this.do
5b7f0 6d 2c 20 74 68 69 73 2e 61 74 74 72 2c 20 74 68 m, this.attr, th
5b800 69 73 2e 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 is.value);.
5b810 20 20 20 7d 0a 20 20 20 20 20 20 7d 20 65 6c 73 }. } els
5b820 65 20 7b 0a 20 20 20 20 20 20 20 20 72 65 6d 6f e {. remo
5b830 76 65 41 74 74 72 69 62 75 74 65 28 74 68 69 73 veAttribute(this
5b840 2e 64 6f 6d 2c 20 74 68 69 73 2e 61 74 74 72 29 .dom, this.attr)
5b850 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ;. }..
5b860 20 2f 2f 20 63 61 63 68 65 20 74 68 65 20 72 65 // cache the re
5b870 66 20 62 6f 75 6e 64 20 74 6f 20 74 68 69 73 20 f bound to this
5b880 64 6f 6d 20 6e 6f 64 65 0a 20 20 20 20 20 20 2f dom node. /
5b890 2f 20 74 6f 20 72 65 75 73 65 20 69 74 20 69 6e / to reuse it in
5b8a0 20 66 75 74 75 72 65 20 28 73 65 65 20 61 6c 73 future (see als
5b8b0 6f 20 23 32 33 32 39 29 0a 20 20 20 20 20 20 69 o #2329). i
5b8c0 66 20 28 21 74 68 69 73 2e 64 6f 6d 2e 5f 5f 72 f (!this.dom.__r
5b8d0 65 66 29 20 7b 20 74 68 69 73 2e 64 6f 6d 2e 5f ef) { this.dom._
5b8e0 5f 72 65 66 20 3d 20 74 61 67 4f 72 44 6f 6d 3b _ref = tagOrDom;
5b8f0 20 7d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 75 6e }. },. un
5b900 6d 6f 75 6e 74 3a 20 66 75 6e 63 74 69 6f 6e 20 mount: function
5b910 75 6e 6d 6f 75 6e 74 28 29 20 7b 0a 20 20 20 20 unmount() {.
5b920 20 20 76 61 72 20 74 61 67 4f 72 44 6f 6d 20 3d var tagOrDom =
5b930 20 74 68 69 73 2e 74 61 67 20 7c 7c 20 74 68 69 this.tag || thi
5b940 73 2e 64 6f 6d 3b 0a 20 20 20 20 20 20 76 61 72 s.dom;. var
5b950 20 63 75 73 74 6f 6d 50 61 72 65 6e 74 20 3d 20 customParent =
5b960 74 68 69 73 2e 70 61 72 65 6e 74 20 26 26 20 67 this.parent && g
5b970 65 74 49 6d 6d 65 64 69 61 74 65 43 75 73 74 6f etImmediateCusto
5b980 6d 50 61 72 65 6e 74 28 74 68 69 73 2e 70 61 72 mParent(this.par
5b990 65 6e 74 29 3b 0a 20 20 20 20 20 20 69 66 20 28 ent);. if (
5b9a0 21 69 73 42 6c 61 6e 6b 28 74 68 69 73 2e 76 61 !isBlank(this.va
5b9b0 6c 75 65 29 20 26 26 20 63 75 73 74 6f 6d 50 61 lue) && customPa
5b9c0 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 7b 20 rent). {
5b9d0 61 72 72 61 79 69 73 68 52 65 6d 6f 76 65 28 63 arrayishRemove(c
5b9e0 75 73 74 6f 6d 50 61 72 65 6e 74 2e 72 65 66 73 ustomParent.refs
5b9f0 2c 20 74 68 69 73 2e 76 61 6c 75 65 2c 20 74 61 , this.value, ta
5ba00 67 4f 72 44 6f 6d 29 3b 20 7d 0a 20 20 20 20 7d gOrDom); }. }
5ba10 0a 20 20 7d 3b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 . };.. /**.
5ba20 2a 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 72 * Create a new r
5ba30 65 66 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 ef directive.
5ba40 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 48 54 4d * @param { HTM
5ba50 4c 45 6c 65 6d 65 6e 74 20 7d 20 64 6f 6d 20 2d LElement } dom -
5ba60 20 64 6f 6d 20 6e 6f 64 65 20 68 61 76 69 6e 67 dom node having
5ba70 20 74 68 65 20 72 65 66 20 61 74 74 72 69 62 75 the ref attribu
5ba80 74 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 te. * @param
5ba90 20 7b 20 54 61 67 20 7d 20 63 6f 6e 74 65 78 74 { Tag } context
5baa0 20 2d 20 74 61 67 20 69 6e 73 74 61 6e 63 65 20 - tag instance
5bab0 77 68 65 72 65 20 74 68 65 20 44 4f 4d 20 6e 6f where the DOM no
5bac0 64 65 20 69 73 20 6c 6f 63 61 74 65 64 0a 20 20 de is located.
5bad0 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 * @param { St
5bae0 72 69 6e 67 20 7d 20 61 74 74 72 4e 61 6d 65 20 ring } attrName
5baf0 2d 20 65 69 74 68 65 72 20 27 72 65 66 27 20 6f - either 'ref' o
5bb00 72 20 27 64 61 74 61 2d 72 65 66 27 0a 20 20 20 r 'data-ref'.
5bb10 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
5bb20 69 6e 67 20 7d 20 61 74 74 72 56 61 6c 75 65 20 ing } attrValue
5bb30 2d 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 72 - value of the r
5bb40 65 66 20 61 74 74 72 69 62 75 74 65 0a 20 20 20 ef attribute.
5bb50 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 52 65 66 * @returns { Ref
5bb60 45 78 70 72 20 7d 20 61 20 6e 65 77 20 52 65 66 Expr } a new Ref
5bb70 45 78 70 72 20 6f 62 6a 65 63 74 0a 20 20 20 2a Expr object. *
5bb80 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 /. function cre
5bb90 61 74 65 52 65 66 44 69 72 65 63 74 69 76 65 28 ateRefDirective(
5bba0 64 6f 6d 2c 20 74 61 67 2c 20 61 74 74 72 4e 61 dom, tag, attrNa
5bbb0 6d 65 2c 20 61 74 74 72 56 61 6c 75 65 29 20 7b me, attrValue) {
5bbc0 0a 20 20 20 20 72 65 74 75 72 6e 20 63 72 65 61 . return crea
5bbd0 74 65 28 52 65 66 45 78 70 72 29 2e 69 6e 69 74 te(RefExpr).init
5bbe0 28 64 6f 6d 2c 20 74 61 67 2c 20 61 74 74 72 4e (dom, tag, attrN
5bbf0 61 6d 65 2c 20 61 74 74 72 56 61 6c 75 65 29 0a ame, attrValue).
5bc00 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
5bc10 54 72 69 67 67 65 72 20 74 68 65 20 75 6e 6d 6f Trigger the unmo
5bc20 75 6e 74 20 6d 65 74 68 6f 64 20 6f 6e 20 61 6c unt method on al
5bc30 6c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e l the expression
5bc40 73 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 20 20 s. * @param
5bc50 7b 20 41 72 72 61 79 20 7d 20 65 78 70 72 65 73 { Array } expres
5bc60 73 69 6f 6e 73 20 2d 20 44 4f 4d 20 65 78 70 72 sions - DOM expr
5bc70 65 73 73 69 6f 6e 73 0a 20 20 20 2a 2f 0a 20 20 essions. */.
5bc80 66 75 6e 63 74 69 6f 6e 20 75 6e 6d 6f 75 6e 74 function unmount
5bc90 41 6c 6c 28 65 78 70 72 65 73 73 69 6f 6e 73 29 All(expressions)
5bca0 20 7b 0a 20 20 20 20 65 61 63 68 28 65 78 70 72 {. each(expr
5bcb0 65 73 73 69 6f 6e 73 2c 20 66 75 6e 63 74 69 6f essions, functio
5bcc0 6e 20 28 65 78 70 72 29 20 7b 0a 20 20 20 20 20 n (expr) {.
5bcd0 20 69 66 20 28 65 78 70 72 2e 75 6e 6d 6f 75 6e if (expr.unmoun
5bce0 74 29 20 7b 20 65 78 70 72 2e 75 6e 6d 6f 75 6e t) { expr.unmoun
5bcf0 74 28 74 72 75 65 29 3b 20 7d 0a 20 20 20 20 20 t(true); }.
5bd00 20 65 6c 73 65 20 69 66 20 28 65 78 70 72 2e 74 else if (expr.t
5bd10 61 67 4e 61 6d 65 29 20 7b 20 65 78 70 72 2e 74 agName) { expr.t
5bd20 61 67 2e 75 6e 6d 6f 75 6e 74 28 74 72 75 65 29 ag.unmount(true)
5bd30 3b 20 7d 0a 20 20 20 20 20 20 65 6c 73 65 20 69 ; }. else i
5bd40 66 20 28 65 78 70 72 2e 75 6e 6d 6f 75 6e 74 29 f (expr.unmount)
5bd50 20 7b 20 65 78 70 72 2e 75 6e 6d 6f 75 6e 74 28 { expr.unmount(
5bd60 29 3b 20 7d 0a 20 20 20 20 7d 29 3b 0a 20 20 7d ); }. });. }
5bd70 0a 0a 20 20 76 61 72 20 49 66 45 78 70 72 20 3d .. var IfExpr =
5bd80 20 7b 0a 20 20 20 20 69 6e 69 74 3a 20 66 75 6e {. init: fun
5bd90 63 74 69 6f 6e 20 69 6e 69 74 28 64 6f 6d 2c 20 ction init(dom,
5bda0 74 61 67 2c 20 65 78 70 72 29 20 7b 0a 20 20 20 tag, expr) {.
5bdb0 20 20 20 72 65 6d 6f 76 65 41 74 74 72 69 62 75 removeAttribu
5bdc0 74 65 28 64 6f 6d 2c 20 43 4f 4e 44 49 54 49 4f te(dom, CONDITIO
5bdd0 4e 41 4c 5f 44 49 52 45 43 54 49 56 45 29 3b 0a NAL_DIRECTIVE);.
5bde0 20 20 20 20 20 20 65 78 74 65 6e 64 28 74 68 69 extend(thi
5bdf0 73 2c 20 7b 20 74 61 67 3a 20 74 61 67 2c 20 65 s, { tag: tag, e
5be00 78 70 72 3a 20 65 78 70 72 2c 20 73 74 75 62 3a xpr: expr, stub:
5be10 20 63 72 65 61 74 65 44 4f 4d 50 6c 61 63 65 68 createDOMPlaceh
5be20 6f 6c 64 65 72 28 29 2c 20 70 72 69 73 74 69 6e older(), pristin
5be30 65 3a 20 64 6f 6d 20 7d 29 3b 0a 20 20 20 20 20 e: dom });.
5be40 20 76 61 72 20 70 20 3d 20 64 6f 6d 2e 70 61 72 var p = dom.par
5be50 65 6e 74 4e 6f 64 65 3b 0a 20 20 20 20 20 20 70 entNode;. p
5be60 2e 69 6e 73 65 72 74 42 65 66 6f 72 65 28 74 68 .insertBefore(th
5be70 69 73 2e 73 74 75 62 2c 20 64 6f 6d 29 3b 0a 20 is.stub, dom);.
5be80 20 20 20 20 20 70 2e 72 65 6d 6f 76 65 43 68 69 p.removeChi
5be90 6c 64 28 64 6f 6d 29 3b 0a 0a 20 20 20 20 20 20 ld(dom);..
5bea0 72 65 74 75 72 6e 20 74 68 69 73 0a 20 20 20 20 return this.
5beb0 7d 2c 0a 20 20 20 20 75 70 64 61 74 65 3a 20 66 },. update: f
5bec0 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 24 24 unction update$$
5bed0 31 28 29 20 7b 0a 20 20 20 20 20 20 74 68 69 73 1() {. this
5bee0 2e 76 61 6c 75 65 20 3d 20 63 73 70 5f 74 6d 70 .value = csp_tmp
5bef0 6c 5f 31 28 74 68 69 73 2e 65 78 70 72 2c 20 74 l_1(this.expr, t
5bf00 68 69 73 2e 74 61 67 29 3b 0a 0a 20 20 20 20 20 his.tag);..
5bf10 20 69 66 20 28 21 74 68 69 73 2e 73 74 75 62 2e if (!this.stub.
5bf20 70 61 72 65 6e 74 4e 6f 64 65 29 20 7b 20 72 65 parentNode) { re
5bf30 74 75 72 6e 20 7d 0a 0a 20 20 20 20 20 20 69 66 turn }.. if
5bf40 20 28 74 68 69 73 2e 76 61 6c 75 65 20 26 26 20 (this.value &&
5bf50 21 74 68 69 73 2e 63 75 72 72 65 6e 74 29 20 7b !this.current) {
5bf60 20 2f 2f 20 69 6e 73 65 72 74 0a 20 20 20 20 20 // insert.
5bf70 20 20 20 74 68 69 73 2e 63 75 72 72 65 6e 74 20 this.current
5bf80 3d 20 74 68 69 73 2e 70 72 69 73 74 69 6e 65 2e = this.pristine.
5bf90 63 6c 6f 6e 65 4e 6f 64 65 28 74 72 75 65 29 3b cloneNode(true);
5bfa0 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 74 . this.st
5bfb0 75 62 2e 70 61 72 65 6e 74 4e 6f 64 65 2e 69 6e ub.parentNode.in
5bfc0 73 65 72 74 42 65 66 6f 72 65 28 74 68 69 73 2e sertBefore(this.
5bfd0 63 75 72 72 65 6e 74 2c 20 74 68 69 73 2e 73 74 current, this.st
5bfe0 75 62 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69 ub);. thi
5bff0 73 2e 65 78 70 72 65 73 73 69 6f 6e 73 20 3d 20 s.expressions =
5c000 70 61 72 73 65 45 78 70 72 65 73 73 69 6f 6e 73 parseExpressions
5c010 2e 61 70 70 6c 79 28 74 68 69 73 2e 74 61 67 2c .apply(this.tag,
5c020 20 5b 74 68 69 73 2e 63 75 72 72 65 6e 74 2c 20 [this.current,
5c030 74 72 75 65 5d 29 3b 0a 20 20 20 20 20 20 7d 20 true]);. }
5c040 65 6c 73 65 20 69 66 20 28 21 74 68 69 73 2e 76 else if (!this.v
5c050 61 6c 75 65 20 26 26 20 74 68 69 73 2e 63 75 72 alue && this.cur
5c060 72 65 6e 74 29 20 7b 20 2f 2f 20 72 65 6d 6f 76 rent) { // remov
5c070 65 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 75 e. this.u
5c080 6e 6d 6f 75 6e 74 28 29 3b 0a 20 20 20 20 20 20 nmount();.
5c090 20 20 74 68 69 73 2e 63 75 72 72 65 6e 74 20 3d this.current =
5c0a0 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 74 null;. t
5c0b0 68 69 73 2e 65 78 70 72 65 73 73 69 6f 6e 73 20 his.expressions
5c0c0 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 = [];. }..
5c0d0 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 76 61 if (this.va
5c0e0 6c 75 65 29 20 7b 20 75 70 64 61 74 65 2e 63 61 lue) { update.ca
5c0f0 6c 6c 28 74 68 69 73 2e 74 61 67 2c 20 74 68 69 ll(this.tag, thi
5c100 73 2e 65 78 70 72 65 73 73 69 6f 6e 73 29 3b 20 s.expressions);
5c110 7d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 75 6e 6d }. },. unm
5c120 6f 75 6e 74 3a 20 66 75 6e 63 74 69 6f 6e 20 75 ount: function u
5c130 6e 6d 6f 75 6e 74 28 29 20 7b 0a 20 20 20 20 20 nmount() {.
5c140 20 69 66 20 28 74 68 69 73 2e 63 75 72 72 65 6e if (this.curren
5c150 74 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 t) {. if
5c160 28 74 68 69 73 2e 63 75 72 72 65 6e 74 2e 5f 74 (this.current._t
5c170 61 67 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ag) {.
5c180 74 68 69 73 2e 63 75 72 72 65 6e 74 2e 5f 74 61 this.current._ta
5c190 67 2e 75 6e 6d 6f 75 6e 74 28 29 3b 0a 20 20 20 g.unmount();.
5c1a0 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 } else if (
5c1b0 74 68 69 73 2e 63 75 72 72 65 6e 74 2e 70 61 72 this.current.par
5c1c0 65 6e 74 4e 6f 64 65 29 20 7b 0a 20 20 20 20 20 entNode) {.
5c1d0 20 20 20 20 20 74 68 69 73 2e 63 75 72 72 65 6e this.curren
5c1e0 74 2e 70 61 72 65 6e 74 4e 6f 64 65 2e 72 65 6d t.parentNode.rem
5c1f0 6f 76 65 43 68 69 6c 64 28 74 68 69 73 2e 63 75 oveChild(this.cu
5c200 72 72 65 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 rrent);.
5c210 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 }. }..
5c220 20 75 6e 6d 6f 75 6e 74 41 6c 6c 28 74 68 69 73 unmountAll(this
5c230 2e 65 78 70 72 65 73 73 69 6f 6e 73 20 7c 7c 20 .expressions ||
5c240 5b 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 3b 0a []);. }. };.
5c250 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 . /**. * Crea
5c260 74 65 20 61 20 6e 65 77 20 69 66 20 64 69 72 65 te a new if dire
5c270 63 74 69 76 65 0a 20 20 20 2a 20 40 70 61 72 61 ctive. * @para
5c280 6d 20 20 20 7b 20 48 54 4d 4c 45 6c 65 6d 65 6e m { HTMLElemen
5c290 74 20 7d 20 64 6f 6d 20 2d 20 69 66 20 72 6f 6f t } dom - if roo
5c2a0 74 20 64 6f 6d 20 6e 6f 64 65 0a 20 20 20 2a 20 t dom node. *
5c2b0 40 70 61 72 61 6d 20 20 20 7b 20 54 61 67 20 7d @param { Tag }
5c2c0 20 63 6f 6e 74 65 78 74 20 2d 20 74 61 67 20 69 context - tag i
5c2d0 6e 73 74 61 6e 63 65 20 77 68 65 72 65 20 74 68 nstance where th
5c2e0 65 20 44 4f 4d 20 6e 6f 64 65 20 69 73 20 6c 6f e DOM node is lo
5c2f0 63 61 74 65 64 0a 20 20 20 2a 20 40 70 61 72 61 cated. * @para
5c300 6d 20 20 20 7b 20 53 74 72 69 6e 67 20 7d 20 61 m { String } a
5c310 74 74 72 20 2d 20 69 66 20 65 78 70 72 65 73 73 ttr - if express
5c320 69 6f 6e 0a 20 20 20 2a 20 40 72 65 74 75 72 6e ion. * @return
5c330 73 20 7b 20 49 46 45 78 70 72 20 7d 20 61 20 6e s { IFExpr } a n
5c340 65 77 20 49 66 45 78 70 72 20 6f 62 6a 65 63 74 ew IfExpr object
5c350 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f . */. functio
5c360 6e 20 63 72 65 61 74 65 49 66 44 69 72 65 63 74 n createIfDirect
5c370 69 76 65 28 64 6f 6d 2c 20 74 61 67 2c 20 61 74 ive(dom, tag, at
5c380 74 72 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e tr) {. return
5c390 20 63 72 65 61 74 65 28 49 66 45 78 70 72 29 2e create(IfExpr).
5c3a0 69 6e 69 74 28 64 6f 6d 2c 20 74 61 67 2c 20 61 init(dom, tag, a
5c3b0 74 74 72 29 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a ttr). }.. /**.
5c3c0 20 20 20 2a 20 57 61 6c 6b 20 74 68 65 20 74 61 * Walk the ta
5c3d0 67 20 44 4f 4d 20 74 6f 20 64 65 74 65 63 74 20 g DOM to detect
5c3e0 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 the expressions
5c3f0 74 6f 20 65 76 61 6c 75 61 74 65 0a 20 20 20 2a to evaluate. *
5c400 20 40 74 68 69 73 20 54 61 67 0a 20 20 20 2a 20 @this Tag. *
5c410 40 70 61 72 61 6d 20 20 20 7b 20 48 54 4d 4c 45 @param { HTMLE
5c420 6c 65 6d 65 6e 74 20 7d 20 72 6f 6f 74 20 2d 20 lement } root -
5c430 72 6f 6f 74 20 74 61 67 20 77 68 65 72 65 20 77 root tag where w
5c440 65 20 77 69 6c 6c 20 73 74 61 72 74 20 64 69 67 e will start dig
5c450 67 69 6e 67 20 74 68 65 20 65 78 70 72 65 73 73 ging the express
5c460 69 6f 6e 73 0a 20 20 20 2a 20 40 70 61 72 61 6d ions. * @param
5c470 20 20 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d 20 6d { Boolean } m
5c480 75 73 74 49 6e 63 6c 75 64 65 52 6f 6f 74 20 2d ustIncludeRoot -
5c490 20 66 6c 61 67 20 74 6f 20 64 65 63 69 64 65 20 flag to decide
5c4a0 77 68 65 74 68 65 72 20 74 68 65 20 72 6f 6f 74 whether the root
5c4b0 20 6d 75 73 74 20 62 65 20 70 61 72 73 65 64 20 must be parsed
5c4c0 61 73 20 77 65 6c 6c 0a 20 20 20 2a 20 40 72 65 as well. * @re
5c4d0 74 75 72 6e 73 20 7b 20 41 72 72 61 79 20 7d 20 turns { Array }
5c4e0 61 6c 6c 20 74 68 65 20 65 78 70 72 65 73 73 69 all the expressi
5c4f0 6f 6e 73 20 66 6f 75 6e 64 0a 20 20 20 2a 2f 0a ons found. */.
5c500 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 function parse
5c510 45 78 70 72 65 73 73 69 6f 6e 73 28 72 6f 6f 74 Expressions(root
5c520 2c 20 6d 75 73 74 49 6e 63 6c 75 64 65 52 6f 6f , mustIncludeRoo
5c530 74 29 20 7b 0a 20 20 20 20 76 61 72 20 74 68 69 t) {. var thi
5c540 73 24 31 20 3d 20 74 68 69 73 3b 0a 0a 20 20 20 s$1 = this;..
5c550 20 76 61 72 20 65 78 70 72 65 73 73 69 6f 6e 73 var expressions
5c560 20 3d 20 5b 5d 3b 0a 0a 20 20 20 20 77 61 6c 6b = [];.. walk
5c570 4e 6f 64 65 73 28 72 6f 6f 74 2c 20 66 75 6e 63 Nodes(root, func
5c580 74 69 6f 6e 20 28 64 6f 6d 29 20 7b 0a 20 20 20 tion (dom) {.
5c590 20 20 20 76 61 72 20 74 79 70 65 20 3d 20 64 6f var type = do
5c5a0 6d 2e 6e 6f 64 65 54 79 70 65 3b 0a 20 20 20 20 m.nodeType;.
5c5b0 20 20 76 61 72 20 61 74 74 72 3b 0a 20 20 20 20 var attr;.
5c5c0 20 20 76 61 72 20 74 61 67 49 6d 70 6c 3b 0a 0a var tagImpl;..
5c5d0 20 20 20 20 20 20 69 66 20 28 21 6d 75 73 74 49 if (!mustI
5c5e0 6e 63 6c 75 64 65 52 6f 6f 74 20 26 26 20 64 6f ncludeRoot && do
5c5f0 6d 20 3d 3d 3d 20 72 6f 6f 74 29 20 7b 20 72 65 m === root) { re
5c600 74 75 72 6e 20 7d 0a 0a 20 20 20 20 20 20 2f 2f turn }.. //
5c610 20 74 65 78 74 20 6e 6f 64 65 0a 20 20 20 20 20 text node.
5c620 20 69 66 20 28 74 79 70 65 20 3d 3d 3d 20 33 20 if (type === 3
5c630 26 26 20 64 6f 6d 2e 70 61 72 65 6e 74 4e 6f 64 && dom.parentNod
5c640 65 2e 74 61 67 4e 61 6d 65 20 21 3d 3d 20 27 53 e.tagName !== 'S
5c650 54 59 4c 45 27 20 26 26 20 63 73 70 5f 74 6d 70 TYLE' && csp_tmp
5c660 6c 5f 31 2e 68 61 73 45 78 70 72 28 64 6f 6d 2e l_1.hasExpr(dom.
5c670 6e 6f 64 65 56 61 6c 75 65 29 29 0a 20 20 20 20 nodeValue)).
5c680 20 20 20 20 7b 20 65 78 70 72 65 73 73 69 6f 6e { expression
5c690 73 2e 70 75 73 68 28 7b 64 6f 6d 3a 20 64 6f 6d s.push({dom: dom
5c6a0 2c 20 65 78 70 72 3a 20 64 6f 6d 2e 6e 6f 64 65 , expr: dom.node
5c6b0 56 61 6c 75 65 7d 29 3b 20 7d 0a 0a 20 20 20 20 Value}); }..
5c6c0 20 20 69 66 20 28 74 79 70 65 20 21 3d 3d 20 31 if (type !== 1
5c6d0 29 20 7b 20 72 65 74 75 72 6e 20 7d 0a 0a 20 20 ) { return }..
5c6e0 20 20 20 20 76 61 72 20 69 73 56 69 72 74 75 61 var isVirtua
5c6f0 6c 20 3d 20 64 6f 6d 2e 74 61 67 4e 61 6d 65 20 l = dom.tagName
5c700 3d 3d 3d 20 27 56 49 52 54 55 41 4c 27 3b 0a 0a === 'VIRTUAL';..
5c710 20 20 20 20 20 20 2f 2f 20 6c 6f 6f 70 2e 20 65 // loop. e
5c720 61 63 68 20 64 6f 65 73 20 69 74 27 73 20 6f 77 ach does it's ow
5c730 6e 20 74 68 69 6e 67 20 28 66 6f 72 20 6e 6f 77 n thing (for now
5c740 29 0a 20 20 20 20 20 20 69 66 20 28 61 74 74 72 ). if (attr
5c750 20 3d 20 67 65 74 41 74 74 72 69 62 75 74 65 28 = getAttribute(
5c760 64 6f 6d 2c 20 4c 4f 4f 50 5f 44 49 52 45 43 54 dom, LOOP_DIRECT
5c770 49 56 45 29 29 20 7b 0a 20 20 20 20 20 20 20 20 IVE)) {.
5c780 69 66 28 69 73 56 69 72 74 75 61 6c 29 20 7b 20 if(isVirtual) {
5c790 73 65 74 41 74 74 72 69 62 75 74 65 28 64 6f 6d setAttribute(dom
5c7a0 2c 20 27 6c 6f 6f 70 56 69 72 74 75 61 6c 27 2c , 'loopVirtual',
5c7b0 20 74 72 75 65 29 3b 20 7d 20 2f 2f 20 69 67 6e true); } // ign
5c7c0 6f 72 65 20 68 65 72 65 2c 20 68 61 6e 64 6c 65 ore here, handle
5c7d0 64 20 69 6e 20 5f 65 61 63 68 0a 20 20 20 20 20 d in _each.
5c7e0 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 2e 70 expressions.p
5c7f0 75 73 68 28 5f 65 61 63 68 28 64 6f 6d 2c 20 74 ush(_each(dom, t
5c800 68 69 73 24 31 2c 20 61 74 74 72 29 29 3b 0a 20 his$1, attr));.
5c810 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 return fa
5c820 6c 73 65 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 lse. }..
5c830 20 20 20 2f 2f 20 69 66 2d 61 74 74 72 73 20 62 // if-attrs b
5c840 65 63 6f 6d 65 20 74 68 65 20 6e 65 77 20 70 61 ecome the new pa
5c850 72 65 6e 74 2e 20 41 6e 79 20 66 6f 6c 6c 6f 77 rent. Any follow
5c860 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73 20 ing expressions
5c870 28 65 69 74 68 65 72 20 6f 6e 20 74 68 65 20 63 (either on the c
5c880 75 72 72 65 6e 74 0a 20 20 20 20 20 20 2f 2f 20 urrent. //
5c890 65 6c 65 6d 65 6e 74 2c 20 6f 72 20 62 65 6c 6f element, or belo
5c8a0 77 20 69 74 29 20 62 65 63 6f 6d 65 20 63 68 69 w it) become chi
5c8b0 6c 64 72 65 6e 20 6f 66 20 74 68 69 73 20 65 78 ldren of this ex
5c8c0 70 72 65 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 pression..
5c8d0 69 66 20 28 61 74 74 72 20 3d 20 67 65 74 41 74 if (attr = getAt
5c8e0 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 43 4f 4e tribute(dom, CON
5c8f0 44 49 54 49 4f 4e 41 4c 5f 44 49 52 45 43 54 49 DITIONAL_DIRECTI
5c900 56 45 29 29 20 7b 0a 20 20 20 20 20 20 20 20 65 VE)) {. e
5c910 78 70 72 65 73 73 69 6f 6e 73 2e 70 75 73 68 28 xpressions.push(
5c920 63 72 65 61 74 65 49 66 44 69 72 65 63 74 69 76 createIfDirectiv
5c930 65 28 64 6f 6d 2c 20 74 68 69 73 24 31 2c 20 61 e(dom, this$1, a
5c940 74 74 72 29 29 3b 0a 20 20 20 20 20 20 20 20 72 ttr));. r
5c950 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 20 eturn false.
5c960 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 61 }.. if (a
5c970 74 74 72 20 3d 20 67 65 74 41 74 74 72 69 62 75 ttr = getAttribu
5c980 74 65 28 64 6f 6d 2c 20 49 53 5f 44 49 52 45 43 te(dom, IS_DIREC
5c990 54 49 56 45 29 29 20 7b 0a 20 20 20 20 20 20 20 TIVE)) {.
5c9a0 20 69 66 20 28 63 73 70 5f 74 6d 70 6c 5f 31 2e if (csp_tmpl_1.
5c9b0 68 61 73 45 78 70 72 28 61 74 74 72 29 29 20 7b hasExpr(attr)) {
5c9c0 0a 20 20 20 20 20 20 20 20 20 20 65 78 70 72 65 . expre
5c9d0 73 73 69 6f 6e 73 2e 70 75 73 68 28 7b 0a 20 20 ssions.push({.
5c9e0 20 20 20 20 20 20 20 20 20 20 69 73 52 74 61 67 isRtag
5c9f0 3a 20 74 72 75 65 2c 0a 20 20 20 20 20 20 20 20 : true,.
5ca00 20 20 20 20 65 78 70 72 3a 20 61 74 74 72 2c 0a expr: attr,.
5ca10 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 6d 3a dom:
5ca20 20 64 6f 6d 2c 0a 20 20 20 20 20 20 20 20 20 20 dom,.
5ca30 20 20 61 74 74 72 73 3a 20 5b 5d 2e 73 6c 69 63 attrs: [].slic
5ca40 65 2e 63 61 6c 6c 28 64 6f 6d 2e 61 74 74 72 69 e.call(dom.attri
5ca50 62 75 74 65 73 29 0a 20 20 20 20 20 20 20 20 20 butes).
5ca60 20 7d 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 });..
5ca70 72 65 74 75 72 6e 20 66 61 6c 73 65 0a 20 20 20 return false.
5ca80 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a }. }..
5ca90 20 20 20 20 20 20 2f 2f 20 69 66 20 74 68 69 73 // if this
5caa0 20 69 73 20 61 20 74 61 67 2c 20 73 74 6f 70 20 is a tag, stop
5cab0 74 72 61 76 65 72 73 69 6e 67 20 68 65 72 65 2e traversing here.
5cac0 0a 20 20 20 20 20 20 2f 2f 20 77 65 20 69 67 6e . // we ign
5cad0 6f 72 65 20 74 68 65 20 72 6f 6f 74 2c 20 73 69 ore the root, si
5cae0 6e 63 65 20 70 61 72 73 65 45 78 70 72 65 73 73 nce parseExpress
5caf0 69 6f 6e 73 20 69 73 20 63 61 6c 6c 65 64 20 77 ions is called w
5cb00 68 69 6c 65 20 77 65 27 72 65 20 6d 6f 75 6e 74 hile we're mount
5cb10 69 6e 67 20 74 68 61 74 20 72 6f 6f 74 0a 20 20 ing that root.
5cb20 20 20 20 20 74 61 67 49 6d 70 6c 20 3d 20 67 65 tagImpl = ge
5cb30 74 28 64 6f 6d 29 3b 0a 0a 20 20 20 20 20 20 69 t(dom);.. i
5cb40 66 28 69 73 56 69 72 74 75 61 6c 29 20 7b 0a 20 f(isVirtual) {.
5cb50 20 20 20 20 20 20 20 69 66 28 67 65 74 41 74 74 if(getAtt
5cb60 72 69 62 75 74 65 28 64 6f 6d 2c 20 27 76 69 72 ribute(dom, 'vir
5cb70 74 75 61 6c 69 7a 65 64 27 29 29 20 7b 64 6f 6d tualized')) {dom
5cb80 2e 70 61 72 65 6e 74 45 6c 65 6d 65 6e 74 2e 72 .parentElement.r
5cb90 65 6d 6f 76 65 43 68 69 6c 64 28 64 6f 6d 29 3b emoveChild(dom);
5cba0 20 7d 20 2f 2f 20 74 61 67 20 63 72 65 61 74 65 } // tag create
5cbb0 64 2c 20 72 65 6d 6f 76 65 20 66 72 6f 6d 20 64 d, remove from d
5cbc0 6f 6d 0a 20 20 20 20 20 20 20 20 69 66 28 21 74 om. if(!t
5cbd0 61 67 49 6d 70 6c 20 26 26 20 21 67 65 74 41 74 agImpl && !getAt
5cbe0 74 72 69 62 75 74 65 28 64 6f 6d 2c 20 27 76 69 tribute(dom, 'vi
5cbf0 72 74 75 61 6c 69 7a 65 64 27 29 20 26 26 20 21 rtualized') && !
5cc00 67 65 74 41 74 74 72 69 62 75 74 65 28 64 6f 6d getAttribute(dom
5cc10 2c 20 27 6c 6f 6f 70 56 69 72 74 75 61 6c 27 29 , 'loopVirtual')
5cc20 29 20 20 2f 2f 20 6f 6b 20 74 6f 20 63 72 65 61 ) // ok to crea
5cc30 74 65 20 76 69 72 74 75 61 6c 20 74 61 67 0a 20 te virtual tag.
5cc40 20 20 20 20 20 20 20 20 20 7b 20 74 61 67 49 6d { tagIm
5cc50 70 6c 20 3d 20 7b 20 74 6d 70 6c 3a 20 64 6f 6d pl = { tmpl: dom
5cc60 2e 6f 75 74 65 72 48 54 4d 4c 20 7d 3b 20 7d 0a .outerHTML }; }.
5cc70 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 }.. i
5cc80 66 20 28 74 61 67 49 6d 70 6c 20 26 26 20 28 64 f (tagImpl && (d
5cc90 6f 6d 20 21 3d 3d 20 72 6f 6f 74 20 7c 7c 20 6d om !== root || m
5cca0 75 73 74 49 6e 63 6c 75 64 65 52 6f 6f 74 29 29 ustIncludeRoot))
5ccb0 20 7b 0a 20 20 20 20 20 20 20 20 76 61 72 20 68 {. var h
5ccc0 61 73 49 73 44 69 72 65 63 74 69 76 65 20 3d 20 asIsDirective =
5ccd0 67 65 74 41 74 74 72 69 62 75 74 65 28 64 6f 6d getAttribute(dom
5cce0 2c 20 49 53 5f 44 49 52 45 43 54 49 56 45 29 3b , IS_DIRECTIVE);
5ccf0 0a 20 20 20 20 20 20 20 20 69 66 28 69 73 56 69 . if(isVi
5cd00 72 74 75 61 6c 20 26 26 20 21 68 61 73 49 73 44 rtual && !hasIsD
5cd10 69 72 65 63 74 69 76 65 29 20 7b 20 2f 2f 20 68 irective) { // h
5cd20 61 6e 64 6c 65 64 20 69 6e 20 75 70 64 61 74 65 andled in update
5cd30 0a 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 61 . // ca
5cd40 6e 20 6e 6f 74 20 72 65 6d 6f 76 65 20 61 74 74 n not remove att
5cd50 72 69 62 75 74 65 20 6c 69 6b 65 20 64 69 72 65 ribute like dire
5cd60 63 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 20 ctives.
5cd70 20 2f 2f 20 73 6f 20 66 6c 61 67 20 66 6f 72 20 // so flag for
5cd80 72 65 6d 6f 76 61 6c 20 61 66 74 65 72 20 63 72 removal after cr
5cd90 65 61 74 69 6f 6e 20 74 6f 20 70 72 65 76 65 6e eation to preven
5cda0 74 20 6d 61 78 69 6d 75 6d 20 73 74 61 63 6b 20 t maximum stack
5cdb0 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 error.
5cdc0 73 65 74 41 74 74 72 69 62 75 74 65 28 64 6f 6d setAttribute(dom
5cdd0 2c 20 27 76 69 72 74 75 61 6c 69 7a 65 64 27 2c , 'virtualized',
5cde0 20 74 72 75 65 29 3b 0a 20 20 20 20 20 20 20 20 true);.
5cdf0 20 20 76 61 72 20 74 61 67 20 3d 20 63 72 65 61 var tag = crea
5ce00 74 65 54 61 67 28 0a 20 20 20 20 20 20 20 20 20 teTag(.
5ce10 20 20 20 7b 74 6d 70 6c 3a 20 64 6f 6d 2e 6f 75 {tmpl: dom.ou
5ce20 74 65 72 48 54 4d 4c 7d 2c 0a 20 20 20 20 20 20 terHTML},.
5ce30 20 20 20 20 20 20 7b 72 6f 6f 74 3a 20 64 6f 6d {root: dom
5ce40 2c 20 70 61 72 65 6e 74 3a 20 74 68 69 73 24 31 , parent: this$1
5ce50 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 },. d
5ce60 6f 6d 2e 69 6e 6e 65 72 48 54 4d 4c 0a 20 20 20 om.innerHTML.
5ce70 20 20 20 20 20 20 20 29 3b 0a 0a 20 20 20 20 20 );..
5ce80 20 20 20 20 20 65 78 70 72 65 73 73 69 6f 6e 73 expressions
5ce90 2e 70 75 73 68 28 74 61 67 29 3b 20 2f 2f 20 6e .push(tag); // n
5cea0 6f 20 72 65 74 75 72 6e 2c 20 61 6e 6f 6e 79 6d o return, anonym
5ceb0 6f 75 73 20 74 61 67 2c 20 6b 65 65 70 20 70 61 ous tag, keep pa
5cec0 72 73 69 6e 67 0a 20 20 20 20 20 20 20 20 7d 20 rsing. }
5ced0 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 else {.
5cee0 20 69 66 20 28 68 61 73 49 73 44 69 72 65 63 74 if (hasIsDirect
5cef0 69 76 65 20 26 26 20 69 73 56 69 72 74 75 61 6c ive && isVirtual
5cf00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 ). {
5cf10 77 61 72 6e 28 28 22 56 69 72 74 75 61 6c 20 74 warn(("Virtual t
5cf20 61 67 73 20 73 68 6f 75 6c 64 6e 27 74 20 62 65 ags shouldn't be
5cf30 20 75 73 65 64 20 74 6f 67 65 74 68 65 72 20 77 used together w
5cf40 69 74 68 20 74 68 65 20 5c 22 22 20 2b 20 49 53 ith the \"" + IS
5cf50 5f 44 49 52 45 43 54 49 56 45 20 2b 20 22 5c 22 _DIRECTIVE + "\"
5cf60 20 61 74 74 72 69 62 75 74 65 20 2d 20 68 74 74 attribute - htt
5cf70 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f ps://github.com/
5cf80 72 69 6f 74 2f 72 69 6f 74 2f 69 73 73 75 65 73 riot/riot/issues
5cf90 2f 32 35 31 31 22 29 29 3b 20 7d 0a 0a 20 20 20 /2511")); }..
5cfa0 20 20 20 20 20 20 20 65 78 70 72 65 73 73 69 6f expressio
5cfb0 6e 73 2e 70 75 73 68 28 0a 20 20 20 20 20 20 20 ns.push(.
5cfc0 20 20 20 20 20 69 6e 69 74 43 68 69 6c 64 28 0a initChild(.
5cfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 ta
5cfe0 67 49 6d 70 6c 2c 0a 20 20 20 20 20 20 20 20 20 gImpl,.
5cff0 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 {.
5d000 20 20 20 20 20 20 20 72 6f 6f 74 3a 20 64 6f 6d root: dom
5d010 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.
5d020 20 20 70 61 72 65 6e 74 3a 20 74 68 69 73 24 31 parent: this$1
5d030 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d . }
5d040 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.
5d050 64 6f 6d 2e 69 6e 6e 65 72 48 54 4d 4c 2c 0a 20 dom.innerHTML,.
5d060 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
5d070 73 24 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 s$1.
5d080 29 0a 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 ). );.
5d090 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
5d0a0 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 7d 0a false. }.
5d0b0 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 2f }.. /
5d0c0 2f 20 61 74 74 72 69 62 75 74 65 20 65 78 70 72 / attribute expr
5d0d0 65 73 73 69 6f 6e 73 0a 20 20 20 20 20 20 70 61 essions. pa
5d0e0 72 73 65 41 74 74 72 69 62 75 74 65 73 2e 61 70 rseAttributes.ap
5d0f0 70 6c 79 28 74 68 69 73 24 31 2c 20 5b 64 6f 6d ply(this$1, [dom
5d100 2c 20 64 6f 6d 2e 61 74 74 72 69 62 75 74 65 73 , dom.attributes
5d110 2c 20 66 75 6e 63 74 69 6f 6e 20 28 61 74 74 72 , function (attr
5d120 2c 20 65 78 70 72 29 20 7b 0a 20 20 20 20 20 20 , expr) {.
5d130 20 20 69 66 20 28 21 65 78 70 72 29 20 7b 20 72 if (!expr) { r
5d140 65 74 75 72 6e 20 7d 0a 20 20 20 20 20 20 20 20 eturn }.
5d150 65 78 70 72 65 73 73 69 6f 6e 73 2e 70 75 73 68 expressions.push
5d160 28 65 78 70 72 29 3b 0a 20 20 20 20 20 20 7d 5d (expr);. }]
5d170 29 3b 0a 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 );. });..
5d180 72 65 74 75 72 6e 20 65 78 70 72 65 73 73 69 6f return expressio
5d190 6e 73 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 ns. }.. /**.
5d1a0 20 2a 20 43 61 6c 6c 73 20 60 66 6e 60 20 66 6f * Calls `fn` fo
5d1b0 72 20 65 76 65 72 79 20 61 74 74 72 69 62 75 74 r every attribut
5d1c0 65 20 6f 6e 20 61 6e 20 65 6c 65 6d 65 6e 74 2e e on an element.
5d1d0 20 49 66 20 74 68 61 74 20 61 74 74 72 20 68 61 If that attr ha
5d1e0 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2c s an expression,
5d1f0 0a 20 20 20 2a 20 69 74 20 69 73 20 61 6c 73 6f . * it is also
5d200 20 70 61 73 73 65 64 20 74 6f 20 66 6e 2e 0a 20 passed to fn..
5d210 20 20 2a 20 40 74 68 69 73 20 54 61 67 0a 20 20 * @this Tag.
5d220 20 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 48 54 * @param { HT
5d230 4d 4c 45 6c 65 6d 65 6e 74 20 7d 20 64 6f 6d 20 MLElement } dom
5d240 2d 20 64 6f 6d 20 6e 6f 64 65 20 74 6f 20 70 61 - dom node to pa
5d250 72 73 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 rse. * @param
5d260 20 20 7b 20 41 72 72 61 79 20 7d 20 61 74 74 72 { Array } attr
5d270 73 20 2d 20 61 72 72 61 79 20 6f 66 20 61 74 74 s - array of att
5d280 72 69 62 75 74 65 73 0a 20 20 20 2a 20 40 70 61 ributes. * @pa
5d290 72 61 6d 20 20 20 7b 20 46 75 6e 63 74 69 6f 6e ram { Function
5d2a0 20 7d 20 66 6e 20 2d 20 63 61 6c 6c 62 61 63 6b } fn - callback
5d2b0 20 74 6f 20 65 78 65 63 20 6f 6e 20 61 6e 79 20 to exec on any
5d2c0 69 74 65 72 61 74 69 6f 6e 0a 20 20 20 2a 2f 0a iteration. */.
5d2d0 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 function parse
5d2e0 41 74 74 72 69 62 75 74 65 73 28 64 6f 6d 2c 20 Attributes(dom,
5d2f0 61 74 74 72 73 2c 20 66 6e 29 20 7b 0a 20 20 20 attrs, fn) {.
5d300 20 76 61 72 20 74 68 69 73 24 31 20 3d 20 74 68 var this$1 = th
5d310 69 73 3b 0a 0a 20 20 20 20 65 61 63 68 28 61 74 is;.. each(at
5d320 74 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 61 trs, function (a
5d330 74 74 72 29 20 7b 0a 20 20 20 20 20 20 69 66 20 ttr) {. if
5d340 28 21 61 74 74 72 29 20 7b 20 72 65 74 75 72 6e (!attr) { return
5d350 20 66 61 6c 73 65 20 7d 0a 0a 20 20 20 20 20 20 false }..
5d360 76 61 72 20 6e 61 6d 65 20 3d 20 61 74 74 72 2e var name = attr.
5d370 6e 61 6d 65 3b 0a 20 20 20 20 20 20 76 61 72 20 name;. var
5d380 62 6f 6f 6c 20 3d 20 69 73 42 6f 6f 6c 41 74 74 bool = isBoolAtt
5d390 72 28 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 76 r(name);. v
5d3a0 61 72 20 65 78 70 72 3b 0a 0a 20 20 20 20 20 20 ar expr;..
5d3b0 69 66 20 28 63 6f 6e 74 61 69 6e 73 28 52 45 46 if (contains(REF
5d3c0 5f 44 49 52 45 43 54 49 56 45 53 2c 20 6e 61 6d _DIRECTIVES, nam
5d3d0 65 29 20 26 26 20 64 6f 6d 2e 74 61 67 4e 61 6d e) && dom.tagNam
5d3e0 65 2e 74 6f 4c 6f 77 65 72 43 61 73 65 28 29 20 e.toLowerCase()
5d3f0 21 3d 3d 20 59 49 45 4c 44 5f 54 41 47 29 20 7b !== YIELD_TAG) {
5d400 0a 20 20 20 20 20 20 20 20 65 78 70 72 20 3d 20 . expr =
5d410 20 63 72 65 61 74 65 52 65 66 44 69 72 65 63 74 createRefDirect
5d420 69 76 65 28 64 6f 6d 2c 20 74 68 69 73 24 31 2c ive(dom, this$1,
5d430 20 6e 61 6d 65 2c 20 61 74 74 72 2e 76 61 6c 75 name, attr.valu
5d440 65 29 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 e);. } else
5d450 20 69 66 20 28 63 73 70 5f 74 6d 70 6c 5f 31 2e if (csp_tmpl_1.
5d460 68 61 73 45 78 70 72 28 61 74 74 72 2e 76 61 6c hasExpr(attr.val
5d470 75 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 65 ue)) {. e
5d480 78 70 72 20 3d 20 7b 64 6f 6d 3a 20 64 6f 6d 2c xpr = {dom: dom,
5d490 20 65 78 70 72 3a 20 61 74 74 72 2e 76 61 6c 75 expr: attr.valu
5d4a0 65 2c 20 61 74 74 72 3a 20 6e 61 6d 65 2c 20 62 e, attr: name, b
5d4b0 6f 6f 6c 3a 20 62 6f 6f 6c 7d 3b 0a 20 20 20 20 ool: bool};.
5d4c0 20 20 7d 0a 0a 20 20 20 20 20 20 66 6e 28 61 74 }.. fn(at
5d4d0 74 72 2c 20 65 78 70 72 29 3b 0a 20 20 20 20 7d tr, expr);. }
5d4e0 29 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 );. }.. /**.
5d4f0 20 2a 20 4d 61 6e 61 67 65 20 74 68 65 20 6d 6f * Manage the mo
5d500 75 6e 74 20 73 74 61 74 65 20 6f 66 20 61 20 74 unt state of a t
5d510 61 67 20 74 72 69 67 67 65 72 69 6e 67 20 61 6c ag triggering al
5d520 73 6f 20 74 68 65 20 6f 62 73 65 72 76 61 62 6c so the observabl
5d530 65 20 65 76 65 6e 74 73 0a 20 20 20 2a 20 40 74 e events. * @t
5d540 68 69 73 20 54 61 67 0a 20 20 20 2a 20 40 70 61 his Tag. * @pa
5d550 72 61 6d 20 7b 20 42 6f 6f 6c 65 61 6e 20 7d 20 ram { Boolean }
5d560 76 61 6c 75 65 20 2d 20 2e 2e 6f 66 20 74 68 65 value - ..of the
5d570 20 69 73 4d 6f 75 6e 74 65 64 20 66 6c 61 67 0a isMounted flag.
5d580 20 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e */. function
5d590 20 73 65 74 4d 6f 75 6e 74 53 74 61 74 65 28 76 setMountState(v
5d5a0 61 6c 75 65 29 20 7b 0a 20 20 20 20 76 61 72 20 alue) {. var
5d5b0 72 65 66 20 3d 20 74 68 69 73 2e 5f 5f 3b 0a 20 ref = this.__;.
5d5c0 20 20 20 76 61 72 20 69 73 41 6e 6f 6e 79 6d 6f var isAnonymo
5d5d0 75 73 20 3d 20 72 65 66 2e 69 73 41 6e 6f 6e 79 us = ref.isAnony
5d5e0 6d 6f 75 73 3b 0a 20 20 20 20 76 61 72 20 73 6b mous;. var sk
5d5f0 69 70 41 6e 6f 6e 79 6d 6f 75 73 20 3d 20 72 65 ipAnonymous = re
5d600 66 2e 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 3b f.skipAnonymous;
5d610 0a 0a 20 20 20 20 64 65 66 69 6e 65 28 74 68 69 .. define(thi
5d620 73 2c 20 27 69 73 4d 6f 75 6e 74 65 64 27 2c 20 s, 'isMounted',
5d630 76 61 6c 75 65 29 3b 0a 0a 20 20 20 20 69 66 20 value);.. if
5d640 28 21 69 73 41 6e 6f 6e 79 6d 6f 75 73 20 7c 7c (!isAnonymous ||
5d650 20 21 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 29 !skipAnonymous)
5d660 20 7b 0a 20 20 20 20 20 20 69 66 20 28 76 61 6c {. if (val
5d670 75 65 29 20 7b 20 74 68 69 73 2e 74 72 69 67 67 ue) { this.trigg
5d680 65 72 28 27 6d 6f 75 6e 74 27 29 3b 20 7d 0a 20 er('mount'); }.
5d690 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 else {.
5d6a0 20 20 20 20 74 68 69 73 2e 74 72 69 67 67 65 72 this.trigger
5d6b0 28 27 75 6e 6d 6f 75 6e 74 27 29 3b 0a 20 20 20 ('unmount');.
5d6c0 20 20 20 20 20 74 68 69 73 2e 6f 66 66 28 27 2a this.off('*
5d6d0 27 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 ');. this
5d6e0 2e 5f 5f 2e 77 61 73 43 72 65 61 74 65 64 20 3d .__.wasCreated =
5d6f0 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 7d 0a false;. }.
5d700 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 2f 2a 2a }. }.. /**
5d710 0a 20 20 20 2a 20 4d 6f 75 6e 74 20 74 68 65 20 . * Mount the
5d720 63 75 72 72 65 6e 74 20 74 61 67 20 69 6e 73 74 current tag inst
5d730 61 6e 63 65 0a 20 20 20 2a 20 40 72 65 74 75 72 ance. * @retur
5d740 6e 73 20 7b 20 54 61 67 20 7d 20 74 68 65 20 63 ns { Tag } the c
5d750 75 72 72 65 6e 74 20 74 61 67 20 69 6e 73 74 61 urrent tag insta
5d760 6e 63 65 0a 20 20 20 2a 2f 0a 20 20 66 75 6e 63 nce. */. func
5d770 74 69 6f 6e 20 63 6f 6d 70 6f 6e 65 6e 74 4d 6f tion componentMo
5d780 75 6e 74 28 74 61 67 24 24 31 2c 20 64 6f 6d 2c unt(tag$$1, dom,
5d790 20 65 78 70 72 65 73 73 69 6f 6e 73 2c 20 6f 70 expressions, op
5d7a0 74 73 29 20 7b 0a 20 20 20 20 76 61 72 20 5f 5f ts) {. var __
5d7b0 20 3d 20 74 61 67 24 24 31 2e 5f 5f 3b 0a 20 20 = tag$$1.__;.
5d7c0 20 20 76 61 72 20 72 6f 6f 74 20 3d 20 5f 5f 2e var root = __.
5d7d0 72 6f 6f 74 3b 0a 20 20 20 20 72 6f 6f 74 2e 5f root;. root._
5d7e0 74 61 67 20 3d 20 74 61 67 24 24 31 3b 20 2f 2f tag = tag$$1; //
5d7f0 20 6b 65 65 70 20 61 20 72 65 66 65 72 65 6e 63 keep a referenc
5d800 65 20 74 6f 20 74 68 65 20 74 61 67 20 6a 75 73 e to the tag jus
5d810 74 20 63 72 65 61 74 65 64 0a 0a 20 20 20 20 2f t created.. /
5d820 2f 20 52 65 61 64 20 61 6c 6c 20 74 68 65 20 61 / Read all the a
5d830 74 74 72 73 20 6f 6e 20 74 68 69 73 20 69 6e 73 ttrs on this ins
5d840 74 61 6e 63 65 2e 20 54 68 69 73 20 67 69 76 65 tance. This give
5d850 20 75 73 20 74 68 65 20 69 6e 66 6f 20 77 65 20 us the info we
5d860 6e 65 65 64 20 66 6f 72 20 75 70 64 61 74 65 4f need for updateO
5d870 70 74 73 0a 20 20 20 20 70 61 72 73 65 41 74 74 pts. parseAtt
5d880 72 69 62 75 74 65 73 2e 61 70 70 6c 79 28 5f 5f ributes.apply(__
5d890 2e 70 61 72 65 6e 74 2c 20 5b 72 6f 6f 74 2c 20 .parent, [root,
5d8a0 72 6f 6f 74 2e 61 74 74 72 69 62 75 74 65 73 2c root.attributes,
5d8b0 20 66 75 6e 63 74 69 6f 6e 20 28 61 74 74 72 2c function (attr,
5d8c0 20 65 78 70 72 29 20 7b 0a 20 20 20 20 20 20 69 expr) {. i
5d8d0 66 20 28 21 5f 5f 2e 69 73 41 6e 6f 6e 79 6d 6f f (!__.isAnonymo
5d8e0 75 73 20 26 26 20 52 65 66 45 78 70 72 2e 69 73 us && RefExpr.is
5d8f0 50 72 6f 74 6f 74 79 70 65 4f 66 28 65 78 70 72 PrototypeOf(expr
5d900 29 29 20 7b 20 65 78 70 72 2e 74 61 67 20 3d 20 )) { expr.tag =
5d910 74 61 67 24 24 31 3b 20 7d 0a 20 20 20 20 20 20 tag$$1; }.
5d920 61 74 74 72 2e 65 78 70 72 20 3d 20 65 78 70 72 attr.expr = expr
5d930 3b 0a 20 20 20 20 20 20 5f 5f 2e 69 6e 73 74 41 ;. __.instA
5d940 74 74 72 73 2e 70 75 73 68 28 61 74 74 72 29 3b ttrs.push(attr);
5d950 0a 20 20 20 20 7d 5d 29 3b 0a 0a 20 20 20 20 2f . }]);.. /
5d960 2f 20 75 70 64 61 74 65 20 74 68 65 20 72 6f 6f / update the roo
5d970 74 20 61 64 64 69 6e 67 20 63 75 73 74 6f 6d 20 t adding custom
5d980 61 74 74 72 69 62 75 74 65 73 20 63 6f 6d 69 6e attributes comin
5d990 67 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 69 g from the compi
5d9a0 6c 65 72 0a 20 20 20 20 77 61 6c 6b 41 74 74 72 ler. walkAttr
5d9b0 69 62 75 74 65 73 28 5f 5f 2e 69 6d 70 6c 2e 61 ibutes(__.impl.a
5d9c0 74 74 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 ttrs, function (
5d9d0 6b 2c 20 76 29 20 7b 20 5f 5f 2e 69 6d 70 6c 41 k, v) { __.implA
5d9e0 74 74 72 73 2e 70 75 73 68 28 7b 6e 61 6d 65 3a ttrs.push({name:
5d9f0 20 6b 2c 20 76 61 6c 75 65 3a 20 76 7d 29 3b 20 k, value: v});
5da00 7d 29 3b 0a 20 20 20 20 70 61 72 73 65 41 74 74 });. parseAtt
5da10 72 69 62 75 74 65 73 2e 61 70 70 6c 79 28 74 61 ributes.apply(ta
5da20 67 24 24 31 2c 20 5b 72 6f 6f 74 2c 20 5f 5f 2e g$$1, [root, __.
5da30 69 6d 70 6c 41 74 74 72 73 2c 20 66 75 6e 63 74 implAttrs, funct
5da40 69 6f 6e 20 28 61 74 74 72 2c 20 65 78 70 72 29 ion (attr, expr)
5da50 20 7b 0a 20 20 20 20 20 20 69 66 20 28 65 78 70 {. if (exp
5da60 72 29 20 7b 20 65 78 70 72 65 73 73 69 6f 6e 73 r) { expressions
5da70 2e 70 75 73 68 28 65 78 70 72 29 3b 20 7d 0a 20 .push(expr); }.
5da80 20 20 20 20 20 65 6c 73 65 20 7b 20 73 65 74 41 else { setA
5da90 74 74 72 69 62 75 74 65 28 72 6f 6f 74 2c 20 61 ttribute(root, a
5daa0 74 74 72 2e 6e 61 6d 65 2c 20 61 74 74 72 2e 76 ttr.name, attr.v
5dab0 61 6c 75 65 29 3b 20 7d 0a 20 20 20 20 7d 5d 29 alue); }. }])
5dac0 3b 0a 0a 20 20 20 20 2f 2f 20 69 6e 69 74 69 61 ;.. // initia
5dad0 6c 69 61 74 69 6f 6e 0a 20 20 20 20 75 70 64 61 liation. upda
5dae0 74 65 4f 70 74 73 2e 61 70 70 6c 79 28 74 61 67 teOpts.apply(tag
5daf0 24 24 31 2c 20 5b 5f 5f 2e 69 73 4c 6f 6f 70 2c $$1, [__.isLoop,
5db00 20 5f 5f 2e 70 61 72 65 6e 74 2c 20 5f 5f 2e 69 __.parent, __.i
5db10 73 41 6e 6f 6e 79 6d 6f 75 73 2c 20 6f 70 74 73 sAnonymous, opts
5db20 2c 20 5f 5f 2e 69 6e 73 74 41 74 74 72 73 5d 29 , __.instAttrs])
5db30 3b 0a 0a 20 20 20 20 2f 2f 20 61 64 64 20 67 6c ;.. // add gl
5db40 6f 62 61 6c 20 6d 69 78 69 6e 73 0a 20 20 20 20 obal mixins.
5db50 76 61 72 20 67 6c 6f 62 61 6c 4d 69 78 69 6e 20 var globalMixin
5db60 3d 20 6d 69 78 69 6e 28 47 4c 4f 42 41 4c 5f 4d = mixin(GLOBAL_M
5db70 49 58 49 4e 29 3b 0a 0a 20 20 20 20 69 66 20 28 IXIN);.. if (
5db80 67 6c 6f 62 61 6c 4d 69 78 69 6e 20 26 26 20 21 globalMixin && !
5db90 5f 5f 2e 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 __.skipAnonymous
5dba0 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 20 28 76 ) {. for (v
5dbb0 61 72 20 69 20 69 6e 20 67 6c 6f 62 61 6c 4d 69 ar i in globalMi
5dbc0 78 69 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 69 xin) {. i
5dbd0 66 20 28 67 6c 6f 62 61 6c 4d 69 78 69 6e 2e 68 f (globalMixin.h
5dbe0 61 73 4f 77 6e 50 72 6f 70 65 72 74 79 28 69 29 asOwnProperty(i)
5dbf0 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 74 61 ) {. ta
5dc00 67 24 24 31 2e 6d 69 78 69 6e 28 67 6c 6f 62 61 g$$1.mixin(globa
5dc10 6c 4d 69 78 69 6e 5b 69 5d 29 3b 0a 20 20 20 20 lMixin[i]);.
5dc20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 }. }.
5dc30 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 5f 5f 2e }.. if (__.
5dc40 69 6d 70 6c 2e 66 6e 29 20 7b 20 5f 5f 2e 69 6d impl.fn) { __.im
5dc50 70 6c 2e 66 6e 2e 63 61 6c 6c 28 74 61 67 24 24 pl.fn.call(tag$$
5dc60 31 2c 20 6f 70 74 73 29 3b 20 7d 0a 0a 20 20 20 1, opts); }..
5dc70 20 69 66 20 28 21 5f 5f 2e 73 6b 69 70 41 6e 6f if (!__.skipAno
5dc80 6e 79 6d 6f 75 73 29 20 7b 20 74 61 67 24 24 31 nymous) { tag$$1
5dc90 2e 74 72 69 67 67 65 72 28 27 62 65 66 6f 72 65 .trigger('before
5dca0 2d 6d 6f 75 6e 74 27 29 3b 20 7d 0a 0a 20 20 20 -mount'); }..
5dcb0 20 2f 2f 20 70 61 72 73 65 20 6c 61 79 6f 75 74 // parse layout
5dcc0 20 61 66 74 65 72 20 69 6e 69 74 2e 20 66 6e 20 after init. fn
5dcd0 6d 61 79 20 63 61 6c 63 75 6c 61 74 65 20 61 72 may calculate ar
5dce0 67 73 20 66 6f 72 20 6e 65 73 74 65 64 20 63 75 gs for nested cu
5dcf0 73 74 6f 6d 20 74 61 67 73 0a 20 20 20 20 65 61 stom tags. ea
5dd00 63 68 28 70 61 72 73 65 45 78 70 72 65 73 73 69 ch(parseExpressi
5dd10 6f 6e 73 2e 61 70 70 6c 79 28 74 61 67 24 24 31 ons.apply(tag$$1
5dd20 2c 20 5b 64 6f 6d 2c 20 5f 5f 2e 69 73 41 6e 6f , [dom, __.isAno
5dd30 6e 79 6d 6f 75 73 5d 29 2c 20 66 75 6e 63 74 69 nymous]), functi
5dd40 6f 6e 20 28 65 29 20 7b 20 72 65 74 75 72 6e 20 on (e) { return
5dd50 65 78 70 72 65 73 73 69 6f 6e 73 2e 70 75 73 68 expressions.push
5dd60 28 65 29 3b 20 7d 29 3b 0a 0a 20 20 20 20 74 61 (e); });.. ta
5dd70 67 24 24 31 2e 75 70 64 61 74 65 28 5f 5f 2e 69 g$$1.update(__.i
5dd80 74 65 6d 29 3b 0a 0a 20 20 20 20 69 66 20 28 21 tem);.. if (!
5dd90 5f 5f 2e 69 73 41 6e 6f 6e 79 6d 6f 75 73 20 26 __.isAnonymous &
5dda0 26 20 21 5f 5f 2e 69 73 49 6e 6c 69 6e 65 29 20 & !__.isInline)
5ddb0 7b 0a 20 20 20 20 20 20 77 68 69 6c 65 20 28 64 {. while (d
5ddc0 6f 6d 2e 66 69 72 73 74 43 68 69 6c 64 29 20 7b om.firstChild) {
5ddd0 20 72 6f 6f 74 2e 61 70 70 65 6e 64 43 68 69 6c root.appendChil
5dde0 64 28 64 6f 6d 2e 66 69 72 73 74 43 68 69 6c 64 d(dom.firstChild
5ddf0 29 3b 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ); }. }..
5de00 64 65 66 69 6e 65 28 74 61 67 24 24 31 2c 20 27 define(tag$$1, '
5de10 72 6f 6f 74 27 2c 20 72 6f 6f 74 29 3b 0a 0a 20 root', root);..
5de20 20 20 20 2f 2f 20 69 66 20 77 65 20 6e 65 65 64 // if we need
5de30 20 74 6f 20 77 61 69 74 20 74 68 61 74 20 74 68 to wait that th
5de40 65 20 70 61 72 65 6e 74 20 22 6d 6f 75 6e 74 22 e parent "mount"
5de50 20 6f 72 20 22 75 70 64 61 74 65 64 22 20 65 76 or "updated" ev
5de60 65 6e 74 20 67 65 74 73 20 74 72 69 67 67 65 72 ent gets trigger
5de70 65 64 0a 20 20 20 20 69 66 20 28 21 5f 5f 2e 73 ed. if (!__.s
5de80 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 20 26 26 20 kipAnonymous &&
5de90 74 61 67 24 24 31 2e 70 61 72 65 6e 74 29 20 7b tag$$1.parent) {
5dea0 0a 20 20 20 20 20 20 76 61 72 20 70 20 3d 20 67 . var p = g
5deb0 65 74 49 6d 6d 65 64 69 61 74 65 43 75 73 74 6f etImmediateCusto
5dec0 6d 50 61 72 65 6e 74 28 74 61 67 24 24 31 2e 70 mParent(tag$$1.p
5ded0 61 72 65 6e 74 29 3b 0a 20 20 20 20 20 20 70 2e arent);. p.
5dee0 6f 6e 65 28 21 70 2e 69 73 4d 6f 75 6e 74 65 64 one(!p.isMounted
5def0 20 3f 20 27 6d 6f 75 6e 74 27 20 3a 20 27 75 70 ? 'mount' : 'up
5df00 64 61 74 65 64 27 2c 20 66 75 6e 63 74 69 6f 6e dated', function
5df10 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 73 65 () {. se
5df20 74 4d 6f 75 6e 74 53 74 61 74 65 2e 63 61 6c 6c tMountState.call
5df30 28 74 61 67 24 24 31 2c 20 74 72 75 65 29 3b 0a (tag$$1, true);.
5df40 20 20 20 20 20 20 7d 29 3b 0a 20 20 20 20 7d 20 });. }
5df50 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 2f 2f 20 else {. //
5df60 6f 74 68 65 72 77 69 73 65 20 69 74 27 73 20 6e otherwise it's n
5df70 6f 74 20 61 20 63 68 69 6c 64 20 74 61 67 20 77 ot a child tag w
5df80 65 20 63 61 6e 20 74 72 69 67 67 65 72 20 69 74 e can trigger it
5df90 73 20 6d 6f 75 6e 74 20 65 76 65 6e 74 0a 20 20 s mount event.
5dfa0 20 20 20 20 73 65 74 4d 6f 75 6e 74 53 74 61 74 setMountStat
5dfb0 65 2e 63 61 6c 6c 28 74 61 67 24 24 31 2c 20 74 e.call(tag$$1, t
5dfc0 72 75 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 rue);. }..
5dfd0 20 74 61 67 24 24 31 2e 5f 5f 2e 77 61 73 43 72 tag$$1.__.wasCr
5dfe0 65 61 74 65 64 20 3d 20 74 72 75 65 3b 0a 0a 20 eated = true;..
5dff0 20 20 20 72 65 74 75 72 6e 20 74 61 67 24 24 31 return tag$$1
5e000 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a . }.. /**. *
5e010 20 55 6e 6d 6f 75 6e 74 20 74 68 65 20 74 61 67 Unmount the tag
5e020 20 69 6e 73 74 61 6e 63 65 0a 20 20 20 2a 20 40 instance. * @
5e030 70 61 72 61 6d 20 7b 20 42 6f 6f 6c 65 61 6e 20 param { Boolean
5e040 7d 20 6d 75 73 74 4b 65 65 70 52 6f 6f 74 20 2d } mustKeepRoot -
5e050 20 69 66 20 69 74 27 73 20 74 72 75 65 20 74 68 if it's true th
5e060 65 20 72 6f 6f 74 20 6e 6f 64 65 20 77 69 6c 6c e root node will
5e070 20 6e 6f 74 20 62 65 20 72 65 6d 6f 76 65 64 0a not be removed.
5e080 20 20 20 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 * @returns {
5e090 54 61 67 20 7d 20 74 68 65 20 63 75 72 72 65 6e Tag } the curren
5e0a0 74 20 74 61 67 20 69 6e 73 74 61 6e 63 65 0a 20 t tag instance.
5e0b0 20 20 2a 2f 0a 20 20 66 75 6e 63 74 69 6f 6e 20 */. function
5e0c0 74 61 67 55 6e 6d 6f 75 6e 74 28 74 61 67 2c 20 tagUnmount(tag,
5e0d0 6d 75 73 74 4b 65 65 70 52 6f 6f 74 2c 20 65 78 mustKeepRoot, ex
5e0e0 70 72 65 73 73 69 6f 6e 73 29 20 7b 0a 20 20 20 pressions) {.
5e0f0 20 76 61 72 20 5f 5f 20 3d 20 74 61 67 2e 5f 5f var __ = tag.__
5e100 3b 0a 20 20 20 20 76 61 72 20 72 6f 6f 74 20 3d ;. var root =
5e110 20 5f 5f 2e 72 6f 6f 74 3b 0a 20 20 20 20 76 61 __.root;. va
5e120 72 20 74 61 67 49 6e 64 65 78 20 3d 20 5f 5f 54 r tagIndex = __T
5e130 41 47 53 5f 43 41 43 48 45 2e 69 6e 64 65 78 4f AGS_CACHE.indexO
5e140 66 28 74 61 67 29 3b 0a 20 20 20 20 76 61 72 20 f(tag);. var
5e150 70 20 3d 20 72 6f 6f 74 2e 70 61 72 65 6e 74 4e p = root.parentN
5e160 6f 64 65 3b 0a 0a 20 20 20 20 69 66 20 28 21 5f ode;.. if (!_
5e170 5f 2e 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 29 _.skipAnonymous)
5e180 20 7b 20 74 61 67 2e 74 72 69 67 67 65 72 28 27 { tag.trigger('
5e190 62 65 66 6f 72 65 2d 75 6e 6d 6f 75 6e 74 27 29 before-unmount')
5e1a0 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 63 6c 65 61 ; }.. // clea
5e1b0 72 20 61 6c 6c 20 61 74 74 72 69 62 75 74 65 73 r all attributes
5e1c0 20 63 6f 6d 69 6e 67 20 66 72 6f 6d 20 74 68 65 coming from the
5e1d0 20 6d 6f 75 6e 74 65 64 20 74 61 67 0a 20 20 20 mounted tag.
5e1e0 20 77 61 6c 6b 41 74 74 72 69 62 75 74 65 73 28 walkAttributes(
5e1f0 5f 5f 2e 69 6d 70 6c 2e 61 74 74 72 73 2c 20 66 __.impl.attrs, f
5e200 75 6e 63 74 69 6f 6e 20 28 6e 61 6d 65 29 20 7b unction (name) {
5e210 0a 20 20 20 20 20 20 69 66 20 28 73 74 61 72 74 . if (start
5e220 73 57 69 74 68 28 6e 61 6d 65 2c 20 41 54 54 52 sWith(name, ATTR
5e230 53 5f 50 52 45 46 49 58 29 29 0a 20 20 20 20 20 S_PREFIX)).
5e240 20 20 20 7b 20 6e 61 6d 65 20 3d 20 6e 61 6d 65 { name = name
5e250 2e 73 6c 69 63 65 28 41 54 54 52 53 5f 50 52 45 .slice(ATTRS_PRE
5e260 46 49 58 2e 6c 65 6e 67 74 68 29 3b 20 7d 0a 0a FIX.length); }..
5e270 20 20 20 20 20 20 72 65 6d 6f 76 65 41 74 74 72 removeAttr
5e280 69 62 75 74 65 28 72 6f 6f 74 2c 20 6e 61 6d 65 ibute(root, name
5e290 29 3b 0a 20 20 20 20 7d 29 3b 0a 0a 20 20 20 20 );. });..
5e2a0 2f 2f 20 72 65 6d 6f 76 65 20 61 6c 6c 20 74 68 // remove all th
5e2b0 65 20 65 76 65 6e 74 20 6c 69 73 74 65 6e 65 72 e event listener
5e2c0 73 0a 20 20 20 20 74 61 67 2e 5f 5f 2e 6c 69 73 s. tag.__.lis
5e2d0 74 65 6e 65 72 73 2e 66 6f 72 45 61 63 68 28 66 teners.forEach(f
5e2e0 75 6e 63 74 69 6f 6e 20 28 64 6f 6d 29 20 7b 0a unction (dom) {.
5e2f0 20 20 20 20 20 20 4f 62 6a 65 63 74 2e 6b 65 79 Object.key
5e300 73 28 64 6f 6d 5b 52 49 4f 54 5f 45 56 45 4e 54 s(dom[RIOT_EVENT
5e310 53 5f 4b 45 59 5d 29 2e 66 6f 72 45 61 63 68 28 S_KEY]).forEach(
5e320 66 75 6e 63 74 69 6f 6e 20 28 65 76 65 6e 74 4e function (eventN
5e330 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 64 ame) {. d
5e340 6f 6d 2e 72 65 6d 6f 76 65 45 76 65 6e 74 4c 69 om.removeEventLi
5e350 73 74 65 6e 65 72 28 65 76 65 6e 74 4e 61 6d 65 stener(eventName
5e360 2c 20 64 6f 6d 5b 52 49 4f 54 5f 45 56 45 4e 54 , dom[RIOT_EVENT
5e370 53 5f 4b 45 59 5d 5b 65 76 65 6e 74 4e 61 6d 65 S_KEY][eventName
5e380 5d 29 3b 0a 20 20 20 20 20 20 7d 29 3b 0a 20 20 ]);. });.
5e390 20 20 7d 29 3b 0a 0a 20 20 20 20 2f 2f 20 72 65 });.. // re
5e3a0 6d 6f 76 65 20 74 61 67 20 69 6e 73 74 61 6e 63 move tag instanc
5e3b0 65 20 66 72 6f 6d 20 74 68 65 20 67 6c 6f 62 61 e from the globa
5e3c0 6c 20 74 61 67 73 20 63 61 63 68 65 20 63 6f 6c l tags cache col
5e3d0 6c 65 63 74 69 6f 6e 0a 20 20 20 20 69 66 20 28 lection. if (
5e3e0 74 61 67 49 6e 64 65 78 20 21 3d 3d 20 2d 31 29 tagIndex !== -1)
5e3f0 20 7b 20 5f 5f 54 41 47 53 5f 43 41 43 48 45 2e { __TAGS_CACHE.
5e400 73 70 6c 69 63 65 28 74 61 67 49 6e 64 65 78 2c splice(tagIndex,
5e410 20 31 29 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 63 1); }.. // c
5e420 6c 65 61 6e 20 75 70 20 74 68 65 20 70 61 72 65 lean up the pare
5e430 6e 74 20 74 61 67 73 20 6f 62 6a 65 63 74 0a 20 nt tags object.
5e440 20 20 20 69 66 20 28 5f 5f 2e 70 61 72 65 6e 74 if (__.parent
5e450 20 26 26 20 21 5f 5f 2e 69 73 41 6e 6f 6e 79 6d && !__.isAnonym
5e460 6f 75 73 29 20 7b 0a 20 20 20 20 20 20 76 61 72 ous) {. var
5e470 20 70 74 61 67 20 3d 20 67 65 74 49 6d 6d 65 64 ptag = getImmed
5e480 69 61 74 65 43 75 73 74 6f 6d 50 61 72 65 6e 74 iateCustomParent
5e490 28 5f 5f 2e 70 61 72 65 6e 74 29 3b 0a 0a 20 20 (__.parent);..
5e4a0 20 20 20 20 69 66 20 28 5f 5f 2e 69 73 56 69 72 if (__.isVir
5e4b0 74 75 61 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 tual) {.
5e4c0 4f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 Object.
5e4d0 20 2e 6b 65 79 73 28 74 61 67 2e 74 61 67 73 29 .keys(tag.tags)
5e4e0 0a 20 20 20 20 20 20 20 20 20 20 2e 66 6f 72 45 . .forE
5e4f0 61 63 68 28 66 75 6e 63 74 69 6f 6e 20 28 74 61 ach(function (ta
5e500 67 4e 61 6d 65 29 20 7b 20 72 65 74 75 72 6e 20 gName) { return
5e510 61 72 72 61 79 69 73 68 52 65 6d 6f 76 65 28 70 arrayishRemove(p
5e520 74 61 67 2e 74 61 67 73 2c 20 74 61 67 4e 61 6d tag.tags, tagNam
5e530 65 2c 20 74 61 67 2e 74 61 67 73 5b 74 61 67 4e e, tag.tags[tagN
5e540 61 6d 65 5d 29 3b 20 7d 29 3b 0a 20 20 20 20 20 ame]); });.
5e550 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 } else {.
5e560 20 20 61 72 72 61 79 69 73 68 52 65 6d 6f 76 65 arrayishRemove
5e570 28 70 74 61 67 2e 74 61 67 73 2c 20 5f 5f 2e 74 (ptag.tags, __.t
5e580 61 67 4e 61 6d 65 2c 20 74 61 67 29 3b 0a 20 20 agName, tag);.
5e590 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 }. }..
5e5a0 20 2f 2f 20 75 6e 6d 6f 75 6e 74 20 61 6c 6c 20 // unmount all
5e5b0 74 68 65 20 76 69 72 74 75 61 6c 20 64 69 72 65 the virtual dire
5e5c0 63 74 69 76 65 73 0a 20 20 20 20 69 66 20 28 74 ctives. if (t
5e5d0 61 67 2e 5f 5f 2e 76 69 72 74 73 29 20 7b 0a 20 ag.__.virts) {.
5e5e0 20 20 20 20 20 65 61 63 68 28 74 61 67 2e 5f 5f each(tag.__
5e5f0 2e 76 69 72 74 73 2c 20 66 75 6e 63 74 69 6f 6e .virts, function
5e600 20 28 76 29 20 7b 0a 20 20 20 20 20 20 20 20 69 (v) {. i
5e610 66 20 28 76 2e 70 61 72 65 6e 74 4e 6f 64 65 29 f (v.parentNode)
5e620 20 7b 20 76 2e 70 61 72 65 6e 74 4e 6f 64 65 2e { v.parentNode.
5e630 72 65 6d 6f 76 65 43 68 69 6c 64 28 76 29 3b 20 removeChild(v);
5e640 7d 0a 20 20 20 20 20 20 7d 29 3b 0a 20 20 20 20 }. });.
5e650 7d 0a 0a 20 20 20 20 2f 2f 20 61 6c 6c 6f 77 20 }.. // allow
5e660 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 20 75 expressions to u
5e670 6e 6d 6f 75 6e 74 20 74 68 65 6d 73 65 6c 76 65 nmount themselve
5e680 73 0a 20 20 20 20 75 6e 6d 6f 75 6e 74 41 6c 6c s. unmountAll
5e690 28 65 78 70 72 65 73 73 69 6f 6e 73 29 3b 0a 20 (expressions);.
5e6a0 20 20 20 65 61 63 68 28 5f 5f 2e 69 6e 73 74 41 each(__.instA
5e6b0 74 74 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 ttrs, function (
5e6c0 61 29 20 7b 20 72 65 74 75 72 6e 20 61 2e 65 78 a) { return a.ex
5e6d0 70 72 20 26 26 20 61 2e 65 78 70 72 2e 75 6e 6d pr && a.expr.unm
5e6e0 6f 75 6e 74 20 26 26 20 61 2e 65 78 70 72 2e 75 ount && a.expr.u
5e6f0 6e 6d 6f 75 6e 74 28 29 3b 20 7d 29 3b 0a 0a 20 nmount(); });..
5e700 20 20 20 2f 2f 20 63 6c 65 61 72 20 74 68 65 20 // clear the
5e710 74 61 67 20 68 74 6d 6c 20 69 66 20 69 74 27 73 tag html if it's
5e720 20 6e 65 63 65 73 73 61 72 79 0a 20 20 20 20 69 necessary. i
5e730 66 20 28 6d 75 73 74 4b 65 65 70 52 6f 6f 74 29 f (mustKeepRoot)
5e740 20 7b 20 73 65 74 49 6e 6e 65 72 48 54 4d 4c 28 { setInnerHTML(
5e750 72 6f 6f 74 2c 20 27 27 29 3b 20 7d 0a 20 20 20 root, ''); }.
5e760 20 2f 2f 20 6f 74 68 65 72 77 69 73 65 20 64 65 // otherwise de
5e770 74 61 63 68 20 74 68 65 20 72 6f 6f 74 20 74 61 tach the root ta
5e780 67 20 66 72 6f 6d 20 74 68 65 20 44 4f 4d 0a 20 g from the DOM.
5e790 20 20 20 65 6c 73 65 20 69 66 20 28 70 29 20 7b else if (p) {
5e7a0 20 70 2e 72 65 6d 6f 76 65 43 68 69 6c 64 28 72 p.removeChild(r
5e7b0 6f 6f 74 29 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 oot); }.. //
5e7c0 63 75 73 74 6f 6d 20 69 6e 74 65 72 6e 61 6c 20 custom internal
5e7d0 75 6e 6d 6f 75 6e 74 20 66 75 6e 63 74 69 6f 6e unmount function
5e7e0 20 74 6f 20 61 76 6f 69 64 20 72 65 6c 79 69 6e to avoid relyin
5e7f0 67 20 6f 6e 20 74 68 65 20 6f 62 73 65 72 76 61 g on the observa
5e800 62 6c 65 0a 20 20 20 20 69 66 20 28 5f 5f 2e 6f ble. if (__.o
5e810 6e 55 6e 6d 6f 75 6e 74 29 20 7b 20 5f 5f 2e 6f nUnmount) { __.o
5e820 6e 55 6e 6d 6f 75 6e 74 28 29 3b 20 7d 0a 0a 20 nUnmount(); }..
5e830 20 20 20 2f 2f 20 77 65 69 72 64 20 66 69 78 20 // weird fix
5e840 66 6f 72 20 61 20 77 65 69 72 64 20 65 64 67 65 for a weird edge
5e850 20 63 61 73 65 20 23 32 34 30 39 20 61 6e 64 20 case #2409 and
5e860 23 32 34 33 36 0a 20 20 20 20 2f 2f 20 73 6f 6d #2436. // som
5e870 65 20 75 73 65 72 73 20 6d 69 67 68 74 20 75 73 e users might us
5e880 65 20 79 6f 75 72 20 73 6f 66 74 77 61 72 65 20 e your software
5e890 6e 6f 74 20 61 73 20 79 6f 75 27 76 65 20 65 78 not as you've ex
5e8a0 70 65 63 74 65 64 0a 20 20 20 20 2f 2f 20 73 6f pected. // so
5e8b0 20 49 20 6e 65 65 64 20 74 6f 20 61 64 64 20 74 I need to add t
5e8c0 68 65 73 65 20 64 69 72 74 79 20 68 61 63 6b 73 hese dirty hacks
5e8d0 20 74 6f 20 6d 69 74 69 67 61 74 65 20 75 6e 65 to mitigate une
5e8e0 78 70 65 63 74 65 64 20 69 73 73 75 65 73 0a 20 xpected issues.
5e8f0 20 20 20 69 66 20 28 21 74 61 67 2e 69 73 4d 6f if (!tag.isMo
5e900 75 6e 74 65 64 29 20 7b 20 73 65 74 4d 6f 75 6e unted) { setMoun
5e910 74 53 74 61 74 65 2e 63 61 6c 6c 28 74 61 67 2c tState.call(tag,
5e920 20 74 72 75 65 29 3b 20 7d 0a 0a 20 20 20 20 73 true); }.. s
5e930 65 74 4d 6f 75 6e 74 53 74 61 74 65 2e 63 61 6c etMountState.cal
5e940 6c 28 74 61 67 2c 20 66 61 6c 73 65 29 3b 0a 0a l(tag, false);..
5e950 20 20 20 20 64 65 6c 65 74 65 20 72 6f 6f 74 2e delete root.
5e960 5f 74 61 67 3b 0a 0a 20 20 20 20 72 65 74 75 72 _tag;.. retur
5e970 6e 20 74 61 67 0a 20 20 7d 0a 0a 20 20 2f 2a 2a n tag. }.. /**
5e980 0a 20 20 20 2a 20 54 61 67 20 63 72 65 61 74 69 . * Tag creati
5e990 6f 6e 20 66 61 63 74 6f 72 79 20 66 75 6e 63 74 on factory funct
5e9a0 69 6f 6e 0a 20 20 20 2a 20 40 63 6f 6e 73 74 72 ion. * @constr
5e9b0 75 63 74 6f 72 0a 20 20 20 2a 20 40 70 61 72 61 uctor. * @para
5e9c0 6d 20 7b 20 4f 62 6a 65 63 74 20 7d 20 69 6d 70 m { Object } imp
5e9d0 6c 20 2d 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 l - it contains
5e9e0 74 68 65 20 74 61 67 20 74 65 6d 70 6c 61 74 65 the tag template
5e9f0 2c 20 61 6e 64 20 6c 6f 67 69 63 0a 20 20 20 2a , and logic. *
5ea00 20 40 70 61 72 61 6d 20 7b 20 4f 62 6a 65 63 74 @param { Object
5ea10 20 7d 20 63 6f 6e 66 20 2d 20 74 61 67 20 6f 70 } conf - tag op
5ea20 74 69 6f 6e 73 0a 20 20 20 2a 20 40 70 61 72 61 tions. * @para
5ea30 6d 20 7b 20 53 74 72 69 6e 67 20 7d 20 69 6e 6e m { String } inn
5ea40 65 72 48 54 4d 4c 20 2d 20 68 74 6d 6c 20 74 68 erHTML - html th
5ea50 61 74 20 65 76 65 6e 74 75 61 6c 6c 79 20 77 65 at eventually we
5ea60 20 6e 65 65 64 20 74 6f 20 69 6e 6a 65 63 74 20 need to inject
5ea70 69 6e 20 74 68 65 20 74 61 67 0a 20 20 20 2a 2f in the tag. */
5ea80 0a 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 . function crea
5ea90 74 65 54 61 67 28 69 6d 70 6c 2c 20 63 6f 6e 66 teTag(impl, conf
5eaa0 2c 20 69 6e 6e 65 72 48 54 4d 4c 29 20 7b 0a 20 , innerHTML) {.
5eab0 20 20 20 69 66 20 28 20 69 6d 70 6c 20 3d 3d 3d if ( impl ===
5eac0 20 76 6f 69 64 20 30 20 29 20 69 6d 70 6c 20 3d void 0 ) impl =
5ead0 20 7b 7d 3b 0a 20 20 20 20 69 66 20 28 20 63 6f {};. if ( co
5eae0 6e 66 20 3d 3d 3d 20 76 6f 69 64 20 30 20 29 20 nf === void 0 )
5eaf0 63 6f 6e 66 20 3d 20 7b 7d 3b 0a 0a 20 20 20 20 conf = {};..
5eb00 76 61 72 20 74 61 67 20 3d 20 63 6f 6e 66 2e 63 var tag = conf.c
5eb10 6f 6e 74 65 78 74 20 7c 7c 20 7b 7d 3b 0a 20 20 ontext || {};.
5eb20 20 20 76 61 72 20 6f 70 74 73 20 3d 20 63 6f 6e var opts = con
5eb30 66 2e 6f 70 74 73 20 7c 7c 20 7b 7d 3b 0a 20 20 f.opts || {};.
5eb40 20 20 76 61 72 20 70 61 72 65 6e 74 20 3d 20 63 var parent = c
5eb50 6f 6e 66 2e 70 61 72 65 6e 74 3b 0a 20 20 20 20 onf.parent;.
5eb60 76 61 72 20 69 73 4c 6f 6f 70 20 3d 20 63 6f 6e var isLoop = con
5eb70 66 2e 69 73 4c 6f 6f 70 3b 0a 20 20 20 20 76 61 f.isLoop;. va
5eb80 72 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 20 3d 20 r isAnonymous =
5eb90 21 21 63 6f 6e 66 2e 69 73 41 6e 6f 6e 79 6d 6f !!conf.isAnonymo
5eba0 75 73 3b 0a 20 20 20 20 76 61 72 20 73 6b 69 70 us;. var skip
5ebb0 41 6e 6f 6e 79 6d 6f 75 73 20 3d 20 73 65 74 74 Anonymous = sett
5ebc0 69 6e 67 73 2e 73 6b 69 70 41 6e 6f 6e 79 6d 6f ings.skipAnonymo
5ebd0 75 73 54 61 67 73 20 26 26 20 69 73 41 6e 6f 6e usTags && isAnon
5ebe0 79 6d 6f 75 73 3b 0a 20 20 20 20 76 61 72 20 69 ymous;. var i
5ebf0 74 65 6d 20 3d 20 63 6f 6e 66 2e 69 74 65 6d 3b tem = conf.item;
5ec00 0a 20 20 20 20 2f 2f 20 61 76 61 69 6c 61 62 6c . // availabl
5ec10 65 20 6f 6e 6c 79 20 66 6f 72 20 74 68 65 20 6c e only for the l
5ec20 6f 6f 70 65 64 20 6e 6f 64 65 73 0a 20 20 20 20 ooped nodes.
5ec30 76 61 72 20 69 6e 64 65 78 20 3d 20 63 6f 6e 66 var index = conf
5ec40 2e 69 6e 64 65 78 3b 0a 20 20 20 20 2f 2f 20 41 .index;. // A
5ec50 6c 6c 20 61 74 74 72 69 62 75 74 65 73 20 6f 6e ll attributes on
5ec60 20 74 68 65 20 54 61 67 20 77 68 65 6e 20 69 74 the Tag when it
5ec70 27 73 20 66 69 72 73 74 20 70 61 72 73 65 64 0a 's first parsed.
5ec80 20 20 20 20 76 61 72 20 69 6e 73 74 41 74 74 72 var instAttr
5ec90 73 20 3d 20 5b 5d 3b 0a 20 20 20 20 2f 2f 20 65 s = [];. // e
5eca0 78 70 72 65 73 73 69 6f 6e 73 20 6f 6e 20 74 68 xpressions on th
5ecb0 69 73 20 74 79 70 65 20 6f 66 20 54 61 67 0a 20 is type of Tag.
5ecc0 20 20 20 76 61 72 20 69 6d 70 6c 41 74 74 72 73 var implAttrs
5ecd0 20 3d 20 5b 5d 3b 0a 20 20 20 20 76 61 72 20 74 = [];. var t
5ece0 6d 70 6c 20 3d 20 69 6d 70 6c 2e 74 6d 70 6c 3b mpl = impl.tmpl;
5ecf0 0a 20 20 20 20 76 61 72 20 65 78 70 72 65 73 73 . var express
5ed00 69 6f 6e 73 20 3d 20 5b 5d 3b 0a 20 20 20 20 76 ions = [];. v
5ed10 61 72 20 72 6f 6f 74 20 3d 20 63 6f 6e 66 2e 72 ar root = conf.r
5ed20 6f 6f 74 3b 0a 20 20 20 20 76 61 72 20 74 61 67 oot;. var tag
5ed30 4e 61 6d 65 20 3d 20 63 6f 6e 66 2e 74 61 67 4e Name = conf.tagN
5ed40 61 6d 65 20 7c 7c 20 67 65 74 4e 61 6d 65 28 72 ame || getName(r
5ed50 6f 6f 74 29 3b 0a 20 20 20 20 76 61 72 20 69 73 oot);. var is
5ed60 56 69 72 74 75 61 6c 20 3d 20 74 61 67 4e 61 6d Virtual = tagNam
5ed70 65 20 3d 3d 3d 20 27 76 69 72 74 75 61 6c 27 3b e === 'virtual';
5ed80 0a 20 20 20 20 76 61 72 20 69 73 49 6e 6c 69 6e . var isInlin
5ed90 65 20 3d 20 21 69 73 56 69 72 74 75 61 6c 20 26 e = !isVirtual &
5eda0 26 20 21 74 6d 70 6c 3b 0a 20 20 20 20 76 61 72 & !tmpl;. var
5edb0 20 64 6f 6d 3b 0a 0a 20 20 20 20 69 66 20 28 69 dom;.. if (i
5edc0 73 49 6e 6c 69 6e 65 20 7c 7c 20 69 73 4c 6f 6f sInline || isLoo
5edd0 70 20 26 26 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 p && isAnonymous
5ede0 29 20 7b 0a 20 20 20 20 20 20 64 6f 6d 20 3d 20 ) {. dom =
5edf0 72 6f 6f 74 3b 0a 20 20 20 20 7d 20 65 6c 73 65 root;. } else
5ee00 20 7b 0a 20 20 20 20 20 20 69 66 20 28 21 69 73 {. if (!is
5ee10 56 69 72 74 75 61 6c 29 20 7b 20 72 6f 6f 74 2e Virtual) { root.
5ee20 69 6e 6e 65 72 48 54 4d 4c 20 3d 20 27 27 3b 20 innerHTML = '';
5ee30 7d 0a 20 20 20 20 20 20 64 6f 6d 20 3d 20 6d 6b }. dom = mk
5ee40 64 6f 6d 28 74 6d 70 6c 2c 20 69 6e 6e 65 72 48 dom(tmpl, innerH
5ee50 54 4d 4c 2c 20 69 73 53 76 67 28 72 6f 6f 74 29 TML, isSvg(root)
5ee60 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2f );. }.. //
5ee70 20 6d 61 6b 65 20 74 68 69 73 20 74 61 67 20 6f make this tag o
5ee80 62 73 65 72 76 61 62 6c 65 0a 20 20 20 20 69 66 bservable. if
5ee90 20 28 21 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 (!skipAnonymous
5eea0 29 20 7b 20 6f 62 73 65 72 76 61 62 6c 65 28 74 ) { observable(t
5eeb0 61 67 29 3b 20 7d 0a 0a 20 20 20 20 2f 2f 20 6f ag); }.. // o
5eec0 6e 6c 79 20 63 61 6c 6c 20 75 6e 6d 6f 75 6e 74 nly call unmount
5eed0 20 69 66 20 77 65 20 68 61 76 65 20 61 20 76 61 if we have a va
5eee0 6c 69 64 20 5f 5f 54 41 47 5f 49 4d 50 4c 20 28 lid __TAG_IMPL (
5eef0 68 61 73 20 6e 61 6d 65 20 70 72 6f 70 65 72 74 has name propert
5ef00 79 29 0a 20 20 20 20 69 66 20 28 69 6d 70 6c 2e y). if (impl.
5ef10 6e 61 6d 65 20 26 26 20 72 6f 6f 74 2e 5f 74 61 name && root._ta
5ef20 67 29 20 7b 20 72 6f 6f 74 2e 5f 74 61 67 2e 75 g) { root._tag.u
5ef30 6e 6d 6f 75 6e 74 28 74 72 75 65 29 3b 20 7d 0a nmount(true); }.
5ef40 0a 20 20 20 20 64 65 66 69 6e 65 28 74 61 67 2c . define(tag,
5ef50 20 27 5f 5f 27 2c 20 7b 0a 20 20 20 20 20 20 69 '__', {. i
5ef60 6d 70 6c 3a 20 69 6d 70 6c 2c 0a 20 20 20 20 20 mpl: impl,.
5ef70 20 72 6f 6f 74 3a 20 72 6f 6f 74 2c 0a 20 20 20 root: root,.
5ef80 20 20 20 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 skipAnonymous
5ef90 3a 20 73 6b 69 70 41 6e 6f 6e 79 6d 6f 75 73 2c : skipAnonymous,
5efa0 0a 20 20 20 20 20 20 69 6d 70 6c 41 74 74 72 73 . implAttrs
5efb0 3a 20 69 6d 70 6c 41 74 74 72 73 2c 0a 20 20 20 : implAttrs,.
5efc0 20 20 20 69 73 41 6e 6f 6e 79 6d 6f 75 73 3a 20 isAnonymous:
5efd0 69 73 41 6e 6f 6e 79 6d 6f 75 73 2c 0a 20 20 20 isAnonymous,.
5efe0 20 20 20 69 6e 73 74 41 74 74 72 73 3a 20 69 6e instAttrs: in
5eff0 73 74 41 74 74 72 73 2c 0a 20 20 20 20 20 20 69 stAttrs,. i
5f000 6e 6e 65 72 48 54 4d 4c 3a 20 69 6e 6e 65 72 48 nnerHTML: innerH
5f010 54 4d 4c 2c 0a 20 20 20 20 20 20 74 61 67 4e 61 TML,. tagNa
5f020 6d 65 3a 20 74 61 67 4e 61 6d 65 2c 0a 20 20 20 me: tagName,.
5f030 20 20 20 69 6e 64 65 78 3a 20 69 6e 64 65 78 2c index: index,
5f040 0a 20 20 20 20 20 20 69 73 4c 6f 6f 70 3a 20 69 . isLoop: i
5f050 73 4c 6f 6f 70 2c 0a 20 20 20 20 20 20 69 73 49 sLoop,. isI
5f060 6e 6c 69 6e 65 3a 20 69 73 49 6e 6c 69 6e 65 2c nline: isInline,
5f070 0a 20 20 20 20 20 20 69 74 65 6d 3a 20 69 74 65 . item: ite
5f080 6d 2c 0a 20 20 20 20 20 20 70 61 72 65 6e 74 3a m,. parent:
5f090 20 70 61 72 65 6e 74 2c 0a 20 20 20 20 20 20 2f parent,. /
5f0a0 2f 20 74 61 67 73 20 68 61 76 69 6e 67 20 65 76 / tags having ev
5f0b0 65 6e 74 20 6c 69 73 74 65 6e 65 72 73 0a 20 20 ent listeners.
5f0c0 20 20 20 20 2f 2f 20 69 74 20 77 6f 75 6c 64 20 // it would
5f0d0 62 65 20 62 65 74 74 65 72 20 74 6f 20 75 73 65 be better to use
5f0e0 20 77 65 61 6b 20 6d 61 70 73 20 68 65 72 65 20 weak maps here
5f0f0 62 75 74 20 77 65 20 63 61 6e 20 6e 6f 74 20 69 but we can not i
5f100 6e 74 72 6f 64 75 63 65 20 62 72 65 61 6b 69 6e ntroduce breakin
5f110 67 20 63 68 61 6e 67 65 73 20 6e 6f 77 0a 20 20 g changes now.
5f120 20 20 20 20 6c 69 73 74 65 6e 65 72 73 3a 20 5b listeners: [
5f130 5d 2c 0a 20 20 20 20 20 20 2f 2f 20 74 68 65 73 ],. // thes
5f140 65 20 76 61 72 73 20 77 69 6c 6c 20 62 65 20 6e e vars will be n
5f150 65 65 64 65 64 20 6f 6e 6c 79 20 66 6f 72 20 74 eeded only for t
5f160 68 65 20 76 69 72 74 75 61 6c 20 74 61 67 73 0a he virtual tags.
5f170 20 20 20 20 20 20 76 69 72 74 73 3a 20 5b 5d 2c virts: [],
5f180 0a 20 20 20 20 20 20 77 61 73 43 72 65 61 74 65 . wasCreate
5f190 64 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 d: false,.
5f1a0 74 61 69 6c 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 tail: null,.
5f1b0 20 20 68 65 61 64 3a 20 6e 75 6c 6c 0a 20 20 20 head: null.
5f1c0 20 7d 29 3b 0a 0a 20 20 20 20 2f 2f 20 74 61 67 });.. // tag
5f1d0 20 70 72 6f 74 65 63 74 65 64 20 70 72 6f 70 65 protected prope
5f1e0 72 74 69 65 73 0a 20 20 20 20 72 65 74 75 72 6e rties. return
5f1f0 20 5b 0a 20 20 20 20 20 20 5b 27 69 73 4d 6f 75 [. ['isMou
5f200 6e 74 65 64 27 2c 20 66 61 6c 73 65 5d 2c 0a 20 nted', false],.
5f210 20 20 20 20 20 2f 2f 20 63 72 65 61 74 65 20 61 // create a
5f220 20 75 6e 69 71 75 65 20 69 64 20 74 6f 20 74 68 unique id to th
5f230 69 73 20 74 61 67 0a 20 20 20 20 20 20 2f 2f 20 is tag. //
5f240 69 74 20 63 6f 75 6c 64 20 62 65 20 68 61 6e 64 it could be hand
5f250 79 20 74 6f 20 75 73 65 20 69 74 20 61 6c 73 6f y to use it also
5f260 20 74 6f 20 69 6d 70 72 6f 76 65 20 74 68 65 20 to improve the
5f270 76 69 72 74 75 61 6c 20 64 6f 6d 20 72 65 6e 64 virtual dom rend
5f280 65 72 69 6e 67 20 73 70 65 65 64 0a 20 20 20 20 ering speed.
5f290 20 20 5b 27 5f 72 69 6f 74 5f 69 64 27 2c 20 75 ['_riot_id', u
5f2a0 69 64 28 29 5d 2c 0a 20 20 20 20 20 20 5b 27 72 id()],. ['r
5f2b0 6f 6f 74 27 2c 20 72 6f 6f 74 5d 2c 0a 20 20 20 oot', root],.
5f2c0 20 20 20 5b 27 6f 70 74 73 27 2c 20 6f 70 74 73 ['opts', opts
5f2d0 2c 20 7b 20 77 72 69 74 61 62 6c 65 3a 20 74 72 , { writable: tr
5f2e0 75 65 2c 20 65 6e 75 6d 65 72 61 62 6c 65 3a 20 ue, enumerable:
5f2f0 74 72 75 65 20 7d 5d 2c 0a 20 20 20 20 20 20 5b true }],. [
5f300 27 70 61 72 65 6e 74 27 2c 20 70 61 72 65 6e 74 'parent', parent
5f310 20 7c 7c 20 6e 75 6c 6c 5d 2c 0a 20 20 20 20 20 || null],.
5f320 20 2f 2f 20 70 72 6f 74 65 63 74 20 74 68 65 20 // protect the
5f330 22 74 61 67 73 22 20 61 6e 64 20 22 72 65 66 73 "tags" and "refs
5f340 22 20 70 72 6f 70 65 72 74 79 20 66 72 6f 6d 20 " property from
5f350 62 65 69 6e 67 20 6f 76 65 72 72 69 64 64 65 6e being overridden
5f360 0a 20 20 20 20 20 20 5b 27 74 61 67 73 27 2c 20 . ['tags',
5f370 7b 7d 5d 2c 0a 20 20 20 20 20 20 5b 27 72 65 66 {}],. ['ref
5f380 73 27 2c 20 7b 7d 5d 2c 0a 20 20 20 20 20 20 5b s', {}],. [
5f390 27 75 70 64 61 74 65 27 2c 20 66 75 6e 63 74 69 'update', functi
5f3a0 6f 6e 20 28 64 61 74 61 29 20 7b 20 72 65 74 75 on (data) { retu
5f3b0 72 6e 20 63 6f 6d 70 6f 6e 65 6e 74 55 70 64 61 rn componentUpda
5f3c0 74 65 28 74 61 67 2c 20 64 61 74 61 2c 20 65 78 te(tag, data, ex
5f3d0 70 72 65 73 73 69 6f 6e 73 29 3b 20 7d 5d 2c 0a pressions); }],.
5f3e0 20 20 20 20 20 20 5b 27 6d 69 78 69 6e 27 2c 20 ['mixin',
5f3f0 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 20 20 function () {.
5f400 20 20 20 20 20 20 76 61 72 20 6d 69 78 69 6e 73 var mixins
5f410 20 3d 20 5b 5d 2c 20 6c 65 6e 20 3d 20 61 72 67 = [], len = arg
5f420 75 6d 65 6e 74 73 2e 6c 65 6e 67 74 68 3b 0a 20 uments.length;.
5f430 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 20 6c while ( l
5f440 65 6e 2d 2d 20 29 20 6d 69 78 69 6e 73 5b 20 6c en-- ) mixins[ l
5f450 65 6e 20 5d 20 3d 20 61 72 67 75 6d 65 6e 74 73 en ] = arguments
5f460 5b 20 6c 65 6e 20 5d 3b 0a 0a 20 20 20 20 20 20 [ len ];..
5f470 20 20 72 65 74 75 72 6e 20 63 6f 6d 70 6f 6e 65 return compone
5f480 6e 74 4d 69 78 69 6e 2e 61 70 70 6c 79 28 76 6f ntMixin.apply(vo
5f490 69 64 20 30 2c 20 5b 20 74 61 67 20 5d 2e 63 6f id 0, [ tag ].co
5f4a0 6e 63 61 74 28 20 6d 69 78 69 6e 73 20 29 29 3b ncat( mixins ));
5f4b0 0a 20 20 20 20 7d 5d 2c 0a 20 20 20 20 20 20 5b . }],. [
5f4c0 27 6d 6f 75 6e 74 27 2c 20 66 75 6e 63 74 69 6f 'mount', functio
5f4d0 6e 20 28 29 20 7b 20 72 65 74 75 72 6e 20 63 6f n () { return co
5f4e0 6d 70 6f 6e 65 6e 74 4d 6f 75 6e 74 28 74 61 67 mponentMount(tag
5f4f0 2c 20 64 6f 6d 2c 20 65 78 70 72 65 73 73 69 6f , dom, expressio
5f500 6e 73 2c 20 6f 70 74 73 29 3b 20 7d 5d 2c 0a 20 ns, opts); }],.
5f510 20 20 20 20 20 5b 27 75 6e 6d 6f 75 6e 74 27 2c ['unmount',
5f520 20 66 75 6e 63 74 69 6f 6e 20 28 6d 75 73 74 4b function (mustK
5f530 65 65 70 52 6f 6f 74 29 20 7b 20 72 65 74 75 72 eepRoot) { retur
5f540 6e 20 74 61 67 55 6e 6d 6f 75 6e 74 28 74 61 67 n tagUnmount(tag
5f550 2c 20 6d 75 73 74 4b 65 65 70 52 6f 6f 74 2c 20 , mustKeepRoot,
5f560 65 78 70 72 65 73 73 69 6f 6e 73 29 3b 20 7d 5d expressions); }]
5f570 0a 20 20 20 20 5d 2e 72 65 64 75 63 65 28 66 75 . ].reduce(fu
5f580 6e 63 74 69 6f 6e 20 28 61 63 63 2c 20 72 65 66 nction (acc, ref
5f590 29 20 7b 0a 20 20 20 20 20 20 76 61 72 20 6b 65 ) {. var ke
5f5a0 79 20 3d 20 72 65 66 5b 30 5d 3b 0a 20 20 20 20 y = ref[0];.
5f5b0 20 20 76 61 72 20 76 61 6c 75 65 20 3d 20 72 65 var value = re
5f5c0 66 5b 31 5d 3b 0a 20 20 20 20 20 20 76 61 72 20 f[1];. var
5f5d0 6f 70 74 73 20 3d 20 72 65 66 5b 32 5d 3b 0a 0a opts = ref[2];..
5f5e0 20 20 20 20 20 20 64 65 66 69 6e 65 28 74 61 67 define(tag
5f5f0 2c 20 6b 65 79 2c 20 76 61 6c 75 65 2c 20 6f 70 , key, value, op
5f600 74 73 29 3b 0a 20 20 20 20 20 20 72 65 74 75 72 ts);. retur
5f610 6e 20 61 63 63 0a 20 20 20 20 7d 2c 20 65 78 74 n acc. }, ext
5f620 65 6e 64 28 74 61 67 2c 20 69 74 65 6d 29 29 0a end(tag, item)).
5f630 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 }.. /**. *
5f640 4d 6f 75 6e 74 20 61 20 74 61 67 20 63 72 65 61 Mount a tag crea
5f650 74 69 6e 67 20 6e 65 77 20 54 61 67 20 69 6e 73 ting new Tag ins
5f660 74 61 6e 63 65 0a 20 20 20 2a 20 40 70 61 72 61 tance. * @para
5f670 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 72 m { Object } r
5f680 6f 6f 74 20 2d 20 64 6f 6d 20 6e 6f 64 65 20 77 oot - dom node w
5f690 68 65 72 65 20 74 68 65 20 74 61 67 20 77 69 6c here the tag wil
5f6a0 6c 20 62 65 20 6d 6f 75 6e 74 65 64 0a 20 20 20 l be mounted.
5f6b0 2a 20 40 70 61 72 61 6d 20 20 20 7b 20 53 74 72 * @param { Str
5f6c0 69 6e 67 20 7d 20 74 61 67 4e 61 6d 65 20 2d 20 ing } tagName -
5f6d0 6e 61 6d 65 20 6f 66 20 74 68 65 20 72 69 6f 74 name of the riot
5f6e0 20 74 61 67 20 77 65 20 77 61 6e 74 20 74 6f 20 tag we want to
5f6f0 6d 6f 75 6e 74 0a 20 20 20 2a 20 40 70 61 72 61 mount. * @para
5f700 6d 20 20 20 7b 20 4f 62 6a 65 63 74 20 7d 20 6f m { Object } o
5f710 70 74 73 20 2d 20 6f 70 74 69 6f 6e 73 20 74 6f pts - options to
5f720 20 70 61 73 73 20 74 6f 20 74 68 65 20 54 61 67 pass to the Tag
5f730 20 69 6e 73 74 61 6e 63 65 0a 20 20 20 2a 20 40 instance. * @
5f740 70 61 72 61 6d 20 20 20 7b 20 4f 62 6a 65 63 74 param { Object
5f750 20 7d 20 63 74 78 20 2d 20 6f 70 74 69 6f 6e 61 } ctx - optiona
5f760 6c 20 63 6f 6e 74 65 78 74 20 74 68 61 74 20 77 l context that w
5f770 69 6c 6c 20 62 65 20 75 73 65 64 20 74 6f 20 65 ill be used to e
5f780 78 74 65 6e 64 20 61 6e 20 65 78 69 73 74 69 6e xtend an existin
5f790 67 20 63 6c 61 73 73 20 28 20 75 73 65 64 20 69 g class ( used i
5f7a0 6e 20 72 69 6f 74 2e 54 61 67 20 29 0a 20 20 20 n riot.Tag ).
5f7b0 2a 20 40 72 65 74 75 72 6e 73 20 7b 20 54 61 67 * @returns { Tag
5f7c0 20 7d 20 61 20 6e 65 77 20 54 61 67 20 69 6e 73 } a new Tag ins
5f7d0 74 61 6e 63 65 0a 20 20 20 2a 2f 0a 20 20 66 75 tance. */. fu
5f7e0 6e 63 74 69 6f 6e 20 6d 6f 75 6e 74 24 31 28 72 nction mount$1(r
5f7f0 6f 6f 74 2c 20 74 61 67 4e 61 6d 65 2c 20 6f 70 oot, tagName, op
5f800 74 73 2c 20 63 74 78 29 20 7b 0a 20 20 20 20 76 ts, ctx) {. v
5f810 61 72 20 69 6d 70 6c 20 3d 20 5f 5f 54 41 47 5f ar impl = __TAG_
5f820 49 4d 50 4c 5b 74 61 67 4e 61 6d 65 5d 3b 0a 20 IMPL[tagName];.
5f830 20 20 20 76 61 72 20 69 6d 70 6c 43 6c 61 73 73 var implClass
5f840 20 3d 20 5f 5f 54 41 47 5f 49 4d 50 4c 5b 74 61 = __TAG_IMPL[ta
5f850 67 4e 61 6d 65 5d 2e 63 6c 61 73 73 3b 0a 20 20 gName].class;.
5f860 20 20 76 61 72 20 63 6f 6e 74 65 78 74 20 3d 20 var context =
5f870 63 74 78 20 7c 7c 20 28 69 6d 70 6c 43 6c 61 73 ctx || (implClas
5f880 73 20 3f 20 63 72 65 61 74 65 28 69 6d 70 6c 43 s ? create(implC
5f890 6c 61 73 73 2e 70 72 6f 74 6f 74 79 70 65 29 20 lass.prototype)
5f8a0 3a 20 7b 7d 29 3b 0a 20 20 20 20 2f 2f 20 63 61 : {});. // ca
5f8b0 63 68 65 20 74 68 65 20 69 6e 6e 65 72 20 48 54 che the inner HT
5f8c0 4d 4c 20 74 6f 20 66 69 78 20 23 38 35 35 0a 20 ML to fix #855.
5f8d0 20 20 20 76 61 72 20 69 6e 6e 65 72 48 54 4d 4c var innerHTML
5f8e0 20 3d 20 72 6f 6f 74 2e 5f 69 6e 6e 65 72 48 54 = root._innerHT
5f8f0 4d 4c 20 3d 20 72 6f 6f 74 2e 5f 69 6e 6e 65 72 ML = root._inner
5f900 48 54 4d 4c 20 7c 7c 20 72 6f 6f 74 2e 69 6e 6e HTML || root.inn
5f910 65 72 48 54 4d 4c 3b 0a 20 20 20 20 76 61 72 20 erHTML;. var
5f920 63 6f 6e 66 20 3d 20 65 78 74 65 6e 64 28 7b 20 conf = extend({
5f930 72 6f 6f 74 3a 20 72 6f 6f 74 2c 20 6f 70 74 73 root: root, opts
5f940 3a 20 6f 70 74 73 2c 20 63 6f 6e 74 65 78 74 3a : opts, context:
5f950 20 63 6f 6e 74 65 78 74 20 7d 2c 20 7b 20 70 61 context }, { pa
5f960 72 65 6e 74 3a 20 6f 70 74 73 20 3f 20 6f 70 74 rent: opts ? opt
5f970 73 2e 70 61 72 65 6e 74 20 3a 20 6e 75 6c 6c 20 s.parent : null
5f980 7d 29 3b 0a 20 20 20 20 76 61 72 20 74 61 67 3b });. var tag;
5f990 0a 0a 20 20 20 20 69 66 20 28 69 6d 70 6c 20 26 .. if (impl &
5f9a0 26 20 72 6f 6f 74 29 20 7b 20 74 61 67 20 3d 20 & root) { tag =
5f9b0 63 72 65 61 74 65 54 61 67 28 69 6d 70 6c 2c 20 createTag(impl,
5f9c0 63 6f 6e 66 2c 20 69 6e 6e 65 72 48 54 4d 4c 29 conf, innerHTML)
5f9d0 3b 20 7d 0a 0a 20 20 20 20 69 66 20 28 74 61 67 ; }.. if (tag
5f9e0 20 26 26 20 74 61 67 2e 6d 6f 75 6e 74 29 20 7b && tag.mount) {
5f9f0 0a 20 20 20 20 20 20 74 61 67 2e 6d 6f 75 6e 74 . tag.mount
5fa00 28 74 72 75 65 29 3b 0a 20 20 20 20 20 20 2f 2f (true);. //
5fa10 20 61 64 64 20 74 68 69 73 20 74 61 67 20 74 6f add this tag to
5fa20 20 74 68 65 20 76 69 72 74 75 61 6c 44 6f 6d 20 the virtualDom
5fa30 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 69 variable. i
5fa40 66 20 28 21 63 6f 6e 74 61 69 6e 73 28 5f 5f 54 f (!contains(__T
5fa50 41 47 53 5f 43 41 43 48 45 2c 20 74 61 67 29 29 AGS_CACHE, tag))
5fa60 20 7b 20 5f 5f 54 41 47 53 5f 43 41 43 48 45 2e { __TAGS_CACHE.
5fa70 70 75 73 68 28 74 61 67 29 3b 20 7d 0a 20 20 20 push(tag); }.
5fa80 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 74 }.. return t
5fa90 61 67 0a 20 20 7d 0a 0a 0a 0a 20 20 76 61 72 20 ag. }.... var
5faa0 74 61 67 73 20 3d 20 2f 2a 23 5f 5f 50 55 52 45 tags = /*#__PURE
5fab0 5f 5f 2a 2f 4f 62 6a 65 63 74 2e 66 72 65 65 7a __*/Object.freez
5fac0 65 28 7b 0a 20 20 20 20 61 72 72 61 79 69 73 68 e({. arrayish
5fad0 41 64 64 3a 20 61 72 72 61 79 69 73 68 41 64 64 Add: arrayishAdd
5fae0 2c 0a 20 20 20 20 67 65 74 54 61 67 4e 61 6d 65 ,. getTagName
5faf0 3a 20 67 65 74 4e 61 6d 65 2c 0a 20 20 20 20 69 : getName,. i
5fb00 6e 68 65 72 69 74 50 61 72 65 6e 74 50 72 6f 70 nheritParentProp
5fb10 73 3a 20 69 6e 68 65 72 69 74 50 61 72 65 6e 74 s: inheritParent
5fb20 50 72 6f 70 73 2c 0a 20 20 20 20 6d 6f 75 6e 74 Props,. mount
5fb30 54 6f 3a 20 6d 6f 75 6e 74 24 31 2c 0a 20 20 20 To: mount$1,.
5fb40 20 73 65 6c 65 63 74 54 61 67 73 3a 20 71 75 65 selectTags: que
5fb50 72 79 2c 0a 20 20 20 20 61 72 72 61 79 69 73 68 ry,. arrayish
5fb60 52 65 6d 6f 76 65 3a 20 61 72 72 61 79 69 73 68 Remove: arrayish
5fb70 52 65 6d 6f 76 65 2c 0a 20 20 20 20 67 65 74 54 Remove,. getT
5fb80 61 67 3a 20 67 65 74 2c 0a 20 20 20 20 69 6e 69 ag: get,. ini
5fb90 74 43 68 69 6c 64 54 61 67 3a 20 69 6e 69 74 43 tChildTag: initC
5fba0 68 69 6c 64 2c 0a 20 20 20 20 6d 6f 76 65 43 68 hild,. moveCh
5fbb0 69 6c 64 54 61 67 3a 20 6d 6f 76 65 43 68 69 6c ildTag: moveChil
5fbc0 64 2c 0a 20 20 20 20 6d 61 6b 65 52 65 70 6c 61 d,. makeRepla
5fbd0 63 65 56 69 72 74 75 61 6c 3a 20 6d 61 6b 65 52 ceVirtual: makeR
5fbe0 65 70 6c 61 63 65 56 69 72 74 75 61 6c 2c 0a 20 eplaceVirtual,.
5fbf0 20 20 20 67 65 74 49 6d 6d 65 64 69 61 74 65 43 getImmediateC
5fc00 75 73 74 6f 6d 50 61 72 65 6e 74 54 61 67 3a 20 ustomParentTag:
5fc10 67 65 74 49 6d 6d 65 64 69 61 74 65 43 75 73 74 getImmediateCust
5fc20 6f 6d 50 61 72 65 6e 74 2c 0a 20 20 20 20 6d 61 omParent,. ma
5fc30 6b 65 56 69 72 74 75 61 6c 3a 20 6d 61 6b 65 56 keVirtual: makeV
5fc40 69 72 74 75 61 6c 2c 0a 20 20 20 20 6d 6f 76 65 irtual,. move
5fc50 56 69 72 74 75 61 6c 3a 20 6d 6f 76 65 56 69 72 Virtual: moveVir
5fc60 74 75 61 6c 2c 0a 20 20 20 20 75 6e 6d 6f 75 6e tual,. unmoun
5fc70 74 41 6c 6c 3a 20 75 6e 6d 6f 75 6e 74 41 6c 6c tAll: unmountAll
5fc80 2c 0a 20 20 20 20 63 72 65 61 74 65 49 66 44 69 ,. createIfDi
5fc90 72 65 63 74 69 76 65 3a 20 63 72 65 61 74 65 49 rective: createI
5fca0 66 44 69 72 65 63 74 69 76 65 2c 0a 20 20 20 20 fDirective,.
5fcb0 63 72 65 61 74 65 52 65 66 44 69 72 65 63 74 69 createRefDirecti
5fcc0 76 65 3a 20 63 72 65 61 74 65 52 65 66 44 69 72 ve: createRefDir
5fcd0 65 63 74 69 76 65 0a 20 20 7d 29 3b 0a 0a 20 20 ective. });..
5fce0 2f 2a 2a 0a 20 20 20 2a 20 52 69 6f 74 20 70 75 /**. * Riot pu
5fcf0 62 6c 69 63 20 61 70 69 0a 20 20 20 2a 2f 0a 20 blic api. */.
5fd00 20 76 61 72 20 73 65 74 74 69 6e 67 73 24 31 20 var settings$1
5fd10 3d 20 73 65 74 74 69 6e 67 73 3b 0a 20 20 76 61 = settings;. va
5fd20 72 20 75 74 69 6c 20 3d 20 7b 0a 20 20 20 20 74 r util = {. t
5fd30 6d 70 6c 3a 20 63 73 70 5f 74 6d 70 6c 5f 31 2c mpl: csp_tmpl_1,
5fd40 0a 20 20 20 20 62 72 61 63 6b 65 74 73 3a 20 63 . brackets: c
5fd50 73 70 5f 74 6d 70 6c 5f 32 2c 0a 20 20 20 20 73 sp_tmpl_2,. s
5fd60 74 79 6c 65 4d 61 6e 61 67 65 72 3a 20 73 74 79 tyleManager: sty
5fd70 6c 65 4d 61 6e 61 67 65 72 2c 0a 20 20 20 20 76 leManager,. v
5fd80 64 6f 6d 3a 20 5f 5f 54 41 47 53 5f 43 41 43 48 dom: __TAGS_CACH
5fd90 45 2c 0a 20 20 20 20 73 74 79 6c 65 4e 6f 64 65 E,. styleNode
5fda0 3a 20 73 74 79 6c 65 4d 61 6e 61 67 65 72 2e 73 : styleManager.s
5fdb0 74 79 6c 65 4e 6f 64 65 2c 0a 20 20 20 20 2f 2f tyleNode,. //
5fdc0 20 65 78 70 6f 72 74 20 74 68 65 20 72 69 6f 74 export the riot
5fdd0 20 69 6e 74 65 72 6e 61 6c 20 75 74 69 6c 73 20 internal utils
5fde0 61 73 20 77 65 6c 6c 0a 20 20 20 20 64 6f 6d 3a as well. dom:
5fdf0 20 64 6f 6d 2c 0a 20 20 20 20 63 68 65 63 6b 3a dom,. check:
5fe00 20 63 68 65 63 6b 2c 0a 20 20 20 20 6d 69 73 63 check,. misc
5fe10 3a 20 6d 69 73 63 2c 0a 20 20 20 20 74 61 67 73 : misc,. tags
5fe20 3a 20 74 61 67 73 0a 20 20 7d 3b 0a 0a 20 20 2f : tags. };.. /
5fe30 2f 20 65 78 70 6f 72 74 20 74 68 65 20 63 6f 72 / export the cor
5fe40 65 20 70 72 6f 70 73 2f 6d 65 74 68 6f 64 73 0a e props/methods.
5fe50 20 20 76 61 72 20 54 61 67 24 31 20 3d 20 54 61 var Tag$1 = Ta
5fe60 67 3b 0a 20 20 76 61 72 20 74 61 67 24 31 20 3d g;. var tag$1 =
5fe70 20 74 61 67 3b 0a 20 20 76 61 72 20 74 61 67 32 tag;. var tag2
5fe80 24 31 20 3d 20 74 61 67 32 3b 0a 20 20 76 61 72 $1 = tag2;. var
5fe90 20 6d 6f 75 6e 74 24 32 20 3d 20 6d 6f 75 6e 74 mount$2 = mount
5fea0 3b 0a 20 20 76 61 72 20 6d 69 78 69 6e 24 31 20 ;. var mixin$1
5feb0 3d 20 6d 69 78 69 6e 3b 0a 20 20 76 61 72 20 75 = mixin;. var u
5fec0 70 64 61 74 65 24 32 20 3d 20 75 70 64 61 74 65 pdate$2 = update
5fed0 24 31 3b 0a 20 20 76 61 72 20 75 6e 72 65 67 69 $1;. var unregi
5fee0 73 74 65 72 24 31 20 3d 20 75 6e 72 65 67 69 73 ster$1 = unregis
5fef0 74 65 72 3b 0a 20 20 76 61 72 20 76 65 72 73 69 ter;. var versi
5ff00 6f 6e 24 31 20 3d 20 76 65 72 73 69 6f 6e 3b 0a on$1 = version;.
5ff10 20 20 76 61 72 20 6f 62 73 65 72 76 61 62 6c 65 var observable
5ff20 24 31 20 3d 20 6f 62 73 65 72 76 61 62 6c 65 3b $1 = observable;
5ff30 0a 0a 20 20 76 61 72 20 72 69 6f 74 24 31 20 3d .. var riot$1 =
5ff40 20 65 78 74 65 6e 64 28 7b 7d 2c 20 63 6f 72 65 extend({}, core
5ff50 2c 20 7b 0a 20 20 20 20 6f 62 73 65 72 76 61 62 , {. observab
5ff60 6c 65 3a 20 6f 62 73 65 72 76 61 62 6c 65 2c 0a le: observable,.
5ff70 20 20 20 20 73 65 74 74 69 6e 67 73 3a 20 73 65 settings: se
5ff80 74 74 69 6e 67 73 24 31 2c 0a 20 20 20 20 75 74 ttings$1,. ut
5ff90 69 6c 3a 20 75 74 69 6c 2c 0a 20 20 7d 29 3b 0a il: util,. });.
5ffa0 0a 20 20 65 78 70 6f 72 74 73 2e 73 65 74 74 69 . exports.setti
5ffb0 6e 67 73 20 3d 20 73 65 74 74 69 6e 67 73 24 31 ngs = settings$1
5ffc0 3b 0a 20 20 65 78 70 6f 72 74 73 2e 75 74 69 6c ;. exports.util
5ffd0 20 3d 20 75 74 69 6c 3b 0a 20 20 65 78 70 6f 72 = util;. expor
5ffe0 74 73 2e 54 61 67 20 3d 20 54 61 67 24 31 3b 0a ts.Tag = Tag$1;.
5fff0 20 20 65 78 70 6f 72 74 73 2e 74 61 67 20 3d 20 exports.tag =
60000 74 61 67 24 31 3b 0a 20 20 65 78 70 6f 72 74 73 tag$1;. exports
60010 2e 74 61 67 32 20 3d 20 74 61 67 32 24 31 3b 0a .tag2 = tag2$1;.
60020 20 20 65 78 70 6f 72 74 73 2e 6d 6f 75 6e 74 20 exports.mount
60030 3d 20 6d 6f 75 6e 74 24 32 3b 0a 20 20 65 78 70 = mount$2;. exp
60040 6f 72 74 73 2e 6d 69 78 69 6e 20 3d 20 6d 69 78 orts.mixin = mix
60050 69 6e 24 31 3b 0a 20 20 65 78 70 6f 72 74 73 2e in$1;. exports.
60060 75 70 64 61 74 65 20 3d 20 75 70 64 61 74 65 24 update = update$
60070 32 3b 0a 20 20 65 78 70 6f 72 74 73 2e 75 6e 72 2;. exports.unr
60080 65 67 69 73 74 65 72 20 3d 20 75 6e 72 65 67 69 egister = unregi
60090 73 74 65 72 24 31 3b 0a 20 20 65 78 70 6f 72 74 ster$1;. export
600a0 73 2e 76 65 72 73 69 6f 6e 20 3d 20 76 65 72 73 s.version = vers
600b0 69 6f 6e 24 31 3b 0a 20 20 65 78 70 6f 72 74 73 ion$1;. exports
600c0 2e 6f 62 73 65 72 76 61 62 6c 65 20 3d 20 6f 62 .observable = ob
600d0 73 65 72 76 61 62 6c 65 24 31 3b 0a 20 20 65 78 servable$1;. ex
600e0 70 6f 72 74 73 2e 64 65 66 61 75 6c 74 20 3d 20 ports.default =
600f0 72 69 6f 74 24 31 3b 0a 0a 20 20 4f 62 6a 65 63 riot$1;.. Objec
60100 74 2e 64 65 66 69 6e 65 50 72 6f 70 65 72 74 79 t.defineProperty
60110 28 65 78 70 6f 72 74 73 2c 20 27 5f 5f 65 73 4d (exports, '__esM
60120 6f 64 75 6c 65 27 2c 20 7b 20 76 61 6c 75 65 3a odule', { value:
60130 20 74 72 75 65 20 7d 29 3b 0a 0a 7d 29 29 29 3b true });..})));
60140 0a .