diff --git a/lib/react-jsx-parser.min.js b/lib/react-jsx-parser.min.js
index 90e36b6..a3fb909 100644
--- a/lib/react-jsx-parser.min.js
+++ b/lib/react-jsx-parser.min.js
@@ -1,4 +1,4 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define("react-jsx-parser",["react"],e):"object"==typeof exports?exports["react-jsx-parser"]=e(require("react")):t["react-jsx-parser"]=e(t.react)}(this,function(t){return function(t){function e(i){if(s[i])return s[i].exports
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define("react-jsx-parser",["react"],e):"object"==typeof exports?exports["react-jsx-parser"]=e(require("react")):t["react-jsx-parser"]=e(t.react)}("undefined"!=typeof self?self:this,function(t){return function(t){function e(i){if(s[i])return s[i].exports
var r=s[i]={i:i,l:!1,exports:{}}
return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var s={}
return e.m=t,e.c=s,e.d=function(t,s,i){e.o(t,s)||Object.defineProperty(t,s,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var s=t&&t.__esModule?function(){return t.default}:function(){return t}
@@ -8,30 +8,30 @@ return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("funct
t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0})
var o=Object.assign||function(t){for(var e=1;e]*)>/g,"")
this.ParsedChildren=this.parseJSX(e)}},{key:"parseJSX",value:function(t){var e=""+t+"",s=[]
try{s=new p.Parser(y,e).parse(),s=s.body[0].expression.children||[]}catch(t){return this.props.showWarnings&&console.warn(t),this.props.onError&&this.props.onError(t),[]}return s.map(this.parseExpression).filter(Boolean)}},{key:"parseExpression",value:function(t,e){var s=this,i=t.value
switch(t.type){case"JSXElement":return this.parseElement(t,e)
-case"JSXText":return(i||"").replace(/\s+/g," ")
+case"JSXText":return i||""
case"JSXAttribute":return null===t.value||this.parseExpression(t.value)
case"ArrayExpression":return t.elements.map(this.parseExpression)
case"ObjectExpression":var r={}
return t.properties.forEach(function(t){r[t.key.name]=s.parseExpression(t.value)}),r
case"JSXExpressionContainer":return this.parseExpression(t.expression)
case"Literal":return i
-default:return}}},{key:"parseElement",value:function(t,e){var s=this,i=this.props,r=i.bindings,n=void 0===r?{}:r,a=i.components,h=void 0===a?{}:a,p=t.children,c=void 0===p?[]:p,u=t.openingElement,f=u.attributes,y=u.name.name
+default:return}}},{key:"parseElement",value:function(t,e){var s=this,i=this.props,r=i.bindings,n=void 0===r?{}:r,a=i.components,h=void 0===a?{}:a,p=t.children,c=void 0===p?[]:p,l=t.openingElement,f=l.attributes,y=l.name.name
if(/^(html|head|body)$/i.test(y))return c.map(function(t){return s.parseElement(t)})
if(-1===this.blacklistedTags.indexOf(y.trim().toLowerCase())){var v=void 0;(h[y]||(0,x.canHaveChildren)(y))&&(v=c.map(this.parseExpression),h[y]||(0,x.canHaveWhitespace)(y)||(v=v.filter(function(t){return"string"!=typeof t||!/^\s*$/.test(t)})),0===v.length?v=void 0:1===v.length&&(v=v[0]))
-var b=o({key:e},n)
+var g=o({key:e},n)
return f.forEach(function(t){var e=t.name.name,i=m.default[e]||e,r=s.parseExpression(t)
-0===s.blacklistedAttrs.filter(function(t){return t.test(i)}).length&&(b[i]=r)}),"string"==typeof b.style&&(b.style=(0,d.default)(b.style)),l.default.createElement(h[y]||y,b,v)}}},{key:"render",value:function(){return l.default.createElement("div",{className:"jsx-parser"},this.ParsedChildren)}}]),e}(c.Component)
+0===s.blacklistedAttrs.filter(function(t){return t.test(i)}).length&&(g[i]=r)}),"string"==typeof g.style&&(g.style=(0,d.default)(g.style)),u.default.createElement(h[y]||y,g,v)}}},{key:"render",value:function(){return u.default.createElement("div",{className:"jsx-parser"},this.ParsedChildren)}}]),e}(c.Component)
e.default=v,v.defaultProps={bindings:{},blacklistedAttrs:[/^on.+/i],blacklistedTags:["script"],components:[],jsx:"",onError:function(){},showWarnings:!1}},function(t,e,s){"use strict"
t.exports=s(2)(s(4))},function(t,e,s){"use strict"
var i=s(3),r=/^[\da-fA-F]+$/,n=/^\d+$/
-t.exports=function(t){function e(t){return"JSXIdentifier"===t.type?t.name:"JSXNamespacedName"===t.type?t.namespace.name+":"+t.name.name:"JSXMemberExpression"===t.type?e(t.object)+"."+e(t.property):void 0}var s=t.tokTypes,a=t.tokContexts
+t.exports=function(t){function e(t){return t?"JSXIdentifier"===t.type?t.name:"JSXNamespacedName"===t.type?t.namespace.name+":"+t.name.name:"JSXMemberExpression"===t.type?e(t.object)+"."+e(t.property):void 0:t}var s=t.tokTypes,a=t.tokContexts
a.j_oTag=new t.TokContext("...",!0,!0),s.jsxName=new t.TokenType("jsxName"),s.jsxText=new t.TokenType("jsxText",{beforeExpr:!0}),s.jsxTagStart=new t.TokenType("jsxTagStart"),s.jsxTagEnd=new t.TokenType("jsxTagEnd"),s.jsxTagStart.updateContext=function(){this.context.push(a.j_expr),this.context.push(a.j_oTag),this.exprAllowed=!1},s.jsxTagEnd.updateContext=function(t){var e=this.context.pop()
e===a.j_oTag&&t===s.slash||e===a.j_cTag?(this.context.pop(),this.exprAllowed=this.curContext()===a.j_expr):this.exprAllowed=!0}
var o=t.Parser.prototype
@@ -53,7 +53,8 @@ return this.finishToken(s.jsxName,this.input.slice(i,this.pos))},o.jsx_parseIden
return this.type===s.jsxName?t.name=this.value:this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"JSXIdentifier")},o.jsx_parseNamespacedName=function(){var t=this.start,e=this.startLoc,i=this.jsx_parseIdentifier()
if(!this.options.plugins.jsx.allowNamespaces||!this.eat(s.colon))return i
var r=this.startNodeAt(t,e)
-return r.namespace=i,r.name=this.jsx_parseIdentifier(),this.finishNode(r,"JSXNamespacedName")},o.jsx_parseElementName=function(){var t=this.start,e=this.startLoc,i=this.jsx_parseNamespacedName()
+return r.namespace=i,r.name=this.jsx_parseIdentifier(),this.finishNode(r,"JSXNamespacedName")},o.jsx_parseElementName=function(){if(this.type===s.jsxTagEnd)return""
+var t=this.start,e=this.startLoc,i=this.jsx_parseNamespacedName()
for(this.type!==s.dot||"JSXNamespacedName"!==i.type||this.options.plugins.jsx.allowNamespacedObjects||this.unexpected();this.eat(s.dot);){var r=this.startNodeAt(t,e)
r.object=i,r.property=this.jsx_parseIdentifier(),i=this.finishNode(r,"JSXMemberExpression")}return i},o.jsx_parseAttributeValue=function(){switch(this.type){case s.braceL:var t=this.jsx_parseExpressionContainer()
return"JSXEmptyExpression"===t.expression.type&&this.raise(t.start,"JSX attributes must only be assigned a non-empty expression"),t
@@ -72,7 +73,7 @@ case s.jsxText:n.push(this.parseExprAtom())
break
case s.braceL:n.push(this.jsx_parseExpressionContainer())
break
-default:this.unexpected()}e(o.name)!==e(a.name)&&this.raise(o.start,"Expected corresponding JSX closing tag for <"+e(a.name)+">")}return r.openingElement=a,r.closingElement=o,r.children=n,this.type===s.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},o.jsx_parseText=function(t){var e=this.parseLiteral(t)
+default:this.unexpected()}e(o.name)!==e(a.name)&&this.raise(o.start,"Expected corresponding JSX closing tag for <"+e(a.name)+">")}return r.openingElement=a,r.closingElement=o,r.children=n,this.type===s.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,a.name?"JSXElement":"JSXFragment")},o.jsx_parseText=function(t){var e=this.parseLiteral(t)
return e.type="JSXText",e},o.jsx_parseElement=function(){var t=this.start,e=this.startLoc
return this.next(),this.jsx_parseElementAt(t,e)},t.plugins.jsx=function(e,i){i&&("object"!=typeof i&&(i={}),e.options.plugins.jsx={allowNamespaces:!1!==i.allowNamespaces,allowNamespacedObjects:!!i.allowNamespacedObjects},e.extend("parseExprAtom",function(t){return function(e){return this.type===s.jsxText?this.jsx_parseText(this.value):this.type===s.jsxTagStart?this.jsx_parseElement():t.call(this,e)}}),e.extend("readToken",function(e){return function(i){var r=this.curContext()
if(r===a.j_expr)return this.jsx_readToken()
@@ -80,182 +81,178 @@ if(r===a.j_oTag||r===a.j_cTag){if(t.isIdentifierStart(i))return this.jsx_readWor
if(62==i)return++this.pos,this.finishToken(s.jsxTagEnd)
if((34===i||39===i)&&r==a.j_oTag)return this.jsx_readString(i)}return 60===i&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(s.jsxTagStart)):e.call(this,i)}}),e.extend("updateContext",function(t){return function(e){if(this.type==s.braceL){var i=this.curContext()
i==a.j_oTag?this.context.push(a.b_expr):i==a.j_expr?this.context.push(a.b_tmpl):t.call(this,e),this.exprAllowed=!0}else{if(this.type!==s.slash||e!==s.jsxTagStart)return t.call(this,e)
-this.context.length-=2,this.context.push(a.j_cTag),this.exprAllowed=!1}}}))},t}},function(t,e){t.exports={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}},function(t,e,s){!function(t,s){s(e)}(0,function(t){"use strict"
-function e(t,e){for(var s=65536,i=0;it)return!1
-if((s+=e[i+1])>=t)return!0}}function s(t,s){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&A.test(String.fromCharCode(t)):!1!==s&&e(t,C)))}function i(t,s){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&S.test(String.fromCharCode(t)):!1!==s&&(e(t,C)||e(t,_)))))}function r(t,e){return new N(t,{beforeExpr:!0,binop:e})}function n(t,e){return void 0===e&&(e={}),e.keyword=t,P[t]=new N(t,e)}function a(t){return 10===t||13===t||8232===t||8233===t}function o(t,e){return M.call(t,e)}function h(t,e){for(var s=1,i=0;;){R.lastIndex=i
-var r=R.exec(t)
-if(!(r&&r.index=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),B(e.onToken)){var i=e.onToken
-e.onToken=function(t){return i.push(t)}}return B(e.onComment)&&(e.onComment=c(e,e.onComment)),e}function c(t,e){return function(s,i,r,n,a,o){var h={type:s?"Block":"Line",value:i,start:r,end:n}
-t.locations&&(h.loc=new X(this,a,o)),t.ranges&&(h.range=[r,n]),e.push(h)}}function l(t){return new RegExp("^("+t.replace(/ /g,"|")+")$")}function u(t,e,s,i){return t.type=e,t.end=s,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=s),t}function d(t,e,s,i){try{return new RegExp(t,e)}catch(t){if(void 0!==s)throw t instanceof SyntaxError&&i.raise(s,"Error parsing regular expression: "+t.message),t}}function f(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function m(t,e){return new W(e,t).parse()}function x(t,e,s){var i=new W(s,t,e)
-return i.nextToken(),i.parseExpression()}function y(t,e){return new W(e,t)}function v(e,s,i){t.parse_dammit=e,t.LooseParser=s,t.pluginsLoose=i}var b={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},g="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",k={5:g,6:g+" const class extends export import super"},E="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",w="·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",A=new RegExp("["+E+"]"),S=new RegExp("["+E+w+"]")
-E=w=null
-var C=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],_=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],N=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null},T={beforeExpr:!0},L={startsExpr:!0},P={},j={num:new N("num",L),regexp:new N("regexp",L),string:new N("string",L),name:new N("name",L),eof:new N("eof"),bracketL:new N("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new N("]"),braceL:new N("{",{beforeExpr:!0,startsExpr:!0}),braceR:new N("}"),parenL:new N("(",{beforeExpr:!0,startsExpr:!0}),parenR:new N(")"),comma:new N(",",T),semi:new N(";",T),colon:new N(":",T),dot:new N("."),question:new N("?",T),arrow:new N("=>",T),template:new N("template"),ellipsis:new N("...",T),backQuote:new N("`",L),dollarBraceL:new N("${",{beforeExpr:!0,startsExpr:!0}),eq:new N("=",{beforeExpr:!0,isAssign:!0}),assign:new N("_=",{beforeExpr:!0,isAssign:!0}),incDec:new N("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new N("prefix",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:r("||",1),logicalAND:r("&&",2),bitwiseOR:r("|",3),bitwiseXOR:r("^",4),bitwiseAND:r("&",5),equality:r("==/!=",6),relational:r(">",7),bitShift:r("<>>",8),plusMin:new N("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:r("%",10),star:r("*",10),slash:r("/",10),starstar:new N("**",{beforeExpr:!0}),_break:n("break"),_case:n("case",T),_catch:n("catch"),_continue:n("continue"),_debugger:n("debugger"),_default:n("default",T),_do:n("do",{isLoop:!0,beforeExpr:!0}),_else:n("else",T),_finally:n("finally"),_for:n("for",{isLoop:!0}),_function:n("function",L),_if:n("if"),_return:n("return",T),_switch:n("switch"),_throw:n("throw",T),_try:n("try"),_var:n("var"),_const:n("const"),_while:n("while",{isLoop:!0}),_with:n("with"),_new:n("new",{beforeExpr:!0,startsExpr:!0}),_this:n("this",L),_super:n("super",L),_class:n("class"),_extends:n("extends",T),_export:n("export"),_import:n("import"),_null:n("null",L),_true:n("true",L),_false:n("false",L),_in:n("in",{beforeExpr:!0,binop:7}),_instanceof:n("instanceof",{beforeExpr:!0,binop:7}),_typeof:n("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:n("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:n("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},I=/\r\n?|\n|\u2028|\u2029/,R=new RegExp(I.source,"g"),O=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,V=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,F=Object.prototype,M=F.hasOwnProperty,D=F.toString,B=Array.isArray||function(t){return"[object Array]"===D.call(t)},q=function(t,e){this.line=t,this.column=e}
-q.prototype.offset=function(t){return new q(this.line,this.column+t)}
-var X=function(t,e,s){this.start=e,this.end=s,null!==t.sourceFile&&(this.source=t.sourceFile)},z={ecmaVersion:7,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1,plugins:{}},J={},W=function(t,e,s){this.options=t=p(t),this.sourceFile=t.sourceFile,this.keywords=l(k[t.ecmaVersion>=6?6:5])
+this.context.length-=2,this.context.push(a.j_cTag),this.exprAllowed=!1}}}))},t}},function(t,e){t.exports={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"",zwj:"",lrm:"",rlm:"",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}},function(t,e,s){"use strict"
+function i(t,e){for(var s=65536,i=0;it)return!1
+if((s+=e[i+1])>=t)return!0}}function r(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&_.test(String.fromCharCode(t)):!1!==e&&i(t,N)))}function n(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&T.test(String.fromCharCode(t)):!1!==e&&(i(t,N)||i(t,L)))))}function a(t,e){return new P(t,{beforeExpr:!0,binop:e})}function o(t,e){return void 0===e&&(e={}),e.keyword=t,R[t]=new P(t,e)}function h(t){return 10===t||13===t||8232===t||8233===t}function p(t,e){return q.call(t,e)}function c(t,e){for(var s=1,i=0;;){F.lastIndex=i
+var r=F.exec(t)
+if(!(r&&r.index=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),U(e.onToken)){var i=e.onToken
+e.onToken=function(t){return i.push(t)}}return U(e.onComment)&&(e.onComment=l(e,e.onComment)),e}function l(t,e){return function(s,i,r,n,a,o){var h={type:s?"Block":"Line",value:i,start:r,end:n}
+t.locations&&(h.loc=new J(this,a,o)),t.ranges&&(h.range=[r,n]),e.push(h)}}function d(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}function f(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=-1}function m(t,e,s,i){return t.type=e,t.end=s,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=s),t}function x(t,e,s,i){try{return new RegExp(t,e)}catch(t){if(void 0!==s)throw t instanceof SyntaxError&&i.raise(s,"Error parsing regular expression: "+t.message),t}}function y(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function v(t,e){return new $(e,t).parse()}function g(t,e,s){var i=new $(s,t,e)
+return i.nextToken(),i.parseExpression()}function b(t,e){return new $(e,t)}function k(t,e,s){yt=t,vt=e,gt=s}Object.defineProperty(e,"__esModule",{value:!0}),s.d(e,"version",function(){return bt}),s.d(e,"parse",function(){return v}),s.d(e,"parseExpressionAt",function(){return g}),s.d(e,"tokenizer",function(){return b}),s.d(e,"parse_dammit",function(){return yt}),s.d(e,"LooseParser",function(){return vt}),s.d(e,"pluginsLoose",function(){return gt}),s.d(e,"addLooseExports",function(){return k}),s.d(e,"Parser",function(){return $}),s.d(e,"plugins",function(){return G}),s.d(e,"defaultOptions",function(){return W}),s.d(e,"Position",function(){return z}),s.d(e,"SourceLocation",function(){return J}),s.d(e,"getLineInfo",function(){return c}),s.d(e,"Node",function(){return ot}),s.d(e,"TokenType",function(){return P}),s.d(e,"tokTypes",function(){return O}),s.d(e,"keywordTypes",function(){return R}),s.d(e,"TokContext",function(){return pt}),s.d(e,"tokContexts",function(){return ct}),s.d(e,"isIdentifierChar",function(){return n}),s.d(e,"isIdentifierStart",function(){return r}),s.d(e,"Token",function(){return lt}),s.d(e,"isNewLine",function(){return h}),s.d(e,"lineBreak",function(){return V}),s.d(e,"lineBreakG",function(){return F}),s.d(e,"nonASCIIwhitespace",function(){return D})
+var E={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},w="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",A={5:w,6:w+" const class extends export import super"},S="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",C="·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",_=new RegExp("["+S+"]"),T=new RegExp("["+S+C+"]")
+S=C=null
+var N=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],L=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],P=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null},j={beforeExpr:!0},I={startsExpr:!0},R={},O={num:new P("num",I),regexp:new P("regexp",I),string:new P("string",I),name:new P("name",I),eof:new P("eof"),bracketL:new P("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new P("]"),braceL:new P("{",{beforeExpr:!0,startsExpr:!0}),braceR:new P("}"),parenL:new P("(",{beforeExpr:!0,startsExpr:!0}),parenR:new P(")"),comma:new P(",",j),semi:new P(";",j),colon:new P(":",j),dot:new P("."),question:new P("?",j),arrow:new P("=>",j),template:new P("template"),invalidTemplate:new P("invalidTemplate"),ellipsis:new P("...",j),backQuote:new P("`",I),dollarBraceL:new P("${",{beforeExpr:!0,startsExpr:!0}),eq:new P("=",{beforeExpr:!0,isAssign:!0}),assign:new P("_=",{beforeExpr:!0,isAssign:!0}),incDec:new P("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new P("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:a("||",1),logicalAND:a("&&",2),bitwiseOR:a("|",3),bitwiseXOR:a("^",4),bitwiseAND:a("&",5),equality:a("==/!=/===/!==",6),relational:a(">/<=/>=",7),bitShift:a("<>>/>>>",8),plusMin:new P("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:a("%",10),star:a("*",10),slash:a("/",10),starstar:new P("**",{beforeExpr:!0}),_break:o("break"),_case:o("case",j),_catch:o("catch"),_continue:o("continue"),_debugger:o("debugger"),_default:o("default",j),_do:o("do",{isLoop:!0,beforeExpr:!0}),_else:o("else",j),_finally:o("finally"),_for:o("for",{isLoop:!0}),_function:o("function",I),_if:o("if"),_return:o("return",j),_switch:o("switch"),_throw:o("throw",j),_try:o("try"),_var:o("var"),_const:o("const"),_while:o("while",{isLoop:!0}),_with:o("with"),_new:o("new",{beforeExpr:!0,startsExpr:!0}),_this:o("this",I),_super:o("super",I),_class:o("class",I),_extends:o("extends",j),_export:o("export"),_import:o("import"),_null:o("null",I),_true:o("true",I),_false:o("false",I),_in:o("in",{beforeExpr:!0,binop:7}),_instanceof:o("instanceof",{beforeExpr:!0,binop:7}),_typeof:o("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:o("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:o("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},V=/\r\n?|\n|\u2028|\u2029/,F=new RegExp(V.source,"g"),D=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,B=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,M=Object.prototype,q=M.hasOwnProperty,X=M.toString,U=Array.isArray||function(t){return"[object Array]"===X.call(t)},z=function(t,e){this.line=t,this.column=e}
+z.prototype.offset=function(t){return new z(this.line,this.column+t)}
+var J=function(t,e,s){this.start=e,this.end=s,null!==t.sourceFile&&(this.source=t.sourceFile)},W={ecmaVersion:7,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1,plugins:{}},G={},$=function(t,e,s){this.options=t=u(t),this.sourceFile=t.sourceFile,this.keywords=d(A[t.ecmaVersion>=6?6:5])
var i=""
-if(!t.allowReserved){for(var r=t.ecmaVersion;!(i=b[r]);r--);"module"==t.sourceType&&(i+=" await")}this.reservedWords=l(i)
-var n=(i?i+" ":"")+b.strict
-this.reservedWordsStrict=l(n),this.reservedWordsStrictBind=l(n+" "+b.strictBind),this.input=String(e),this.containsEsc=!1,this.loadPlugins(t.plugins),s?(this.pos=s,this.lineStart=this.input.lastIndexOf("\n",s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(I).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=j.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterFunctionScope()}
-W.prototype.isKeyword=function(t){return this.keywords.test(t)},W.prototype.isReservedWord=function(t){return this.reservedWords.test(t)},W.prototype.extend=function(t,e){this[t]=e(this[t])},W.prototype.loadPlugins=function(t){var e=this
-for(var s in t){var i=J[s]
+if(!t.allowReserved){for(var r=t.ecmaVersion;!(i=E[r]);r--);"module"==t.sourceType&&(i+=" await")}this.reservedWords=d(i)
+var n=(i?i+" ":"")+E.strict
+this.reservedWordsStrict=d(n),this.reservedWordsStrictBind=d(n+" "+E.strictBind),this.input=String(e),this.containsEsc=!1,this.loadPlugins(t.plugins),s?(this.pos=s,this.lineStart=this.input.lastIndexOf("\n",s-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(V).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=O.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterFunctionScope()}
+$.prototype.isKeyword=function(t){return this.keywords.test(t)},$.prototype.isReservedWord=function(t){return this.reservedWords.test(t)},$.prototype.extend=function(t,e){this[t]=e(this[t])},$.prototype.loadPlugins=function(t){var e=this
+for(var s in t){var i=G[s]
if(!i)throw new Error("Plugin '"+s+"' not found")
-i(e,t[s])}},W.prototype.parse=function(){var t=this.options.program||this.startNode()
+i(e,t[s])}},$.prototype.parse=function(){var t=this.options.program||this.startNode()
return this.nextToken(),this.parseTopLevel(t)}
-var U=W.prototype,G=/^(?:'((?:[^']|\.)*)'|"((?:[^"]|\.)*)"|;)/
-U.strictDirective=function(t){for(var e=this;;){V.lastIndex=t,t+=V.exec(e.input)[0].length
-var s=G.exec(e.input.slice(t))
+var H=$.prototype,Y=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/
+H.strictDirective=function(t){for(var e=this;;){B.lastIndex=t,t+=B.exec(e.input)[0].length
+var s=Y.exec(e.input.slice(t))
if(!s)return!1
if("use strict"==(s[1]||s[2]))return!0
-t+=s[0].length}},U.eat=function(t){return this.type===t&&(this.next(),!0)},U.isContextual=function(t){return this.type===j.name&&this.value===t},U.eatContextual=function(t){return this.value===t&&this.eat(j.name)},U.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},U.canInsertSemicolon=function(){return this.type===j.eof||this.type===j.braceR||I.test(this.input.slice(this.lastTokEnd,this.start))},U.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},U.semicolon=function(){this.eat(j.semi)||this.insertSemicolon()||this.unexpected()},U.afterTrailingComma=function(t,e){if(this.type==t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},U.expect=function(t){this.eat(t)||this.unexpected()},U.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")}
-var $=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=-1}
-U.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element")
+t+=s[0].length}},H.eat=function(t){return this.type===t&&(this.next(),!0)},H.isContextual=function(t){return this.type===O.name&&this.value===t},H.eatContextual=function(t){return this.value===t&&this.eat(O.name)},H.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},H.canInsertSemicolon=function(){return this.type===O.eof||this.type===O.braceR||V.test(this.input.slice(this.lastTokEnd,this.start))},H.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},H.semicolon=function(){this.eat(O.semi)||this.insertSemicolon()||this.unexpected()},H.afterTrailingComma=function(t,e){if(this.type==t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},H.expect=function(t){this.eat(t)||this.unexpected()},H.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")},H.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element")
var s=e?t.parenthesizedAssign:t.parenthesizedBind
-s>-1&&this.raiseRecoverable(s,"Parenthesized pattern")}},U.checkExpressionErrors=function(t,e){var s=t?t.shorthandAssign:-1
+s>-1&&this.raiseRecoverable(s,"Parenthesized pattern")}},H.checkExpressionErrors=function(t,e){var s=t?t.shorthandAssign:-1
if(!e)return s>=0
-s>-1&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns")},U.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&(t.sourceType=this.options.sourceType),this.finishNode(t,"Program")}
-var Y={kind:"loop"},Q={kind:"switch"}
-H.isLet=function(){if(this.type!==j.name||this.options.ecmaVersion<6||"let"!=this.value)return!1
-V.lastIndex=this.pos
-var t=V.exec(this.input),e=this.pos+t[0].length,r=this.input.charCodeAt(e)
-if(91===r||123==r)return!0
-if(s(r,!0)){for(var n=e+1;i(this.input.charCodeAt(n),!0);)++n
-var a=this.input.slice(e,n)
-if(!this.isKeyword(a))return!0}return!1},H.isAsyncFunction=function(){if(this.type!==j.name||this.options.ecmaVersion<8||"async"!=this.value)return!1
-V.lastIndex=this.pos
-var t=V.exec(this.input),e=this.pos+t[0].length
-return!(I.test(this.input.slice(this.pos,e))||"function"!==this.input.slice(e,e+8)||e+8!=this.input.length&&i(this.input.charAt(e+8)))},H.parseStatement=function(t,e,s){var i,r=this.type,n=this.startNode()
-switch(this.isLet()&&(r=j._var,i="let"),r){case j._break:case j._continue:return this.parseBreakContinueStatement(n,r.keyword)
-case j._debugger:return this.parseDebuggerStatement(n)
-case j._do:return this.parseDoStatement(n)
-case j._for:return this.parseForStatement(n)
-case j._function:return!t&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(n,!1)
-case j._class:return t||this.unexpected(),this.parseClass(n,!0)
-case j._if:return this.parseIfStatement(n)
-case j._return:return this.parseReturnStatement(n)
-case j._switch:return this.parseSwitchStatement(n)
-case j._throw:return this.parseThrowStatement(n)
-case j._try:return this.parseTryStatement(n)
-case j._const:case j._var:return i=i||this.value,t||"var"==i||this.unexpected(),this.parseVarStatement(n,i)
-case j._while:return this.parseWhileStatement(n)
-case j._with:return this.parseWithStatement(n)
-case j.braceL:return this.parseBlock()
-case j.semi:return this.parseEmptyStatement(n)
-case j._export:case j._import:return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===j._import?this.parseImport(n):this.parseExport(n,s)
+s>-1&&this.raise(s,"Shorthand property assignments are valid only in destructuring patterns")},H.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&(t.sourceType=this.options.sourceType),this.finishNode(t,"Program")}
+var Z={kind:"loop"},K={kind:"switch"}
+Q.isLet=function(){if(this.type!==O.name||this.options.ecmaVersion<6||"let"!=this.value)return!1
+B.lastIndex=this.pos
+var t=B.exec(this.input),e=this.pos+t[0].length,s=this.input.charCodeAt(e)
+if(91===s||123==s)return!0
+if(r(s,!0)){for(var i=e+1;n(this.input.charCodeAt(i),!0);)++i
+var a=this.input.slice(e,i)
+if(!this.isKeyword(a))return!0}return!1},Q.isAsyncFunction=function(){if(this.type!==O.name||this.options.ecmaVersion<8||"async"!=this.value)return!1
+B.lastIndex=this.pos
+var t=B.exec(this.input),e=this.pos+t[0].length
+return!(V.test(this.input.slice(this.pos,e))||"function"!==this.input.slice(e,e+8)||e+8!=this.input.length&&n(this.input.charAt(e+8)))},Q.parseStatement=function(t,e,s){var i,r=this.type,n=this.startNode()
+switch(this.isLet()&&(r=O._var,i="let"),r){case O._break:case O._continue:return this.parseBreakContinueStatement(n,r.keyword)
+case O._debugger:return this.parseDebuggerStatement(n)
+case O._do:return this.parseDoStatement(n)
+case O._for:return this.parseForStatement(n)
+case O._function:return!t&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(n,!1)
+case O._class:return t||this.unexpected(),this.parseClass(n,!0)
+case O._if:return this.parseIfStatement(n)
+case O._return:return this.parseReturnStatement(n)
+case O._switch:return this.parseSwitchStatement(n)
+case O._throw:return this.parseThrowStatement(n)
+case O._try:return this.parseTryStatement(n)
+case O._const:case O._var:return i=i||this.value,t||"var"==i||this.unexpected(),this.parseVarStatement(n,i)
+case O._while:return this.parseWhileStatement(n)
+case O._with:return this.parseWithStatement(n)
+case O.braceL:return this.parseBlock()
+case O.semi:return this.parseEmptyStatement(n)
+case O._export:case O._import:return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),r===O._import?this.parseImport(n):this.parseExport(n,s)
default:if(this.isAsyncFunction()&&t)return this.next(),this.parseFunctionStatement(n,!0)
var a=this.value,o=this.parseExpression()
-return r===j.name&&"Identifier"===o.type&&this.eat(j.colon)?this.parseLabeledStatement(n,a,o):this.parseExpressionStatement(n,o)}},H.parseBreakContinueStatement=function(t,e){var s=this,i="break"==e
-this.next(),this.eat(j.semi)||this.insertSemicolon()?t.label=null:this.type!==j.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon())
+return r===O.name&&"Identifier"===o.type&&this.eat(O.colon)?this.parseLabeledStatement(n,a,o):this.parseExpressionStatement(n,o)}},Q.parseBreakContinueStatement=function(t,e){var s=this,i="break"==e
+this.next(),this.eat(O.semi)||this.insertSemicolon()?t.label=null:this.type!==O.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon())
for(var r=0;r=6?this.eat(j.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},H.parseForStatement=function(t){if(this.next(),this.labels.push(Y),this.enterLexicalScope(),this.expect(j.parenL),this.type===j.semi)return this.parseFor(t,null)
+if(t.label&&i)break}}return r===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,i?"BreakStatement":"ContinueStatement")},Q.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},Q.parseDoStatement=function(t){return this.next(),this.labels.push(Z),t.body=this.parseStatement(!1),this.labels.pop(),this.expect(O._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(O.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},Q.parseForStatement=function(t){if(this.next(),this.labels.push(Z),this.enterLexicalScope(),this.expect(O.parenL),this.type===O.semi)return this.parseFor(t,null)
var e=this.isLet()
-if(this.type===j._var||this.type===j._const||e){var s=this.startNode(),i=e?"let":this.value
-return this.next(),this.parseVar(s,!0,i),this.finishNode(s,"VariableDeclaration"),!(this.type===j._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==s.declarations.length||"var"!==i&&s.declarations[0].init?this.parseFor(t,s):this.parseForIn(t,s)}var r=new $,n=this.parseExpression(!0,r)
-return this.type===j._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.toAssignable(n),this.checkLVal(n),this.checkPatternErrors(r,!0),this.parseForIn(t,n)):(this.checkExpressionErrors(r,!0),this.parseFor(t,n))},H.parseFunctionStatement=function(t,e){return this.next(),this.parseFunction(t,!0,!1,e)},H.isFunction=function(){return this.type===j._function||this.isAsyncFunction()},H.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement(!this.strict&&this.isFunction()),t.alternate=this.eat(j._else)?this.parseStatement(!this.strict&&this.isFunction()):null,this.finishNode(t,"IfStatement")},H.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(j.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},H.parseSwitchStatement=function(t){var e=this
-this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(j.braceL),this.labels.push(Q),this.enterLexicalScope()
-for(var s,i=!1;this.type!=j.braceR;)if(e.type===j._case||e.type===j._default){var r=e.type===j._case
-s&&e.finishNode(s,"SwitchCase"),t.cases.push(s=e.startNode()),s.consequent=[],e.next(),r?s.test=e.parseExpression():(i&&e.raiseRecoverable(e.lastTokStart,"Multiple default clauses"),i=!0,s.test=null),e.expect(j.colon)}else s||e.unexpected(),s.consequent.push(e.parseStatement(!0))
-return this.exitLexicalScope(),s&&this.finishNode(s,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},H.parseThrowStatement=function(t){return this.next(),I.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")}
-var Z=[]
-H.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===j._catch){var e=this.startNode()
-this.next(),this.expect(j.parenL),e.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(e.param,"let"),this.expect(j.parenR),e.body=this.parseBlock(!1),this.exitLexicalScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(j._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},H.parseVarStatement=function(t,e){return this.next(),this.parseVar(t,!1,e),this.semicolon(),this.finishNode(t,"VariableDeclaration")},H.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(Y),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,"WhileStatement")},H.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement(!1),this.finishNode(t,"WithStatement")},H.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},H.parseLabeledStatement=function(t,e,s){for(var i=this,r=0;r=0;a--){var o=i.labels[a]
-if(o.statementStart!=t.start)break
-o.statementStart=i.start,o.kind=n}return this.labels.push({name:e,kind:n,statementStart:this.start}),t.body=this.parseStatement(!0),("ClassDeclaration"==t.body.type||"VariableDeclaration"==t.body.type&&"var"!=t.body.kind||"FunctionDeclaration"==t.body.type&&(this.strict||t.body.generator))&&this.raiseRecoverable(t.body.start,"Invalid labeled declaration"),this.labels.pop(),t.label=s,this.finishNode(t,"LabeledStatement")},H.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},H.parseBlock=function(t){var e=this
+if(this.type===O._var||this.type===O._const||e){var s=this.startNode(),i=e?"let":this.value
+return this.next(),this.parseVar(s,!0,i),this.finishNode(s,"VariableDeclaration"),!(this.type===O._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==s.declarations.length||"var"!==i&&s.declarations[0].init?this.parseFor(t,s):this.parseForIn(t,s)}var r=new f,n=this.parseExpression(!0,r)
+return this.type===O._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.toAssignable(n),this.checkLVal(n),this.checkPatternErrors(r,!0),this.parseForIn(t,n)):(this.checkExpressionErrors(r,!0),this.parseFor(t,n))},Q.parseFunctionStatement=function(t,e){return this.next(),this.parseFunction(t,!0,!1,e)},Q.isFunction=function(){return this.type===O._function||this.isAsyncFunction()},Q.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement(!this.strict&&this.isFunction()),t.alternate=this.eat(O._else)?this.parseStatement(!this.strict&&this.isFunction()):null,this.finishNode(t,"IfStatement")},Q.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(O.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},Q.parseSwitchStatement=function(t){var e=this
+this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(O.braceL),this.labels.push(K),this.enterLexicalScope()
+for(var s,i=!1;this.type!=O.braceR;)if(e.type===O._case||e.type===O._default){var r=e.type===O._case
+s&&e.finishNode(s,"SwitchCase"),t.cases.push(s=e.startNode()),s.consequent=[],e.next(),r?s.test=e.parseExpression():(i&&e.raiseRecoverable(e.lastTokStart,"Multiple default clauses"),i=!0,s.test=null),e.expect(O.colon)}else s||e.unexpected(),s.consequent.push(e.parseStatement(!0))
+return this.exitLexicalScope(),s&&this.finishNode(s,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},Q.parseThrowStatement=function(t){return this.next(),V.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")}
+var tt=[]
+Q.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===O._catch){var e=this.startNode()
+this.next(),this.expect(O.parenL),e.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(e.param,"let"),this.expect(O.parenR),e.body=this.parseBlock(!1),this.exitLexicalScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(O._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},Q.parseVarStatement=function(t,e){return this.next(),this.parseVar(t,!1,e),this.semicolon(),this.finishNode(t,"VariableDeclaration")},Q.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(Z),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,"WhileStatement")},Q.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement(!1),this.finishNode(t,"WithStatement")},Q.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},Q.parseLabeledStatement=function(t,e,s){for(var i=this,r=0,n=i.labels;r=0;o--){var h=i.labels[o]
+if(h.statementStart!=t.start)break
+h.statementStart=i.start,h.kind=a}return this.labels.push({name:e,kind:a,statementStart:this.start}),t.body=this.parseStatement(!0),("ClassDeclaration"==t.body.type||"VariableDeclaration"==t.body.type&&"var"!=t.body.kind||"FunctionDeclaration"==t.body.type&&(this.strict||t.body.generator))&&this.raiseRecoverable(t.body.start,"Invalid labeled declaration"),this.labels.pop(),t.label=s,this.finishNode(t,"LabeledStatement")},Q.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},Q.parseBlock=function(t){var e=this
void 0===t&&(t=!0)
var s=this.startNode()
-for(s.body=[],this.expect(j.braceL),t&&this.enterLexicalScope();!this.eat(j.braceR);){var i=e.parseStatement(!0)
-s.body.push(i)}return t&&this.exitLexicalScope(),this.finishNode(s,"BlockStatement")},H.parseFor=function(t,e){return t.init=e,this.expect(j.semi),t.test=this.type===j.semi?null:this.parseExpression(),this.expect(j.semi),t.update=this.type===j.parenR?null:this.parseExpression(),this.expect(j.parenR),this.exitLexicalScope(),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,"ForStatement")},H.parseForIn=function(t,e){var s=this.type===j._in?"ForInStatement":"ForOfStatement"
-return this.next(),t.left=e,t.right=this.parseExpression(),this.expect(j.parenR),this.exitLexicalScope(),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,s)},H.parseVar=function(t,e,s){var i=this
+for(s.body=[],this.expect(O.braceL),t&&this.enterLexicalScope();!this.eat(O.braceR);){var i=e.parseStatement(!0)
+s.body.push(i)}return t&&this.exitLexicalScope(),this.finishNode(s,"BlockStatement")},Q.parseFor=function(t,e){return t.init=e,this.expect(O.semi),t.test=this.type===O.semi?null:this.parseExpression(),this.expect(O.semi),t.update=this.type===O.parenR?null:this.parseExpression(),this.expect(O.parenR),this.exitLexicalScope(),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,"ForStatement")},Q.parseForIn=function(t,e){var s=this.type===O._in?"ForInStatement":"ForOfStatement"
+return this.next(),t.left=e,t.right=this.parseExpression(),this.expect(O.parenR),this.exitLexicalScope(),t.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(t,s)},Q.parseVar=function(t,e,s){var i=this
for(t.declarations=[],t.kind=s;;){var r=i.startNode()
-if(i.parseVarId(r,s),i.eat(j.eq)?r.init=i.parseMaybeAssign(e):"const"!==s||i.type===j._in||i.options.ecmaVersion>=6&&i.isContextual("of")?"Identifier"==r.id.type||e&&(i.type===j._in||i.isContextual("of"))?r.init=null:i.raise(i.lastTokEnd,"Complex binding patterns require an initialization value"):i.unexpected(),t.declarations.push(i.finishNode(r,"VariableDeclarator")),!i.eat(j.comma))break}return t},H.parseVarId=function(t,e){t.id=this.parseBindingAtom(e),this.checkLVal(t.id,e,!1)},H.parseFunction=function(t,e,s,i){this.initFunction(t),this.options.ecmaVersion>=6&&!i&&(t.generator=this.eat(j.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e&&(t.id="nullableID"===e&&this.type!=j.name?null:this.parseIdent(),t.id&&this.checkLVal(t.id,"var"))
+if(i.parseVarId(r,s),i.eat(O.eq)?r.init=i.parseMaybeAssign(e):"const"!==s||i.type===O._in||i.options.ecmaVersion>=6&&i.isContextual("of")?"Identifier"==r.id.type||e&&(i.type===O._in||i.isContextual("of"))?r.init=null:i.raise(i.lastTokEnd,"Complex binding patterns require an initialization value"):i.unexpected(),t.declarations.push(i.finishNode(r,"VariableDeclarator")),!i.eat(O.comma))break}return t},Q.parseVarId=function(t,e){t.id=this.parseBindingAtom(e),this.checkLVal(t.id,e,!1)},Q.parseFunction=function(t,e,s,i){this.initFunction(t),this.options.ecmaVersion>=6&&!i&&(t.generator=this.eat(O.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e&&(t.id="nullableID"===e&&this.type!=O.name?null:this.parseIdent(),t.id&&this.checkLVal(t.id,"var"))
var r=this.inGenerator,n=this.inAsync,a=this.yieldPos,o=this.awaitPos,h=this.inFunction
-return this.inGenerator=t.generator,this.inAsync=t.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),e||(t.id=this.type==j.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,s),this.inGenerator=r,this.inAsync=n,this.yieldPos=a,this.awaitPos=o,this.inFunction=h,this.finishNode(t,e?"FunctionDeclaration":"FunctionExpression")},H.parseFunctionParams=function(t){this.expect(j.parenL),t.params=this.parseBindingList(j.parenR,!1,this.options.ecmaVersion>=8,!0),this.checkYieldAwaitInDefaultParams()},H.parseClass=function(t,e){var s=this
+return this.inGenerator=t.generator,this.inAsync=t.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),e||(t.id=this.type==O.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,s),this.inGenerator=r,this.inAsync=n,this.yieldPos=a,this.awaitPos=o,this.inFunction=h,this.finishNode(t,e?"FunctionDeclaration":"FunctionExpression")},Q.parseFunctionParams=function(t){this.expect(O.parenL),t.params=this.parseBindingList(O.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Q.parseClass=function(t,e){var s=this
this.next(),this.parseClassId(t,e),this.parseClassSuper(t)
var i=this.startNode(),r=!1
-for(i.body=[],this.expect(j.braceL);!this.eat(j.braceR);)if(!s.eat(j.semi)){var n=s.startNode(),a=s.eat(j.star),o=!1,h=s.type===j.name&&"static"===s.value
-s.parsePropertyName(n),n.static=h&&s.type!==j.parenL,n.static&&(a&&s.unexpected(),a=s.eat(j.star),s.parsePropertyName(n)),s.options.ecmaVersion>=8&&!a&&!n.computed&&"Identifier"===n.key.type&&"async"===n.key.name&&s.type!==j.parenL&&!s.canInsertSemicolon()&&(o=!0,s.parsePropertyName(n)),n.kind="method"
+for(i.body=[],this.expect(O.braceL);!this.eat(O.braceR);)if(!s.eat(O.semi)){var n=s.startNode(),a=s.eat(O.star),o=!1,h=s.type===O.name&&"static"===s.value
+s.parsePropertyName(n),n.static=h&&s.type!==O.parenL,n.static&&(a&&s.unexpected(),a=s.eat(O.star),s.parsePropertyName(n)),s.options.ecmaVersion>=8&&!a&&!n.computed&&"Identifier"===n.key.type&&"async"===n.key.name&&s.type!==O.parenL&&!s.canInsertSemicolon()&&(o=!0,s.parsePropertyName(n)),n.kind="method"
var p=!1
if(!n.computed){var c=n.key
-a||o||"Identifier"!==c.type||s.type===j.parenL||"get"!==c.name&&"set"!==c.name||(p=!0,n.kind=c.name,c=s.parsePropertyName(n)),!n.static&&("Identifier"===c.type&&"constructor"===c.name||"Literal"===c.type&&"constructor"===c.value)&&(r&&s.raise(c.start,"Duplicate constructor in the same class"),p&&s.raise(c.start,"Constructor can't have get/set modifier"),a&&s.raise(c.start,"Constructor can't be a generator"),o&&s.raise(c.start,"Constructor can't be an async method"),n.kind="constructor",r=!0)}if(s.parseClassMethod(i,n,a,o),p){var l="get"===n.kind?0:1
-if(n.value.params.length!==l){var u=n.value.start
-"get"===n.kind?s.raiseRecoverable(u,"getter should have no params"):s.raiseRecoverable(u,"setter should have exactly one param")}else"set"===n.kind&&"RestElement"===n.value.params[0].type&&s.raiseRecoverable(n.value.params[0].start,"Setter cannot use rest params")}}return t.body=this.finishNode(i,"ClassBody"),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},H.parseClassMethod=function(t,e,s,i){e.value=this.parseMethod(s,i),t.body.push(this.finishNode(e,"MethodDefinition"))},H.parseClassId=function(t,e){t.id=this.type===j.name?this.parseIdent():!0===e?this.unexpected():null},H.parseClassSuper=function(t){t.superClass=this.eat(j._extends)?this.parseExprSubscripts():null},H.parseExport=function(t,e){var s=this
-if(this.next(),this.eat(j.star))return this.expectContextual("from"),t.source=this.type===j.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")
-if(this.eat(j._default)){this.checkExport(e,"default",this.lastTokStart)
+a||o||"Identifier"!==c.type||s.type===O.parenL||"get"!==c.name&&"set"!==c.name||(p=!0,n.kind=c.name,c=s.parsePropertyName(n)),!n.static&&("Identifier"===c.type&&"constructor"===c.name||"Literal"===c.type&&"constructor"===c.value)&&(r&&s.raise(c.start,"Duplicate constructor in the same class"),p&&s.raise(c.start,"Constructor can't have get/set modifier"),a&&s.raise(c.start,"Constructor can't be a generator"),o&&s.raise(c.start,"Constructor can't be an async method"),n.kind="constructor",r=!0)}if(s.parseClassMethod(i,n,a,o),p){var u="get"===n.kind?0:1
+if(n.value.params.length!==u){var l=n.value.start
+"get"===n.kind?s.raiseRecoverable(l,"getter should have no params"):s.raiseRecoverable(l,"setter should have exactly one param")}else"set"===n.kind&&"RestElement"===n.value.params[0].type&&s.raiseRecoverable(n.value.params[0].start,"Setter cannot use rest params")}}return t.body=this.finishNode(i,"ClassBody"),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},Q.parseClassMethod=function(t,e,s,i){e.value=this.parseMethod(s,i),t.body.push(this.finishNode(e,"MethodDefinition"))},Q.parseClassId=function(t,e){t.id=this.type===O.name?this.parseIdent():!0===e?this.unexpected():null},Q.parseClassSuper=function(t){t.superClass=this.eat(O._extends)?this.parseExprSubscripts():null},Q.parseExport=function(t,e){var s=this
+if(this.next(),this.eat(O.star))return this.expectContextual("from"),t.source=this.type===O.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")
+if(this.eat(O._default)){this.checkExport(e,"default",this.lastTokStart)
var i
-if(this.type===j._function||(i=this.isAsyncFunction())){var r=this.startNode()
-this.next(),i&&this.next(),t.declaration=this.parseFunction(r,"nullableID",!1,i)}else if(this.type===j._class){var n=this.startNode()
+if(this.type===O._function||(i=this.isAsyncFunction())){var r=this.startNode()
+this.next(),i&&this.next(),t.declaration=this.parseFunction(r,"nullableID",!1,i)}else if(this.type===O._class){var n=this.startNode()
t.declaration=this.parseClass(n,"nullableID")}else t.declaration=this.parseMaybeAssign(),this.semicolon()
return this.finishNode(t,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())t.declaration=this.parseStatement(!0),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id.name,t.declaration.id.start),t.specifiers=[],t.source=null
-else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))t.source=this.type===j.string?this.parseExprAtom():this.unexpected()
-else{for(var a=0;a=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Can not use 'await' as identifier inside an async function")
break
case"ObjectPattern":case"ArrayPattern":break
case"ObjectExpression":t.type="ObjectPattern"
-for(var i=0;i=6)switch(this.type){case O.bracketL:var t=this.startNode()
+return this.next(),t.elements=this.parseBindingList(O.bracketR,!0,!0),this.finishNode(t,"ArrayPattern")
+case O.braceL:return this.parseObj(!0)}return this.parseIdent()},et.parseBindingList=function(t,e,s){for(var i=this,r=[],n=!0;!this.eat(t);)if(n?n=!1:i.expect(O.comma),e&&i.type===O.comma)r.push(null)
+else{if(s&&i.afterTrailingComma(t))break
+if(i.type===O.ellipsis){var a=i.parseRestBinding()
+i.parseBindingListItem(a),r.push(a),i.type===O.comma&&i.raise(i.start,"Comma is not permitted after the rest element"),i.expect(t)
+break}var o=i.parseMaybeDefault(i.start,i.startLoc)
+i.parseBindingListItem(o),r.push(o)}return r},et.parseBindingListItem=function(t){return t},et.parseMaybeDefault=function(t,e,s){if(s=s||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(O.eq))return s
var i=this.startNodeAt(t,e)
-return i.left=s,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},K.checkLVal=function(t,e,s){var i=this
-switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(e?"Binding ":"Assigning to ")+t.name+" in strict mode"),s&&(o(s,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),s[t.name]=!0),e&&"none"!==e&&(("var"===e&&!this.canDeclareVarName(t.name)||"var"!==e&&!this.canDeclareLexicalName(t.name))&&this.raiseRecoverable(t.start,"Identifier '"+t.name+"' has already been declared"),"var"===e?this.declareVarName(t.name):this.declareLexicalName(t.name))
+return i.left=s,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},et.checkLVal=function(t,e,s){var i=this
+switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(e?"Binding ":"Assigning to ")+t.name+" in strict mode"),s&&(p(s,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),s[t.name]=!0),e&&"none"!==e&&(("var"===e&&!this.canDeclareVarName(t.name)||"var"!==e&&!this.canDeclareLexicalName(t.name))&&this.raiseRecoverable(t.start,"Identifier '"+t.name+"' has already been declared"),"var"===e?this.declareVarName(t.name):this.declareLexicalName(t.name))
break
case"MemberExpression":e&&this.raiseRecoverable(t.start,(e?"Binding":"Assigning to")+" member expression")
break
-case"ObjectPattern":for(var r=0;r=6&&(t.computed||t.method||t.shorthand))){var s,i=t.key
+var st=$.prototype
+st.checkPropClash=function(t,e){if(!(this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var s,i=t.key
switch(i.type){case"Identifier":s=i.name
break
case"Literal":s=String(i.value)
@@ -275,145 +272,152 @@ s="$"+s
var n=e[s]
if(n){var a
a="init"===r?this.strict&&n.init||n.get||n.set:n.init||n[r],a&&this.raiseRecoverable(i.start,"Redefinition of property")}else n=e[s]={init:!1,get:!1,set:!1}
-n[r]=!0}},tt.parseExpression=function(t,e){var s=this,i=this.start,r=this.startLoc,n=this.parseMaybeAssign(t,e)
-if(this.type===j.comma){var a=this.startNodeAt(i,r)
-for(a.expressions=[n];this.eat(j.comma);)a.expressions.push(s.parseMaybeAssign(t,e))
-return this.finishNode(a,"SequenceExpression")}return n},tt.parseMaybeAssign=function(t,e,s){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield()
+n[r]=!0}},st.parseExpression=function(t,e){var s=this,i=this.start,r=this.startLoc,n=this.parseMaybeAssign(t,e)
+if(this.type===O.comma){var a=this.startNodeAt(i,r)
+for(a.expressions=[n];this.eat(O.comma);)a.expressions.push(s.parseMaybeAssign(t,e))
+return this.finishNode(a,"SequenceExpression")}return n},st.parseMaybeAssign=function(t,e,s){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield()
var i=!1,r=-1,n=-1
-e?(r=e.parenthesizedAssign,n=e.trailingComma,e.parenthesizedAssign=e.trailingComma=-1):(e=new $,i=!0)
+e?(r=e.parenthesizedAssign,n=e.trailingComma,e.parenthesizedAssign=e.trailingComma=-1):(e=new f,i=!0)
var a=this.start,o=this.startLoc
-this.type!=j.parenL&&this.type!=j.name||(this.potentialArrowAt=this.start)
+this.type!=O.parenL&&this.type!=O.name||(this.potentialArrowAt=this.start)
var h=this.parseMaybeConditional(t,e)
-if(s&&(h=s.call(this,h,a,o)),this.type.isAssign){this.checkPatternErrors(e,!0),i||$.call(e)
+if(s&&(h=s.call(this,h,a,o)),this.type.isAssign){this.checkPatternErrors(e,!0),i||f.call(e)
var p=this.startNodeAt(a,o)
-return p.operator=this.value,p.left=this.type===j.eq?this.toAssignable(h):h,e.shorthandAssign=-1,this.checkLVal(h),this.next(),p.right=this.parseMaybeAssign(t),this.finishNode(p,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),r>-1&&(e.parenthesizedAssign=r),n>-1&&(e.trailingComma=n),h},tt.parseMaybeConditional=function(t,e){var s=this.start,i=this.startLoc,r=this.parseExprOps(t,e)
+return p.operator=this.value,p.left=this.type===O.eq?this.toAssignable(h):h,e.shorthandAssign=-1,this.checkLVal(h),this.next(),p.right=this.parseMaybeAssign(t),this.finishNode(p,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),r>-1&&(e.parenthesizedAssign=r),n>-1&&(e.trailingComma=n),h},st.parseMaybeConditional=function(t,e){var s=this.start,i=this.startLoc,r=this.parseExprOps(t,e)
if(this.checkExpressionErrors(e))return r
-if(this.eat(j.question)){var n=this.startNodeAt(s,i)
-return n.test=r,n.consequent=this.parseMaybeAssign(),this.expect(j.colon),n.alternate=this.parseMaybeAssign(t),this.finishNode(n,"ConditionalExpression")}return r},tt.parseExprOps=function(t,e){var s=this.start,i=this.startLoc,r=this.parseMaybeUnary(e,!1)
-return this.checkExpressionErrors(e)?r:r.start==s&&"ArrowFunctionExpression"===r.type?r:this.parseExprOp(r,s,i,-1,t)},tt.parseExprOp=function(t,e,s,i,r){var n=this.type.binop
-if(null!=n&&(!r||this.type!==j._in)&&n>i){var a=this.type===j.logicalOR||this.type===j.logicalAND,o=this.value
+if(this.eat(O.question)){var n=this.startNodeAt(s,i)
+return n.test=r,n.consequent=this.parseMaybeAssign(),this.expect(O.colon),n.alternate=this.parseMaybeAssign(t),this.finishNode(n,"ConditionalExpression")}return r},st.parseExprOps=function(t,e){var s=this.start,i=this.startLoc,r=this.parseMaybeUnary(e,!1)
+return this.checkExpressionErrors(e)?r:r.start==s&&"ArrowFunctionExpression"===r.type?r:this.parseExprOp(r,s,i,-1,t)},st.parseExprOp=function(t,e,s,i,r){var n=this.type.binop
+if(null!=n&&(!r||this.type!==O._in)&&n>i){var a=this.type===O.logicalOR||this.type===O.logicalAND,o=this.value
this.next()
-var h=this.start,p=this.startLoc,c=this.parseExprOp(this.parseMaybeUnary(null,!1),h,p,n,r),l=this.buildBinary(e,s,t,c,o,a)
-return this.parseExprOp(l,e,s,i,r)}return t},tt.buildBinary=function(t,e,s,i,r,n){var a=this.startNodeAt(t,e)
-return a.left=s,a.operator=r,a.right=i,this.finishNode(a,n?"LogicalExpression":"BinaryExpression")},tt.parseMaybeUnary=function(t,e){var s,i=this,r=this.start,n=this.startLoc
-if(this.inAsync&&this.isContextual("await"))s=this.parseAwait(t),e=!0
-else if(this.type.prefix){var a=this.startNode(),o=this.type===j.incDec
+var h=this.start,p=this.startLoc,c=this.parseExprOp(this.parseMaybeUnary(null,!1),h,p,n,r),u=this.buildBinary(e,s,t,c,o,a)
+return this.parseExprOp(u,e,s,i,r)}return t},st.buildBinary=function(t,e,s,i,r,n){var a=this.startNodeAt(t,e)
+return a.left=s,a.operator=r,a.right=i,this.finishNode(a,n?"LogicalExpression":"BinaryExpression")},st.parseMaybeUnary=function(t,e){var s,i=this,r=this.start,n=this.startLoc
+if(this.inAsync&&this.isContextual("await"))s=this.parseAwait(),e=!0
+else if(this.type.prefix){var a=this.startNode(),o=this.type===O.incDec
a.operator=this.value,a.prefix=!0,this.next(),a.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),o?this.checkLVal(a.argument):this.strict&&"delete"===a.operator&&"Identifier"===a.argument.type?this.raiseRecoverable(a.start,"Deleting local variable in strict mode"):e=!0,s=this.finishNode(a,o?"UpdateExpression":"UnaryExpression")}else{if(s=this.parseExprSubscripts(t),this.checkExpressionErrors(t))return s
for(;this.type.postfix&&!this.canInsertSemicolon();){var h=i.startNodeAt(r,n)
-h.operator=i.value,h.prefix=!1,h.argument=s,i.checkLVal(s),i.next(),s=i.finishNode(h,"UpdateExpression")}}return!e&&this.eat(j.starstar)?this.buildBinary(r,n,s,this.parseMaybeUnary(null,!1),"**",!1):s},tt.parseExprSubscripts=function(t){var e=this.start,s=this.startLoc,i=this.parseExprAtom(t),r="ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd)
+h.operator=i.value,h.prefix=!1,h.argument=s,i.checkLVal(s),i.next(),s=i.finishNode(h,"UpdateExpression")}}return!e&&this.eat(O.starstar)?this.buildBinary(r,n,s,this.parseMaybeUnary(null,!1),"**",!1):s},st.parseExprSubscripts=function(t){var e=this.start,s=this.startLoc,i=this.parseExprAtom(t),r="ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd)
if(this.checkExpressionErrors(t)||r)return i
var n=this.parseSubscripts(i,e,s)
-return t&&"MemberExpression"===n.type&&(t.parenthesizedAssign>=n.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=n.start&&(t.parenthesizedBind=-1)),n},tt.parseSubscripts=function(t,e,s,i){for(var r,n=this,a=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd==t.end&&!this.canInsertSemicolon();;)if((r=n.eat(j.bracketL))||n.eat(j.dot)){var o=n.startNodeAt(e,s)
-o.object=t,o.property=r?n.parseExpression():n.parseIdent(!0),o.computed=!!r,r&&n.expect(j.bracketR),t=n.finishNode(o,"MemberExpression")}else if(!i&&n.eat(j.parenL)){var h=new $,p=n.yieldPos,c=n.awaitPos
-n.yieldPos=0,n.awaitPos=0
-var l=n.parseExprList(j.parenR,n.options.ecmaVersion>=8,!1,h)
-if(a&&!n.canInsertSemicolon()&&n.eat(j.arrow))return n.checkPatternErrors(h,!1),n.checkYieldAwaitInDefaultParams(),n.yieldPos=p,n.awaitPos=c,n.parseArrowExpression(n.startNodeAt(e,s),l,!0)
-n.checkExpressionErrors(h,!0),n.yieldPos=p||n.yieldPos,n.awaitPos=c||n.awaitPos
-var u=n.startNodeAt(e,s)
-u.callee=t,u.arguments=l,t=n.finishNode(u,"CallExpression")}else{if(n.type!==j.backQuote)return t
-var d=n.startNodeAt(e,s)
-d.tag=t,d.quasi=n.parseTemplate(),t=n.finishNode(d,"TaggedTemplateExpression")}},tt.parseExprAtom=function(t){var e,s=this.potentialArrowAt==this.start
-switch(this.type){case j._super:this.inFunction||this.raise(this.start,"'super' outside of function or class")
-case j._this:var i=this.type===j._this?"ThisExpression":"Super"
-return e=this.startNode(),this.next(),this.finishNode(e,i)
-case j.name:var r=this.start,n=this.startLoc,a=this.parseIdent(this.type!==j.name)
-if(this.options.ecmaVersion>=8&&"async"===a.name&&!this.canInsertSemicolon()&&this.eat(j._function))return this.parseFunction(this.startNodeAt(r,n),!1,!1,!0)
-if(s&&!this.canInsertSemicolon()){if(this.eat(j.arrow))return this.parseArrowExpression(this.startNodeAt(r,n),[a],!1)
-if(this.options.ecmaVersion>=8&&"async"===a.name&&this.type===j.name)return a=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(j.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,n),[a],!0)}return a
-case j.regexp:var o=this.value
-return e=this.parseLiteral(o.value),e.regex={pattern:o.pattern,flags:o.flags},e
-case j.num:case j.string:return this.parseLiteral(this.value)
-case j._null:case j._true:case j._false:return e=this.startNode(),e.value=this.type===j._null?null:this.type===j._true,e.raw=this.type.keyword,this.next(),this.finishNode(e,"Literal")
-case j.parenL:var h=this.start,p=this.parseParenAndDistinguishExpression(s)
-return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(p)&&(t.parenthesizedAssign=h),t.parenthesizedBind<0&&(t.parenthesizedBind=h)),p
-case j.bracketL:return e=this.startNode(),this.next(),e.elements=this.parseExprList(j.bracketR,!0,!0,t),this.finishNode(e,"ArrayExpression")
-case j.braceL:return this.parseObj(!1,t)
-case j._function:return e=this.startNode(),this.next(),this.parseFunction(e,!1)
-case j._class:return this.parseClass(this.startNode(),!1)
-case j._new:return this.parseNew()
-case j.backQuote:return this.parseTemplate()
-default:this.unexpected()}},tt.parseLiteral=function(t){var e=this.startNode()
-return e.value=t,e.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(e,"Literal")},tt.parseParenExpression=function(){this.expect(j.parenL)
+return t&&"MemberExpression"===n.type&&(t.parenthesizedAssign>=n.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=n.start&&(t.parenthesizedBind=-1)),n},st.parseSubscripts=function(t,e,s,i){for(var r=this,n=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd==t.end&&!this.canInsertSemicolon(),a=void 0;;)if((a=r.eat(O.bracketL))||r.eat(O.dot)){var o=r.startNodeAt(e,s)
+o.object=t,o.property=a?r.parseExpression():r.parseIdent(!0),o.computed=!!a,a&&r.expect(O.bracketR),t=r.finishNode(o,"MemberExpression")}else if(!i&&r.eat(O.parenL)){var h=new f,p=r.yieldPos,c=r.awaitPos
+r.yieldPos=0,r.awaitPos=0
+var u=r.parseExprList(O.parenR,r.options.ecmaVersion>=8,!1,h)
+if(n&&!r.canInsertSemicolon()&&r.eat(O.arrow))return r.checkPatternErrors(h,!1),r.checkYieldAwaitInDefaultParams(),r.yieldPos=p,r.awaitPos=c,r.parseArrowExpression(r.startNodeAt(e,s),u,!0)
+r.checkExpressionErrors(h,!0),r.yieldPos=p||r.yieldPos,r.awaitPos=c||r.awaitPos
+var l=r.startNodeAt(e,s)
+l.callee=t,l.arguments=u,t=r.finishNode(l,"CallExpression")}else{if(r.type!==O.backQuote)return t
+var d=r.startNodeAt(e,s)
+d.tag=t,d.quasi=r.parseTemplate({isTagged:!0}),t=r.finishNode(d,"TaggedTemplateExpression")}},st.parseExprAtom=function(t){var e,s=this.potentialArrowAt==this.start
+switch(this.type){case O._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),e=this.startNode(),this.next(),this.type!==O.dot&&this.type!==O.bracketL&&this.type!==O.parenL&&this.unexpected(),this.finishNode(e,"Super")
+case O._this:return e=this.startNode(),this.next(),this.finishNode(e,"ThisExpression")
+case O.name:var i=this.start,r=this.startLoc,n=this.parseIdent(this.type!==O.name)
+if(this.options.ecmaVersion>=8&&"async"===n.name&&!this.canInsertSemicolon()&&this.eat(O._function))return this.parseFunction(this.startNodeAt(i,r),!1,!1,!0)
+if(s&&!this.canInsertSemicolon()){if(this.eat(O.arrow))return this.parseArrowExpression(this.startNodeAt(i,r),[n],!1)
+if(this.options.ecmaVersion>=8&&"async"===n.name&&this.type===O.name)return n=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(O.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,r),[n],!0)}return n
+case O.regexp:var a=this.value
+return e=this.parseLiteral(a.value),e.regex={pattern:a.pattern,flags:a.flags},e
+case O.num:case O.string:return this.parseLiteral(this.value)
+case O._null:case O._true:case O._false:return e=this.startNode(),e.value=this.type===O._null?null:this.type===O._true,e.raw=this.type.keyword,this.next(),this.finishNode(e,"Literal")
+case O.parenL:var o=this.start,h=this.parseParenAndDistinguishExpression(s)
+return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(h)&&(t.parenthesizedAssign=o),t.parenthesizedBind<0&&(t.parenthesizedBind=o)),h
+case O.bracketL:return e=this.startNode(),this.next(),e.elements=this.parseExprList(O.bracketR,!0,!0,t),this.finishNode(e,"ArrayExpression")
+case O.braceL:return this.parseObj(!1,t)
+case O._function:return e=this.startNode(),this.next(),this.parseFunction(e,!1)
+case O._class:return this.parseClass(this.startNode(),!1)
+case O._new:return this.parseNew()
+case O.backQuote:return this.parseTemplate()
+default:this.unexpected()}},st.parseLiteral=function(t){var e=this.startNode()
+return e.value=t,e.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(e,"Literal")},st.parseParenExpression=function(){this.expect(O.parenL)
var t=this.parseExpression()
-return this.expect(j.parenR),t},tt.parseParenAndDistinguishExpression=function(t){var e,s=this,i=this.start,r=this.startLoc,n=this.options.ecmaVersion>=8
+return this.expect(O.parenR),t},st.parseParenAndDistinguishExpression=function(t){var e,s=this,i=this.start,r=this.startLoc,n=this.options.ecmaVersion>=8
if(this.options.ecmaVersion>=6){this.next()
-var a,o,h=this.start,p=this.startLoc,c=[],l=!0,u=!1,d=new $,f=this.yieldPos,m=this.awaitPos
-for(this.yieldPos=0,this.awaitPos=0;this.type!==j.parenR;){if(l?l=!1:s.expect(j.comma),n&&s.afterTrailingComma(j.parenR,!0)){u=!0
-break}if(s.type===j.ellipsis){a=s.start,c.push(s.parseParenItem(s.parseRest())),s.type===j.comma&&s.raise(s.start,"Comma is not permitted after the rest element")
-break}s.type!==j.parenL||o||(o=s.start),c.push(s.parseMaybeAssign(!1,d,s.parseParenItem))}var x=this.start,y=this.startLoc
-if(this.expect(j.parenR),t&&!this.canInsertSemicolon()&&this.eat(j.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),o&&this.unexpected(o),this.yieldPos=f,this.awaitPos=m,this.parseParenArrowList(i,r,c)
-c.length&&!u||this.unexpected(this.lastTokStart),a&&this.unexpected(a),this.checkExpressionErrors(d,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=m||this.awaitPos,c.length>1?(e=this.startNodeAt(h,p),e.expressions=c,this.finishNodeAt(e,"SequenceExpression",x,y)):e=c[0]}else e=this.parseParenExpression()
-if(this.options.preserveParens){var v=this.startNodeAt(i,r)
-return v.expression=e,this.finishNode(v,"ParenthesizedExpression")}return e},tt.parseParenItem=function(t){return t},tt.parseParenArrowList=function(t,e,s){return this.parseArrowExpression(this.startNodeAt(t,e),s)}
-var et=[]
-tt.parseNew=function(){var t=this.startNode(),e=this.parseIdent(!0)
-if(this.options.ecmaVersion>=6&&this.eat(j.dot))return t.meta=e,t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(t.start,"new.target can only be used in functions"),this.finishNode(t,"MetaProperty")
+var a,o,h=this.start,p=this.startLoc,c=[],u=!0,l=!1,d=new f,m=this.yieldPos,x=this.awaitPos
+for(this.yieldPos=0,this.awaitPos=0;this.type!==O.parenR;){if(u?u=!1:s.expect(O.comma),n&&s.afterTrailingComma(O.parenR,!0)){l=!0
+break}if(s.type===O.ellipsis){a=s.start,c.push(s.parseParenItem(s.parseRestBinding())),s.type===O.comma&&s.raise(s.start,"Comma is not permitted after the rest element")
+break}s.type!==O.parenL||o||(o=s.start),c.push(s.parseMaybeAssign(!1,d,s.parseParenItem))}var y=this.start,v=this.startLoc
+if(this.expect(O.parenR),t&&!this.canInsertSemicolon()&&this.eat(O.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),o&&this.unexpected(o),this.yieldPos=m,this.awaitPos=x,this.parseParenArrowList(i,r,c)
+c.length&&!l||this.unexpected(this.lastTokStart),a&&this.unexpected(a),this.checkExpressionErrors(d,!0),this.yieldPos=m||this.yieldPos,this.awaitPos=x||this.awaitPos,c.length>1?(e=this.startNodeAt(h,p),e.expressions=c,this.finishNodeAt(e,"SequenceExpression",y,v)):e=c[0]}else e=this.parseParenExpression()
+if(this.options.preserveParens){var g=this.startNodeAt(i,r)
+return g.expression=e,this.finishNode(g,"ParenthesizedExpression")}return e},st.parseParenItem=function(t){return t},st.parseParenArrowList=function(t,e,s){return this.parseArrowExpression(this.startNodeAt(t,e),s)}
+var it=[]
+st.parseNew=function(){var t=this.startNode(),e=this.parseIdent(!0)
+if(this.options.ecmaVersion>=6&&this.eat(O.dot))return t.meta=e,t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(t.start,"new.target can only be used in functions"),this.finishNode(t,"MetaProperty")
var s=this.start,i=this.startLoc
-return t.callee=this.parseSubscripts(this.parseExprAtom(),s,i,!0),this.eat(j.parenL)?t.arguments=this.parseExprList(j.parenR,this.options.ecmaVersion>=8,!1):t.arguments=et,this.finishNode(t,"NewExpression")},tt.parseTemplateElement=function(){var t=this.startNode()
-return t.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),t.tail=this.type===j.backQuote,this.finishNode(t,"TemplateElement")},tt.parseTemplate=function(){var t=this,e=this.startNode()
-this.next(),e.expressions=[]
-var s=this.parseTemplateElement()
-for(e.quasis=[s];!s.tail;)t.expect(j.dollarBraceL),e.expressions.push(t.parseExpression()),t.expect(j.braceR),e.quasis.push(s=t.parseTemplateElement())
-return this.next(),this.finishNode(e,"TemplateLiteral")},tt.parseObj=function(t,e){var s=this,i=this.startNode(),r=!0,n={}
-for(i.properties=[],this.next();!this.eat(j.braceR);){if(r)r=!1
-else if(s.expect(j.comma),s.afterTrailingComma(j.braceR))break
-var a,o,h,p,c=s.startNode()
-s.options.ecmaVersion>=6&&(c.method=!1,c.shorthand=!1,(t||e)&&(h=s.start,p=s.startLoc),t||(a=s.eat(j.star))),s.parsePropertyName(c),t||!(s.options.ecmaVersion>=8)||a||c.computed||"Identifier"!==c.key.type||"async"!==c.key.name||s.type===j.parenL||s.type===j.colon||s.canInsertSemicolon()?o=!1:(o=!0,s.parsePropertyName(c,e)),s.parsePropertyValue(c,t,a,o,h,p,e),s.checkPropClash(c,n),i.properties.push(s.finishNode(c,"Property"))}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")},tt.parsePropertyValue=function(t,e,s,i,r,n,a){if((s||i)&&this.type===j.colon&&this.unexpected(),this.eat(j.colon))t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),t.kind="init"
-else if(this.options.ecmaVersion>=6&&this.type===j.parenL)e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(s,i)
-else if(this.options.ecmaVersion>=5&&!t.computed&&"Identifier"===t.key.type&&("get"===t.key.name||"set"===t.key.name)&&this.type!=j.comma&&this.type!=j.braceR){(s||i||e)&&this.unexpected(),t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1)
+return t.callee=this.parseSubscripts(this.parseExprAtom(),s,i,!0),this.eat(O.parenL)?t.arguments=this.parseExprList(O.parenR,this.options.ecmaVersion>=8,!1):t.arguments=it,this.finishNode(t,"NewExpression")},st.parseTemplateElement=function(t){var e=t.isTagged,s=this.startNode()
+return this.type===O.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),s.value={raw:this.value,cooked:null}):s.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),s.tail=this.type===O.backQuote,this.finishNode(s,"TemplateElement")},st.parseTemplate=function(t){var e=this
+void 0===t&&(t={})
+var s=t.isTagged
+void 0===s&&(s=!1)
+var i=this.startNode()
+this.next(),i.expressions=[]
+var r=this.parseTemplateElement({isTagged:s})
+for(i.quasis=[r];!r.tail;)e.expect(O.dollarBraceL),i.expressions.push(e.parseExpression()),e.expect(O.braceR),i.quasis.push(r=e.parseTemplateElement({isTagged:s}))
+return this.next(),this.finishNode(i,"TemplateLiteral")},st.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===O.name||this.type===O.num||this.type===O.string||this.type===O.bracketL||this.type.keyword)&&!V.test(this.input.slice(this.lastTokEnd,this.start))},st.parseObj=function(t,e){var s=this,i=this.startNode(),r=!0,n={}
+for(i.properties=[],this.next();!this.eat(O.braceR);){if(r)r=!1
+else if(s.expect(O.comma),s.afterTrailingComma(O.braceR))break
+var a=s.parseProperty(t,e)
+s.checkPropClash(a,n),i.properties.push(a)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")},st.parseProperty=function(t,e){var s,i,r,n,a=this.startNode()
+return this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(t||e)&&(r=this.start,n=this.startLoc),t||(s=this.eat(O.star))),this.parsePropertyName(a),!t&&this.options.ecmaVersion>=8&&!s&&this.isAsyncProp(a)?(i=!0,this.parsePropertyName(a,e)):i=!1,this.parsePropertyValue(a,t,s,i,r,n,e),this.finishNode(a,"Property")},st.parsePropertyValue=function(t,e,s,i,r,n,a){if((s||i)&&this.type===O.colon&&this.unexpected(),this.eat(O.colon))t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),t.kind="init"
+else if(this.options.ecmaVersion>=6&&this.type===O.parenL)e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(s,i)
+else if(e||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type==O.comma||this.type==O.braceR)this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?(this.checkUnreserved(t.key),t.kind="init",e?t.value=this.parseMaybeDefault(r,n,t.key):this.type===O.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),t.value=this.parseMaybeDefault(r,n,t.key)):t.value=t.key,t.shorthand=!0):this.unexpected()
+else{(s||i)&&this.unexpected(),t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1)
var o="get"===t.kind?0:1
if(t.value.params.length!==o){var h=t.value.start
-"get"===t.kind?this.raiseRecoverable(h,"getter should have no params"):this.raiseRecoverable(h,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")}else this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?((this.keywords.test(t.key.name)||(this.strict?this.reservedWordsStrict:this.reservedWords).test(t.key.name)||this.inGenerator&&"yield"==t.key.name||this.inAsync&&"await"==t.key.name)&&this.raiseRecoverable(t.key.start,"'"+t.key.name+"' can not be used as shorthand property"),t.kind="init",e?t.value=this.parseMaybeDefault(r,n,t.key):this.type===j.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),t.value=this.parseMaybeDefault(r,n,t.key)):t.value=t.key,t.shorthand=!0):this.unexpected()},tt.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(j.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(j.bracketR),t.key
-t.computed=!1}return t.key=this.type===j.num||this.type===j.string?this.parseExprAtom():this.parseIdent(!0)},tt.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=!1,t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},tt.parseMethod=function(t,e){var s=this.startNode(),i=this.inGenerator,r=this.inAsync,n=this.yieldPos,a=this.awaitPos,o=this.inFunction
-return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=t),this.options.ecmaVersion>=8&&(s.async=!!e),this.inGenerator=s.generator,this.inAsync=s.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),this.expect(j.parenL),s.params=this.parseBindingList(j.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1),this.inGenerator=i,this.inAsync=r,this.yieldPos=n,this.awaitPos=a,this.inFunction=o,this.finishNode(s,"FunctionExpression")},tt.parseArrowExpression=function(t,e,s){var i=this.inGenerator,r=this.inAsync,n=this.yieldPos,a=this.awaitPos,o=this.inFunction
-return this.enterFunctionScope(),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!s),this.inGenerator=!1,this.inAsync=t.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0),this.inGenerator=i,this.inAsync=r,this.yieldPos=n,this.awaitPos=a,this.inFunction=o,this.finishNode(t,"ArrowFunctionExpression")},tt.parseFunctionBody=function(t,e){var s=e&&this.type!==j.braceL,i=this.strict,r=!1
+"get"===t.kind?this.raiseRecoverable(h,"getter should have no params"):this.raiseRecoverable(h,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")}},st.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(O.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(O.bracketR),t.key
+t.computed=!1}return t.key=this.type===O.num||this.type===O.string?this.parseExprAtom():this.parseIdent(!0)},st.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=!1,t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},st.parseMethod=function(t,e){var s=this.startNode(),i=this.inGenerator,r=this.inAsync,n=this.yieldPos,a=this.awaitPos,o=this.inFunction
+return this.initFunction(s),this.options.ecmaVersion>=6&&(s.generator=t),this.options.ecmaVersion>=8&&(s.async=!!e),this.inGenerator=s.generator,this.inAsync=s.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),this.expect(O.parenL),s.params=this.parseBindingList(O.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(s,!1),this.inGenerator=i,this.inAsync=r,this.yieldPos=n,this.awaitPos=a,this.inFunction=o,this.finishNode(s,"FunctionExpression")},st.parseArrowExpression=function(t,e,s){var i=this.inGenerator,r=this.inAsync,n=this.yieldPos,a=this.awaitPos,o=this.inFunction
+return this.enterFunctionScope(),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!s),this.inGenerator=!1,this.inAsync=t.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0),this.inGenerator=i,this.inAsync=r,this.yieldPos=n,this.awaitPos=a,this.inFunction=o,this.finishNode(t,"ArrowFunctionExpression")},st.parseFunctionBody=function(t,e){var s=e&&this.type!==O.braceL,i=this.strict,r=!1
if(s)t.body=this.parseMaybeAssign(),t.expression=!0,this.checkParams(t,!1)
else{var n=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params)
i&&!n||(r=this.strictDirective(this.end))&&n&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list")
var a=this.labels
-this.labels=[],r&&(this.strict=!0),this.checkParams(t,!i&&!r&&!e&&this.isSimpleParamList(t.params)),t.body=this.parseBlock(!1),t.expression=!1,this.labels=a}this.exitFunctionScope(),this.strict&&t.id&&this.checkLVal(t.id,"none"),this.strict=i},tt.isSimpleParamList=function(t){for(var e=0;e=6||-1==this.input.slice(this.start,this.end).indexOf("\\"))&&this.raiseRecoverable(this.start,"The keyword '"+this.value+"' is reserved"),this.inGenerator&&"yield"===this.value&&this.raiseRecoverable(this.start,"Can not use 'yield' as identifier inside a generator"),this.inAsync&&"await"===this.value&&this.raiseRecoverable(this.start,"Can not use 'await' as identifier inside an async function"),e.name=this.value):t&&this.type.keyword?e.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"Identifier")},tt.parseYield=function(){this.yieldPos||(this.yieldPos=this.start)
+this.labels=[],r&&(this.strict=!0),this.checkParams(t,!i&&!r&&!e&&this.isSimpleParamList(t.params)),t.body=this.parseBlock(!1),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=a}this.exitFunctionScope(),this.strict&&t.id&&this.checkLVal(t.id,"none"),this.strict=i},st.isSimpleParamList=function(t){for(var e=0,s=t;e0;)e[s]=arguments[s+1]
-for(var i=0;i=0;e--)if(t.context[e].generator)return!0
-return!1},pt.updateContext=function(t){var e,s=this.type
-s.keyword&&t==j.dot?this.exprAllowed=!1:(e=s.updateContext)?e.call(this,t):this.exprAllowed=s.beforeExpr},j.parenR.updateContext=j.braceR.updateContext=function(){if(1==this.context.length)return void(this.exprAllowed=!0)
-var t,e=this.context.pop()
-e===ht.b_stat&&(t=this.curContext())&&"function"===t.token?(this.context.pop(),this.exprAllowed=!1):this.exprAllowed=e===ht.b_tmpl||!e.isExpr},j.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?ht.b_stat:ht.b_expr),this.exprAllowed=!0},j.dollarBraceL.updateContext=function(){this.context.push(ht.b_tmpl),this.exprAllowed=!0},j.parenL.updateContext=function(t){var e=t===j._if||t===j._for||t===j._with||t===j._while
-this.context.push(e?ht.p_stat:ht.p_expr),this.exprAllowed=!0},j.incDec.updateContext=function(){},j._function.updateContext=function(t){t.beforeExpr&&t!==j.semi&&t!==j._else&&(t!==j.colon&&t!==j.braceL||this.curContext()!==ht.b_stat)&&this.context.push(ht.f_expr),this.exprAllowed=!1},j.backQuote.updateContext=function(){this.curContext()===ht.q_tmpl?this.context.pop():this.context.push(ht.q_tmpl),this.exprAllowed=!1},j.star.updateContext=function(t){t==j._function&&(this.curContext()===ht.f_expr?this.context[this.context.length-1]=ht.f_expr_gen:this.context.push(ht.f_gen)),this.exprAllowed=!0},j.name.updateContext=function(t){var e=!1
+throw i.pos=t,i.loc=s,i.raisedAt=this.pos,i},rt.raiseRecoverable=rt.raise,rt.curPosition=function(){if(this.options.locations)return new z(this.curLine,this.pos-this.lineStart)}
+var nt=$.prototype,at=Object.assign||function(t){for(var e=[],s=arguments.length-1;s-- >0;)e[s]=arguments[s+1]
+for(var i=0,r=e;i=1;e--){var s=t.context[e]
+if("function"===s.token)return s.generator}return!1},ut.updateContext=function(t){var e,s=this.type
+s.keyword&&t==O.dot?this.exprAllowed=!1:(e=s.updateContext)?e.call(this,t):this.exprAllowed=s.beforeExpr},O.parenR.updateContext=O.braceR.updateContext=function(){if(1==this.context.length)return void(this.exprAllowed=!0)
+var t=this.context.pop()
+t===ct.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr},O.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?ct.b_stat:ct.b_expr),this.exprAllowed=!0},O.dollarBraceL.updateContext=function(){this.context.push(ct.b_tmpl),this.exprAllowed=!0},O.parenL.updateContext=function(t){var e=t===O._if||t===O._for||t===O._with||t===O._while
+this.context.push(e?ct.p_stat:ct.p_expr),this.exprAllowed=!0},O.incDec.updateContext=function(){},O._function.updateContext=O._class.updateContext=function(t){t.beforeExpr&&t!==O.semi&&t!==O._else&&(t!==O.colon&&t!==O.braceL||this.curContext()!==ct.b_stat)?this.context.push(ct.f_expr):this.context.push(ct.f_stat),this.exprAllowed=!1},O.backQuote.updateContext=function(){this.curContext()===ct.q_tmpl?this.context.pop():this.context.push(ct.q_tmpl),this.exprAllowed=!1},O.star.updateContext=function(t){if(t==O._function){var e=this.context.length-1
+this.context[e]===ct.f_expr?this.context[e]=ct.f_expr_gen:this.context[e]=ct.f_gen}this.exprAllowed=!0},O.name.updateContext=function(t){var e=!1
this.options.ecmaVersion>=6&&("of"==this.value&&!this.exprAllowed||"yield"==this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e}
-var ct=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new X(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},lt=W.prototype,ut="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages)
-lt.next=function(){this.options.onToken&&this.options.onToken(new ct(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},lt.getToken=function(){return this.next(),new ct(this)},"undefined"!=typeof Symbol&&(lt[Symbol.iterator]=function(){var t=this
+var lt=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new J(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},dt=$.prototype,ft="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages)
+dt.next=function(){this.options.onToken&&this.options.onToken(new lt(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},dt.getToken=function(){return this.next(),new lt(this)},"undefined"!=typeof Symbol&&(dt[Symbol.iterator]=function(){var t=this
return{next:function(){var e=t.getToken()
-return{done:e.type===j.eof,value:e}}}}),lt.curContext=function(){return this.context[this.context.length-1]},lt.nextToken=function(){var t=this.curContext()
-return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(j.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},lt.readToken=function(t){return s(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},lt.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos)
-return t<=55295||t>=57344?t:(t<<10)+this.input.charCodeAt(this.pos+1)-56613888},lt.skipBlockComment=function(){var t=this,e=this.options.onComment&&this.curPosition(),s=this.pos,i=this.input.indexOf("*/",this.pos+=2)
-if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations){R.lastIndex=s
-for(var r;(r=R.exec(this.input))&&r.index=this.input.length?this.finishToken(O.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},dt.readToken=function(t){return r(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},dt.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos)
+return t<=55295||t>=57344?t:(t<<10)+this.input.charCodeAt(this.pos+1)-56613888},dt.skipBlockComment=function(){var t=this,e=this.options.onComment&&this.curPosition(),s=this.pos,i=this.input.indexOf("*/",this.pos+=2)
+if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations){F.lastIndex=s
+for(var r;(r=F.exec(this.input))&&r.index8&&e<14||e>=5760&&O.test(String.fromCharCode(e))))break t;++t.pos}}},lt.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition())
+default:if(!(e>8&&e<14||e>=5760&&D.test(String.fromCharCode(e))))break t;++t.pos}}},dt.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition())
var s=this.type
-this.type=t,this.value=e,this.updateContext(s)},lt.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1)
+this.type=t,this.value=e,this.updateContext(s)},dt.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1)
if(t>=48&&t<=57)return this.readNumber(!0)
var e=this.input.charCodeAt(this.pos+2)
-return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(j.ellipsis)):(++this.pos,this.finishToken(j.dot))},lt.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1)
-return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(j.assign,2):this.finishOp(j.slash,1)},lt.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),s=1,i=42===t?j.star:j.modulo
-return this.options.ecmaVersion>=7&&42===e&&(++s,i=j.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(j.assign,s+1):this.finishOp(i,s)},lt.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1)
-return e===t?this.finishOp(124===t?j.logicalOR:j.logicalAND,2):61===e?this.finishOp(j.assign,2):this.finishOp(124===t?j.bitwiseOR:j.bitwiseAND,1)},lt.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(j.assign,2):this.finishOp(j.bitwiseXOR,1)},lt.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1)
-return e===t?45==e&&62==this.input.charCodeAt(this.pos+2)&&I.test(this.input.slice(this.lastTokEnd,this.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(j.incDec,2):61===e?this.finishOp(j.assign,2):this.finishOp(j.plusMin,1)},lt.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),s=1
-return e===t?(s=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+s)?this.finishOp(j.assign,s+1):this.finishOp(j.bitShift,s)):33==e&&60==t&&45==this.input.charCodeAt(this.pos+2)&&45==this.input.charCodeAt(this.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===e&&(s=2),this.finishOp(j.relational,s))},lt.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1)
-return 61===e?this.finishOp(j.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(j.arrow)):this.finishOp(61===t?j.eq:j.prefix,1)},lt.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot()
-case 40:return++this.pos,this.finishToken(j.parenL)
-case 41:return++this.pos,this.finishToken(j.parenR)
-case 59:return++this.pos,this.finishToken(j.semi)
-case 44:return++this.pos,this.finishToken(j.comma)
-case 91:return++this.pos,this.finishToken(j.bracketL)
-case 93:return++this.pos,this.finishToken(j.bracketR)
-case 123:return++this.pos,this.finishToken(j.braceL)
-case 125:return++this.pos,this.finishToken(j.braceR)
-case 58:return++this.pos,this.finishToken(j.colon)
-case 63:return++this.pos,this.finishToken(j.question)
+return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(O.ellipsis)):(++this.pos,this.finishToken(O.dot))},dt.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1)
+return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(O.assign,2):this.finishOp(O.slash,1)},dt.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),s=1,i=42===t?O.star:O.modulo
+return this.options.ecmaVersion>=7&&42==t&&42===e&&(++s,i=O.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(O.assign,s+1):this.finishOp(i,s)},dt.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1)
+return e===t?this.finishOp(124===t?O.logicalOR:O.logicalAND,2):61===e?this.finishOp(O.assign,2):this.finishOp(124===t?O.bitwiseOR:O.bitwiseAND,1)},dt.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(O.assign,2):this.finishOp(O.bitwiseXOR,1)},dt.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1)
+return e===t?45!=e||this.inModule||62!=this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!V.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(O.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(O.assign,2):this.finishOp(O.plusMin,1)},dt.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),s=1
+return e===t?(s=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+s)?this.finishOp(O.assign,s+1):this.finishOp(O.bitShift,s)):33!=e||60!=t||this.inModule||45!=this.input.charCodeAt(this.pos+2)||45!=this.input.charCodeAt(this.pos+3)?(61===e&&(s=2),this.finishOp(O.relational,s)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},dt.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1)
+return 61===e?this.finishOp(O.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(O.arrow)):this.finishOp(61===t?O.eq:O.prefix,1)},dt.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot()
+case 40:return++this.pos,this.finishToken(O.parenL)
+case 41:return++this.pos,this.finishToken(O.parenR)
+case 59:return++this.pos,this.finishToken(O.semi)
+case 44:return++this.pos,this.finishToken(O.comma)
+case 91:return++this.pos,this.finishToken(O.bracketL)
+case 93:return++this.pos,this.finishToken(O.bracketR)
+case 123:return++this.pos,this.finishToken(O.braceL)
+case 125:return++this.pos,this.finishToken(O.braceR)
+case 58:return++this.pos,this.finishToken(O.colon)
+case 63:return++this.pos,this.finishToken(O.question)
case 96:if(this.options.ecmaVersion<6)break
-return++this.pos,this.finishToken(j.backQuote)
+return++this.pos,this.finishToken(O.backQuote)
case 48:var e=this.input.charCodeAt(this.pos+1)
if(120===e||88===e)return this.readRadixNumber(16)
if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8)
@@ -461,46 +465,54 @@ case 94:return this.readToken_caret()
case 43:case 45:return this.readToken_plus_min(t)
case 60:case 62:return this.readToken_lt_gt(t)
case 61:case 33:return this.readToken_eq_excl(t)
-case 126:return this.finishOp(j.prefix,1)}this.raise(this.pos,"Unexpected character '"+f(t)+"'")},lt.finishOp=function(t,e){var s=this.input.slice(this.pos,this.pos+e)
+case 126:return this.finishOp(O.prefix,1)}this.raise(this.pos,"Unexpected character '"+y(t)+"'")},dt.finishOp=function(t,e){var s=this.input.slice(this.pos,this.pos+e)
return this.pos+=e,this.finishToken(t,s)}
-var dt=!!d("","u")
-lt.readRegexp=function(){for(var t,e,s=this,i=this.pos;;){s.pos>=s.input.length&&s.raise(i,"Unterminated regular expression")
+var mt=!!x("","u")
+dt.readRegexp=function(){for(var t,e,s=this,i=this.pos;;){s.pos>=s.input.length&&s.raise(i,"Unterminated regular expression")
var r=s.input.charAt(s.pos)
-if(I.test(r)&&s.raise(i,"Unterminated regular expression"),t)t=!1
+if(V.test(r)&&s.raise(i,"Unterminated regular expression"),t)t=!1
else{if("["===r)e=!0
else if("]"===r&&e)e=!1
else if("/"===r&&!e)break
t="\\"===r}++s.pos}var n=this.input.slice(i,this.pos);++this.pos
var a=this.readWord1(),o=n,h=""
if(a){var p=/^[gim]*$/
-this.options.ecmaVersion>=6&&(p=/^[gimuy]*$/),p.test(a)||this.raise(i,"Invalid regular expression flag"),a.indexOf("u")>=0&&(dt?h="u":(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(t,e,r){return e=Number("0x"+e),e>1114111&&s.raise(i+r+3,"Code point out of bounds"),"x"}),o=o.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),h=h.replace("u","")))}var c=null
-return ut||(d(o,h,i,this),c=d(n,a)),this.finishToken(j.regexp,{pattern:n,flags:a,value:c})},lt.readInt=function(t,e){for(var s=this,i=this.pos,r=0,n=0,a=null==e?1/0:e;n=97?h-97+10:h>=65?h-65+10:h>=48&&h<=57?h-48:1/0)>=t)break;++s.pos,r=r*t+o}return this.pos===i||null!=e&&this.pos-i!==e?null:r},lt.readRadixNumber=function(t){this.pos+=2
+this.options.ecmaVersion>=6&&(p=/^[gimuy]*$/),p.test(a)||this.raise(i,"Invalid regular expression flag"),a.indexOf("u")>=0&&(mt?h="u":(o=o.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(t,e,r){return e=Number("0x"+e),e>1114111&&s.raise(i+r+3,"Code point out of bounds"),"x"}),o=o.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),h=h.replace("u","")))}var c=null
+return ft||(x(o,h,i,this),c=x(n,a)),this.finishToken(O.regexp,{pattern:n,flags:a,value:c})},dt.readInt=function(t,e){for(var s=this,i=this.pos,r=0,n=0,a=null==e?1/0:e;n=97?o-97+10:o>=65?o-65+10:o>=48&&o<=57?o-48:1/0)>=t)break;++s.pos,r=r*t+h}return this.pos===i||null!=e&&this.pos-i!==e?null:r},dt.readRadixNumber=function(t){this.pos+=2
var e=this.readInt(t)
-return null==e&&this.raise(this.start+2,"Expected number in radix "+t),s(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(j.num,e)},lt.readNumber=function(t){var e=this.pos,i=!1,r=48===this.input.charCodeAt(this.pos)
-t||null!==this.readInt(10)||this.raise(e,"Invalid number"),r&&this.pos==e+1&&(r=!1)
+return null==e&&this.raise(this.start+2,"Expected number in radix "+t),r(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(O.num,e)},dt.readNumber=function(t){var e=this.pos,s=!1,i=48===this.input.charCodeAt(this.pos)
+t||null!==this.readInt(10)||this.raise(e,"Invalid number"),i&&this.pos==e+1&&(i=!1)
var n=this.input.charCodeAt(this.pos)
-46!==n||r||(++this.pos,this.readInt(10),i=!0,n=this.input.charCodeAt(this.pos)),69!==n&&101!==n||r||(n=this.input.charCodeAt(++this.pos),43!==n&&45!==n||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number"),i=!0),s(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number")
+46!==n||i||(++this.pos,this.readInt(10),s=!0,n=this.input.charCodeAt(this.pos)),69!==n&&101!==n||i||(n=this.input.charCodeAt(++this.pos),43!==n&&45!==n||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number"),s=!0),r(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number")
var a,o=this.input.slice(e,this.pos)
-return i?a=parseFloat(o):r&&1!==o.length?/[89]/.test(o)||this.strict?this.raise(e,"Invalid number"):a=parseInt(o,8):a=parseInt(o,10),this.finishToken(j.num,a)},lt.readCodePoint=function(){var t,e=this.input.charCodeAt(this.pos)
+return s?a=parseFloat(o):i&&1!==o.length?this.strict?this.raise(e,"Invalid number"):a=/[89]/.test(o)?parseInt(o,10):parseInt(o,8):a=parseInt(o,10),this.finishToken(O.num,a)},dt.readCodePoint=function(){var t,e=this.input.charCodeAt(this.pos)
if(123===e){this.options.ecmaVersion<6&&this.unexpected()
var s=++this.pos
-t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.raise(s,"Code point out of bounds")}else t=this.readHexChar(4)
-return t},lt.readString=function(t){for(var e=this,s="",i=++this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated string constant")
+t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(s,"Code point out of bounds")}else t=this.readHexChar(4)
+return t},dt.readString=function(t){for(var e=this,s="",i=++this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated string constant")
var r=e.input.charCodeAt(e.pos)
if(r===t)break
-92===r?(s+=e.input.slice(i,e.pos),s+=e.readEscapedChar(!1),i=e.pos):(a(r)&&e.raise(e.start,"Unterminated string constant"),++e.pos)}return s+=this.input.slice(i,this.pos++),this.finishToken(j.string,s)},lt.readTmplToken=function(){for(var t=this,e="",s=this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated template")
+92===r?(s+=e.input.slice(i,e.pos),s+=e.readEscapedChar(!1),i=e.pos):(h(r)&&e.raise(e.start,"Unterminated string constant"),++e.pos)}return s+=this.input.slice(i,this.pos++),this.finishToken(O.string,s)}
+var xt={}
+dt.tryReadTemplateToken=function(){this.inTemplateElement=!0
+try{this.readTmplToken()}catch(t){if(t!==xt)throw t
+this.readInvalidTemplateToken()}this.inTemplateElement=!1},dt.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw xt
+this.raise(t,e)},dt.readTmplToken=function(){for(var t=this,e="",s=this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated template")
var i=t.input.charCodeAt(t.pos)
-if(96===i||36===i&&123===t.input.charCodeAt(t.pos+1))return t.pos===t.start&&t.type===j.template?36===i?(t.pos+=2,t.finishToken(j.dollarBraceL)):(++t.pos,t.finishToken(j.backQuote)):(e+=t.input.slice(s,t.pos),t.finishToken(j.template,e))
+if(96===i||36===i&&123===t.input.charCodeAt(t.pos+1))return t.pos!==t.start||t.type!==O.template&&t.type!==O.invalidTemplate?(e+=t.input.slice(s,t.pos),t.finishToken(O.template,e)):36===i?(t.pos+=2,t.finishToken(O.dollarBraceL)):(++t.pos,t.finishToken(O.backQuote))
if(92===i)e+=t.input.slice(s,t.pos),e+=t.readEscapedChar(!0),s=t.pos
-else if(a(i)){switch(e+=t.input.slice(s,t.pos),++t.pos,i){case 13:10===t.input.charCodeAt(t.pos)&&++t.pos
+else if(h(i)){switch(e+=t.input.slice(s,t.pos),++t.pos,i){case 13:10===t.input.charCodeAt(t.pos)&&++t.pos
case 10:e+="\n"
break
-default:e+=String.fromCharCode(i)}t.options.locations&&(++t.curLine,t.lineStart=t.pos),s=t.pos}else++t.pos}},lt.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos)
+default:e+=String.fromCharCode(i)}t.options.locations&&(++t.curLine,t.lineStart=t.pos),s=t.pos}else++t.pos}},dt.readInvalidTemplateToken=function(){for(var t=this;this.pos=48&&e<=55){var s=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(s,8)
-return i>255&&(s=s.slice(0,-1),i=parseInt(s,8)),"0"!==s&&(this.strict||t)&&this.raise(this.pos-2,"Octal literal in strict mode"),this.pos+=s.length-1,String.fromCharCode(i)}return String.fromCharCode(e)}},lt.readHexChar=function(t){var e=this.pos,s=this.readInt(16,t)
-return null===s&&this.raise(e,"Bad character escape sequence"),s},lt.readWord1=function(){var t=this
+return i>255&&(s=s.slice(0,-1),i=parseInt(s,8)),"0"!==s&&(this.strict||t)&&this.invalidStringToken(this.pos-2,"Octal literal in strict mode"),this.pos+=s.length-1,String.fromCharCode(i)}return String.fromCharCode(e)}},dt.readHexChar=function(t){var e=this.pos,s=this.readInt(16,t)
+return null===s&&this.invalidStringToken(e,"Bad character escape sequence"),s},dt.readWord1=function(){var t=this
this.containsEsc=!1
-for(var e="",r=!0,n=this.pos,a=this.options.ecmaVersion>=6;this.pos=6;this.pos {
expect(rendered.childNodes[3].nodeType).toEqual(8) // Comment
})
+ it('keeps non-breaking spaces as such', () => {
+ const { rendered } = render(
+ Contains a non-breaking space (html named entity)
\
+ Contains a non-breaking space (html numbered entity)
\
+ Contains a\u00a0non-breaking space (utf sequence)
\
+ Contains a non-breaking space (hard coded, using alt+space)
\
+ Contains a narrow non-breaking space (html numbered entity)
\
+ Contains a\u202Fnarrow non-breaking space (utf sequence)
\
+ This is a test with regular spaces only
\
+ '}
+ />
+ )
+
+ // P
+ // Comment Whitespace Comment
+ // P
+ // Comment Whitespace Comment
+ // P
+ // .
+ // Entites are converted to utf sequences
+ // The first four paragraphs should contain \u00A0 (utf non-breaking space)
+ // The two next paragraphs should contain \u202F (utf narrow non-breaking space)
+ // The last paragraph should *not* contain any non breaking spaces
+ expect(rendered.childNodes).toHaveLength(25)
+
+ expect(rendered.childNodes[0].nodeType).toEqual(1) // Element
+ expect(rendered.childNodes[0].nodeName).toEqual('P')
+ expect(rendered.childNodes[0].textContent).toMatch(/[\u00A0]/)
+
+ for (let i = 0; i < 3; i += 1) {
+ expect(rendered.childNodes[(i * 4) + 1].nodeType).toEqual(8) // Comment
+ expect(rendered.childNodes[(i * 4) + 2].nodeType).toEqual(3) // Text
+ expect(rendered.childNodes[(i * 4) + 3].nodeType).toEqual(8) // Comment
+
+ expect(rendered.childNodes[(i * 4) + 4].nodeType).toEqual(1) // Element
+ expect(rendered.childNodes[(i * 4) + 4].nodeName).toEqual('P')
+ expect(rendered.childNodes[(i * 4) + 4].textContent).toMatch(/[\u00A0]/)
+ }
+
+ for (let i = 3; i < 4; i += 1) {
+ expect(rendered.childNodes[(i * 4) + 1].nodeType).toEqual(8) // Comment
+ expect(rendered.childNodes[(i * 4) + 2].nodeType).toEqual(3) // Text
+ expect(rendered.childNodes[(i * 4) + 3].nodeType).toEqual(8) // Comment
+
+ expect(rendered.childNodes[(i * 4) + 4].nodeType).toEqual(1) // Element
+ expect(rendered.childNodes[(i * 4) + 4].nodeName).toEqual('P')
+ expect(rendered.childNodes[(i * 4) + 4].textContent).toMatch(/[\u202F]/)
+ }
+
+ expect(rendered.childNodes[21].nodeType).toEqual(8) // Comment
+ expect(rendered.childNodes[22].nodeType).toEqual(3) // Text
+ expect(rendered.childNodes[23].nodeType).toEqual(8) // Comment
+
+ expect(rendered.childNodes[24].nodeType).toEqual(1) // Element
+ expect(rendered.childNodes[24].nodeName).toEqual('P')
+ expect(rendered.childNodes[24].textContent).not.toMatch(/[\u00A0|\u202F]/)
+ })
+
it('handles style attributes gracefully', () => {
const { rendered } = render(