!function(e){"use strict";function t(e){return"0123456789".indexOf(e)>=0}function r(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function n(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e}function i(e){return e>="0"&&"9">=e}function a(e){return"	"===e||"\x0B"===e||"\f"===e||" "===e||" "===e||"\ufeff"===e}function o(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function u(e){return"$"===e||"_"===e||n(e)}function s(e){return u(e)||i(e)}function p(e){switch(e){case"break":case"case":case"catch":case"continue":case"debugger":case"default":case"delete":case"do":case"else":case"finally":case"for":case"function":case"if":case"in":case"instanceof":case"new":case"return":case"switch":case"this":case"throw":case"try":case"typeof":case"var":case"void":case"while":case"with":case"class":case"const":case"enum":case"export":case"extends":case"import":case"super":case"implements":case"interface":case"let":case"package":case"private":case"protected":case"public":case"static":case"yield":return!0}return!1}function f(){var e="\x00",t=be;return we>t&&(e=ge[t],be+=1),e}function c(){var e,t,r;for(t=!1,r=!1;we>be;)if(e=ge[be],r)f(),o(e)&&(r=!1);else if(t)f(),"*"===e&&(e=ge[be],"/"===e&&(f(),t=!1));else if("/"===e)if(e=ge[be+1],"/"===e)f(),f(),r=!0;else{if("*"!==e)break;f(),f(),t=!0}else if(a(e))f();else{if(!o(e))break;f()}}function l(){var e,t;if(e=ge[be],u(e)){for(t=f();we>be&&(e=ge[be],s(e));)t+=f();return 1===t.length?{type:Ee.Identifier,value:t}:p(t)?{type:Ee.Keyword,value:t}:"null"===t?{type:Ee.NullLiteral}:"true"===t||"false"===t?{type:Ee.BooleanLiteral,value:t}:{type:Ee.Identifier,value:t}}}function y(){var e,r,n,i=ge[be];return";"===i||"{"===i||"}"===i?(f(),{type:Ee.Punctuator,value:i}):","===i||"("===i||")"===i?(f(),{type:Ee.Punctuator,value:i}):(e=ge[be+1],"."!==i||t(e)?(r=ge[be+2],n=ge[be+3],">"===i&&">"===e&&">"===r&&"="===n?(f(),f(),f(),f(),{type:Ee.Punctuator,value:">>>="}):"="===i&&"="===e&&"="===r?(f(),f(),f(),{type:Ee.Punctuator,value:"==="}):"!"===i&&"="===e&&"="===r?(f(),f(),f(),{type:Ee.Punctuator,value:"!=="}):">"===i&&">"===e&&">"===r?(f(),f(),f(),{type:Ee.Punctuator,value:">>>"}):"<"===i&&"<"===e&&"="===r?(f(),f(),f(),{type:Ee.Punctuator,value:"<<="}):">"===i&&">"===e&&"="===r?(f(),f(),f(),{type:Ee.Punctuator,value:">>="}):"="===e&&"<>=!+-*%&|^/".indexOf(i)>=0?(f(),f(),{type:Ee.Punctuator,value:i+e}):i===e&&"+-<>&|".indexOf(i)>=0&&"+-<>&|".indexOf(e)>=0?(f(),f(),{type:Ee.Punctuator,value:i+e}):"[]<>+-*%&|^!~?:=/".indexOf(i)>=0?{type:Ee.Punctuator,value:f()}:void 0):{type:Ee.Punctuator,value:f()})}function d(){var e,n;if(n=ge[be],t(n)||"."===n){if(e="","."!==n){if(e=f(),n=ge[be],"x"===n||"X"===n){for(e+=f();we>be&&(n=ge[be],r(n));)e+=f();return{type:Ee.NumericLiteral,value:parseInt(e,16)}}for(;we>be&&(n=ge[be],t(n));)e+=f()}if("."===n)for(e+=f();we>be&&(n=ge[be],t(n));)e+=f();if("e"===n||"E"===n){if(e+=f(),n=ge[be],"+"!==n&&"-"!==n&&!t(n))throw n="character "+n,be>=we&&(n="<end>"),new Error("Unexpected "+n+" after the exponent sign");for(e+=f();we>be&&(n=ge[be],t(n));)e+=f()}if("."===e)throw new Error("Expecting decimal digits after the dot sign");return{type:Ee.NumericLiteral,value:parseFloat(e)}}}function v(){var e,t,r="";if(e=ge[be],"'"===e||'"'===e){for(f();we>be;){if(t=f(),"undefined"==typeof t)throw new Error("Unterminated string");if(t===e)break;"\\"===t?(r+=t,r+=f()):r+=t}return{type:Ee.StringLiteral,value:r}}}function x(){var e,t="",r=!1;if(Ie=null,c(),e=ge[be],"/"===e){for(t=f();we>be;)if(e=f(),t+=e,r)"]"===e&&(r=!1);else{if("\\"===e&&(t+=f()),"/"===e)break;if("["===e&&(r=!0),o(e))throw new Error("Unexpected line terminator in a regular expression")}for(;we>be&&(e=ge[be],s(e));)t+=f();return t}}function m(){var e,r;if(Ie=null,c(),be>=we)return{type:Ee.EOF};if(r=y(),"undefined"!=typeof r)return r;if(e=ge[be],"'"===e||'"'===e)return v();if("."===e||t(e))return d();if(r=l(),"undefined"!=typeof r)return r;throw new Error("Unknown token from character "+f())}function h(){var e,t;return null!==Ie?Ie:(e=be,t=m(),be=e,Ie=t)}function E(e){var t;if(e.type===Ee.EOF)throw new Error("Unexpected <EOF>");throw t=e.value,t.length>10&&(t=t.substr(0,10)+"..."),new Error("Unexpected token "+t)}function S(e){var t=m();t.type===Ee.Punctuator&&t.value===e||E(t)}function g(e){var t=m();t.type===Ee.Keyword&&t.value===e||E(t)}function b(e){var t=h();return t.type===Ee.Punctuator&&t.value===e}function w(e){var t=h();return t.type===Ee.Keyword&&t.value===e}function I(){var e=h(),t=e.value;return e.type!==Ee.Punctuator?!1:"="===t||"*="===t||"/="===t||"%="===t||"+="===t||"-="===t||"<<="===t||">>="===t||">>>="===t||"&="===t||"^="===t||"|="===t}function L(){b(";")&&m()}function k(){var e,t=[];for(S("[");we>be;){if(b("]")){m();break}if(b(","))m(),t.push(e);else{if(t.push(X()),b("]")){m();break}S(",")}}return{type:Se.ArrayExpression,elements:t}}function F(){function e(e){return e===Ee.Identifier||e===Ee.StringLiteral||e===Ee.NumericLiteral}var t,r,n=[];for(S("{");we>be&&(t=m(),t.type!==Ee.Punctuator||"}"!==t.value);){if(e(t.type)?(r={},t.type===Ee.Identifier?r.key={type:Se.Identifier,name:t.value}:r.key={type:Se.Literal,value:t.value},S(":"),r.value=X(),n.push(r)):E(t),t=h(),t.type===Ee.Punctuator&&"}"===t.value){m();break}S(",")}return{type:Se.ObjectExpression,properties:n}}function B(){var e,t;return b("[")?k():b("{")?F():b("(")?(m(),t=Z(),S(")"),t.expression):w("function")?ve():w("this")?(m(),{type:Se.ThisExpression}):b("/")||b("/=")?{type:Se.Literal,value:x()}:(e=m(),e.type===Ee.Identifier?{type:Se.Identifier,name:e.value}:e.type===Ee.BooleanLiteral?{type:Se.Literal,value:"true"===e.value}:e.type===Ee.NullLiteral?{type:Se.Literal,value:null}:e.type===Ee.NumericLiteral?{type:Se.Literal,value:e.value}:e.type===Ee.StringLiteral?{type:Se.Literal,value:e.value}:void 0)}function P(){var e=[];if(S("("),!b(")"))for(;we>be&&(e.push(X()),!b(")"));)S(",");return S(")"),e}function C(){var e,t,r;for(e=B();we>be;)if(b(".")){if(m(),t=m(),t.type!==Ee.Identifier)throw new Error("Expecting an identifier after dot (.)");r={type:Se.Identifier,name:t.value},e={type:Se.MemberExpression,computed:!1,object:e,property:r}}else if(b("["))m(),r=Z(),r.type===Se.ExpressionStatement&&(r=r.expression),e={type:Se.MemberExpression,computed:!0,object:e,property:r},S("]");else{if(!b("("))break;e={type:Se.CallExpression,callee:e,arguments:P()}}return e}function O(){var e,t,r;return e=w("new"),e?(m(),t=O()):t=C(),b("(")&&(r=P()),e?("undefined"==typeof r&&(r=[]),t.type===Se.CallExpression&&(r=t.arguments,t=t.callee),{type:Se.NewExpression,callee:t,arguments:r}):"undefined"!=typeof r?{type:Se.CallExpression,callee:t,arguments:r}:t}function D(){var e=O();return(b("++")||b("--"))&&(e={type:Se.UpdateExpression,operator:m().value,argument:e,prefix:!1}),e}function U(){return b("++")||b("--")?{type:Se.UpdateExpression,operator:m().value,argument:U(),prefix:!0}:b("+")||b("-")||b("~")||b("!")?{type:Se.UnaryExpression,operator:m().value,argument:U()}:w("delete")||w("void")||w("typeof")?{type:Se.UnaryExpression,operator:m().value,argument:U()}:D()}function N(){for(var e=U();b("*")||b("/")||b("%");)e={type:Se.BinaryExpression,operator:m().value,left:e,right:U()};return e}function j(){for(var e=N();b("+")||b("-");)e={type:Se.BinaryExpression,operator:m().value,left:e,right:N()};return e}function T(){for(var e=j();b("<<")||b(">>")||b(">>>");)e={type:Se.BinaryExpression,operator:m().value,left:e,right:j()};return e}function W(){var e=T();return b("<")||b(">")||b("<=")||b(">=")?e={type:Se.BinaryExpression,operator:m().value,left:e,right:W()}:w("in")?(m(),e={type:Se.BinaryExpression,operator:"in",left:e,right:W()}):w("instanceof")&&(m(),e={type:Se.BinaryExpression,operator:"instanceof",left:e,right:W()}),e}function A(){for(var e=W();b("==")||b("!=")||b("===")||b("!==");)e={type:Se.BinaryExpression,operator:m().value,left:e,right:W()};return e}function q(){for(var e=A();b("&");)m(),e={type:Se.BinaryExpression,operator:"&",left:e,right:A()};return e}function z(){for(var e=q();b("|");)m(),e={type:Se.BinaryExpression,operator:"|",left:e,right:q()};return e}function K(){for(var e=z();b("^");)m(),e={type:Se.BinaryExpression,operator:"^",left:e,right:z()};return e}function V(){for(var e=K();b("&&");)m(),e={type:Se.LogicalExpression,operator:"&&",left:e,right:K()};return e}function M(){for(var e=V();b("||");)m(),e={type:Se.LogicalExpression,operator:"||",left:e,right:V()};return e}function R(){var e,t;return e=h(),t=M(),"undefined"==typeof t&&E(e),b("?")&&(m(),t={type:Se.ConditionalExpression,test:t},t.consequent=X(),S(":"),t.alternate=X()),t}function X(){var e=R();return I()&&(e={type:Se.AssignmentExpression,operator:m().value,left:e,right:X()}),e}function Z(){var e=X();if(b(","))for(e={type:Se.SequenceExpression,expressions:[e]};we>be&&b(",");)m(),e.expressions.push(X());return{type:Se.ExpressionStatement,expression:e}}function $(){for(var e,t=[];we>be&&!b("}")&&(e=ye(),"undefined"!=typeof e);)t.push(e);return t}function _(){var e;return S("{"),e=$(),S("}"),{type:Se.BlockStatement,body:e}}function G(){var e,t,r;if(e=m(),e.type!==Ee.Identifier)throw new Error("Expected an identifier");return t={type:Se.Identifier,name:e.value},r=null,b("=")&&(m(),r=X()),{id:t,init:r}}function H(){for(var e=[];we>be&&(e.push(G()),b(","));)m();return e}function J(){var e;return g("var"),e=H(),L(),{type:Se.VariableDeclaration,declarations:e,kind:"var"}}function Q(){var e;return g("let"),e=H(),L(),{type:Se.VariableDeclaration,declarations:e,kind:"let"}}function Y(){return S(";"),{type:Se.EmptyStatement}}function ee(){var e=Z();return L(),e}function te(){var e,t,r;return g("if"),S("("),e=Z().expression,S(")"),t=ye(),w("else")?(m(),r=ye()):r=null,{type:Se.IfStatement,test:e,consequent:t,alternate:r}}function re(){var e,t;return g("do"),e=ye(),g("while"),S("("),t=Z().expression,S(")"),L(),{type:Se.DoWhileStatement,body:e,test:t}}function ne(){var e,t;return g("while"),S("("),e=Z().expression,S(")"),t=ye(),{type:Se.WhileStatement,test:e,body:t}}function ie(){var e,t,r,n,i,a,o;return t=r=n=null,g("for"),S("("),b(";")?m():(w("var")||w("let")?(e=m().value,t={type:Se.VariableDeclaration,declarations:H(),kind:e},w("in")&&(m(),i=t,a=Z().expression,t=null)):t=Z().expression,"undefined"==typeof i&&(t.hasOwnProperty("operator")&&"in"===t.operator?(i=t.left,a=t.right,t=null):S(";"))),"undefined"==typeof i&&(b(";")||(r=Z().expression),S(";"),b(")")||(n=Z().expression)),S(")"),o=ye(),"undefined"==typeof i?{type:Se.ForStatement,init:t,test:r,update:n,body:o}:{type:Se.ForInStatement,left:i,right:a,body:o,each:!1}}function ae(){var e,t=null;return g("continue"),e=h(),e.type===Ee.Identifier&&(m(),t={type:Se.Identifier,name:e.value}),L(),{type:Se.ContinueStatement,label:t}}function oe(){var e,t=null;return g("break"),e=h(),e.type===Ee.Identifier&&(m(),t={type:Se.Identifier,name:e.value}),L(),{type:Se.BreakStatement,label:t}}function ue(){var e,t=null;return g("return"),b(";")||(e=h(),b("}")||e.type===Ee.EOF||(t=Z().expression)),L(),{type:Se.ReturnStatement,argument:t}}function se(){var e,t;return g("with"),S("("),e=Z().expression,S(")"),t=ye(),{type:Se.WithStatement,object:e,body:t}}function pe(){var e,t,r,n,i;if(g("switch"),S("("),e=Z().expression,S(")"),S("{"),b("}"))return m(),{type:Se.SwitchStatement,discriminant:e};for(t=[];we>be&&!b("}");){for(w("default")?(m(),r=null):(g("case"),r=Z().expression),S(":"),n=[];we>be&&!(b("}")||w("default")||w("case"))&&(i=ye(),"undefined"!=typeof i);)n.push(i);t.push({type:Se.SwitchCase,test:r,consequent:n})}return S("}"),{type:Se.SwitchStatement,discriminant:e,cases:t}}function fe(){var e,t=null;return g("throw"),b(";")||(e=h(),e.type!==Ee.EOF&&(t=Z().expression)),L(),{type:Se.ThrowStatement,argument:t}}function ce(){var e,t,r=[],n=null;return g("try"),e=_(),w("catch")&&(m(),S("("),b(")")||(t=Z().expression),S(")"),r.push({type:Se.CatchClause,param:t,guard:null,body:_()})),w("finally")&&(m(),n=_()),{type:Se.TryStatement,block:e,handlers:r,finalizer:n}}function le(){return g("debugger"),L(),{type:Se.DebuggerStatement}}function ye(){var e,t=h();if(t.type!==Ee.EOF){if(t.type===Ee.Punctuator)switch(t.value){case";":return Y();case"{":return _();case"(":return ee()}if(t.type===Ee.Keyword)switch(t.value){case"break":return oe();case"continue":return ae();case"debugger":return le();case"do":return re();case"for":return ie();case"if":return te();case"let":return Q();case"return":return ue();case"switch":return pe();case"throw":return fe();case"try":return ce();case"var":return J();case"while":return ne();case"with":return se()}return e=ee(),e.expression.type===Se.FunctionExpression&&null!==e.expression.id?{type:Se.FunctionDeclaration,id:e.expression.id,params:e.expression.params,body:e.expression.body}:e.expression.type===Se.Identifier&&b(":")?(m(),{type:Se.LabeledStatement,label:e.expression,body:ye()}):e}}function de(){var e,t,r=null,n=[];if(g("function"),e=m(),e.type!==Ee.Identifier&&E(e),r={type:Se.Identifier,name:e.value},S("("),!b(")"))for(;we>be&&(e=m(),e.type!==Ee.Identifier&&E(e),n.push({type:Se.Identifier,name:e.value}),!b(")"));)S(",");return S(")"),t=_(),{type:Se.FunctionDeclaration,id:r,params:n,body:t}}function ve(){var e,t,r=null,n=[];if(g("function"),b("(")||(e=m(),e.type!==Ee.Identifier&&E(e),r={type:Se.Identifier,name:e.value}),S("("),!b(")"))for(;we>be&&(e=m(),e.type!==Ee.Identifier&&E(e),n.push({type:Se.Identifier,name:e.value}),!b(")"));)S(",");return S(")"),t=_(),{type:Se.FunctionExpression,id:r,params:n,body:t}}function xe(){var e;return e=h(),e.type!==Ee.EOF?w("function")?de():ye():void 0}function me(){for(var e,t=[];we>be&&(e=xe(),"undefined"!=typeof e);)t.push(e);return t}function he(){return{type:Se.Program,body:me()}}var Ee,Se,ge,be,we,Ie;Ee={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},Se={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},"function"==typeof Object.freeze&&(Object.freeze(Ee),Object.freeze(Se)),e.parse=function(e){return ge=e,be=0,we=ge.length,Ie=null,he()},e.version="0.9.2"}("undefined"==typeof exports?esprima={}:exports);
//# sourceMappingURL=esprima.min.js.map