Index: chrome_linux/resources/inspector/ScriptFormatterWorker.js |
=================================================================== |
--- chrome_linux/resources/inspector/ScriptFormatterWorker.js (revision 221742) |
+++ chrome_linux/resources/inspector/ScriptFormatterWorker.js (working copy) |
@@ -1,5600 +1,695 @@ |
- |
- |
- |
-onmessage = function(event) { |
-if (!event.data.method) |
-return; |
- |
-self[event.data.method](event.data.params); |
-}; |
- |
-function format(params) |
-{ |
- |
-var indentString = params.indentString || " "; |
-var result = {}; |
- |
-if (params.mimeType === "text/html") { |
-var formatter = new HTMLScriptFormatter(indentString); |
-result = formatter.format(params.content); |
-} else { |
-result.mapping = { original: [0], formatted: [0] }; |
-result.content = formatScript(params.content, result.mapping, 0, 0, indentString); |
-} |
-postMessage(result); |
-} |
- |
-function getChunkCount(totalLength, chunkSize) |
-{ |
-if (totalLength <= chunkSize) |
-return 1; |
- |
-var remainder = totalLength % chunkSize; |
-var partialLength = totalLength - remainder; |
-return (partialLength / chunkSize) + (remainder ? 1 : 0); |
-} |
- |
+Object.isEmpty=function(obj) |
+{for(var i in obj) |
+return false;return true;} |
+Object.values=function(obj) |
+{var result=Object.keys(obj);var length=result.length;for(var i=0;i<length;++i) |
+result[i]=obj[result[i]];return result;} |
+String.prototype.findAll=function(string) |
+{var matches=[];var i=this.indexOf(string);while(i!==-1){matches.push(i);i=this.indexOf(string,i+string.length);} |
+return matches;} |
+String.prototype.lineEndings=function() |
+{if(!this._lineEndings){this._lineEndings=this.findAll("\n");this._lineEndings.push(this.length);} |
+return this._lineEndings;} |
+String.prototype.escapeCharacters=function(chars) |
+{var foundChar=false;for(var i=0;i<chars.length;++i){if(this.indexOf(chars.charAt(i))!==-1){foundChar=true;break;}} |
+if(!foundChar) |
+return String(this);var result="";for(var i=0;i<this.length;++i){if(chars.indexOf(this.charAt(i))!==-1) |
+result+="\\";result+=this.charAt(i);} |
+return result;} |
+String.regexSpecialCharacters=function() |
+{return"^[]{}()\\.$*+?|-,";} |
+String.prototype.escapeForRegExp=function() |
+{return this.escapeCharacters(String.regexSpecialCharacters());} |
+String.prototype.escapeHTML=function() |
+{return this.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");} |
+String.prototype.collapseWhitespace=function() |
+{return this.replace(/[\s\xA0]+/g," ");} |
+String.prototype.trimMiddle=function(maxLength) |
+{if(this.length<=maxLength) |
+return String(this);var leftHalf=maxLength>>1;var rightHalf=maxLength-leftHalf-1;return this.substr(0,leftHalf)+"\u2026"+this.substr(this.length-rightHalf,rightHalf);} |
+String.prototype.trimEnd=function(maxLength) |
+{if(this.length<=maxLength) |
+return String(this);return this.substr(0,maxLength-1)+"\u2026";} |
+String.prototype.trimURL=function(baseURLDomain) |
+{var result=this.replace(/^(https|http|file):\/\//i,"");if(baseURLDomain) |
+result=result.replace(new RegExp("^"+baseURLDomain.escapeForRegExp(),"i"),"");return result;} |
+String.prototype.toTitleCase=function() |
+{return this.substring(0,1).toUpperCase()+this.substring(1);} |
+String.prototype.compareTo=function(other) |
+{if(this>other) |
+return 1;if(this<other) |
+return-1;return 0;} |
+function sanitizeHref(href) |
+{return href&&href.trim().toLowerCase().startsWith("javascript:")?null:href;} |
+String.prototype.removeURLFragment=function() |
+{var fragmentIndex=this.indexOf("#");if(fragmentIndex==-1) |
+fragmentIndex=this.length;return this.substring(0,fragmentIndex);} |
+String.prototype.startsWith=function(substring) |
+{return!this.lastIndexOf(substring,0);} |
+String.prototype.endsWith=function(substring) |
+{return this.indexOf(substring,this.length-substring.length)!==-1;} |
+String.naturalOrderComparator=function(a,b) |
+{var chunk=/^\d+|^\D+/;var chunka,chunkb,anum,bnum;while(1){if(a){if(!b) |
+return 1;}else{if(b) |
+return-1;else |
+return 0;} |
+chunka=a.match(chunk)[0];chunkb=b.match(chunk)[0];anum=!isNaN(chunka);bnum=!isNaN(chunkb);if(anum&&!bnum) |
+return-1;if(bnum&&!anum) |
+return 1;if(anum&&bnum){var diff=chunka-chunkb;if(diff) |
+return diff;if(chunka.length!==chunkb.length){if(!+chunka&&!+chunkb) |
+return chunka.length-chunkb.length;else |
+return chunkb.length-chunka.length;}}else if(chunka!==chunkb) |
+return(chunka<chunkb)?-1:1;a=a.substring(chunka.length);b=b.substring(chunkb.length);}} |
+Number.constrain=function(num,min,max) |
+{if(num<min) |
+num=min;else if(num>max) |
+num=max;return num;} |
+Number.gcd=function(a,b) |
+{if(b===0) |
+return a;else |
+return Number.gcd(b,a%b);} |
+Number.toFixedIfFloating=function(value) |
+{if(!value||isNaN(value)) |
+return value;var number=Number(value);return number%1?number.toFixed(3):String(number);} |
+Date.prototype.toISO8601Compact=function() |
+{function leadZero(x) |
+{return(x>9?"":"0")+x;} |
+return this.getFullYear()+ |
+leadZero(this.getMonth()+1)+ |
+leadZero(this.getDate())+"T"+ |
+leadZero(this.getHours())+ |
+leadZero(this.getMinutes())+ |
+leadZero(this.getSeconds());} |
+Object.defineProperty(Array.prototype,"remove",{value:function(value,onlyFirst) |
+{if(onlyFirst){var index=this.indexOf(value);if(index!==-1) |
+this.splice(index,1);return;} |
+var length=this.length;for(var i=0;i<length;++i){if(this[i]===value) |
+this.splice(i,1);}}});Object.defineProperty(Array.prototype,"keySet",{value:function() |
+{var keys={};for(var i=0;i<this.length;++i) |
+keys[this[i]]=true;return keys;}});Object.defineProperty(Array.prototype,"rotate",{value:function(index) |
+{var result=[];for(var i=index;i<index+this.length;++i) |
+result.push(this[i%this.length]);return result;}});Object.defineProperty(Uint32Array.prototype,"sort",{value:Array.prototype.sort});(function(){var partition={value:function(comparator,left,right,pivotIndex) |
+{function swap(array,i1,i2) |
+{var temp=array[i1];array[i1]=array[i2];array[i2]=temp;} |
+var pivotValue=this[pivotIndex];swap(this,right,pivotIndex);var storeIndex=left;for(var i=left;i<right;++i){if(comparator(this[i],pivotValue)<0){swap(this,storeIndex,i);++storeIndex;}} |
+swap(this,right,storeIndex);return storeIndex;}};Object.defineProperty(Array.prototype,"partition",partition);Object.defineProperty(Uint32Array.prototype,"partition",partition);var sortRange={value:function(comparator,leftBound,rightBound,k) |
+{function quickSortFirstK(array,comparator,left,right,k) |
+{if(right<=left) |
+return;var pivotIndex=Math.floor(Math.random()*(right-left))+left;var pivotNewIndex=array.partition(comparator,left,right,pivotIndex);quickSortFirstK(array,comparator,left,pivotNewIndex-1,k);if(pivotNewIndex<left+k-1) |
+quickSortFirstK(array,comparator,pivotNewIndex+1,right,left+k-1-pivotNewIndex);} |
+if(leftBound===0&&rightBound===(this.length-1)&&k>=this.length) |
+this.sort(comparator);else |
+quickSortFirstK(this,comparator,leftBound,rightBound,k);return this;}} |
+Object.defineProperty(Array.prototype,"sortRange",sortRange);Object.defineProperty(Uint32Array.prototype,"sortRange",sortRange);})();Object.defineProperty(Array.prototype,"qselect",{value:function(k,comparator) |
+{if(k<0||k>=this.length) |
+return;if(!comparator) |
+comparator=function(a,b){return a-b;} |
+var low=0;var high=this.length-1;for(;;){var pivotPosition=this.partition(comparator,low,high,Math.floor((high+low)/2));if(pivotPosition===k) |
+return this[k];else if(pivotPosition>k) |
+high=pivotPosition-1;else |
+low=pivotPosition+1;}}});Object.defineProperty(Array.prototype,"lowerBound",{value:function(object,comparator) |
+{function defaultComparator(a,b) |
+{return a<b?-1:(a>b?1:0);} |
+comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>0) |
+l=m+1;else |
+r=m;} |
+return r;}});Object.defineProperty(Array.prototype,"upperBound",{value:function(object,comparator) |
+{function defaultComparator(a,b) |
+{return a<b?-1:(a>b?1:0);} |
+comparator=comparator||defaultComparator;var l=0;var r=this.length;while(l<r){var m=(l+r)>>1;if(comparator(object,this[m])>=0) |
+l=m+1;else |
+r=m;} |
+return r;}});Object.defineProperty(Array.prototype,"binaryIndexOf",{value:function(value,comparator) |
+{var index=this.lowerBound(value,comparator);return index<this.length&&comparator(value,this[index])===0?index:-1;}});Object.defineProperty(Array.prototype,"select",{value:function(field) |
+{var result=new Array(this.length);for(var i=0;i<this.length;++i) |
+result[i]=this[i][field];return result;}});Object.defineProperty(Array.prototype,"peekLast",{value:function() |
+{return this[this.length-1];}});function insertionIndexForObjectInListSortedByFunction(object,list,comparator,insertionIndexAfter) |
+{if(insertionIndexAfter) |
+return list.upperBound(object,comparator);else |
+return list.lowerBound(object,comparator);} |
+String.sprintf=function(format,var_arg) |
+{return String.vsprintf(format,Array.prototype.slice.call(arguments,1));} |
+String.tokenizeFormatString=function(format,formatters) |
+{var tokens=[];var substitutionIndex=0;function addStringToken(str) |
+{tokens.push({type:"string",value:str});} |
+function addSpecifierToken(specifier,precision,substitutionIndex) |
+{tokens.push({type:"specifier",specifier:specifier,precision:precision,substitutionIndex:substitutionIndex});} |
+function isDigit(c) |
+{return!!/[0-9]/.exec(c);} |
+var index=0;for(var precentIndex=format.indexOf("%",index);precentIndex!==-1;precentIndex=format.indexOf("%",index)){addStringToken(format.substring(index,precentIndex));index=precentIndex+1;if(isDigit(format[index])){var number=parseInt(format.substring(index),10);while(isDigit(format[index])) |
+++index;if(number>0&&format[index]==="$"){substitutionIndex=(number-1);++index;}} |
+var precision=-1;if(format[index]==="."){++index;precision=parseInt(format.substring(index),10);if(isNaN(precision)) |
+precision=0;while(isDigit(format[index])) |
+++index;} |
+if(!(format[index]in formatters)){addStringToken(format.substring(precentIndex,index+1));++index;continue;} |
+addSpecifierToken(format[index],precision,substitutionIndex);++substitutionIndex;++index;} |
+addStringToken(format.substring(index));return tokens;} |
+String.standardFormatters={d:function(substitution) |
+{return!isNaN(substitution)?substitution:0;},f:function(substitution,token) |
+{if(substitution&&token.precision>-1) |
+substitution=substitution.toFixed(token.precision);return!isNaN(substitution)?substitution:(token.precision>-1?Number(0).toFixed(token.precision):0);},s:function(substitution) |
+{return substitution;}} |
+String.vsprintf=function(format,substitutions) |
+{return String.format(format,substitutions,String.standardFormatters,"",function(a,b){return a+b;}).formattedResult;} |
+String.format=function(format,substitutions,formatters,initialValue,append) |
+{if(!format||!substitutions||!substitutions.length) |
+return{formattedResult:append(initialValue,format),unusedSubstitutions:substitutions};function prettyFunctionName() |
+{return"String.format(\""+format+"\", \""+substitutions.join("\", \"")+"\")";} |
+function warn(msg) |
+{console.warn(prettyFunctionName()+": "+msg);} |
+function error(msg) |
+{console.error(prettyFunctionName()+": "+msg);} |
+var result=initialValue;var tokens=String.tokenizeFormatString(format,formatters);var usedSubstitutionIndexes={};for(var i=0;i<tokens.length;++i){var token=tokens[i];if(token.type==="string"){result=append(result,token.value);continue;} |
+if(token.type!=="specifier"){error("Unknown token type \""+token.type+"\" found.");continue;} |
+if(token.substitutionIndex>=substitutions.length){error("not enough substitution arguments. Had "+substitutions.length+" but needed "+(token.substitutionIndex+1)+", so substitution was skipped.");result=append(result,"%"+(token.precision>-1?token.precision:"")+token.specifier);continue;} |
+usedSubstitutionIndexes[token.substitutionIndex]=true;if(!(token.specifier in formatters)){warn("unsupported format character \u201C"+token.specifier+"\u201D. Treating as a string.");result=append(result,substitutions[token.substitutionIndex]);continue;} |
+result=append(result,formatters[token.specifier](substitutions[token.substitutionIndex],token));} |
+var unusedSubstitutions=[];for(var i=0;i<substitutions.length;++i){if(i in usedSubstitutionIndexes) |
+continue;unusedSubstitutions.push(substitutions[i]);} |
+return{formattedResult:result,unusedSubstitutions:unusedSubstitutions};} |
+function createSearchRegex(query,caseSensitive,isRegex) |
+{var regexFlags=caseSensitive?"g":"gi";var regexObject;if(isRegex){try{regexObject=new RegExp(query,regexFlags);}catch(e){}} |
+if(!regexObject) |
+regexObject=createPlainTextSearchRegex(query,regexFlags);return regexObject;} |
+function createPlainTextSearchRegex(query,flags) |
+{var regexSpecialCharacters=String.regexSpecialCharacters();var regex="";for(var i=0;i<query.length;++i){var c=query.charAt(i);if(regexSpecialCharacters.indexOf(c)!=-1) |
+regex+="\\";regex+=c;} |
+return new RegExp(regex,flags||"");} |
+function countRegexMatches(regex,content) |
+{var text=content;var result=0;var match;while(text&&(match=regex.exec(text))){if(match[0].length>0) |
+++result;text=text.substring(match.index+1);} |
+return result;} |
+function numberToStringWithSpacesPadding(value,symbolsCount) |
+{var numberString=value.toString();var paddingLength=Math.max(0,symbolsCount-numberString.length);var paddingString=Array(paddingLength+1).join("\u00a0");return paddingString+numberString;} |
+var createObjectIdentifier=function() |
+{return"_"+ ++createObjectIdentifier._last;} |
+createObjectIdentifier._last=0;var Set=function() |
+{this._set={};this._size=0;} |
+Set.prototype={add:function(item) |
+{var objectIdentifier=item.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();item.__identifier=objectIdentifier;} |
+if(!this._set[objectIdentifier]) |
+++this._size;this._set[objectIdentifier]=item;},remove:function(item) |
+{if(this._set[item.__identifier]){--this._size;delete this._set[item.__identifier];return true;} |
+return false;},items:function() |
+{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._set) |
+result[i++]=this._set[objectIdentifier];return result;},hasItem:function(item) |
+{return!!this._set[item.__identifier];},size:function() |
+{return this._size;},clear:function() |
+{this._set={};this._size=0;}} |
+var Map=function() |
+{this._map={};this._size=0;} |
+Map.prototype={put:function(key,value) |
+{var objectIdentifier=key.__identifier;if(!objectIdentifier){objectIdentifier=createObjectIdentifier();key.__identifier=objectIdentifier;} |
+if(!this._map[objectIdentifier]) |
+++this._size;this._map[objectIdentifier]=[key,value];},remove:function(key) |
+{var result=this._map[key.__identifier];if(!result) |
+return undefined;--this._size;delete this._map[key.__identifier];return result[1];},keys:function() |
+{return this._list(0);},values:function() |
+{return this._list(1);},_list:function(index) |
+{var result=new Array(this._size);var i=0;for(var objectIdentifier in this._map) |
+result[i++]=this._map[objectIdentifier][index];return result;},get:function(key) |
+{var entry=this._map[key.__identifier];return entry?entry[1]:undefined;},contains:function(key) |
+{var entry=this._map[key.__identifier];return!!entry;},size:function() |
+{return this._size;},clear:function() |
+{this._map={};this._size=0;}} |
+var StringMap=function() |
+{this._map={};this._size=0;} |
+StringMap.prototype={put:function(key,value) |
+{if(key==="__proto__"){if(!this._hasProtoKey){++this._size;this._hasProtoKey=true;} |
+this._protoValue=value;return;} |
+if(!Object.prototype.hasOwnProperty.call(this._map,key)) |
+++this._size;this._map[key]=value;},remove:function(key) |
+{var result;if(key==="__proto__"){if(!this._hasProtoKey) |
+return undefined;--this._size;delete this._hasProtoKey;result=this._protoValue;delete this._protoValue;return result;} |
+if(!Object.prototype.hasOwnProperty.call(this._map,key)) |
+return undefined;--this._size;result=this._map[key];delete this._map[key];return result;},keys:function() |
+{var result=Object.keys(this._map)||[];if(this._hasProtoKey) |
+result.push("__proto__");return result;},values:function() |
+{var result=Object.values(this._map);if(this._hasProtoKey) |
+result.push(this._protoValue);return result;},get:function(key) |
+{if(key==="__proto__") |
+return this._protoValue;if(!Object.prototype.hasOwnProperty.call(this._map,key)) |
+return undefined;return this._map[key];},contains:function(key) |
+{var result;if(key==="__proto__") |
+return this._hasProtoKey;return Object.prototype.hasOwnProperty.call(this._map,key);},size:function() |
+{return this._size;},clear:function() |
+{this._map={};this._size=0;delete this._hasProtoKey;delete this._protoValue;}} |
+function loadXHR(url,async,callback) |
+{function onReadyStateChanged() |
+{if(xhr.readyState!==XMLHttpRequest.DONE) |
+return;if(xhr.status===200){callback(xhr.responseText);return;} |
+callback(null);} |
+var xhr=new XMLHttpRequest();xhr.open("GET",url,async);if(async) |
+xhr.onreadystatechange=onReadyStateChanged;xhr.send(null);if(!async){if(xhr.status===200) |
+return xhr.responseText;return null;} |
+return null;} |
+function StringPool() |
+{this.reset();} |
+StringPool.prototype={intern:function(string) |
+{if(string==="__proto__") |
+return"__proto__";var result=this._strings[string];if(result===undefined){this._strings[string]=string;result=string;} |
+return result;},reset:function() |
+{this._strings=Object.create(null);},internObjectStrings:function(obj,depthLimit) |
+{if(typeof depthLimit!=="number") |
+depthLimit=100;else if(--depthLimit<0) |
+throw"recursion depth limit reached in StringPool.deepIntern(), perhaps attempting to traverse cyclical references?";for(var field in obj){switch(typeof obj[field]){case"string":obj[field]=this.intern(obj[field]);break;case"object":this.internObjectStrings(obj[field],depthLimit);break;}}}} |
+var _importedScripts={};function importScript(scriptName) |
+{if(_importedScripts[scriptName]) |
+return;var xhr=new XMLHttpRequest();_importedScripts[scriptName]=true;xhr.open("GET",scriptName,false);xhr.send(null);if(!xhr.responseText) |
+throw"empty response arrived for script '"+scriptName+"'";var sourceURL=WebInspector.ParsedURL.completeURL(window.location.href,scriptName);window.eval(xhr.responseText+"\n//# sourceURL="+sourceURL);} |
+var loadScript=importScript;function CallbackBarrier() |
+{this._pendingIncomingCallbacksCount=0;} |
+CallbackBarrier.prototype={createCallback:function(userCallback) |
+{console.assert(!this._outgoingCallback,"CallbackBarrier.createCallback() is called after CallbackBarrier.callWhenDone()");++this._pendingIncomingCallbacksCount;return this._incomingCallback.bind(this,userCallback);},callWhenDone:function(callback) |
+{console.assert(!this._outgoingCallback,"CallbackBarrier.callWhenDone() is called multiple times");this._outgoingCallback=callback;if(!this._pendingIncomingCallbacksCount) |
+this._outgoingCallback();},_incomingCallback:function(userCallback) |
+{console.assert(this._pendingIncomingCallbacksCount>0);if(userCallback){var args=Array.prototype.slice.call(arguments,1);userCallback.apply(null,args);} |
+if(!--this._pendingIncomingCallbacksCount&&this._outgoingCallback) |
+this._outgoingCallback();}};(function(window){window.CodeMirror={};function splitLines(string){return string.split(/\r?\n|\r/);};function StringStream(string){this.pos=this.start=0;this.string=string;} |
+StringStream.prototype={eol:function(){return this.pos>=this.string.length;},sol:function(){return this.pos==0;},peek:function(){return this.string.charAt(this.pos)||null;},next:function(){if(this.pos<this.string.length) |
+return this.string.charAt(this.pos++);},eat:function(match){var ch=this.string.charAt(this.pos);if(typeof match=="string")var ok=ch==match;else var ok=ch&&(match.test?match.test(ch):match(ch));if(ok){++this.pos;return ch;}},eatWhile:function(match){var start=this.pos;while(this.eat(match)){} |
+return this.pos>start;},eatSpace:function(){var start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;},skipToEnd:function(){this.pos=this.string.length;},skipTo:function(ch){var found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}},backUp:function(n){this.pos-=n;},column:function(){return this.start;},indentation:function(){return 0;},match:function(pattern,consume,caseInsensitive){if(typeof pattern=="string"){var cased=function(str){return caseInsensitive?str.toLowerCase():str;};var substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}}else{var match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}},current:function(){return this.string.slice(this.start,this.pos);}};CodeMirror.StringStream=StringStream;CodeMirror.startState=function(mode,a1,a2){return mode.startState?mode.startState(a1,a2):true;};var modes=CodeMirror.modes={},mimeModes=CodeMirror.mimeModes={};CodeMirror.defineMode=function(name,mode){modes[name]=mode;};CodeMirror.defineMIME=function(mime,spec){mimeModes[mime]=spec;};CodeMirror.defineMode("null",function(){return{token:function(stream){stream.skipToEnd();}};});CodeMirror.defineMIME("text/plain","null");CodeMirror.getMode=function(options,spec){if(typeof spec=="string"&&mimeModes.hasOwnProperty(spec)) |
+spec=mimeModes[spec];if(typeof spec=="string") |
+var mname=spec,config={};else if(spec!=null) |
+var mname=spec.name,config=spec;var mfactory=modes[mname];if(!mfactory)throw new Error("Unknown mode: "+spec);return mfactory(options,config||{});};}(this));;CodeMirror.defineMode("css",function(config){return CodeMirror.getMode(config,"text/css");});CodeMirror.defineMode("css-base",function(config,parserConfig){"use strict";var indentUnit=config.indentUnit,hooks=parserConfig.hooks||{},atMediaTypes=parserConfig.atMediaTypes||{},atMediaFeatures=parserConfig.atMediaFeatures||{},propertyKeywords=parserConfig.propertyKeywords||{},colorKeywords=parserConfig.colorKeywords||{},valueKeywords=parserConfig.valueKeywords||{},allowNested=!!parserConfig.allowNested,type=null;function ret(style,tp){type=tp;return style;} |
+function tokenBase(stream,state){var ch=stream.next();if(hooks[ch]){var result=hooks[ch](stream,state);if(result!==false)return result;} |
+if(ch=="@"){stream.eatWhile(/[\w\\\-]/);return ret("def",stream.current());} |
+else if(ch=="=")ret(null,"compare");else if((ch=="~"||ch=="|")&&stream.eat("="))return ret(null,"compare");else if(ch=="\""||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state);} |
+else if(ch=="#"){stream.eatWhile(/[\w\\\-]/);return ret("atom","hash");} |
+else if(ch=="!"){stream.match(/^\s*\w*/);return ret("keyword","important");} |
+else if(/\d/.test(ch)){stream.eatWhile(/[\w.%]/);return ret("number","unit");} |
+else if(ch==="-"){if(/\d/.test(stream.peek())){stream.eatWhile(/[\w.%]/);return ret("number","unit");}else if(stream.match(/^[^-]+-/)){return ret("meta","meta");}} |
+else if(/[,+>*\/]/.test(ch)){return ret(null,"select-op");} |
+else if(ch=="."&&stream.match(/^-?[_a-z][_a-z0-9-]*/i)){return ret("qualifier","qualifier");} |
+else if(ch==":"){return ret("operator",ch);} |
+else if(/[;{}\[\]\(\)]/.test(ch)){return ret(null,ch);} |
+else if(ch=="u"&&stream.match("rl(")){stream.backUp(1);state.tokenize=tokenParenthesized;return ret("property","variable");} |
+else{stream.eatWhile(/[\w\\\-]/);return ret("property","variable");}} |
+function tokenString(quote,nonInclusive){return function(stream,state){var escaped=false,ch;while((ch=stream.next())!=null){if(ch==quote&&!escaped) |
+break;escaped=!escaped&&ch=="\\";} |
+if(!escaped){if(nonInclusive)stream.backUp(1);state.tokenize=tokenBase;} |
+return ret("string","string");};} |
+function tokenParenthesized(stream,state){stream.next();if(!stream.match(/\s*[\"\']/,false)) |
+state.tokenize=tokenString(")",true);else |
+state.tokenize=tokenBase;return ret(null,"(");} |
+return{startState:function(base){return{tokenize:tokenBase,baseIndent:base||0,stack:[],lastToken:null};},token:function(stream,state){state.tokenize=state.tokenize||tokenBase;if(state.tokenize==tokenBase&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(style&&typeof style!="string")style=ret(style[0],style[1]);var context=state.stack[state.stack.length-1];if(style=="variable"){if(type=="variable-definition")state.stack.push("propertyValue");return state.lastToken="variable-2";}else if(style=="property"){var word=stream.current().toLowerCase();if(context=="propertyValue"){if(valueKeywords.hasOwnProperty(word)){style="string-2";}else if(colorKeywords.hasOwnProperty(word)){style="keyword";}else{style="variable-2";}}else if(context=="rule"){if(!propertyKeywords.hasOwnProperty(word)){style+=" error";}}else if(context=="block"){if(propertyKeywords.hasOwnProperty(word)){style="property";}else if(colorKeywords.hasOwnProperty(word)){style="keyword";}else if(valueKeywords.hasOwnProperty(word)){style="string-2";}else{style="tag";}}else if(!context||context=="@media{"){style="tag";}else if(context=="@media"){if(atMediaTypes[stream.current()]){style="attribute";}else if(/^(only|not)$/.test(word)){style="keyword";}else if(word=="and"){style="error";}else if(atMediaFeatures.hasOwnProperty(word)){style="error";}else{style="attribute error";}}else if(context=="@mediaType"){if(atMediaTypes.hasOwnProperty(word)){style="attribute";}else if(word=="and"){style="operator";}else if(/^(only|not)$/.test(word)){style="error";}else{style="error";}}else if(context=="@mediaType("){if(propertyKeywords.hasOwnProperty(word)){}else if(atMediaTypes.hasOwnProperty(word)){style="error";}else if(word=="and"){style="operator";}else if(/^(only|not)$/.test(word)){style="error";}else{style+=" error";}}else if(context=="@import"){style="tag";}else{style="error";}}else if(style=="atom"){if(!context||context=="@media{"||context=="block"){style="builtin";}else if(context=="propertyValue"){if(!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())){style+=" error";}}else{style="error";}}else if(context=="@media"&&type=="{"){style="error";} |
+if(type=="{"){if(context=="@media"||context=="@mediaType"){state.stack.pop();state.stack[state.stack.length-1]="@media{";} |
+else{var newContext=allowNested?"block":"rule";state.stack.push(newContext);}} |
+else if(type=="}"){var lastState=state.stack[state.stack.length-1];if(lastState=="interpolation")style="operator";state.stack.pop();if(context=="propertyValue")state.stack.pop();} |
+else if(type=="interpolation")state.stack.push("interpolation");else if(type=="@media")state.stack.push("@media");else if(type=="@import")state.stack.push("@import");else if(context=="@media"&&/\b(keyword|attribute)\b/.test(style)) |
+state.stack.push("@mediaType");else if(context=="@mediaType"&&stream.current()==",")state.stack.pop();else if(context=="@mediaType"&&type=="(")state.stack.push("@mediaType(");else if(context=="@mediaType("&&type==")")state.stack.pop();else if(type==":"&&state.lastToken=="property")state.stack.push("propertyValue");else if(context=="propertyValue"&&type==";")state.stack.pop();else if(context=="@import"&&type==";")state.stack.pop();return state.lastToken=style;},indent:function(state,textAfter){var n=state.stack.length;if(/^\}/.test(textAfter)) |
+n-=state.stack[state.stack.length-1]=="propertyValue"?2:1;return state.baseIndent+n*indentUnit;},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/"};});(function(){function keySet(array){var keys={};for(var i=0;i<array.length;++i){keys[array[i]]=true;} |
+return keys;} |
+var atMediaTypes=keySet(["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"]);var atMediaFeatures=keySet(["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"]);var propertyKeywords=keySet(["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid-cell","grid-column","grid-column-align","grid-column-sizing","grid-column-span","grid-columns","grid-flow","grid-row","grid-row-align","grid-row-sizing","grid-row-span","grid-rows","grid-template","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-shadow","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-profile","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","writing-mode"]);var colorKeywords=keySet(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]);var valueKeywords=keySet(["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break-all","break-word","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","overlay","overline","padding","padding-box","painted","paused","persian","plus-darker","plus-lighter","pointer","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small"]);function tokenCComment(stream,state){var maybeEnd=false,ch;while((ch=stream.next())!=null){if(maybeEnd&&ch=="/"){state.tokenize=null;break;} |
+maybeEnd=(ch=="*");} |
+return["comment","comment"];} |
+CodeMirror.defineMIME("text/css",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,hooks:{"<":function(stream,state){function tokenSGMLComment(stream,state){var dashes=0,ch;while((ch=stream.next())!=null){if(dashes>=2&&ch==">"){state.tokenize=null;break;} |
+dashes=(ch=="-")?dashes+1:0;} |
+return["comment","comment"];} |
+if(stream.eat("!")){state.tokenize=tokenSGMLComment;return tokenSGMLComment(stream,state);}},"/":function(stream,state){if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);} |
+return false;}},name:"css-base"});CodeMirror.defineMIME("text/x-scss",{atMediaTypes:atMediaTypes,atMediaFeatures:atMediaFeatures,propertyKeywords:propertyKeywords,colorKeywords:colorKeywords,valueKeywords:valueKeywords,allowNested:true,hooks:{"$":function(stream){stream.match(/^[\w-]+/);if(stream.peek()==":"){return["variable","variable-definition"];} |
+return["variable","variable"];},"/":function(stream,state){if(stream.eat("/")){stream.skipToEnd();return["comment","comment"];}else if(stream.eat("*")){state.tokenize=tokenCComment;return tokenCComment(stream,state);}else{return["operator","operator"];}},"#":function(stream){if(stream.eat("{")){return["operator","interpolation"];}else{stream.eatWhile(/[\w\\\-]/);return["atom","hash"];}}},name:"css-base"});})();;CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var jsonMode=parserConfig.json;var isTS=parserConfig.typescript;var keywords=function(){function kw(type){return{type:type,style:"keyword"};} |
+var A=kw("keyword a"),B=kw("keyword b"),C=kw("keyword c");var operator=kw("operator"),atom={type:"atom",style:"atom"};var jsKeywords={"if":kw("if"),"while":A,"with":A,"else":B,"do":B,"try":B,"finally":B,"return":C,"break":C,"continue":C,"new":C,"delete":C,"throw":C,"var":kw("var"),"const":kw("var"),"let":kw("var"),"function":kw("function"),"catch":kw("catch"),"for":kw("for"),"switch":kw("switch"),"case":kw("case"),"default":kw("default"),"in":operator,"typeof":operator,"instanceof":operator,"true":atom,"false":atom,"null":atom,"undefined":atom,"NaN":atom,"Infinity":atom,"this":kw("this")};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("interface"),"class":kw("class"),"extends":kw("extends"),"constructor":kw("constructor"),"public":kw("public"),"private":kw("private"),"protected":kw("protected"),"static":kw("static"),"super":kw("super"),"string":type,"number":type,"bool":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr];}} |
+return jsKeywords;}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;function chain(stream,state,f){state.tokenize=f;return f(stream,state);} |
+function nextUntilUnescaped(stream,end){var escaped=false,next;while((next=stream.next())!=null){if(next==end&&!escaped) |
+return false;escaped=!escaped&&next=="\\";} |
+return escaped;} |
+var type,content;function ret(tp,style,cont){type=tp;content=cont;return style;} |
+function jsTokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'") |
+return chain(stream,state,jsTokenString(ch));else if(/[\[\]{}\(\),;\:\.]/.test(ch)) |
+return ret(ch);else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number");} |
+else if(/\d/.test(ch)||ch=="-"&&stream.eat(/\d/)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number");} |
+else if(ch=="/"){if(stream.eat("*")){return chain(stream,state,jsTokenComment);} |
+else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment");} |
+else if(state.lastType=="operator"||state.lastType=="keyword c"||/^[\[{}\(,;:]$/.test(state.lastType)){nextUntilUnescaped(stream,"/");stream.eatWhile(/[gimy]/);return ret("regexp","string-2");} |
+else{stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());}} |
+else if(ch=="#"){stream.skipToEnd();return ret("error","error");} |
+else if(isOperatorChar.test(ch)){stream.eatWhile(isOperatorChar);return ret("operator",null,stream.current());} |
+else{stream.eatWhile(/[\w\$_]/);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word);}} |
+function jsTokenString(quote){return function(stream,state){if(!nextUntilUnescaped(stream,quote)) |
+state.tokenize=jsTokenBase;return ret("string","string");};} |
+function jsTokenComment(stream,state){var maybeEnd=false,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=jsTokenBase;break;} |
+maybeEnd=(ch=="*");} |
+return ret("comment","comment");} |
+var atomicTypes={"atom":true,"number":true,"variable":true,"string":true,"regexp":true,"this":true};function JSLexical(indented,column,type,align,prev,info){this.indented=indented;this.column=column;this.type=type;this.prev=prev;this.info=info;if(align!=null)this.align=align;} |
+function inScope(state,varname){for(var v=state.localVars;v;v=v.next) |
+if(v.name==varname)return true;} |
+function parseJS(state,style,type,content,stream){var cc=state.cc;cx.state=state;cx.stream=stream;cx.marked=null,cx.cc=cc;if(!state.lexical.hasOwnProperty("align")) |
+state.lexical.align=true;while(true){var combinator=cc.length?cc.pop():jsonMode?expression:statement;if(combinator(type,content)){while(cc.length&&cc[cc.length-1].lex) |
+cc.pop()();if(cx.marked)return cx.marked;if(type=="variable"&&inScope(state,content))return"variable-2";return style;}}} |
+var cx={state:null,column:null,marked:null,cc:null};function pass(){for(var i=arguments.length-1;i>=0;i--)cx.cc.push(arguments[i]);} |
+function cont(){pass.apply(null,arguments);return true;} |
+function register(varname){function inList(list){for(var v=list;v;v=v.next) |
+if(v.name==varname)return true;return false;} |
+var state=cx.state;if(state.context){cx.marked="def";if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars};}else{if(inList(state.globalVars))return;state.globalVars={name:varname,next:state.globalVars};}} |
+var defaultVars={name:"this",next:{name:"arguments"}};function pushcontext(){cx.state.context={prev:cx.state.context,vars:cx.state.localVars};cx.state.localVars=defaultVars;} |
+function popcontext(){cx.state.localVars=cx.state.context.vars;cx.state.context=cx.state.context.prev;} |
+function pushlex(type,info){var result=function(){var state=cx.state;state.lexical=new JSLexical(state.indented,cx.stream.column(),type,null,state.lexical,info);};result.lex=true;return result;} |
+function poplex(){var state=cx.state;if(state.lexical.prev){if(state.lexical.type==")") |
+state.indented=state.lexical.indented;state.lexical=state.lexical.prev;}} |
+poplex.lex=true;function expect(wanted){return function(type){if(type==wanted)return cont();else if(wanted==";")return pass();else return cont(arguments.callee);};} |
+function statement(type){if(type=="var")return cont(pushlex("vardef"),vardef1,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),expression,statement,poplex);if(type=="keyword b")return cont(pushlex("form"),statement,poplex);if(type=="{")return cont(pushlex("}"),block,poplex);if(type==";")return cont();if(type=="if")return cont(pushlex("form"),expression,statement,poplex,maybeelse(cx.state.indented));if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),expect("("),pushlex(")"),forspec1,expect(")"),poplex,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),expression,pushlex("}","switch"),expect("{"),block,poplex,poplex);if(type=="case")return cont(expression,expect(":"));if(type=="default")return cont(expect(":"));if(type=="catch")return cont(pushlex("form"),pushcontext,expect("("),funarg,expect(")"),statement,poplex,popcontext);return pass(pushlex("stat"),expression,expect(";"),poplex);} |
+function expression(type){return expressionInner(type,maybeoperatorComma);} |
+function expressionNoComma(type){return expressionInner(type,maybeoperatorNoComma);} |
+function expressionInner(type,maybeop){if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef);if(type=="keyword c")return cont(maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,expect(")"),poplex,maybeop);if(type=="operator")return cont(expression);if(type=="[")return cont(pushlex("]"),commasep(expressionNoComma,"]"),poplex,maybeop);if(type=="{")return cont(pushlex("}"),commasep(objprop,"}"),poplex,maybeop);return cont();} |
+function maybeexpression(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expression);} |
+function maybeoperatorComma(type,value){if(type==",")return pass();return maybeoperatorNoComma(type,value,maybeoperatorComma);} |
+function maybeoperatorNoComma(type,value,me){if(!me)me=maybeoperatorNoComma;if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expression);return cont(expression);} |
+if(type==";")return;if(type=="(")return cont(pushlex(")","call"),commasep(expressionNoComma,")"),poplex,me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),expression,expect("]"),poplex,me);} |
+function maybelabel(type){if(type==":")return cont(poplex,statement);return pass(maybeoperatorComma,expect(";"),poplex);} |
+function property(type){if(type=="variable"){cx.marked="property";return cont();}} |
+function objprop(type,value){if(type=="variable"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);}else if(type=="number"||type=="string"){cx.marked=type+" property";} |
+if(atomicTypes.hasOwnProperty(type))return cont(expect(":"),expressionNoComma);} |
+function getterSetter(type){if(type==":")return cont(expression);if(type!="variable")return cont(expect(":"),expression);cx.marked="property";return cont(functiondef);} |
+function commasep(what,end){function proceed(type){if(type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(what,proceed);} |
+if(type==end)return cont();return cont(expect(end));} |
+return function(type){if(type==end)return cont();else return pass(what,proceed);};} |
+function block(type){if(type=="}")return cont();return pass(statement,block);} |
+function maybetype(type){if(type==":")return cont(typedef);return pass();} |
+function typedef(type){if(type=="variable"){cx.marked="variable-3";return cont();} |
+return pass();} |
+function vardef1(type,value){if(type=="variable"){register(value);return isTS?cont(maybetype,vardef2):cont(vardef2);} |
+return pass();} |
+function vardef2(type,value){if(value=="=")return cont(expressionNoComma,vardef2);if(type==",")return cont(vardef1);} |
+function maybeelse(indent){return function(type,value){if(type=="keyword b"&&value=="else"){cx.state.lexical=new JSLexical(indent,0,"form",null,cx.state.lexical);return cont(statement,poplex);} |
+return pass();};} |
+function forspec1(type){if(type=="var")return cont(vardef1,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybein);return pass(expression,expect(";"),forspec2);} |
+function formaybein(_type,value){if(value=="in")return cont(expression);return cont(maybeoperatorComma,forspec2);} |
+function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in")return cont(expression);return pass(expression,expect(";"),forspec3);} |
+function forspec3(type){if(type!=")")cont(expression);} |
+function functiondef(type,value){if(type=="variable"){register(value);return cont(functiondef);} |
+if(type=="(")return cont(pushlex(")"),pushcontext,commasep(funarg,")"),poplex,statement,popcontext);} |
+function funarg(type,value){if(type=="variable"){register(value);return isTS?cont(maybetype):cont();}} |
+return{startState:function(basecolumn){return{tokenize:jsTokenBase,lastType:null,cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",false),localVars:parserConfig.localVars,globalVars:parserConfig.globalVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:0};},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align")) |
+state.lexical.align=false;state.indented=stream.indentation();} |
+if(state.tokenize!=jsTokenComment&&stream.eatSpace())return null;var style=state.tokenize(stream,state);if(type=="comment")return style;state.lastType=type=="operator"&&(content=="++"||content=="--")?"incdec":type;return parseJS(state,style,type,content,stream);},indent:function(state,textAfter){if(state.tokenize==jsTokenComment)return CodeMirror.Pass;if(state.tokenize!=jsTokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical;if(lexical.type=="stat"&&firstChar=="}")lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(parserConfig.statementIndent!=null){if(type==")"&&lexical.prev&&lexical.prev.type=="stat")lexical=lexical.prev;if(lexical.type=="stat")return lexical.indented+parserConfig.statementIndent;} |
+if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?4:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat") |
+return lexical.indented+(state.lastType=="operator"||state.lastType==","?indentUnit:0);else if(lexical.info=="switch"&&!closing) |
+return lexical.indented+(/^(?:case|default)\b/.test(textAfter)?indentUnit:2*indentUnit);else if(lexical.align)return lexical.column+(closing?0:1);else return lexical.indented+(closing?0:indentUnit);},electricChars:":{}",blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",jsonMode:jsonMode};});CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:true});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:true});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:true});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:true});;CodeMirror.defineMode("xml",function(config,parserConfig){var indentUnit=config.indentUnit;var multilineTagIndentFactor=parserConfig.multilineTagIndentFactor||1;var multilineTagIndentPastTag=parserConfig.multilineTagIndentPastTag||true;var Kludges=parserConfig.htmlMode?{autoSelfClosers:{'area':true,'base':true,'br':true,'col':true,'command':true,'embed':true,'frame':true,'hr':true,'img':true,'input':true,'keygen':true,'link':true,'meta':true,'param':true,'source':true,'track':true,'wbr':true},implicitlyClosed:{'dd':true,'li':true,'optgroup':true,'option':true,'p':true,'rp':true,'rt':true,'tbody':true,'td':true,'tfoot':true,'th':true,'tr':true},contextGrabbers:{'dd':{'dd':true,'dt':true},'dt':{'dd':true,'dt':true},'li':{'li':true},'option':{'option':true,'optgroup':true},'optgroup':{'optgroup':true},'p':{'address':true,'article':true,'aside':true,'blockquote':true,'dir':true,'div':true,'dl':true,'fieldset':true,'footer':true,'form':true,'h1':true,'h2':true,'h3':true,'h4':true,'h5':true,'h6':true,'header':true,'hgroup':true,'hr':true,'menu':true,'nav':true,'ol':true,'p':true,'pre':true,'section':true,'table':true,'ul':true},'rp':{'rp':true,'rt':true},'rt':{'rp':true,'rt':true},'tbody':{'tbody':true,'tfoot':true},'td':{'td':true,'th':true},'tfoot':{'tbody':true},'th':{'td':true,'th':true},'thead':{'tbody':true,'tfoot':true},'tr':{'tr':true}},doNotIndent:{"pre":true},allowUnquoted:true,allowMissing:true}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:false,allowMissing:false};var alignCDATA=parserConfig.alignCDATA;var tagName,type;function inText(stream,state){function chain(parser){state.tokenize=parser;return parser(stream,state);} |
+var ch=stream.next();if(ch=="<"){if(stream.eat("!")){if(stream.eat("[")){if(stream.match("CDATA["))return chain(inBlock("atom","]]>"));else return null;}else if(stream.match("--")){return chain(inBlock("comment","-->"));}else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else{return null;}}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{var isClose=stream.eat("/");tagName="";var c;while((c=stream.eat(/[^\s\u00a0=<>\"\'\/?]/)))tagName+=c;if(!tagName)return"error";type=isClose?"closeTag":"openTag";state.tokenize=inTag;return"tag";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");} |
+return ok?"atom":"error";}else{stream.eatWhile(/[^&<]/);return null;}} |
+function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag";}else if(ch=="="){type="equals";return null;}else if(ch=="<"){return"error";}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);state.stringStartCol=stream.column();return state.tokenize(stream,state);}else{stream.eatWhile(/[^\s\u00a0=<>\"\']/);return"word";}} |
+function inAttribute(quote){var closure=function(stream,state){while(!stream.eol()){if(stream.next()==quote){state.tokenize=inTag;break;}} |
+return"string";};closure.isInAttribute=true;return closure;} |
+function inBlock(style,terminator){return function(stream,state){while(!stream.eol()){if(stream.match(terminator)){state.tokenize=inText;break;} |
+stream.next();} |
+return style;};} |
+function doctype(depth){return function(stream,state){var ch;while((ch=stream.next())!=null){if(ch=="<"){state.tokenize=doctype(depth+1);return state.tokenize(stream,state);}else if(ch==">"){if(depth==1){state.tokenize=inText;break;}else{state.tokenize=doctype(depth-1);return state.tokenize(stream,state);}}} |
+return"meta";};} |
+var curState,curStream,setStyle;function pass(){for(var i=arguments.length-1;i>=0;i--)curState.cc.push(arguments[i]);} |
+function cont(){pass.apply(null,arguments);return true;} |
+function pushContext(tagName,startOfLine){var noIndent=Kludges.doNotIndent.hasOwnProperty(tagName)||(curState.context&&curState.context.noIndent);curState.context={prev:curState.context,tagName:tagName,indent:curState.indented,startOfLine:startOfLine,noIndent:noIndent};} |
+function popContext(){if(curState.context)curState.context=curState.context.prev;} |
+function element(type){if(type=="openTag"){curState.tagName=tagName;curState.tagStart=curStream.column();return cont(attributes,endtag(curState.startOfLine));}else if(type=="closeTag"){var err=false;if(curState.context){if(curState.context.tagName!=tagName){if(Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())){popContext();} |
+err=!curState.context||curState.context.tagName!=tagName;}}else{err=true;} |
+if(err)setStyle="error";return cont(endclosetag(err));} |
+return cont();} |
+function endtag(startOfLine){return function(type){var tagName=curState.tagName;curState.tagName=curState.tagStart=null;if(type=="selfcloseTag"||(type=="endTag"&&Kludges.autoSelfClosers.hasOwnProperty(tagName.toLowerCase()))){maybePopContext(tagName.toLowerCase());return cont();} |
+if(type=="endTag"){maybePopContext(tagName.toLowerCase());pushContext(tagName,startOfLine);return cont();} |
+return cont();};} |
+function endclosetag(err){return function(type){if(err)setStyle="error";if(type=="endTag"){popContext();return cont();} |
+setStyle="error";return cont(arguments.callee);};} |
+function maybePopContext(nextTagName){var parentTagName;while(true){if(!curState.context){return;} |
+parentTagName=curState.context.tagName.toLowerCase();if(!Kludges.contextGrabbers.hasOwnProperty(parentTagName)||!Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)){return;} |
+popContext();}} |
+function attributes(type){if(type=="word"){setStyle="attribute";return cont(attribute,attributes);} |
+if(type=="endTag"||type=="selfcloseTag")return pass();setStyle="error";return cont(attributes);} |
+function attribute(type){if(type=="equals")return cont(attvalue,attributes);if(!Kludges.allowMissing)setStyle="error";else if(type=="word"){setStyle="attribute";return cont(attribute,attributes);} |
+return(type=="endTag"||type=="selfcloseTag")?pass():cont();} |
+function attvalue(type){if(type=="string")return cont(attvaluemaybe);if(type=="word"&&Kludges.allowUnquoted){setStyle="string";return cont();} |
+setStyle="error";return(type=="endTag"||type=="selfCloseTag")?pass():cont();} |
+function attvaluemaybe(type){if(type=="string")return cont(attvaluemaybe);else return pass();} |
+return{startState:function(){return{tokenize:inText,cc:[],indented:0,startOfLine:true,tagName:null,tagStart:null,context:null};},token:function(stream,state){if(!state.tagName&&stream.sol()){state.startOfLine=true;state.indented=stream.indentation();} |
+if(stream.eatSpace())return null;setStyle=type=tagName=null;var style=state.tokenize(stream,state);state.type=type;if((style||type)&&style!="comment"){curState=state;curStream=stream;while(true){var comb=state.cc.pop()||element;if(comb(type||style))break;}} |
+state.startOfLine=false;return setStyle||style;},indent:function(state,textAfter,fullLine){var context=state.context;if(state.tokenize.isInAttribute){return state.stringStartCol+1;} |
+if((state.tokenize!=inTag&&state.tokenize!=inText)||context&&context.noIndent) |
+return fullLine?fullLine.match(/^(\s*)/)[0].length:0;if(state.tagName){if(multilineTagIndentPastTag) |
+return state.tagStart+state.tagName.length+2;else |
+return state.tagStart+indentUnit*multilineTagIndentFactor;} |
+if(alignCDATA&&/<!\[CDATA\[/.test(textAfter))return 0;if(context&&/^<\//.test(textAfter)) |
+context=context.prev;while(context&&!context.startOfLine) |
+context=context.prev;if(context)return context.indent+indentUnit;else return 0;},electricChars:"/",blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:parserConfig.htmlMode?"html":"xml",helperType:parserConfig.htmlMode?"html":"xml"};});CodeMirror.defineMIME("text/xml","xml");CodeMirror.defineMIME("application/xml","xml");if(!CodeMirror.mimeModes.hasOwnProperty("text/html")) |
+CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:true});;CodeMirror.defineMode("htmlmixed",function(config,parserConfig){var htmlMode=CodeMirror.getMode(config,{name:"xml",htmlMode:true});var cssMode=CodeMirror.getMode(config,"css");var scriptTypes=[],scriptTypesConf=parserConfig&&parserConfig.scriptTypes;scriptTypes.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:CodeMirror.getMode(config,"javascript")});if(scriptTypesConf)for(var i=0;i<scriptTypesConf.length;++i){var conf=scriptTypesConf[i];scriptTypes.push({matches:conf.matches,mode:conf.mode&&CodeMirror.getMode(config,conf.mode)});} |
+scriptTypes.push({matches:/./,mode:CodeMirror.getMode(config,"text/plain")});function html(stream,state){var tagName=state.htmlState.tagName;var style=htmlMode.token(stream,state.htmlState);if(tagName=="script"&&/\btag\b/.test(style)&&stream.current()==">"){var scriptType=stream.string.slice(Math.max(0,stream.pos-100),stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);scriptType=scriptType?scriptType[1]:"";if(scriptType&&/[\"\']/.test(scriptType.charAt(0)))scriptType=scriptType.slice(1,scriptType.length-1);for(var i=0;i<scriptTypes.length;++i){var tp=scriptTypes[i];if(typeof tp.matches=="string"?scriptType==tp.matches:tp.matches.test(scriptType)){if(tp.mode){state.token=script;state.localMode=tp.mode;state.localState=tp.mode.startState&&tp.mode.startState(htmlMode.indent(state.htmlState,""));} |
+break;}}}else if(tagName=="style"&&/\btag\b/.test(style)&&stream.current()==">"){state.token=css;state.localMode=cssMode;state.localState=cssMode.startState(htmlMode.indent(state.htmlState,""));} |
+return style;} |
+function maybeBackup(stream,pat,style){var cur=stream.current();var close=cur.search(pat),m;if(close>-1)stream.backUp(cur.length-close);else if(m=cur.match(/<\/?$/)){stream.backUp(cur.length);if(!stream.match(pat,false))stream.match(cur[0]);} |
+return style;} |
+function script(stream,state){if(stream.match(/^<\/\s*script\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);} |
+return maybeBackup(stream,/<\/\s*script\s*>/,state.localMode.token(stream,state.localState));} |
+function css(stream,state){if(stream.match(/^<\/\s*style\s*>/i,false)){state.token=html;state.localState=state.localMode=null;return html(stream,state);} |
+return maybeBackup(stream,/<\/\s*style\s*>/,cssMode.token(stream,state.localState));} |
+return{startState:function(){var state=htmlMode.startState();return{token:html,localMode:null,localState:null,htmlState:state};},copyState:function(state){if(state.localState) |
+var local=CodeMirror.copyState(state.localMode,state.localState);return{token:state.token,localMode:state.localMode,localState:local,htmlState:CodeMirror.copyState(htmlMode,state.htmlState)};},token:function(stream,state){return state.token(stream,state);},indent:function(state,textAfter){if(!state.localMode||/^\s*<\//.test(textAfter)) |
+return htmlMode.indent(state.htmlState,textAfter);else if(state.localMode.indent) |
+return state.localMode.indent(state.localState,textAfter);else |
+return CodeMirror.Pass;},electricChars:"/{}:",innerMode:function(state){return{state:state.localState||state.htmlState,mode:state.localMode||htmlMode};}};},"xml","javascript","css");CodeMirror.defineMIME("text/html","htmlmixed");;WebInspector={};WebInspector.CodeMirrorUtils={createTokenizer:function(mimeType) |
+{var mode=CodeMirror.getMode({indentUnit:2},mimeType);var state=CodeMirror.startState(mode);function tokenize(line,callback) |
+{var stream=new CodeMirror.StringStream(line);while(!stream.eol()){var style=mode.token(stream,state);var value=stream.current();callback(value,style,stream.start,stream.start+value.length);stream.start=stream.pos;}} |
+return tokenize;},convertTokenType:function(tokenType) |
+{if(tokenType.startsWith("js-variable")||tokenType.startsWith("js-property")||tokenType==="js-def") |
+return"javascript-ident";if(tokenType==="js-string-2") |
+return"javascript-regexp";if(tokenType==="js-number"||tokenType==="js-comment"||tokenType==="js-string"||tokenType==="js-keyword") |
+return"javascript-"+tokenType.substring("js-".length);return null;},overrideModeWithPrefixedTokens:function(modeName,tokenPrefix) |
+{var oldModeName=modeName+"-old";if(CodeMirror.modes[oldModeName]) |
+return;CodeMirror.defineMode(oldModeName,CodeMirror.modes[modeName]);CodeMirror.defineMode(modeName,modeConstructor);function modeConstructor(config,parserConfig) |
+{var innerConfig={};for(var i in parserConfig) |
+innerConfig[i]=parserConfig[i];innerConfig.name=oldModeName;var codeMirrorMode=CodeMirror.getMode(config,innerConfig);codeMirrorMode.name=modeName;codeMirrorMode.token=tokenOverride.bind(this,codeMirrorMode.token);return codeMirrorMode;} |
+function tokenOverride(superToken,stream,state) |
+{var token=superToken(stream,state);return token?tokenPrefix+token:token;}}} |
+WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("css-base","css-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("javascript","js-");WebInspector.CodeMirrorUtils.overrideModeWithPrefixedTokens("xml","xml-");;onmessage=function(event){if(!event.data.method) |
+return;self[event.data.method](event.data.params);};function format(params) |
+{var indentString=params.indentString||" ";var result={};if(params.mimeType==="text/html"){var formatter=new HTMLScriptFormatter(indentString);result=formatter.format(params.content);}else{result.mapping={original:[0],formatted:[0]};result.content=formatScript(params.content,result.mapping,0,0,indentString);} |
+postMessage(result);} |
+function getChunkCount(totalLength,chunkSize) |
+{if(totalLength<=chunkSize) |
+return 1;var remainder=totalLength%chunkSize;var partialLength=totalLength-remainder;return(partialLength/chunkSize)+(remainder?1:0);} |
function outline(params) |
-{ |
-const chunkSize = 100000; |
-const totalLength = params.content.length; |
-const lines = params.content.split("\n"); |
-const chunkCount = getChunkCount(totalLength, chunkSize); |
-var outlineChunk = []; |
-var previousIdentifier = null; |
-var previousToken = null; |
-var previousTokenType = null; |
-var currentChunk = 1; |
-var processedChunkCharacters = 0; |
-var addedFunction = false; |
-var isReadingArguments = false; |
-var argumentsText = ""; |
-var currentFunction = null; |
-var scriptTokenizer = new WebInspector.SourceJavaScriptTokenizer(); |
-scriptTokenizer.condition = scriptTokenizer.createInitialCondition(); |
- |
-for (var i = 0; i < lines.length; ++i) { |
-var line = lines[i]; |
-var column = 0; |
-scriptTokenizer.line = line; |
-do { |
-var newColumn = scriptTokenizer.nextToken(column); |
-var tokenType = scriptTokenizer.tokenType; |
-var tokenValue = line.substring(column, newColumn); |
-if (tokenType === "javascript-ident") { |
-previousIdentifier = tokenValue; |
-if (tokenValue && previousToken === "function") { |
- |
-currentFunction = { line: i, name: tokenValue }; |
-addedFunction = true; |
-previousIdentifier = null; |
-} |
-} else if (tokenType === "javascript-keyword") { |
-if (tokenValue === "function") { |
-if (previousIdentifier && (previousToken === "=" || previousToken === ":")) { |
- |
- |
-currentFunction = { line: i, name: previousIdentifier }; |
-addedFunction = true; |
-previousIdentifier = null; |
-} |
-} |
-} else if (tokenValue === "." && previousTokenType === "javascript-ident") |
-previousIdentifier += "."; |
-else if (tokenValue === "(" && addedFunction) |
-isReadingArguments = true; |
-if (isReadingArguments && tokenValue) |
-argumentsText += tokenValue; |
- |
-if (tokenValue === ")" && isReadingArguments) { |
-addedFunction = false; |
-isReadingArguments = false; |
-currentFunction.arguments = argumentsText.replace(/,[\r\n\s]*/g, ", ").replace(/([^,])[\r\n\s]+/g, "$1"); |
-argumentsText = ""; |
-outlineChunk.push(currentFunction); |
-} |
- |
-if (tokenValue.trim().length) { |
- |
-previousToken = tokenValue; |
-previousTokenType = tokenType; |
-} |
-processedChunkCharacters += newColumn - column; |
-column = newColumn; |
- |
-if (processedChunkCharacters >= chunkSize) { |
-postMessage({ chunk: outlineChunk, total: chunkCount, index: currentChunk++ }); |
-outlineChunk = []; |
-processedChunkCharacters = 0; |
-} |
-} while (column < line.length); |
-} |
-postMessage({ chunk: outlineChunk, total: chunkCount, index: chunkCount }); |
-} |
- |
-function formatScript(content, mapping, offset, formattedOffset, indentString) |
-{ |
-var formattedContent; |
-try { |
-var tokenizer = new Tokenizer(content); |
-var builder = new FormattedContentBuilder(tokenizer.content(), mapping, offset, formattedOffset, indentString); |
-var formatter = new JavaScriptFormatter(tokenizer, builder); |
-formatter.format(); |
-formattedContent = builder.content(); |
-} catch (e) { |
-formattedContent = content; |
-} |
-return formattedContent; |
-} |
- |
-WebInspector = {}; |
- |
-Array.prototype.keySet = function() |
-{ |
-var keys = {}; |
-for (var i = 0; i < this.length; ++i) |
-keys[this[i]] = true; |
-return keys; |
-}; |
- |
- |
- |
- |
- |
-WebInspector.SourceTokenizer = function() |
-{ |
- |
-this.tokenType = null; |
-} |
- |
-WebInspector.SourceTokenizer.prototype = { |
-set line(line) { |
-this._line = line; |
-}, |
- |
-set condition(condition) |
-{ |
-this._condition = condition; |
-}, |
- |
-get condition() |
-{ |
-return this._condition; |
-}, |
- |
-getLexCondition: function() |
-{ |
-return this.condition.lexCondition; |
-}, |
- |
-setLexCondition: function(lexCondition) |
-{ |
-this.condition.lexCondition = lexCondition; |
-}, |
- |
- |
-_charAt: function(cursor) |
-{ |
-return cursor < this._line.length ? this._line.charAt(cursor) : "\n"; |
-}, |
- |
-createInitialCondition: function() |
-{ |
-}, |
- |
- |
-nextToken: function(cursor) |
-{ |
-} |
-} |
- |
- |
-WebInspector.SourceTokenizer.Registry = function() { |
-this._tokenizers = {}; |
-this._tokenizerConstructors = { |
-"text/css": "SourceCSSTokenizer", |
-"text/html": "SourceHTMLTokenizer", |
-"text/javascript": "SourceJavaScriptTokenizer", |
-"text/x-scss": "SourceCSSTokenizer" |
-}; |
-} |
- |
- |
-WebInspector.SourceTokenizer.Registry.getInstance = function() |
-{ |
-if (!WebInspector.SourceTokenizer.Registry._instance) |
-WebInspector.SourceTokenizer.Registry._instance = new WebInspector.SourceTokenizer.Registry(); |
-return WebInspector.SourceTokenizer.Registry._instance; |
-} |
- |
-WebInspector.SourceTokenizer.Registry.prototype = { |
- |
-getTokenizer: function(mimeType) |
-{ |
-if (!this._tokenizerConstructors[mimeType]) |
-return null; |
-var tokenizerClass = this._tokenizerConstructors[mimeType]; |
-var tokenizer = this._tokenizers[tokenizerClass]; |
-if (!tokenizer) { |
-tokenizer = new WebInspector[tokenizerClass](); |
-this._tokenizers[tokenizerClass] = tokenizer; |
-} |
-return tokenizer; |
-} |
-} |
-; |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
-WebInspector.SourceHTMLTokenizer = function() |
-{ |
-WebInspector.SourceTokenizer.call(this); |
- |
- |
-this._lexConditions = { |
-INITIAL: 0, |
-COMMENT: 1, |
-DOCTYPE: 2, |
-TAG: 3, |
-DSTRING: 4, |
-SSTRING: 5 |
-}; |
-this.case_INITIAL = 1000; |
-this.case_COMMENT = 1001; |
-this.case_DOCTYPE = 1002; |
-this.case_TAG = 1003; |
-this.case_DSTRING = 1004; |
-this.case_SSTRING = 1005; |
- |
-this._parseConditions = { |
-INITIAL: 0, |
-ATTRIBUTE: 1, |
-ATTRIBUTE_VALUE: 2, |
-LINKIFY: 4, |
-A_NODE: 8, |
-SCRIPT: 16, |
-STYLE: 32 |
-}; |
- |
-this.condition = this.createInitialCondition(); |
-} |
- |
-WebInspector.SourceHTMLTokenizer.prototype = { |
-createInitialCondition: function() |
-{ |
-return { lexCondition: this._lexConditions.INITIAL, parseCondition: this._parseConditions.INITIAL }; |
-}, |
- |
-set line(line) { |
-if (this._condition.internalJavaScriptTokenizerCondition) { |
-var match = /<\/script/i.exec(line); |
-if (match) { |
-this._internalJavaScriptTokenizer.line = line.substring(0, match.index); |
-} else |
-this._internalJavaScriptTokenizer.line = line; |
-} else if (this._condition.internalCSSTokenizerCondition) { |
-var match = /<\/style/i.exec(line); |
-if (match) { |
-this._internalCSSTokenizer.line = line.substring(0, match.index); |
-} else |
-this._internalCSSTokenizer.line = line; |
-} |
-this._line = line; |
-}, |
- |
-_isExpectingAttribute: function() |
-{ |
-return this._condition.parseCondition & this._parseConditions.ATTRIBUTE; |
-}, |
- |
-_isExpectingAttributeValue: function() |
-{ |
-return this._condition.parseCondition & this._parseConditions.ATTRIBUTE_VALUE; |
-}, |
- |
-_setExpectingAttribute: function() |
-{ |
-if (this._isExpectingAttributeValue()) |
-this._condition.parseCondition ^= this._parseConditions.ATTRIBUTE_VALUE; |
-this._condition.parseCondition |= this._parseConditions.ATTRIBUTE; |
-}, |
- |
-_setExpectingAttributeValue: function() |
-{ |
-if (this._isExpectingAttribute()) |
-this._condition.parseCondition ^= this._parseConditions.ATTRIBUTE; |
-this._condition.parseCondition |= this._parseConditions.ATTRIBUTE_VALUE; |
-}, |
- |
- |
-_stringToken: function(cursor, stringEnds) |
-{ |
-if (!this._isExpectingAttributeValue()) { |
-this.tokenType = null; |
-return cursor; |
-} |
-this.tokenType = this._attrValueTokenType(); |
-if (stringEnds) |
-this._setExpectingAttribute(); |
-return cursor; |
-}, |
- |
-_attrValueTokenType: function() |
-{ |
-if (this._condition.parseCondition & this._parseConditions.LINKIFY) { |
-if (this._condition.parseCondition & this._parseConditions.A_NODE) |
-return "html-external-link"; |
-return "html-resource-link"; |
-} |
-return "html-attribute-value"; |
-}, |
- |
-get _internalJavaScriptTokenizer() |
-{ |
-return WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer("text/javascript"); |
-}, |
- |
-get _internalCSSTokenizer() |
-{ |
-return WebInspector.SourceTokenizer.Registry.getInstance().getTokenizer("text/css"); |
-}, |
- |
-scriptStarted: function(cursor) |
-{ |
-this._condition.internalJavaScriptTokenizerCondition = this._internalJavaScriptTokenizer.createInitialCondition(); |
-}, |
- |
-scriptEnded: function(cursor) |
-{ |
-}, |
- |
-styleSheetStarted: function(cursor) |
-{ |
-this._condition.internalCSSTokenizerCondition = this._internalCSSTokenizer.createInitialCondition(); |
-}, |
- |
-styleSheetEnded: function(cursor) |
-{ |
-}, |
- |
-nextToken: function(cursor) |
-{ |
-if (this._condition.internalJavaScriptTokenizerCondition) { |
- |
-this.line = this._line; |
-if (cursor !== this._internalJavaScriptTokenizer._line.length) { |
- |
-this._internalJavaScriptTokenizer.condition = this._condition.internalJavaScriptTokenizerCondition; |
-var result = this._internalJavaScriptTokenizer.nextToken(cursor); |
-this.tokenType = this._internalJavaScriptTokenizer.tokenType; |
-this._condition.internalJavaScriptTokenizerCondition = this._internalJavaScriptTokenizer.condition; |
-return result; |
-} else if (cursor !== this._line.length) |
-delete this._condition.internalJavaScriptTokenizerCondition; |
-} else if (this._condition.internalCSSTokenizerCondition) { |
- |
-this.line = this._line; |
-if (cursor !== this._internalCSSTokenizer._line.length) { |
- |
-this._internalCSSTokenizer.condition = this._condition.internalCSSTokenizerCondition; |
-var result = this._internalCSSTokenizer.nextToken(cursor); |
-this.tokenType = this._internalCSSTokenizer.tokenType; |
-this._condition.internalCSSTokenizerCondition = this._internalCSSTokenizer.condition; |
-return result; |
-} else if (cursor !== this._line.length) |
-delete this._condition.internalCSSTokenizerCondition; |
-} |
- |
-var cursorOnEnter = cursor; |
-var gotoCase = 1; |
-var YYMARKER; |
-while (1) { |
-switch (gotoCase) |
- |
- |
-{ |
-case 1: var yych; |
-var yyaccept = 0; |
-if (this.getLexCondition() < 3) { |
-if (this.getLexCondition() < 1) { |
-{ gotoCase = this.case_INITIAL; continue; }; |
-} else { |
-if (this.getLexCondition() < 2) { |
-{ gotoCase = this.case_COMMENT; continue; }; |
-} else { |
-{ gotoCase = this.case_DOCTYPE; continue; }; |
-} |
-} |
-} else { |
-if (this.getLexCondition() < 4) { |
-{ gotoCase = this.case_TAG; continue; }; |
-} else { |
-if (this.getLexCondition() < 5) { |
-{ gotoCase = this.case_DSTRING; continue; }; |
-} else { |
-{ gotoCase = this.case_SSTRING; continue; }; |
-} |
-} |
-} |
- |
-case this.case_COMMENT: |
- |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 4; continue; }; |
-{ gotoCase = 3; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 4; continue; }; |
-if (yych == '-') { gotoCase = 6; continue; }; |
-{ gotoCase = 3; continue; }; |
-} |
-case 2: |
-{ this.tokenType = "html-comment"; return cursor; } |
-case 3: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 9; continue; }; |
-case 4: |
-++cursor; |
-case 5: |
-{ this.tokenType = null; return cursor; } |
-case 6: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych != '-') { gotoCase = 5; continue; }; |
-case 7: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '>') { gotoCase = 10; continue; }; |
-case 8: |
-yyaccept = 0; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 9: |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 2; continue; }; |
-{ gotoCase = 8; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 2; continue; }; |
-if (yych == '-') { gotoCase = 12; continue; }; |
-{ gotoCase = 8; continue; }; |
-} |
-case 10: |
-++cursor; |
-this.setLexCondition(this._lexConditions.INITIAL); |
-{ this.tokenType = "html-comment"; return cursor; } |
-case 12: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '-') { gotoCase = 7; continue; }; |
-cursor = YYMARKER; |
-if (yyaccept <= 0) { |
-{ gotoCase = 2; continue; }; |
-} else { |
-{ gotoCase = 5; continue; }; |
-} |
- |
-case this.case_DOCTYPE: |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 18; continue; }; |
-{ gotoCase = 17; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 18; continue; }; |
-if (yych == '>') { gotoCase = 20; continue; }; |
-{ gotoCase = 17; continue; }; |
-} |
-case 16: |
-{ this.tokenType = "html-doctype"; return cursor; } |
-case 17: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 23; continue; }; |
-case 18: |
-++cursor; |
-{ this.tokenType = null; return cursor; } |
-case 20: |
-++cursor; |
-this.setLexCondition(this._lexConditions.INITIAL); |
-{ this.tokenType = "html-doctype"; return cursor; } |
-case 22: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 23: |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 16; continue; }; |
-{ gotoCase = 22; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 16; continue; }; |
-if (yych == '>') { gotoCase = 16; continue; }; |
-{ gotoCase = 22; continue; }; |
-} |
- |
-case this.case_DSTRING: |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 28; continue; }; |
-{ gotoCase = 27; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 28; continue; }; |
-if (yych == '"') { gotoCase = 30; continue; }; |
-{ gotoCase = 27; continue; }; |
-} |
-case 26: |
-{ return this._stringToken(cursor); } |
-case 27: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 34; continue; }; |
-case 28: |
-++cursor; |
-{ this.tokenType = null; return cursor; } |
-case 30: |
-++cursor; |
-case 31: |
-this.setLexCondition(this._lexConditions.TAG); |
-{ return this._stringToken(cursor, true); } |
-case 32: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 31; continue; }; |
-case 33: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 34: |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 26; continue; }; |
-{ gotoCase = 33; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 26; continue; }; |
-if (yych == '"') { gotoCase = 32; continue; }; |
-{ gotoCase = 33; continue; }; |
-} |
- |
-case this.case_INITIAL: |
-yych = this._charAt(cursor); |
-if (yych == '<') { gotoCase = 39; continue; }; |
-++cursor; |
-{ this.tokenType = null; return cursor; } |
-case 39: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= '/') { |
-if (yych == '!') { gotoCase = 44; continue; }; |
-if (yych >= '/') { gotoCase = 41; continue; }; |
-} else { |
-if (yych <= 'S') { |
-if (yych >= 'S') { gotoCase = 42; continue; }; |
-} else { |
-if (yych == 's') { gotoCase = 42; continue; }; |
-} |
-} |
-case 40: |
-this.setLexCondition(this._lexConditions.TAG); |
-{ |
-if (this._condition.parseCondition & (this._parseConditions.SCRIPT | this._parseConditions.STYLE)) { |
- |
-this.setLexCondition(this._lexConditions.INITIAL); |
-this.tokenType = null; |
-return cursor; |
-} |
- |
-this._condition.parseCondition = this._parseConditions.INITIAL; |
-this.tokenType = "html-tag"; |
-return cursor; |
-} |
-case 41: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == 'S') { gotoCase = 73; continue; }; |
-if (yych == 's') { gotoCase = 73; continue; }; |
-{ gotoCase = 40; continue; }; |
-case 42: |
-yych = this._charAt(++cursor); |
-if (yych <= 'T') { |
-if (yych == 'C') { gotoCase = 62; continue; }; |
-if (yych >= 'T') { gotoCase = 63; continue; }; |
-} else { |
-if (yych <= 'c') { |
-if (yych >= 'c') { gotoCase = 62; continue; }; |
-} else { |
-if (yych == 't') { gotoCase = 63; continue; }; |
-} |
-} |
-case 43: |
-cursor = YYMARKER; |
-{ gotoCase = 40; continue; }; |
-case 44: |
-yych = this._charAt(++cursor); |
-if (yych <= 'C') { |
-if (yych != '-') { gotoCase = 43; continue; }; |
-} else { |
-if (yych <= 'D') { gotoCase = 46; continue; }; |
-if (yych == 'd') { gotoCase = 46; continue; }; |
-{ gotoCase = 43; continue; }; |
-} |
-yych = this._charAt(++cursor); |
-if (yych == '-') { gotoCase = 54; continue; }; |
-{ gotoCase = 43; continue; }; |
-case 46: |
-yych = this._charAt(++cursor); |
-if (yych == 'O') { gotoCase = 47; continue; }; |
-if (yych != 'o') { gotoCase = 43; continue; }; |
-case 47: |
-yych = this._charAt(++cursor); |
-if (yych == 'C') { gotoCase = 48; continue; }; |
-if (yych != 'c') { gotoCase = 43; continue; }; |
-case 48: |
-yych = this._charAt(++cursor); |
-if (yych == 'T') { gotoCase = 49; continue; }; |
-if (yych != 't') { gotoCase = 43; continue; }; |
-case 49: |
-yych = this._charAt(++cursor); |
-if (yych == 'Y') { gotoCase = 50; continue; }; |
-if (yych != 'y') { gotoCase = 43; continue; }; |
-case 50: |
-yych = this._charAt(++cursor); |
-if (yych == 'P') { gotoCase = 51; continue; }; |
-if (yych != 'p') { gotoCase = 43; continue; }; |
-case 51: |
-yych = this._charAt(++cursor); |
-if (yych == 'E') { gotoCase = 52; continue; }; |
-if (yych != 'e') { gotoCase = 43; continue; }; |
-case 52: |
-++cursor; |
-this.setLexCondition(this._lexConditions.DOCTYPE); |
-{ this.tokenType = "html-doctype"; return cursor; } |
-case 54: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 57; continue; }; |
-{ gotoCase = 54; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 57; continue; }; |
-if (yych != '-') { gotoCase = 54; continue; }; |
-} |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '-') { gotoCase = 59; continue; }; |
-{ gotoCase = 43; continue; }; |
-case 57: |
-++cursor; |
-this.setLexCondition(this._lexConditions.COMMENT); |
-{ this.tokenType = "html-comment"; return cursor; } |
-case 59: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych != '>') { gotoCase = 54; continue; }; |
-++cursor; |
-{ this.tokenType = "html-comment"; return cursor; } |
-case 62: |
-yych = this._charAt(++cursor); |
-if (yych == 'R') { gotoCase = 68; continue; }; |
-if (yych == 'r') { gotoCase = 68; continue; }; |
-{ gotoCase = 43; continue; }; |
-case 63: |
-yych = this._charAt(++cursor); |
-if (yych == 'Y') { gotoCase = 64; continue; }; |
-if (yych != 'y') { gotoCase = 43; continue; }; |
-case 64: |
-yych = this._charAt(++cursor); |
-if (yych == 'L') { gotoCase = 65; continue; }; |
-if (yych != 'l') { gotoCase = 43; continue; }; |
-case 65: |
-yych = this._charAt(++cursor); |
-if (yych == 'E') { gotoCase = 66; continue; }; |
-if (yych != 'e') { gotoCase = 43; continue; }; |
-case 66: |
-++cursor; |
-this.setLexCondition(this._lexConditions.TAG); |
-{ |
-if (this._condition.parseCondition & this._parseConditions.STYLE) { |
- |
-this.setLexCondition(this._lexConditions.INITIAL); |
-this.tokenType = null; |
-return cursor; |
-} |
-this.tokenType = "html-tag"; |
-this._condition.parseCondition = this._parseConditions.STYLE; |
-this._setExpectingAttribute(); |
-return cursor; |
-} |
-case 68: |
-yych = this._charAt(++cursor); |
-if (yych == 'I') { gotoCase = 69; continue; }; |
-if (yych != 'i') { gotoCase = 43; continue; }; |
-case 69: |
-yych = this._charAt(++cursor); |
-if (yych == 'P') { gotoCase = 70; continue; }; |
-if (yych != 'p') { gotoCase = 43; continue; }; |
-case 70: |
-yych = this._charAt(++cursor); |
-if (yych == 'T') { gotoCase = 71; continue; }; |
-if (yych != 't') { gotoCase = 43; continue; }; |
-case 71: |
-++cursor; |
-this.setLexCondition(this._lexConditions.TAG); |
-{ |
-if (this._condition.parseCondition & this._parseConditions.SCRIPT) { |
- |
-this.setLexCondition(this._lexConditions.INITIAL); |
-this.tokenType = null; |
-return cursor; |
-} |
-this.tokenType = "html-tag"; |
-this._condition.parseCondition = this._parseConditions.SCRIPT; |
-this._setExpectingAttribute(); |
-return cursor; |
-} |
-case 73: |
-yych = this._charAt(++cursor); |
-if (yych <= 'T') { |
-if (yych == 'C') { gotoCase = 75; continue; }; |
-if (yych <= 'S') { gotoCase = 43; continue; }; |
-} else { |
-if (yych <= 'c') { |
-if (yych <= 'b') { gotoCase = 43; continue; }; |
-{ gotoCase = 75; continue; }; |
-} else { |
-if (yych != 't') { gotoCase = 43; continue; }; |
-} |
-} |
-yych = this._charAt(++cursor); |
-if (yych == 'Y') { gotoCase = 81; continue; }; |
-if (yych == 'y') { gotoCase = 81; continue; }; |
-{ gotoCase = 43; continue; }; |
-case 75: |
-yych = this._charAt(++cursor); |
-if (yych == 'R') { gotoCase = 76; continue; }; |
-if (yych != 'r') { gotoCase = 43; continue; }; |
-case 76: |
-yych = this._charAt(++cursor); |
-if (yych == 'I') { gotoCase = 77; continue; }; |
-if (yych != 'i') { gotoCase = 43; continue; }; |
-case 77: |
-yych = this._charAt(++cursor); |
-if (yych == 'P') { gotoCase = 78; continue; }; |
-if (yych != 'p') { gotoCase = 43; continue; }; |
-case 78: |
-yych = this._charAt(++cursor); |
-if (yych == 'T') { gotoCase = 79; continue; }; |
-if (yych != 't') { gotoCase = 43; continue; }; |
-case 79: |
-++cursor; |
-this.setLexCondition(this._lexConditions.TAG); |
-{ |
-this.tokenType = "html-tag"; |
-this._condition.parseCondition = this._parseConditions.INITIAL; |
-this.scriptEnded(cursor - 8); |
-return cursor; |
-} |
-case 81: |
-yych = this._charAt(++cursor); |
-if (yych == 'L') { gotoCase = 82; continue; }; |
-if (yych != 'l') { gotoCase = 43; continue; }; |
-case 82: |
-yych = this._charAt(++cursor); |
-if (yych == 'E') { gotoCase = 83; continue; }; |
-if (yych != 'e') { gotoCase = 43; continue; }; |
-case 83: |
-++cursor; |
-this.setLexCondition(this._lexConditions.TAG); |
-{ |
-this.tokenType = "html-tag"; |
-this._condition.parseCondition = this._parseConditions.INITIAL; |
-this.styleSheetEnded(cursor - 7); |
-return cursor; |
-} |
- |
-case this.case_SSTRING: |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 89; continue; }; |
-{ gotoCase = 88; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 89; continue; }; |
-if (yych == '\'') { gotoCase = 91; continue; }; |
-{ gotoCase = 88; continue; }; |
-} |
-case 87: |
-{ return this._stringToken(cursor); } |
-case 88: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 95; continue; }; |
-case 89: |
-++cursor; |
-{ this.tokenType = null; return cursor; } |
-case 91: |
-++cursor; |
-case 92: |
-this.setLexCondition(this._lexConditions.TAG); |
-{ return this._stringToken(cursor, true); } |
-case 93: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 92; continue; }; |
-case 94: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 95: |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 87; continue; }; |
-{ gotoCase = 94; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 87; continue; }; |
-if (yych == '\'') { gotoCase = 93; continue; }; |
-{ gotoCase = 94; continue; }; |
-} |
- |
-case this.case_TAG: |
-yych = this._charAt(cursor); |
-if (yych <= '&') { |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 100; continue; }; |
-if (yych >= '\r') { gotoCase = 100; continue; }; |
-} else { |
-if (yych <= ' ') { |
-if (yych >= ' ') { gotoCase = 100; continue; }; |
-} else { |
-if (yych == '"') { gotoCase = 102; continue; }; |
-} |
-} |
-} else { |
-if (yych <= '>') { |
-if (yych <= ';') { |
-if (yych <= '\'') { gotoCase = 103; continue; }; |
-} else { |
-if (yych <= '<') { gotoCase = 100; continue; }; |
-if (yych <= '=') { gotoCase = 104; continue; }; |
-{ gotoCase = 106; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych >= '[') { gotoCase = 100; continue; }; |
-} else { |
-if (yych == ']') { gotoCase = 100; continue; }; |
-} |
-} |
-} |
-++cursor; |
-yych = this._charAt(cursor); |
-{ gotoCase = 119; continue; }; |
-case 99: |
-{ |
-if (this._condition.parseCondition === this._parseConditions.SCRIPT || this._condition.parseCondition === this._parseConditions.STYLE) { |
- |
-this.tokenType = null; |
-return cursor; |
-} |
- |
-if (this._condition.parseCondition === this._parseConditions.INITIAL) { |
-this.tokenType = "html-tag"; |
-this._setExpectingAttribute(); |
-var token = this._line.substring(cursorOnEnter, cursor); |
-if (token === "a") |
-this._condition.parseCondition |= this._parseConditions.A_NODE; |
-else if (this._condition.parseCondition & this._parseConditions.A_NODE) |
-this._condition.parseCondition ^= this._parseConditions.A_NODE; |
-} else if (this._isExpectingAttribute()) { |
-var token = this._line.substring(cursorOnEnter, cursor); |
-if (token === "href" || token === "src") |
-this._condition.parseCondition |= this._parseConditions.LINKIFY; |
-else if (this._condition.parseCondition |= this._parseConditions.LINKIFY) |
-this._condition.parseCondition ^= this._parseConditions.LINKIFY; |
-this.tokenType = "html-attribute-name"; |
-} else if (this._isExpectingAttributeValue()) |
-this.tokenType = this._attrValueTokenType(); |
-else |
-this.tokenType = null; |
-return cursor; |
-} |
-case 100: |
-++cursor; |
-{ this.tokenType = null; return cursor; } |
-case 102: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 115; continue; }; |
-case 103: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 109; continue; }; |
-case 104: |
-++cursor; |
-{ |
-if (this._isExpectingAttribute()) |
-this._setExpectingAttributeValue(); |
-this.tokenType = null; |
-return cursor; |
-} |
-case 106: |
-++cursor; |
-this.setLexCondition(this._lexConditions.INITIAL); |
-{ |
-this.tokenType = "html-tag"; |
-if (this._condition.parseCondition & this._parseConditions.SCRIPT) { |
-this.scriptStarted(cursor); |
- |
-return cursor; |
-} |
- |
-if (this._condition.parseCondition & this._parseConditions.STYLE) { |
-this.styleSheetStarted(cursor); |
- |
-return cursor; |
-} |
- |
-this._condition.parseCondition = this._parseConditions.INITIAL; |
-return cursor; |
-} |
-case 108: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 109: |
-if (yych <= '\f') { |
-if (yych != '\n') { gotoCase = 108; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 110; continue; }; |
-if (yych == '\'') { gotoCase = 112; continue; }; |
-{ gotoCase = 108; continue; }; |
-} |
-case 110: |
-++cursor; |
-this.setLexCondition(this._lexConditions.SSTRING); |
-{ return this._stringToken(cursor); } |
-case 112: |
-++cursor; |
-{ return this._stringToken(cursor, true); } |
-case 114: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 115: |
-if (yych <= '\f') { |
-if (yych != '\n') { gotoCase = 114; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 116; continue; }; |
-if (yych == '"') { gotoCase = 112; continue; }; |
-{ gotoCase = 114; continue; }; |
-} |
-case 116: |
-++cursor; |
-this.setLexCondition(this._lexConditions.DSTRING); |
-{ return this._stringToken(cursor); } |
-case 118: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 119: |
-if (yych <= '"') { |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 99; continue; }; |
-if (yych <= '\f') { gotoCase = 118; continue; }; |
-{ gotoCase = 99; continue; }; |
-} else { |
-if (yych == ' ') { gotoCase = 99; continue; }; |
-if (yych <= '!') { gotoCase = 118; continue; }; |
-{ gotoCase = 99; continue; }; |
-} |
-} else { |
-if (yych <= '>') { |
-if (yych == '\'') { gotoCase = 99; continue; }; |
-if (yych <= ';') { gotoCase = 118; continue; }; |
-{ gotoCase = 99; continue; }; |
-} else { |
-if (yych <= '[') { |
-if (yych <= 'Z') { gotoCase = 118; continue; }; |
-{ gotoCase = 99; continue; }; |
-} else { |
-if (yych == ']') { gotoCase = 99; continue; }; |
-{ gotoCase = 118; continue; }; |
-} |
-} |
-} |
-} |
- |
-} |
-}, |
- |
-__proto__: WebInspector.SourceTokenizer.prototype |
-} |
-; |
- |
- |
- |
- |
- |
- |
-WebInspector.SourceJavaScriptTokenizer = function() |
-{ |
-WebInspector.SourceTokenizer.call(this); |
- |
-this._lexConditions = { |
-DIV: 0, |
-NODIV: 1, |
-COMMENT: 2, |
-DSTRING: 3, |
-SSTRING: 4, |
-REGEX: 5 |
-}; |
- |
-this.case_DIV = 1000; |
-this.case_NODIV = 1001; |
-this.case_COMMENT = 1002; |
-this.case_DSTRING = 1003; |
-this.case_SSTRING = 1004; |
-this.case_REGEX = 1005; |
- |
-this.condition = this.createInitialCondition(); |
-} |
- |
-WebInspector.SourceJavaScriptTokenizer.Keywords = [ |
-"null", "true", "false", "break", "case", "catch", "const", "default", "finally", "for", |
-"instanceof", "new", "var", "continue", "function", "return", "void", "delete", "if", |
-"this", "do", "while", "else", "in", "switch", "throw", "try", "typeof", "debugger", |
-"class", "enum", "export", "extends", "import", "super", "get", "set", "with" |
-].keySet(); |
- |
-WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties = { |
-"NaN": "javascript-nan", |
-"undefined": "javascript-undef", |
-"Infinity": "javascript-inf" |
-}; |
- |
-WebInspector.SourceJavaScriptTokenizer.prototype = { |
-createInitialCondition: function() |
-{ |
-return { lexCondition: this._lexConditions.NODIV }; |
-}, |
- |
-nextToken: function(cursor) |
-{ |
-var cursorOnEnter = cursor; |
-var gotoCase = 1; |
-var YYMARKER; |
-while (1) { |
-switch (gotoCase) |
- |
- |
-{ |
-case 1: var yych; |
-var yyaccept = 0; |
-if (this.getLexCondition() < 3) { |
-if (this.getLexCondition() < 1) { |
-{ gotoCase = this.case_DIV; continue; }; |
-} else { |
-if (this.getLexCondition() < 2) { |
-{ gotoCase = this.case_NODIV; continue; }; |
-} else { |
-{ gotoCase = this.case_COMMENT; continue; }; |
-} |
-} |
-} else { |
-if (this.getLexCondition() < 4) { |
-{ gotoCase = this.case_DSTRING; continue; }; |
-} else { |
-if (this.getLexCondition() < 5) { |
-{ gotoCase = this.case_SSTRING; continue; }; |
-} else { |
-{ gotoCase = this.case_REGEX; continue; }; |
-} |
-} |
-} |
- |
-case this.case_COMMENT: |
- |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 4; continue; }; |
-{ gotoCase = 3; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 4; continue; }; |
-if (yych == '*') { gotoCase = 6; continue; }; |
-{ gotoCase = 3; continue; }; |
-} |
-case 2: |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 3: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 12; continue; }; |
-case 4: |
-++cursor; |
-{ this.tokenType = null; return cursor; } |
-case 6: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == '*') { gotoCase = 9; continue; }; |
-if (yych != '/') { gotoCase = 11; continue; }; |
-case 7: |
-++cursor; |
-this.setLexCondition(this._lexConditions.NODIV); |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 9: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '*') { gotoCase = 9; continue; }; |
-if (yych == '/') { gotoCase = 7; continue; }; |
-case 11: |
-yyaccept = 0; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 12: |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 2; continue; }; |
-{ gotoCase = 11; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 2; continue; }; |
-if (yych == '*') { gotoCase = 9; continue; }; |
-{ gotoCase = 11; continue; }; |
-} |
- |
-case this.case_DIV: |
-yych = this._charAt(cursor); |
-if (yych <= '9') { |
-if (yych <= '\'') { |
-if (yych <= '"') { |
-if (yych <= String.fromCharCode(0x1F)) { gotoCase = 15; continue; }; |
-if (yych <= ' ') { gotoCase = 17; continue; }; |
-if (yych <= '!') { gotoCase = 19; continue; }; |
-{ gotoCase = 21; continue; }; |
-} else { |
-if (yych <= '$') { |
-if (yych >= '$') { gotoCase = 22; continue; }; |
-} else { |
-if (yych <= '%') { gotoCase = 24; continue; }; |
-if (yych <= '&') { gotoCase = 25; continue; }; |
-{ gotoCase = 26; continue; }; |
-} |
-} |
-} else { |
-if (yych <= ',') { |
-if (yych <= ')') { |
-if (yych <= '(') { gotoCase = 27; continue; }; |
-{ gotoCase = 28; continue; }; |
-} else { |
-if (yych <= '*') { gotoCase = 30; continue; }; |
-if (yych <= '+') { gotoCase = 31; continue; }; |
-{ gotoCase = 27; continue; }; |
-} |
-} else { |
-if (yych <= '.') { |
-if (yych <= '-') { gotoCase = 32; continue; }; |
-{ gotoCase = 33; continue; }; |
-} else { |
-if (yych <= '/') { gotoCase = 34; continue; }; |
-if (yych <= '0') { gotoCase = 36; continue; }; |
-{ gotoCase = 38; continue; }; |
-} |
-} |
-} |
-} else { |
-if (yych <= '\\') { |
-if (yych <= '>') { |
-if (yych <= ';') { gotoCase = 27; continue; }; |
-if (yych <= '<') { gotoCase = 39; continue; }; |
-if (yych <= '=') { gotoCase = 40; continue; }; |
-{ gotoCase = 41; continue; }; |
-} else { |
-if (yych <= '@') { |
-if (yych <= '?') { gotoCase = 27; continue; }; |
-} else { |
-if (yych <= 'Z') { gotoCase = 22; continue; }; |
-if (yych <= '[') { gotoCase = 27; continue; }; |
-{ gotoCase = 42; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'z') { |
-if (yych <= '^') { |
-if (yych <= ']') { gotoCase = 27; continue; }; |
-{ gotoCase = 43; continue; }; |
-} else { |
-if (yych != '`') { gotoCase = 22; continue; }; |
-} |
-} else { |
-if (yych <= '|') { |
-if (yych <= '{') { gotoCase = 27; continue; }; |
-{ gotoCase = 44; continue; }; |
-} else { |
-if (yych <= '~') { gotoCase = 27; continue; }; |
-if (yych >= 0x80) { gotoCase = 22; continue; }; |
-} |
-} |
-} |
-} |
-case 15: |
-++cursor; |
-case 16: |
-{ this.tokenType = null; return cursor; } |
-case 17: |
-++cursor; |
-yych = this._charAt(cursor); |
-{ gotoCase = 119; continue; }; |
-case 18: |
-{this.tokenType = "whitespace"; return cursor; } |
-case 19: |
-++cursor; |
-if ((yych = this._charAt(cursor)) == '=') { gotoCase = 117; continue; }; |
-case 20: |
-this.setLexCondition(this._lexConditions.NODIV); |
-{ |
-var token = this._line.charAt(cursorOnEnter); |
-if (token === "{") |
-this.tokenType = "block-start"; |
-else if (token === "}") |
-this.tokenType = "block-end"; |
-else if (token === "(") |
-this.tokenType = "brace-start"; |
-else this.tokenType = null; |
-return cursor; |
-} |
-case 21: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == '\n') { gotoCase = 16; continue; }; |
-if (yych == '\r') { gotoCase = 16; continue; }; |
-{ gotoCase = 109; continue; }; |
-case 22: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 52; continue; }; |
-case 23: |
-{ |
-var token = this._line.substring(cursorOnEnter, cursor); |
-if (WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties.hasOwnProperty(token)) |
-this.tokenType = WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties[token]; |
-else if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__") |
-this.tokenType = "javascript-keyword"; |
-else |
-this.tokenType = "javascript-ident"; |
-return cursor; |
-} |
-case 24: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 25: |
-yych = this._charAt(++cursor); |
-if (yych == '&') { gotoCase = 45; continue; }; |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 26: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == '\n') { gotoCase = 16; continue; }; |
-if (yych == '\r') { gotoCase = 16; continue; }; |
-{ gotoCase = 98; continue; }; |
-case 27: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 20; continue; }; |
-case 28: |
-++cursor; |
-{ this.tokenType = "brace-end"; return cursor; } |
-case 30: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 31: |
-yych = this._charAt(++cursor); |
-if (yych == '+') { gotoCase = 45; continue; }; |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 32: |
-yych = this._charAt(++cursor); |
-if (yych == '-') { gotoCase = 45; continue; }; |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 33: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 20; continue; }; |
-if (yych <= '9') { gotoCase = 91; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 34: |
-yyaccept = 2; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= '.') { |
-if (yych == '*') { gotoCase = 80; continue; }; |
-} else { |
-if (yych <= '/') { gotoCase = 82; continue; }; |
-if (yych == '=') { gotoCase = 79; continue; }; |
-} |
-case 35: |
-this.setLexCondition(this._lexConditions.NODIV); |
-{ this.tokenType = null; return cursor; } |
-case 36: |
-yyaccept = 3; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= 'E') { |
-if (yych <= '/') { |
-if (yych == '.') { gotoCase = 65; continue; }; |
-} else { |
-if (yych <= '7') { gotoCase = 74; continue; }; |
-if (yych >= 'E') { gotoCase = 64; continue; }; |
-} |
-} else { |
-if (yych <= 'd') { |
-if (yych == 'X') { gotoCase = 76; continue; }; |
-} else { |
-if (yych <= 'e') { gotoCase = 64; continue; }; |
-if (yych == 'x') { gotoCase = 76; continue; }; |
-} |
-} |
-case 37: |
-{ this.tokenType = "javascript-number"; return cursor; } |
-case 38: |
-yyaccept = 3; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= '9') { |
-if (yych == '.') { gotoCase = 65; continue; }; |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-{ gotoCase = 62; continue; }; |
-} else { |
-if (yych <= 'E') { |
-if (yych <= 'D') { gotoCase = 37; continue; }; |
-{ gotoCase = 64; continue; }; |
-} else { |
-if (yych == 'e') { gotoCase = 64; continue; }; |
-{ gotoCase = 37; continue; }; |
-} |
-} |
-case 39: |
-yych = this._charAt(++cursor); |
-if (yych <= ';') { gotoCase = 20; continue; }; |
-if (yych <= '<') { gotoCase = 61; continue; }; |
-if (yych <= '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 40: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 60; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 41: |
-yych = this._charAt(++cursor); |
-if (yych <= '<') { gotoCase = 20; continue; }; |
-if (yych <= '=') { gotoCase = 45; continue; }; |
-if (yych <= '>') { gotoCase = 58; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 42: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == 'u') { gotoCase = 46; continue; }; |
-{ gotoCase = 16; continue; }; |
-case 43: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 44: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-if (yych != '|') { gotoCase = 20; continue; }; |
-case 45: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 20; continue; }; |
-case 46: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 48; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 48; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych <= 'f') { gotoCase = 48; continue; }; |
-} |
-case 47: |
-cursor = YYMARKER; |
-if (yyaccept <= 1) { |
-if (yyaccept <= 0) { |
-{ gotoCase = 16; continue; }; |
-} else { |
-{ gotoCase = 23; continue; }; |
-} |
-} else { |
-if (yyaccept <= 2) { |
-{ gotoCase = 35; continue; }; |
-} else { |
-{ gotoCase = 37; continue; }; |
-} |
-} |
-case 48: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 49; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 49: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 50; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 50: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 51; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 51: |
-yyaccept = 1; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 52: |
-if (yych <= '[') { |
-if (yych <= '/') { |
-if (yych == '$') { gotoCase = 51; continue; }; |
-{ gotoCase = 23; continue; }; |
-} else { |
-if (yych <= '9') { gotoCase = 51; continue; }; |
-if (yych <= '@') { gotoCase = 23; continue; }; |
-if (yych <= 'Z') { gotoCase = 51; continue; }; |
-{ gotoCase = 23; continue; }; |
-} |
-} else { |
-if (yych <= '_') { |
-if (yych <= '\\') { gotoCase = 53; continue; }; |
-if (yych <= '^') { gotoCase = 23; continue; }; |
-{ gotoCase = 51; continue; }; |
-} else { |
-if (yych <= '`') { gotoCase = 23; continue; }; |
-if (yych <= 'z') { gotoCase = 51; continue; }; |
-if (yych <= String.fromCharCode(0x7F)) { gotoCase = 23; continue; }; |
-{ gotoCase = 51; continue; }; |
-} |
-} |
-case 53: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych != 'u') { gotoCase = 47; continue; }; |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 55; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 55: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 56; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 56: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 57; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 57: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 51; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 51; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych <= 'f') { gotoCase = 51; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 58: |
-yych = this._charAt(++cursor); |
-if (yych <= '<') { gotoCase = 20; continue; }; |
-if (yych <= '=') { gotoCase = 45; continue; }; |
-if (yych >= '?') { gotoCase = 20; continue; }; |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 60: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 61: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 62: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '9') { |
-if (yych == '.') { gotoCase = 65; continue; }; |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-{ gotoCase = 62; continue; }; |
-} else { |
-if (yych <= 'E') { |
-if (yych <= 'D') { gotoCase = 37; continue; }; |
-} else { |
-if (yych != 'e') { gotoCase = 37; continue; }; |
-} |
-} |
-case 64: |
-yych = this._charAt(++cursor); |
-if (yych <= ',') { |
-if (yych == '+') { gotoCase = 71; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= '-') { gotoCase = 71; continue; }; |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 72; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 65: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'D') { |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '9') { gotoCase = 65; continue; }; |
-{ gotoCase = 37; continue; }; |
-} else { |
-if (yych <= 'E') { gotoCase = 67; continue; }; |
-if (yych != 'e') { gotoCase = 37; continue; }; |
-} |
-case 67: |
-yych = this._charAt(++cursor); |
-if (yych <= ',') { |
-if (yych != '+') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= '-') { gotoCase = 68; continue; }; |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 69; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 68: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-case 69: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '9') { gotoCase = 69; continue; }; |
-{ gotoCase = 37; continue; }; |
-case 71: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-case 72: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '9') { gotoCase = 72; continue; }; |
-{ gotoCase = 37; continue; }; |
-case 74: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '7') { gotoCase = 74; continue; }; |
-{ gotoCase = 37; continue; }; |
-case 76: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 77; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 77: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '9') { gotoCase = 77; continue; }; |
-{ gotoCase = 37; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 77; continue; }; |
-if (yych <= '`') { gotoCase = 37; continue; }; |
-if (yych <= 'f') { gotoCase = 77; continue; }; |
-{ gotoCase = 37; continue; }; |
-} |
-case 79: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 35; continue; }; |
-case 80: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 87; continue; }; |
-{ gotoCase = 80; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 87; continue; }; |
-if (yych == '*') { gotoCase = 85; continue; }; |
-{ gotoCase = 80; continue; }; |
-} |
-case 82: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 84; continue; }; |
-if (yych != '\r') { gotoCase = 82; continue; }; |
-case 84: |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 85: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '*') { gotoCase = 85; continue; }; |
-if (yych == '/') { gotoCase = 89; continue; }; |
-{ gotoCase = 80; continue; }; |
-case 87: |
-++cursor; |
-this.setLexCondition(this._lexConditions.COMMENT); |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 89: |
-++cursor; |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 91: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'D') { |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '9') { gotoCase = 91; continue; }; |
-{ gotoCase = 37; continue; }; |
-} else { |
-if (yych <= 'E') { gotoCase = 93; continue; }; |
-if (yych != 'e') { gotoCase = 37; continue; }; |
-} |
-case 93: |
-yych = this._charAt(++cursor); |
-if (yych <= ',') { |
-if (yych != '+') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= '-') { gotoCase = 94; continue; }; |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 95; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 94: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-case 95: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 37; continue; }; |
-if (yych <= '9') { gotoCase = 95; continue; }; |
-{ gotoCase = 37; continue; }; |
-case 97: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 98: |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 47; continue; }; |
-if (yych <= '\f') { gotoCase = 97; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '&') { gotoCase = 97; continue; }; |
-{ gotoCase = 100; continue; }; |
-} else { |
-if (yych != '\\') { gotoCase = 97; continue; }; |
-} |
-} |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'a') { |
-if (yych <= '!') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 47; continue; }; |
-{ gotoCase = 103; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 103; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '"') { gotoCase = 97; continue; }; |
-if (yych <= '&') { gotoCase = 47; continue; }; |
-{ gotoCase = 97; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 97; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'q') { |
-if (yych <= 'f') { |
-if (yych <= 'b') { gotoCase = 97; continue; }; |
-if (yych <= 'e') { gotoCase = 47; continue; }; |
-{ gotoCase = 97; continue; }; |
-} else { |
-if (yych == 'n') { gotoCase = 97; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych == 's') { gotoCase = 47; continue; }; |
-{ gotoCase = 97; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 102; continue; }; |
-if (yych <= 'v') { gotoCase = 97; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} |
-} |
-case 100: |
-++cursor; |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 102: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 105; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 105; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych <= 'f') { gotoCase = 105; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 103: |
-++cursor; |
-this.setLexCondition(this._lexConditions.SSTRING); |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 105: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 106; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 106: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 107; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 107: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 97; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 97; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych <= 'f') { gotoCase = 97; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 108: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 109: |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 47; continue; }; |
-if (yych <= '\f') { gotoCase = 108; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= '"') { |
-if (yych <= '!') { gotoCase = 108; continue; }; |
-{ gotoCase = 100; continue; }; |
-} else { |
-if (yych != '\\') { gotoCase = 108; continue; }; |
-} |
-} |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'a') { |
-if (yych <= '!') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 47; continue; }; |
-{ gotoCase = 112; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 112; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '"') { gotoCase = 108; continue; }; |
-if (yych <= '&') { gotoCase = 47; continue; }; |
-{ gotoCase = 108; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 108; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'q') { |
-if (yych <= 'f') { |
-if (yych <= 'b') { gotoCase = 108; continue; }; |
-if (yych <= 'e') { gotoCase = 47; continue; }; |
-{ gotoCase = 108; continue; }; |
-} else { |
-if (yych == 'n') { gotoCase = 108; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych == 's') { gotoCase = 47; continue; }; |
-{ gotoCase = 108; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 111; continue; }; |
-if (yych <= 'v') { gotoCase = 108; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-} |
-} |
-case 111: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 114; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 114; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych <= 'f') { gotoCase = 114; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 112: |
-++cursor; |
-this.setLexCondition(this._lexConditions.DSTRING); |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 114: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 115; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 115: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych >= ':') { gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 116; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych >= 'g') { gotoCase = 47; continue; }; |
-} |
-case 116: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 47; continue; }; |
-if (yych <= '9') { gotoCase = 108; continue; }; |
-{ gotoCase = 47; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 108; continue; }; |
-if (yych <= '`') { gotoCase = 47; continue; }; |
-if (yych <= 'f') { gotoCase = 108; continue; }; |
-{ gotoCase = 47; continue; }; |
-} |
-case 117: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 45; continue; }; |
-{ gotoCase = 20; continue; }; |
-case 118: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 119: |
-if (yych == ' ') { gotoCase = 118; continue; }; |
-{ gotoCase = 18; continue; }; |
- |
-case this.case_DSTRING: |
-yych = this._charAt(cursor); |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 124; continue; }; |
-if (yych <= '\f') { gotoCase = 123; continue; }; |
-{ gotoCase = 124; continue; }; |
-} else { |
-if (yych <= '"') { |
-if (yych <= '!') { gotoCase = 123; continue; }; |
-{ gotoCase = 126; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 128; continue; }; |
-{ gotoCase = 123; continue; }; |
-} |
-} |
-case 122: |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 123: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 130; continue; }; |
-case 124: |
-++cursor; |
-case 125: |
-{ this.tokenType = null; return cursor; } |
-case 126: |
-++cursor; |
-case 127: |
-this.setLexCondition(this._lexConditions.NODIV); |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 128: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= 'e') { |
-if (yych <= '\'') { |
-if (yych == '"') { gotoCase = 129; continue; }; |
-if (yych <= '&') { gotoCase = 125; continue; }; |
-} else { |
-if (yych <= '\\') { |
-if (yych <= '[') { gotoCase = 125; continue; }; |
-} else { |
-if (yych != 'b') { gotoCase = 125; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'r') { |
-if (yych <= 'm') { |
-if (yych >= 'g') { gotoCase = 125; continue; }; |
-} else { |
-if (yych <= 'n') { gotoCase = 129; continue; }; |
-if (yych <= 'q') { gotoCase = 125; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych <= 's') { gotoCase = 125; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 131; continue; }; |
-if (yych >= 'w') { gotoCase = 125; continue; }; |
-} |
-} |
-} |
-case 129: |
-yyaccept = 0; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 130: |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 122; continue; }; |
-if (yych <= '\f') { gotoCase = 129; continue; }; |
-{ gotoCase = 122; continue; }; |
-} else { |
-if (yych <= '"') { |
-if (yych <= '!') { gotoCase = 129; continue; }; |
-{ gotoCase = 137; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 136; continue; }; |
-{ gotoCase = 129; continue; }; |
-} |
-} |
-case 131: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 132; continue; }; |
-if (yych <= '9') { gotoCase = 133; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 133; continue; }; |
-if (yych <= '`') { gotoCase = 132; continue; }; |
-if (yych <= 'f') { gotoCase = 133; continue; }; |
-} |
-case 132: |
-cursor = YYMARKER; |
-if (yyaccept <= 0) { |
-{ gotoCase = 122; continue; }; |
-} else { |
-{ gotoCase = 125; continue; }; |
-} |
-case 133: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 132; continue; }; |
-if (yych >= ':') { gotoCase = 132; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 134; continue; }; |
-if (yych <= '`') { gotoCase = 132; continue; }; |
-if (yych >= 'g') { gotoCase = 132; continue; }; |
-} |
-case 134: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 132; continue; }; |
-if (yych >= ':') { gotoCase = 132; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 135; continue; }; |
-if (yych <= '`') { gotoCase = 132; continue; }; |
-if (yych >= 'g') { gotoCase = 132; continue; }; |
-} |
-case 135: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 132; continue; }; |
-if (yych <= '9') { gotoCase = 129; continue; }; |
-{ gotoCase = 132; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 129; continue; }; |
-if (yych <= '`') { gotoCase = 132; continue; }; |
-if (yych <= 'f') { gotoCase = 129; continue; }; |
-{ gotoCase = 132; continue; }; |
-} |
-case 136: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'e') { |
-if (yych <= '\'') { |
-if (yych == '"') { gotoCase = 129; continue; }; |
-if (yych <= '&') { gotoCase = 132; continue; }; |
-{ gotoCase = 129; continue; }; |
-} else { |
-if (yych <= '\\') { |
-if (yych <= '[') { gotoCase = 132; continue; }; |
-{ gotoCase = 129; continue; }; |
-} else { |
-if (yych == 'b') { gotoCase = 129; continue; }; |
-{ gotoCase = 132; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'r') { |
-if (yych <= 'm') { |
-if (yych <= 'f') { gotoCase = 129; continue; }; |
-{ gotoCase = 132; continue; }; |
-} else { |
-if (yych <= 'n') { gotoCase = 129; continue; }; |
-if (yych <= 'q') { gotoCase = 132; continue; }; |
-{ gotoCase = 129; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych <= 's') { gotoCase = 132; continue; }; |
-{ gotoCase = 129; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 131; continue; }; |
-if (yych <= 'v') { gotoCase = 129; continue; }; |
-{ gotoCase = 132; continue; }; |
-} |
-} |
-} |
-case 137: |
-++cursor; |
-yych = this._charAt(cursor); |
-{ gotoCase = 127; continue; }; |
- |
-case this.case_NODIV: |
-yych = this._charAt(cursor); |
-if (yych <= '9') { |
-if (yych <= '\'') { |
-if (yych <= '"') { |
-if (yych <= String.fromCharCode(0x1F)) { gotoCase = 140; continue; }; |
-if (yych <= ' ') { gotoCase = 142; continue; }; |
-if (yych <= '!') { gotoCase = 144; continue; }; |
-{ gotoCase = 146; continue; }; |
-} else { |
-if (yych <= '$') { |
-if (yych >= '$') { gotoCase = 147; continue; }; |
-} else { |
-if (yych <= '%') { gotoCase = 149; continue; }; |
-if (yych <= '&') { gotoCase = 150; continue; }; |
-{ gotoCase = 151; continue; }; |
-} |
-} |
-} else { |
-if (yych <= ',') { |
-if (yych <= ')') { |
-if (yych <= '(') { gotoCase = 152; continue; }; |
-{ gotoCase = 153; continue; }; |
-} else { |
-if (yych <= '*') { gotoCase = 155; continue; }; |
-if (yych <= '+') { gotoCase = 156; continue; }; |
-{ gotoCase = 152; continue; }; |
-} |
-} else { |
-if (yych <= '.') { |
-if (yych <= '-') { gotoCase = 157; continue; }; |
-{ gotoCase = 158; continue; }; |
-} else { |
-if (yych <= '/') { gotoCase = 159; continue; }; |
-if (yych <= '0') { gotoCase = 160; continue; }; |
-{ gotoCase = 162; continue; }; |
-} |
-} |
-} |
-} else { |
-if (yych <= '\\') { |
-if (yych <= '>') { |
-if (yych <= ';') { gotoCase = 152; continue; }; |
-if (yych <= '<') { gotoCase = 163; continue; }; |
-if (yych <= '=') { gotoCase = 164; continue; }; |
-{ gotoCase = 165; continue; }; |
-} else { |
-if (yych <= '@') { |
-if (yych <= '?') { gotoCase = 152; continue; }; |
-} else { |
-if (yych <= 'Z') { gotoCase = 147; continue; }; |
-if (yych <= '[') { gotoCase = 152; continue; }; |
-{ gotoCase = 166; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'z') { |
-if (yych <= '^') { |
-if (yych <= ']') { gotoCase = 152; continue; }; |
-{ gotoCase = 167; continue; }; |
-} else { |
-if (yych != '`') { gotoCase = 147; continue; }; |
-} |
-} else { |
-if (yych <= '|') { |
-if (yych <= '{') { gotoCase = 152; continue; }; |
-{ gotoCase = 168; continue; }; |
-} else { |
-if (yych <= '~') { gotoCase = 152; continue; }; |
-if (yych >= 0x80) { gotoCase = 147; continue; }; |
-} |
-} |
-} |
-} |
-case 140: |
-++cursor; |
-case 141: |
-{ this.tokenType = null; return cursor; } |
-case 142: |
-++cursor; |
-yych = this._charAt(cursor); |
-{ gotoCase = 268; continue; }; |
-case 143: |
-{this.tokenType = "whitespace"; return cursor; } |
-case 144: |
-++cursor; |
-if ((yych = this._charAt(cursor)) == '=') { gotoCase = 266; continue; }; |
-case 145: |
-{ |
-var token = this._line.charAt(cursorOnEnter); |
-if (token === "{") |
-this.tokenType = "block-start"; |
-else if (token === "}") |
-this.tokenType = "block-end"; |
-else if (token === "(") |
-this.tokenType = "brace-start"; |
-else this.tokenType = null; |
-return cursor; |
-} |
-case 146: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == '\n') { gotoCase = 141; continue; }; |
-if (yych == '\r') { gotoCase = 141; continue; }; |
-{ gotoCase = 258; continue; }; |
-case 147: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 176; continue; }; |
-case 148: |
-this.setLexCondition(this._lexConditions.DIV); |
-{ |
-var token = this._line.substring(cursorOnEnter, cursor); |
-if (WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties.hasOwnProperty(token)) |
-this.tokenType = WebInspector.SourceJavaScriptTokenizer.GlobalObjectValueProperties[token]; |
-else if (WebInspector.SourceJavaScriptTokenizer.Keywords[token] === true && token !== "__proto__") |
-this.tokenType = "javascript-keyword"; |
-else |
-this.tokenType = "javascript-ident"; |
-return cursor; |
-} |
-case 149: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 150: |
-yych = this._charAt(++cursor); |
-if (yych == '&') { gotoCase = 169; continue; }; |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 151: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == '\n') { gotoCase = 141; continue; }; |
-if (yych == '\r') { gotoCase = 141; continue; }; |
-{ gotoCase = 247; continue; }; |
-case 152: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 145; continue; }; |
-case 153: |
-++cursor; |
-this.setLexCondition(this._lexConditions.DIV); |
-{ this.tokenType = "brace-end"; return cursor; } |
-case 155: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 156: |
-yych = this._charAt(++cursor); |
-if (yych == '+') { gotoCase = 169; continue; }; |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 157: |
-yych = this._charAt(++cursor); |
-if (yych == '-') { gotoCase = 169; continue; }; |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 158: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 145; continue; }; |
-if (yych <= '9') { gotoCase = 240; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 159: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 141; continue; }; |
-{ gotoCase = 203; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 141; continue; }; |
-if (yych <= ')') { gotoCase = 203; continue; }; |
-{ gotoCase = 208; continue; }; |
-} |
-} else { |
-if (yych <= 'Z') { |
-if (yych == '/') { gotoCase = 210; continue; }; |
-{ gotoCase = 203; continue; }; |
-} else { |
-if (yych <= '[') { gotoCase = 206; continue; }; |
-if (yych <= '\\') { gotoCase = 205; continue; }; |
-if (yych <= ']') { gotoCase = 141; continue; }; |
-{ gotoCase = 203; continue; }; |
-} |
-} |
-case 160: |
-yyaccept = 2; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= 'E') { |
-if (yych <= '/') { |
-if (yych == '.') { gotoCase = 189; continue; }; |
-} else { |
-if (yych <= '7') { gotoCase = 198; continue; }; |
-if (yych >= 'E') { gotoCase = 188; continue; }; |
-} |
-} else { |
-if (yych <= 'd') { |
-if (yych == 'X') { gotoCase = 200; continue; }; |
-} else { |
-if (yych <= 'e') { gotoCase = 188; continue; }; |
-if (yych == 'x') { gotoCase = 200; continue; }; |
-} |
-} |
-case 161: |
-this.setLexCondition(this._lexConditions.DIV); |
-{ this.tokenType = "javascript-number"; return cursor; } |
-case 162: |
-yyaccept = 2; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= '9') { |
-if (yych == '.') { gotoCase = 189; continue; }; |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-{ gotoCase = 186; continue; }; |
-} else { |
-if (yych <= 'E') { |
-if (yych <= 'D') { gotoCase = 161; continue; }; |
-{ gotoCase = 188; continue; }; |
-} else { |
-if (yych == 'e') { gotoCase = 188; continue; }; |
-{ gotoCase = 161; continue; }; |
-} |
-} |
-case 163: |
-yych = this._charAt(++cursor); |
-if (yych <= ';') { gotoCase = 145; continue; }; |
-if (yych <= '<') { gotoCase = 185; continue; }; |
-if (yych <= '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 164: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 184; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 165: |
-yych = this._charAt(++cursor); |
-if (yych <= '<') { gotoCase = 145; continue; }; |
-if (yych <= '=') { gotoCase = 169; continue; }; |
-if (yych <= '>') { gotoCase = 182; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 166: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych == 'u') { gotoCase = 170; continue; }; |
-{ gotoCase = 141; continue; }; |
-case 167: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 168: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-if (yych != '|') { gotoCase = 145; continue; }; |
-case 169: |
-yych = this._charAt(++cursor); |
-{ gotoCase = 145; continue; }; |
-case 170: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 172; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 172; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych <= 'f') { gotoCase = 172; continue; }; |
-} |
-case 171: |
-cursor = YYMARKER; |
-if (yyaccept <= 1) { |
-if (yyaccept <= 0) { |
-{ gotoCase = 141; continue; }; |
-} else { |
-{ gotoCase = 148; continue; }; |
-} |
-} else { |
-if (yyaccept <= 2) { |
-{ gotoCase = 161; continue; }; |
-} else { |
-{ gotoCase = 223; continue; }; |
-} |
-} |
-case 172: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 173; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 173: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 174; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 174: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 175; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 175: |
-yyaccept = 1; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 176: |
-if (yych <= '[') { |
-if (yych <= '/') { |
-if (yych == '$') { gotoCase = 175; continue; }; |
-{ gotoCase = 148; continue; }; |
-} else { |
-if (yych <= '9') { gotoCase = 175; continue; }; |
-if (yych <= '@') { gotoCase = 148; continue; }; |
-if (yych <= 'Z') { gotoCase = 175; continue; }; |
-{ gotoCase = 148; continue; }; |
-} |
-} else { |
-if (yych <= '_') { |
-if (yych <= '\\') { gotoCase = 177; continue; }; |
-if (yych <= '^') { gotoCase = 148; continue; }; |
-{ gotoCase = 175; continue; }; |
-} else { |
-if (yych <= '`') { gotoCase = 148; continue; }; |
-if (yych <= 'z') { gotoCase = 175; continue; }; |
-if (yych <= String.fromCharCode(0x7F)) { gotoCase = 148; continue; }; |
-{ gotoCase = 175; continue; }; |
-} |
-} |
-case 177: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych != 'u') { gotoCase = 171; continue; }; |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 179; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 179: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 180; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 180: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 181; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 181: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 175; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 175; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych <= 'f') { gotoCase = 175; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 182: |
-yych = this._charAt(++cursor); |
-if (yych <= '<') { gotoCase = 145; continue; }; |
-if (yych <= '=') { gotoCase = 169; continue; }; |
-if (yych >= '?') { gotoCase = 145; continue; }; |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 184: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 185: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 186: |
-yyaccept = 2; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '9') { |
-if (yych == '.') { gotoCase = 189; continue; }; |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-{ gotoCase = 186; continue; }; |
-} else { |
-if (yych <= 'E') { |
-if (yych <= 'D') { gotoCase = 161; continue; }; |
-} else { |
-if (yych != 'e') { gotoCase = 161; continue; }; |
-} |
-} |
-case 188: |
-yych = this._charAt(++cursor); |
-if (yych <= ',') { |
-if (yych == '+') { gotoCase = 195; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= '-') { gotoCase = 195; continue; }; |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 196; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 189: |
-yyaccept = 2; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'D') { |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '9') { gotoCase = 189; continue; }; |
-{ gotoCase = 161; continue; }; |
-} else { |
-if (yych <= 'E') { gotoCase = 191; continue; }; |
-if (yych != 'e') { gotoCase = 161; continue; }; |
-} |
-case 191: |
-yych = this._charAt(++cursor); |
-if (yych <= ',') { |
-if (yych != '+') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= '-') { gotoCase = 192; continue; }; |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 193; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 192: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-case 193: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '9') { gotoCase = 193; continue; }; |
-{ gotoCase = 161; continue; }; |
-case 195: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-case 196: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '9') { gotoCase = 196; continue; }; |
-{ gotoCase = 161; continue; }; |
-case 198: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '7') { gotoCase = 198; continue; }; |
-{ gotoCase = 161; continue; }; |
-case 200: |
-yych = this._charAt(++cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 201; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 201: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '9') { gotoCase = 201; continue; }; |
-{ gotoCase = 161; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 201; continue; }; |
-if (yych <= '`') { gotoCase = 161; continue; }; |
-if (yych <= 'f') { gotoCase = 201; continue; }; |
-{ gotoCase = 161; continue; }; |
-} |
-case 203: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '.') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 203; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 171; continue; }; |
-{ gotoCase = 203; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych <= '/') { gotoCase = 226; continue; }; |
-if (yych <= 'Z') { gotoCase = 203; continue; }; |
-{ gotoCase = 234; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 233; continue; }; |
-if (yych <= ']') { gotoCase = 171; continue; }; |
-{ gotoCase = 203; continue; }; |
-} |
-} |
-case 205: |
-yych = this._charAt(++cursor); |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-if (yych == '\r') { gotoCase = 171; continue; }; |
-{ gotoCase = 203; continue; }; |
-case 206: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-{ gotoCase = 206; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 171; continue; }; |
-if (yych <= ')') { gotoCase = 206; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych == '/') { gotoCase = 171; continue; }; |
-{ gotoCase = 206; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 221; continue; }; |
-if (yych <= ']') { gotoCase = 219; continue; }; |
-{ gotoCase = 206; continue; }; |
-} |
-} |
-case 208: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 215; continue; }; |
-{ gotoCase = 208; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 215; continue; }; |
-if (yych == '*') { gotoCase = 213; continue; }; |
-{ gotoCase = 208; continue; }; |
-} |
-case 210: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 212; continue; }; |
-if (yych != '\r') { gotoCase = 210; continue; }; |
-case 212: |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 213: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '*') { gotoCase = 213; continue; }; |
-if (yych == '/') { gotoCase = 217; continue; }; |
-{ gotoCase = 208; continue; }; |
-case 215: |
-++cursor; |
-this.setLexCondition(this._lexConditions.COMMENT); |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 217: |
-++cursor; |
-{ this.tokenType = "javascript-comment"; return cursor; } |
-case 219: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-{ gotoCase = 219; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 171; continue; }; |
-if (yych <= ')') { gotoCase = 219; continue; }; |
-{ gotoCase = 203; continue; }; |
-} |
-} else { |
-if (yych <= 'Z') { |
-if (yych == '/') { gotoCase = 226; continue; }; |
-{ gotoCase = 219; continue; }; |
-} else { |
-if (yych <= '[') { gotoCase = 224; continue; }; |
-if (yych <= '\\') { gotoCase = 222; continue; }; |
-{ gotoCase = 219; continue; }; |
-} |
-} |
-case 221: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-if (yych == '\r') { gotoCase = 171; continue; }; |
-{ gotoCase = 206; continue; }; |
-case 222: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 223; continue; }; |
-if (yych != '\r') { gotoCase = 219; continue; }; |
-case 223: |
-this.setLexCondition(this._lexConditions.REGEX); |
-{ this.tokenType = "javascript-regexp"; return cursor; } |
-case 224: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-{ gotoCase = 224; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 171; continue; }; |
-if (yych <= ')') { gotoCase = 224; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych == '/') { gotoCase = 171; continue; }; |
-{ gotoCase = 224; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 231; continue; }; |
-if (yych <= ']') { gotoCase = 229; continue; }; |
-{ gotoCase = 224; continue; }; |
-} |
-} |
-case 226: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'h') { |
-if (yych == 'g') { gotoCase = 226; continue; }; |
-} else { |
-if (yych <= 'i') { gotoCase = 226; continue; }; |
-if (yych == 'm') { gotoCase = 226; continue; }; |
-} |
-{ this.tokenType = "javascript-regexp"; return cursor; } |
-case 229: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-{ gotoCase = 229; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 171; continue; }; |
-if (yych <= ')') { gotoCase = 229; continue; }; |
-{ gotoCase = 203; continue; }; |
-} |
-} else { |
-if (yych <= 'Z') { |
-if (yych == '/') { gotoCase = 226; continue; }; |
-{ gotoCase = 229; continue; }; |
-} else { |
-if (yych <= '[') { gotoCase = 224; continue; }; |
-if (yych <= '\\') { gotoCase = 232; continue; }; |
-{ gotoCase = 229; continue; }; |
-} |
-} |
-case 231: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-if (yych == '\r') { gotoCase = 171; continue; }; |
-{ gotoCase = 224; continue; }; |
-case 232: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 223; continue; }; |
-if (yych == '\r') { gotoCase = 223; continue; }; |
-{ gotoCase = 229; continue; }; |
-case 233: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 223; continue; }; |
-if (yych == '\r') { gotoCase = 223; continue; }; |
-{ gotoCase = 203; continue; }; |
-case 234: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-{ gotoCase = 234; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 171; continue; }; |
-if (yych <= ')') { gotoCase = 234; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych == '/') { gotoCase = 171; continue; }; |
-{ gotoCase = 234; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 238; continue; }; |
-if (yych >= '^') { gotoCase = 234; continue; }; |
-} |
-} |
-case 236: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-{ gotoCase = 236; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 171; continue; }; |
-if (yych <= ')') { gotoCase = 236; continue; }; |
-{ gotoCase = 203; continue; }; |
-} |
-} else { |
-if (yych <= 'Z') { |
-if (yych == '/') { gotoCase = 226; continue; }; |
-{ gotoCase = 236; continue; }; |
-} else { |
-if (yych <= '[') { gotoCase = 234; continue; }; |
-if (yych <= '\\') { gotoCase = 239; continue; }; |
-{ gotoCase = 236; continue; }; |
-} |
-} |
-case 238: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-if (yych == '\r') { gotoCase = 171; continue; }; |
-{ gotoCase = 234; continue; }; |
-case 239: |
-yyaccept = 3; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 223; continue; }; |
-if (yych == '\r') { gotoCase = 223; continue; }; |
-{ gotoCase = 236; continue; }; |
-case 240: |
-yyaccept = 2; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'D') { |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '9') { gotoCase = 240; continue; }; |
-{ gotoCase = 161; continue; }; |
-} else { |
-if (yych <= 'E') { gotoCase = 242; continue; }; |
-if (yych != 'e') { gotoCase = 161; continue; }; |
-} |
-case 242: |
-yych = this._charAt(++cursor); |
-if (yych <= ',') { |
-if (yych != '+') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= '-') { gotoCase = 243; continue; }; |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 244; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 243: |
-yych = this._charAt(++cursor); |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-case 244: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '/') { gotoCase = 161; continue; }; |
-if (yych <= '9') { gotoCase = 244; continue; }; |
-{ gotoCase = 161; continue; }; |
-case 246: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 247: |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-if (yych <= '\f') { gotoCase = 246; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '&') { gotoCase = 246; continue; }; |
-{ gotoCase = 249; continue; }; |
-} else { |
-if (yych != '\\') { gotoCase = 246; continue; }; |
-} |
-} |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'a') { |
-if (yych <= '!') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 171; continue; }; |
-{ gotoCase = 252; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 252; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '"') { gotoCase = 246; continue; }; |
-if (yych <= '&') { gotoCase = 171; continue; }; |
-{ gotoCase = 246; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 246; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'q') { |
-if (yych <= 'f') { |
-if (yych <= 'b') { gotoCase = 246; continue; }; |
-if (yych <= 'e') { gotoCase = 171; continue; }; |
-{ gotoCase = 246; continue; }; |
-} else { |
-if (yych == 'n') { gotoCase = 246; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych == 's') { gotoCase = 171; continue; }; |
-{ gotoCase = 246; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 251; continue; }; |
-if (yych <= 'v') { gotoCase = 246; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} |
-} |
-case 249: |
-++cursor; |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 251: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 254; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 254; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych <= 'f') { gotoCase = 254; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 252: |
-++cursor; |
-this.setLexCondition(this._lexConditions.SSTRING); |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 254: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 255; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 255: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 256; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 256: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 246; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 246; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych <= 'f') { gotoCase = 246; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 257: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 258: |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 171; continue; }; |
-if (yych <= '\f') { gotoCase = 257; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= '"') { |
-if (yych <= '!') { gotoCase = 257; continue; }; |
-{ gotoCase = 249; continue; }; |
-} else { |
-if (yych != '\\') { gotoCase = 257; continue; }; |
-} |
-} |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'a') { |
-if (yych <= '!') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 171; continue; }; |
-{ gotoCase = 261; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 261; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '"') { gotoCase = 257; continue; }; |
-if (yych <= '&') { gotoCase = 171; continue; }; |
-{ gotoCase = 257; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 257; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'q') { |
-if (yych <= 'f') { |
-if (yych <= 'b') { gotoCase = 257; continue; }; |
-if (yych <= 'e') { gotoCase = 171; continue; }; |
-{ gotoCase = 257; continue; }; |
-} else { |
-if (yych == 'n') { gotoCase = 257; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych == 's') { gotoCase = 171; continue; }; |
-{ gotoCase = 257; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 260; continue; }; |
-if (yych <= 'v') { gotoCase = 257; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-} |
-} |
-case 260: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 263; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 263; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych <= 'f') { gotoCase = 263; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 261: |
-++cursor; |
-this.setLexCondition(this._lexConditions.DSTRING); |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 263: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 264; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 264: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych >= ':') { gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 265; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych >= 'g') { gotoCase = 171; continue; }; |
-} |
-case 265: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 171; continue; }; |
-if (yych <= '9') { gotoCase = 257; continue; }; |
-{ gotoCase = 171; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 257; continue; }; |
-if (yych <= '`') { gotoCase = 171; continue; }; |
-if (yych <= 'f') { gotoCase = 257; continue; }; |
-{ gotoCase = 171; continue; }; |
-} |
-case 266: |
-yych = this._charAt(++cursor); |
-if (yych == '=') { gotoCase = 169; continue; }; |
-{ gotoCase = 145; continue; }; |
-case 267: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 268: |
-if (yych == ' ') { gotoCase = 267; continue; }; |
-{ gotoCase = 143; continue; }; |
- |
-case this.case_REGEX: |
-yych = this._charAt(cursor); |
-if (yych <= '.') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 272; continue; }; |
-{ gotoCase = 273; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 273; continue; }; |
-{ gotoCase = 272; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych <= '/') { gotoCase = 275; continue; }; |
-if (yych <= 'Z') { gotoCase = 272; continue; }; |
-{ gotoCase = 277; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 278; continue; }; |
-if (yych <= ']') { gotoCase = 273; continue; }; |
-{ gotoCase = 272; continue; }; |
-} |
-} |
-case 271: |
-{ this.tokenType = "javascript-regexp"; return cursor; } |
-case 272: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 280; continue; }; |
-case 273: |
-++cursor; |
-case 274: |
-{ this.tokenType = null; return cursor; } |
-case 275: |
-++cursor; |
-yych = this._charAt(cursor); |
-{ gotoCase = 286; continue; }; |
-case 276: |
-this.setLexCondition(this._lexConditions.NODIV); |
-{ this.tokenType = "javascript-regexp"; return cursor; } |
-case 277: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 274; continue; }; |
-if (yych <= '\f') { gotoCase = 284; continue; }; |
-{ gotoCase = 274; continue; }; |
-} else { |
-if (yych <= '*') { |
-if (yych <= ')') { gotoCase = 284; continue; }; |
-{ gotoCase = 274; continue; }; |
-} else { |
-if (yych == '/') { gotoCase = 274; continue; }; |
-{ gotoCase = 284; continue; }; |
-} |
-} |
-case 278: |
-yych = this._charAt(++cursor); |
-if (yych == '\n') { gotoCase = 274; continue; }; |
-if (yych == '\r') { gotoCase = 274; continue; }; |
-case 279: |
-yyaccept = 0; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 280: |
-if (yych <= '.') { |
-if (yych <= '\n') { |
-if (yych <= '\t') { gotoCase = 279; continue; }; |
-{ gotoCase = 271; continue; }; |
-} else { |
-if (yych == '\r') { gotoCase = 271; continue; }; |
-{ gotoCase = 279; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych <= '/') { gotoCase = 285; continue; }; |
-if (yych <= 'Z') { gotoCase = 279; continue; }; |
-{ gotoCase = 283; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 281; continue; }; |
-if (yych <= ']') { gotoCase = 271; continue; }; |
-{ gotoCase = 279; continue; }; |
-} |
-} |
-case 281: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 282; continue; }; |
-if (yych != '\r') { gotoCase = 279; continue; }; |
-case 282: |
-cursor = YYMARKER; |
-if (yyaccept <= 0) { |
-{ gotoCase = 271; continue; }; |
-} else { |
-{ gotoCase = 274; continue; }; |
-} |
-case 283: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 284: |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 282; continue; }; |
-{ gotoCase = 283; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 282; continue; }; |
-if (yych <= ')') { gotoCase = 283; continue; }; |
-{ gotoCase = 282; continue; }; |
-} |
-} else { |
-if (yych <= '[') { |
-if (yych == '/') { gotoCase = 282; continue; }; |
-{ gotoCase = 283; continue; }; |
-} else { |
-if (yych <= '\\') { gotoCase = 289; continue; }; |
-if (yych <= ']') { gotoCase = 287; continue; }; |
-{ gotoCase = 283; continue; }; |
-} |
-} |
-case 285: |
-++cursor; |
-yych = this._charAt(cursor); |
-case 286: |
-if (yych <= 'h') { |
-if (yych == 'g') { gotoCase = 285; continue; }; |
-{ gotoCase = 276; continue; }; |
-} else { |
-if (yych <= 'i') { gotoCase = 285; continue; }; |
-if (yych == 'm') { gotoCase = 285; continue; }; |
-{ gotoCase = 276; continue; }; |
-} |
-case 287: |
-yyaccept = 0; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '*') { |
-if (yych <= '\f') { |
-if (yych == '\n') { gotoCase = 271; continue; }; |
-{ gotoCase = 287; continue; }; |
-} else { |
-if (yych <= '\r') { gotoCase = 271; continue; }; |
-if (yych <= ')') { gotoCase = 287; continue; }; |
-{ gotoCase = 279; continue; }; |
-} |
-} else { |
-if (yych <= 'Z') { |
-if (yych == '/') { gotoCase = 285; continue; }; |
-{ gotoCase = 287; continue; }; |
-} else { |
-if (yych <= '[') { gotoCase = 283; continue; }; |
-if (yych <= '\\') { gotoCase = 290; continue; }; |
-{ gotoCase = 287; continue; }; |
-} |
-} |
-case 289: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 282; continue; }; |
-if (yych == '\r') { gotoCase = 282; continue; }; |
-{ gotoCase = 283; continue; }; |
-case 290: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych == '\n') { gotoCase = 282; continue; }; |
-if (yych == '\r') { gotoCase = 282; continue; }; |
-{ gotoCase = 287; continue; }; |
- |
-case this.case_SSTRING: |
-yych = this._charAt(cursor); |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 295; continue; }; |
-if (yych <= '\f') { gotoCase = 294; continue; }; |
-{ gotoCase = 295; continue; }; |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '&') { gotoCase = 294; continue; }; |
-{ gotoCase = 297; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 299; continue; }; |
-{ gotoCase = 294; continue; }; |
-} |
-} |
-case 293: |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 294: |
-yyaccept = 0; |
-yych = this._charAt(YYMARKER = ++cursor); |
-{ gotoCase = 301; continue; }; |
-case 295: |
-++cursor; |
-case 296: |
-{ this.tokenType = null; return cursor; } |
-case 297: |
-++cursor; |
-case 298: |
-this.setLexCondition(this._lexConditions.NODIV); |
-{ this.tokenType = "javascript-string"; return cursor; } |
-case 299: |
-yyaccept = 1; |
-yych = this._charAt(YYMARKER = ++cursor); |
-if (yych <= 'e') { |
-if (yych <= '\'') { |
-if (yych == '"') { gotoCase = 300; continue; }; |
-if (yych <= '&') { gotoCase = 296; continue; }; |
-} else { |
-if (yych <= '\\') { |
-if (yych <= '[') { gotoCase = 296; continue; }; |
-} else { |
-if (yych != 'b') { gotoCase = 296; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'r') { |
-if (yych <= 'm') { |
-if (yych >= 'g') { gotoCase = 296; continue; }; |
-} else { |
-if (yych <= 'n') { gotoCase = 300; continue; }; |
-if (yych <= 'q') { gotoCase = 296; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych <= 's') { gotoCase = 296; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 302; continue; }; |
-if (yych >= 'w') { gotoCase = 296; continue; }; |
-} |
-} |
-} |
-case 300: |
-yyaccept = 0; |
-YYMARKER = ++cursor; |
-yych = this._charAt(cursor); |
-case 301: |
-if (yych <= '\r') { |
-if (yych == '\n') { gotoCase = 293; continue; }; |
-if (yych <= '\f') { gotoCase = 300; continue; }; |
-{ gotoCase = 293; continue; }; |
-} else { |
-if (yych <= '\'') { |
-if (yych <= '&') { gotoCase = 300; continue; }; |
-{ gotoCase = 308; continue; }; |
-} else { |
-if (yych == '\\') { gotoCase = 307; continue; }; |
-{ gotoCase = 300; continue; }; |
-} |
-} |
-case 302: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 303; continue; }; |
-if (yych <= '9') { gotoCase = 304; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 304; continue; }; |
-if (yych <= '`') { gotoCase = 303; continue; }; |
-if (yych <= 'f') { gotoCase = 304; continue; }; |
-} |
-case 303: |
-cursor = YYMARKER; |
-if (yyaccept <= 0) { |
-{ gotoCase = 293; continue; }; |
-} else { |
-{ gotoCase = 296; continue; }; |
-} |
-case 304: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 303; continue; }; |
-if (yych >= ':') { gotoCase = 303; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 305; continue; }; |
-if (yych <= '`') { gotoCase = 303; continue; }; |
-if (yych >= 'g') { gotoCase = 303; continue; }; |
-} |
-case 305: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 303; continue; }; |
-if (yych >= ':') { gotoCase = 303; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 306; continue; }; |
-if (yych <= '`') { gotoCase = 303; continue; }; |
-if (yych >= 'g') { gotoCase = 303; continue; }; |
-} |
-case 306: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= '@') { |
-if (yych <= '/') { gotoCase = 303; continue; }; |
-if (yych <= '9') { gotoCase = 300; continue; }; |
-{ gotoCase = 303; continue; }; |
-} else { |
-if (yych <= 'F') { gotoCase = 300; continue; }; |
-if (yych <= '`') { gotoCase = 303; continue; }; |
-if (yych <= 'f') { gotoCase = 300; continue; }; |
-{ gotoCase = 303; continue; }; |
-} |
-case 307: |
-++cursor; |
-yych = this._charAt(cursor); |
-if (yych <= 'e') { |
-if (yych <= '\'') { |
-if (yych == '"') { gotoCase = 300; continue; }; |
-if (yych <= '&') { gotoCase = 303; continue; }; |
-{ gotoCase = 300; continue; }; |
-} else { |
-if (yych <= '\\') { |
-if (yych <= '[') { gotoCase = 303; continue; }; |
-{ gotoCase = 300; continue; }; |
-} else { |
-if (yych == 'b') { gotoCase = 300; continue; }; |
-{ gotoCase = 303; continue; }; |
-} |
-} |
-} else { |
-if (yych <= 'r') { |
-if (yych <= 'm') { |
-if (yych <= 'f') { gotoCase = 300; continue; }; |
-{ gotoCase = 303; continue; }; |
-} else { |
-if (yych <= 'n') { gotoCase = 300; continue; }; |
-if (yych <= 'q') { gotoCase = 303; continue; }; |
-{ gotoCase = 300; continue; }; |
-} |
-} else { |
-if (yych <= 't') { |
-if (yych <= 's') { gotoCase = 303; continue; }; |
-{ gotoCase = 300; continue; }; |
-} else { |
-if (yych <= 'u') { gotoCase = 302; continue; }; |
-if (yych <= 'v') { gotoCase = 300; continue; }; |
-{ gotoCase = 303; continue; }; |
-} |
-} |
-} |
-case 308: |
-++cursor; |
-yych = this._charAt(cursor); |
-{ gotoCase = 298; continue; }; |
-} |
- |
-} |
-}, |
- |
-__proto__: WebInspector.SourceTokenizer.prototype |
-} |
-; |
- |
-HTMLScriptFormatter = function(indentString) |
-{ |
-WebInspector.SourceHTMLTokenizer.call(this); |
-this._indentString = indentString; |
-} |
- |
-HTMLScriptFormatter.prototype = { |
-format: function(content) |
-{ |
-this.line = content; |
-this._content = content; |
-this._formattedContent = ""; |
-this._mapping = { original: [0], formatted: [0] }; |
-this._position = 0; |
- |
-var cursor = 0; |
-while (cursor < this._content.length) |
-cursor = this.nextToken(cursor); |
- |
-this._formattedContent += this._content.substring(this._position); |
-return { content: this._formattedContent, mapping: this._mapping }; |
-}, |
- |
-scriptStarted: function(cursor) |
-{ |
-this._formattedContent += this._content.substring(this._position, cursor); |
-this._formattedContent += "\n"; |
-this._position = cursor; |
-}, |
- |
-scriptEnded: function(cursor) |
-{ |
-if (cursor === this._position) |
-return; |
- |
-var scriptContent = this._content.substring(this._position, cursor); |
-this._mapping.original.push(this._position); |
-this._mapping.formatted.push(this._formattedContent.length); |
-var formattedScriptContent = formatScript(scriptContent, this._mapping, this._position, this._formattedContent.length, this._indentString); |
- |
-this._formattedContent += formattedScriptContent; |
-this._position = cursor; |
-}, |
- |
-styleSheetStarted: function(cursor) |
-{ |
-}, |
- |
-styleSheetEnded: function(cursor) |
-{ |
-}, |
- |
-__proto__: WebInspector.SourceHTMLTokenizer.prototype |
-} |
- |
+{const chunkSize=100000;const totalLength=params.content.length;const lines=params.content.split("\n");const chunkCount=getChunkCount(totalLength,chunkSize);var outlineChunk=[];var previousIdentifier=null;var previousToken=null;var previousTokenType=null;var currentChunk=1;var processedChunkCharacters=0;var addedFunction=false;var isReadingArguments=false;var argumentsText="";var currentFunction=null;var tokenizer=WebInspector.CodeMirrorUtils.createTokenizer("text/javascript");for(var i=0;i<lines.length;++i){var line=lines[i];function processToken(tokenValue,tokenType,column,newColumn) |
+{tokenType=tokenType?WebInspector.CodeMirrorUtils.convertTokenType(tokenType):null;if(tokenType==="javascript-ident"){previousIdentifier=tokenValue;if(tokenValue&&previousToken==="function"){currentFunction={line:i,column:column,name:tokenValue};addedFunction=true;previousIdentifier=null;}}else if(tokenType==="javascript-keyword"){if(tokenValue==="function"){if(previousIdentifier&&(previousToken==="="||previousToken===":")){currentFunction={line:i,column:column,name:previousIdentifier};addedFunction=true;previousIdentifier=null;}}}else if(tokenValue==="."&&previousTokenType==="javascript-ident") |
+previousIdentifier+=".";else if(tokenValue==="("&&addedFunction) |
+isReadingArguments=true;if(isReadingArguments&&tokenValue) |
+argumentsText+=tokenValue;if(tokenValue===")"&&isReadingArguments){addedFunction=false;isReadingArguments=false;currentFunction.arguments=argumentsText.replace(/,[\r\n\s]*/g,", ").replace(/([^,])[\r\n\s]+/g,"$1");argumentsText="";outlineChunk.push(currentFunction);} |
+if(tokenValue.trim().length){previousToken=tokenValue;previousTokenType=tokenType;} |
+processedChunkCharacters+=newColumn-column;if(processedChunkCharacters>=chunkSize){postMessage({chunk:outlineChunk,total:chunkCount,index:currentChunk++});outlineChunk=[];processedChunkCharacters=0;}} |
+tokenizer(line,processToken);} |
+postMessage({chunk:outlineChunk,total:chunkCount,index:chunkCount});} |
+function formatScript(content,mapping,offset,formattedOffset,indentString) |
+{var formattedContent;try{var tokenizer=new Tokenizer(content);var builder=new FormattedContentBuilder(tokenizer.content(),mapping,offset,formattedOffset,indentString);var formatter=new JavaScriptFormatter(tokenizer,builder);formatter.format();formattedContent=builder.content();}catch(e){formattedContent=content;} |
+return formattedContent;} |
+Array.prototype.keySet=function() |
+{var keys={};for(var i=0;i<this.length;++i) |
+keys[this[i]]=true;return keys;};HTMLScriptFormatter=function(indentString) |
+{this._indentString=indentString;} |
+HTMLScriptFormatter.prototype={format:function(content) |
+{this.line=content;this._content=content;this._formattedContent="";this._mapping={original:[0],formatted:[0]};this._position=0;var scriptOpened=false;var tokenizer=WebInspector.CodeMirrorUtils.createTokenizer("text/html");function processToken(tokenValue,tokenType,tokenStart,tokenEnd){if(tokenValue.toLowerCase()==="<script"&&tokenType==="xml-tag"){scriptOpened=true;}else if(scriptOpened&&tokenValue===">"&&tokenType==="xml-tag"){scriptOpened=false;this._scriptStarted(tokenEnd);}else if(tokenValue.toLowerCase()==="</script"&&tokenType==="xml-tag"){this._scriptEnded(tokenStart);}} |
+tokenizer(content,processToken.bind(this));this._formattedContent+=this._content.substring(this._position);return{content:this._formattedContent,mapping:this._mapping};},_scriptStarted:function(cursor) |
+{this._formattedContent+=this._content.substring(this._position,cursor);this._formattedContent+="\n";this._position=cursor;},_scriptEnded:function(cursor) |
+{if(cursor===this._position) |
+return;var scriptContent=this._content.substring(this._position,cursor);this._mapping.original.push(this._position);this._mapping.formatted.push(this._formattedContent.length);var formattedScriptContent=formatScript(scriptContent,this._mapping,this._position,this._formattedContent.length,this._indentString);this._formattedContent+=formattedScriptContent;this._position=cursor;},} |
function require() |
-{ |
-return parse; |
-} |
- |
-var exports = {}; |
- |
- |
- |
- |
-var KEYWORDS = array_to_hash([ |
-"break", |
-"case", |
-"catch", |
-"const", |
-"continue", |
-"default", |
-"delete", |
-"do", |
-"else", |
-"finally", |
-"for", |
-"function", |
-"if", |
-"in", |
-"instanceof", |
-"new", |
-"return", |
-"switch", |
-"throw", |
-"try", |
-"typeof", |
-"var", |
-"void", |
-"while", |
-"with" |
-]); |
- |
-var RESERVED_WORDS = array_to_hash([ |
-"abstract", |
-"boolean", |
-"byte", |
-"char", |
-"class", |
-"debugger", |
-"double", |
-"enum", |
-"export", |
-"extends", |
-"final", |
-"float", |
-"goto", |
-"implements", |
-"import", |
-"int", |
-"interface", |
-"long", |
-"native", |
-"package", |
-"private", |
-"protected", |
-"public", |
-"short", |
-"static", |
-"super", |
-"synchronized", |
-"throws", |
-"transient", |
-"volatile" |
-]); |
- |
-var KEYWORDS_BEFORE_EXPRESSION = array_to_hash([ |
-"return", |
-"new", |
-"delete", |
-"throw", |
-"else", |
-"case" |
-]); |
- |
-var KEYWORDS_ATOM = array_to_hash([ |
-"false", |
-"null", |
-"true", |
-"undefined" |
-]); |
- |
-var OPERATOR_CHARS = array_to_hash(characters("+-*&%=<>!?|~^")); |
- |
-var RE_HEX_NUMBER = /^0x[0-9a-f]+$/i; |
-var RE_OCT_NUMBER = /^0[0-7]+$/; |
-var RE_DEC_NUMBER = /^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i; |
- |
-var OPERATORS = array_to_hash([ |
-"in", |
-"instanceof", |
-"typeof", |
-"new", |
-"void", |
-"delete", |
-"++", |
-"--", |
-"+", |
-"-", |
-"!", |
-"~", |
-"&", |
-"|", |
-"^", |
-"*", |
-"/", |
-"%", |
-">>", |
-"<<", |
-">>>", |
-"<", |
-">", |
-"<=", |
-">=", |
-"==", |
-"===", |
-"!=", |
-"!==", |
-"?", |
-"=", |
-"+=", |
-"-=", |
-"/=", |
-"*=", |
-"%=", |
-">>=", |
-"<<=", |
-">>>=", |
-"%=", |
-"|=", |
-"^=", |
-"&=", |
-"&&", |
-"||" |
-]); |
- |
-var WHITESPACE_CHARS = array_to_hash(characters(" \n\r\t")); |
- |
-var PUNC_BEFORE_EXPRESSION = array_to_hash(characters("[{}(,.;:")); |
- |
-var PUNC_CHARS = array_to_hash(characters("[]{}(),;:")); |
- |
-var REGEXP_MODIFIERS = array_to_hash(characters("gmsiy")); |
- |
- |
- |
-function is_alphanumeric_char(ch) { |
-ch = ch.charCodeAt(0); |
-return (ch >= 48 && ch <= 57) || |
-(ch >= 65 && ch <= 90) || |
-(ch >= 97 && ch <= 122); |
-}; |
- |
-function is_identifier_char(ch) { |
-return is_alphanumeric_char(ch) || ch == "$" || ch == "_"; |
-}; |
- |
-function is_digit(ch) { |
-ch = ch.charCodeAt(0); |
-return ch >= 48 && ch <= 57; |
-}; |
- |
-function parse_js_number(num) { |
-if (RE_HEX_NUMBER.test(num)) { |
-return parseInt(num.substr(2), 16); |
-} else if (RE_OCT_NUMBER.test(num)) { |
-return parseInt(num.substr(1), 8); |
-} else if (RE_DEC_NUMBER.test(num)) { |
-return parseFloat(num); |
-} |
-}; |
- |
-function JS_Parse_Error(message, line, col, pos) { |
-this.message = message; |
-this.line = line; |
-this.col = col; |
-this.pos = pos; |
-try { |
-({})(); |
-} catch(ex) { |
-this.stack = ex.stack; |
-}; |
-}; |
- |
-JS_Parse_Error.prototype.toString = function() { |
-return this.message + " (line: " + this.line + ", col: " + this.col + ", pos: " + this.pos + ")" + "\n\n" + this.stack; |
-}; |
- |
-function js_error(message, line, col, pos) { |
-throw new JS_Parse_Error(message, line, col, pos); |
-}; |
- |
-function is_token(token, type, val) { |
-return token.type == type && (val == null || token.value == val); |
-}; |
- |
-var EX_EOF = {}; |
- |
-function tokenizer($TEXT) { |
- |
-var S = { |
-text : $TEXT.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/, ''), |
-pos : 0, |
-tokpos : 0, |
-line : 0, |
-tokline : 0, |
-col : 0, |
-tokcol : 0, |
-newline_before : false, |
-regex_allowed : false, |
-comments_before : [] |
-}; |
- |
-function peek() { return S.text.charAt(S.pos); }; |
- |
-function next(signal_eof) { |
-var ch = S.text.charAt(S.pos++); |
-if (signal_eof && !ch) |
-throw EX_EOF; |
-if (ch == "\n") { |
-S.newline_before = true; |
-++S.line; |
-S.col = 0; |
-} else { |
-++S.col; |
-} |
-return ch; |
-}; |
- |
-function eof() { |
-return !S.peek(); |
-}; |
- |
-function find(what, signal_eof) { |
-var pos = S.text.indexOf(what, S.pos); |
-if (signal_eof && pos == -1) throw EX_EOF; |
-return pos; |
-}; |
- |
-function start_token() { |
-S.tokline = S.line; |
-S.tokcol = S.col; |
-S.tokpos = S.pos; |
-}; |
- |
-function token(type, value, is_comment) { |
-S.regex_allowed = ((type == "operator" && !HOP(UNARY_POSTFIX, value)) || |
-(type == "keyword" && HOP(KEYWORDS_BEFORE_EXPRESSION, value)) || |
-(type == "punc" && HOP(PUNC_BEFORE_EXPRESSION, value))); |
-var ret = { |
-type : type, |
-value : value, |
-line : S.tokline, |
-col : S.tokcol, |
-pos : S.tokpos, |
-nlb : S.newline_before |
-}; |
-if (!is_comment) { |
-ret.comments_before = S.comments_before; |
-S.comments_before = []; |
-} |
-S.newline_before = false; |
-return ret; |
-}; |
- |
-function skip_whitespace() { |
-while (HOP(WHITESPACE_CHARS, peek())) |
-next(); |
-}; |
- |
-function read_while(pred) { |
-var ret = "", ch = peek(), i = 0; |
-while (ch && pred(ch, i++)) { |
-ret += next(); |
-ch = peek(); |
-} |
-return ret; |
-}; |
- |
-function parse_error(err) { |
-js_error(err, S.tokline, S.tokcol, S.tokpos); |
-}; |
- |
-function read_num(prefix) { |
-var has_e = false, after_e = false, has_x = false, has_dot = prefix == "."; |
-var num = read_while(function(ch, i){ |
-if (ch == "x" || ch == "X") { |
-if (has_x) return false; |
-return has_x = true; |
-} |
-if (!has_x && (ch == "E" || ch == "e")) { |
-if (has_e) return false; |
-return has_e = after_e = true; |
-} |
-if (ch == "-") { |
-if (after_e || (i == 0 && !prefix)) return true; |
-return false; |
-} |
-if (ch == "+") return after_e; |
-after_e = false; |
-if (ch == ".") { |
-if (!has_dot) |
-return has_dot = true; |
-return false; |
-} |
-return is_alphanumeric_char(ch); |
-}); |
-if (prefix) |
-num = prefix + num; |
-var valid = parse_js_number(num); |
-if (!isNaN(valid)) { |
-return token("num", valid); |
-} else { |
-parse_error("Invalid syntax: " + num); |
-} |
-}; |
- |
-function read_escaped_char() { |
-var ch = next(true); |
-switch (ch) { |
-case "n" : return "\n"; |
-case "r" : return "\r"; |
-case "t" : return "\t"; |
-case "b" : return "\b"; |
-case "v" : return "\v"; |
-case "f" : return "\f"; |
-case "0" : return "\0"; |
-case "x" : return String.fromCharCode(hex_bytes(2)); |
-case "u" : return String.fromCharCode(hex_bytes(4)); |
-default : return ch; |
-} |
-}; |
- |
-function hex_bytes(n) { |
-var num = 0; |
-for (; n > 0; --n) { |
-var digit = parseInt(next(true), 16); |
-if (isNaN(digit)) |
-parse_error("Invalid hex-character pattern in string"); |
-num = (num << 4) | digit; |
-} |
-return num; |
-}; |
- |
-function read_string() { |
-return with_eof_error("Unterminated string constant", function(){ |
-var quote = next(), ret = ""; |
-for (;;) { |
-var ch = next(true); |
-if (ch == "\\") ch = read_escaped_char(); |
-else if (ch == quote) break; |
-ret += ch; |
-} |
-return token("string", ret); |
-}); |
-}; |
- |
-function read_line_comment() { |
-next(); |
-var i = find("\n"), ret; |
-if (i == -1) { |
-ret = S.text.substr(S.pos); |
-S.pos = S.text.length; |
-} else { |
-ret = S.text.substring(S.pos, i); |
-S.pos = i; |
-} |
-return token("comment1", ret, true); |
-}; |
- |
-function read_multiline_comment() { |
-next(); |
-return with_eof_error("Unterminated multiline comment", function(){ |
-var i = find("*/", true), |
-text = S.text.substring(S.pos, i), |
-tok = token("comment2", text, true); |
-S.pos = i + 2; |
-S.line += text.split("\n").length - 1; |
-S.newline_before = text.indexOf("\n") >= 0; |
-return tok; |
-}); |
-}; |
- |
-function read_regexp() { |
-return with_eof_error("Unterminated regular expression", function(){ |
-var prev_backslash = false, regexp = "", ch, in_class = false; |
-while ((ch = next(true))) if (prev_backslash) { |
-regexp += "\\" + ch; |
-prev_backslash = false; |
-} else if (ch == "[") { |
-in_class = true; |
-regexp += ch; |
-} else if (ch == "]" && in_class) { |
-in_class = false; |
-regexp += ch; |
-} else if (ch == "/" && !in_class) { |
-break; |
-} else if (ch == "\\") { |
-prev_backslash = true; |
-} else { |
-regexp += ch; |
-} |
-var mods = read_while(function(ch){ |
-return HOP(REGEXP_MODIFIERS, ch); |
-}); |
-return token("regexp", [ regexp, mods ]); |
-}); |
-}; |
- |
-function read_operator(prefix) { |
-function grow(op) { |
-if (!peek()) return op; |
-var bigger = op + peek(); |
-if (HOP(OPERATORS, bigger)) { |
-next(); |
-return grow(bigger); |
-} else { |
-return op; |
-} |
-}; |
-return token("operator", grow(prefix || next())); |
-}; |
- |
-function handle_slash() { |
-next(); |
-var regex_allowed = S.regex_allowed; |
-switch (peek()) { |
-case "/": |
-S.comments_before.push(read_line_comment()); |
-S.regex_allowed = regex_allowed; |
-return next_token(); |
-case "*": |
-S.comments_before.push(read_multiline_comment()); |
-S.regex_allowed = regex_allowed; |
-return next_token(); |
-} |
-return S.regex_allowed ? read_regexp() : read_operator("/"); |
-}; |
- |
-function handle_dot() { |
-next(); |
-return is_digit(peek()) |
-? read_num(".") |
-: token("punc", "."); |
-}; |
- |
-function read_word() { |
-var word = read_while(is_identifier_char); |
-return !HOP(KEYWORDS, word) |
-? token("name", word) |
-: HOP(OPERATORS, word) |
-? token("operator", word) |
-: HOP(KEYWORDS_ATOM, word) |
-? token("atom", word) |
-: token("keyword", word); |
-}; |
- |
-function with_eof_error(eof_error, cont) { |
-try { |
-return cont(); |
-} catch(ex) { |
-if (ex === EX_EOF) parse_error(eof_error); |
-else throw ex; |
-} |
-}; |
- |
-function next_token(force_regexp) { |
-if (force_regexp) |
-return read_regexp(); |
-skip_whitespace(); |
-start_token(); |
-var ch = peek(); |
-if (!ch) return token("eof"); |
-if (is_digit(ch)) return read_num(); |
-if (ch == '"' || ch == "'") return read_string(); |
-if (HOP(PUNC_CHARS, ch)) return token("punc", next()); |
-if (ch == ".") return handle_dot(); |
-if (ch == "/") return handle_slash(); |
-if (HOP(OPERATOR_CHARS, ch)) return read_operator(); |
-if (is_identifier_char(ch)) return read_word(); |
-parse_error("Unexpected character '" + ch + "'"); |
-}; |
- |
-next_token.context = function(nc) { |
-if (nc) S = nc; |
-return S; |
-}; |
- |
-return next_token; |
- |
-}; |
- |
- |
- |
-var UNARY_PREFIX = array_to_hash([ |
-"typeof", |
-"void", |
-"delete", |
-"--", |
-"++", |
-"!", |
-"~", |
-"-", |
-"+" |
-]); |
- |
-var UNARY_POSTFIX = array_to_hash([ "--", "++" ]); |
- |
-var ASSIGNMENT = (function(a, ret, i){ |
-while (i < a.length) { |
-ret[a[i]] = a[i].substr(0, a[i].length - 1); |
-i++; |
-} |
-return ret; |
-})( |
-["+=", "-=", "/=", "*=", "%=", ">>=", "<<=", ">>>=", "|=", "^=", "&="], |
-{ "=": true }, |
-0 |
-); |
- |
-var PRECEDENCE = (function(a, ret){ |
-for (var i = 0, n = 1; i < a.length; ++i, ++n) { |
-var b = a[i]; |
-for (var j = 0; j < b.length; ++j) { |
-ret[b[j]] = n; |
-} |
-} |
-return ret; |
-})( |
-[ |
-["||"], |
-["&&"], |
-["|"], |
-["^"], |
-["&"], |
-["==", "===", "!=", "!=="], |
-["<", ">", "<=", ">=", "in", "instanceof"], |
-[">>", "<<", ">>>"], |
-["+", "-"], |
-["*", "/", "%"] |
-], |
-{} |
-); |
- |
-var STATEMENTS_WITH_LABELS = array_to_hash([ "for", "do", "while", "switch" ]); |
- |
-var ATOMIC_START_TOKEN = array_to_hash([ "atom", "num", "string", "regexp", "name" ]); |
- |
- |
- |
-function NodeWithToken(str, start, end) { |
-this.name = str; |
-this.start = start; |
-this.end = end; |
-}; |
- |
-NodeWithToken.prototype.toString = function() { return this.name; }; |
- |
-function parse($TEXT, strict_mode, embed_tokens) { |
- |
-var S = { |
-input : typeof $TEXT == "string" ? tokenizer($TEXT, true) : $TEXT, |
-token : null, |
-prev : null, |
-peeked : null, |
-in_function : 0, |
-in_loop : 0, |
-labels : [] |
-}; |
- |
-S.token = next(); |
- |
-function is(type, value) { |
-return is_token(S.token, type, value); |
-}; |
- |
-function peek() { return S.peeked || (S.peeked = S.input()); }; |
- |
-function next() { |
-S.prev = S.token; |
-if (S.peeked) { |
-S.token = S.peeked; |
-S.peeked = null; |
-} else { |
-S.token = S.input(); |
-} |
-return S.token; |
-}; |
- |
-function prev() { |
-return S.prev; |
-}; |
- |
-function croak(msg, line, col, pos) { |
-var ctx = S.input.context(); |
-js_error(msg, |
-line != null ? line : ctx.tokline, |
-col != null ? col : ctx.tokcol, |
-pos != null ? pos : ctx.tokpos); |
-}; |
- |
-function token_error(token, msg) { |
-croak(msg, token.line, token.col); |
-}; |
- |
-function unexpected(token) { |
-if (token == null) |
-token = S.token; |
-token_error(token, "Unexpected token: " + token.type + " (" + token.value + ")"); |
-}; |
- |
-function expect_token(type, val) { |
-if (is(type, val)) { |
-return next(); |
-} |
-token_error(S.token, "Unexpected token " + S.token.type + ", expected " + type); |
-}; |
- |
-function expect(punc) { return expect_token("punc", punc); }; |
- |
-function can_insert_semicolon() { |
-return !strict_mode && ( |
-S.token.nlb || is("eof") || is("punc", "}") |
-); |
-}; |
- |
-function semicolon() { |
-if (is("punc", ";")) next(); |
-else if (!can_insert_semicolon()) unexpected(); |
-}; |
- |
-function as() { |
-return slice(arguments); |
-}; |
- |
-function parenthesised() { |
-expect("("); |
-var ex = expression(); |
-expect(")"); |
-return ex; |
-}; |
- |
-function add_tokens(str, start, end) { |
-return new NodeWithToken(str, start, end); |
-}; |
- |
-var statement = embed_tokens ? function() { |
-var start = S.token; |
-var stmt = $statement(); |
-stmt[0] = add_tokens(stmt[0], start, prev()); |
-return stmt; |
-} : $statement; |
- |
-function $statement() { |
-if (is("operator", "/")) { |
-S.peeked = null; |
-S.token = S.input(true); |
-} |
-switch (S.token.type) { |
-case "num": |
-case "string": |
-case "regexp": |
-case "operator": |
-case "atom": |
-return simple_statement(); |
- |
-case "name": |
-return is_token(peek(), "punc", ":") |
-? labeled_statement(prog1(S.token.value, next, next)) |
-: simple_statement(); |
- |
-case "punc": |
-switch (S.token.value) { |
-case "{": |
-return as("block", block_()); |
-case "[": |
-case "(": |
-return simple_statement(); |
-case ";": |
-next(); |
-return as("block"); |
-default: |
-unexpected(); |
-} |
- |
-case "keyword": |
-switch (prog1(S.token.value, next)) { |
-case "break": |
-return break_cont("break"); |
- |
-case "continue": |
-return break_cont("continue"); |
- |
-case "debugger": |
-semicolon(); |
-return as("debugger"); |
- |
-case "do": |
-return (function(body){ |
-expect_token("keyword", "while"); |
-return as("do", prog1(parenthesised, semicolon), body); |
-})(in_loop(statement)); |
- |
-case "for": |
-return for_(); |
- |
-case "function": |
-return function_(true); |
- |
-case "if": |
-return if_(); |
- |
-case "return": |
-if (S.in_function == 0) |
-croak("'return' outside of function"); |
-return as("return", |
-is("punc", ";") |
-? (next(), null) |
-: can_insert_semicolon() |
-? null |
-: prog1(expression, semicolon)); |
- |
-case "switch": |
-return as("switch", parenthesised(), switch_block_()); |
- |
-case "throw": |
-return as("throw", prog1(expression, semicolon)); |
- |
-case "try": |
-return try_(); |
- |
-case "var": |
-return prog1(var_, semicolon); |
- |
-case "const": |
-return prog1(const_, semicolon); |
- |
-case "while": |
-return as("while", parenthesised(), in_loop(statement)); |
- |
-case "with": |
-return as("with", parenthesised(), statement()); |
- |
-default: |
-unexpected(); |
-} |
-} |
-}; |
- |
-function labeled_statement(label) { |
-S.labels.push(label); |
-var start = S.token, stat = statement(); |
-if (strict_mode && !HOP(STATEMENTS_WITH_LABELS, stat[0])) |
-unexpected(start); |
-S.labels.pop(); |
-return as("label", label, stat); |
-}; |
- |
-function simple_statement() { |
-return as("stat", prog1(expression, semicolon)); |
-}; |
- |
-function break_cont(type) { |
-var name = is("name") ? S.token.value : null; |
-if (name != null) { |
-next(); |
-if (!member(name, S.labels)) |
-croak("Label " + name + " without matching loop or statement"); |
-} |
-else if (S.in_loop == 0) |
-croak(type + " not inside a loop or switch"); |
-semicolon(); |
-return as(type, name); |
-}; |
- |
-function for_() { |
-expect("("); |
-var has_var = is("keyword", "var"); |
-if (has_var) |
-next(); |
-if (is("name") && is_token(peek(), "operator", "in")) { |
- |
-var name = S.token.value; |
-next(); next(); |
-var obj = expression(); |
-expect(")"); |
-return as("for-in", has_var, name, obj, in_loop(statement)); |
-} else { |
- |
-var init = is("punc", ";") ? null : has_var ? var_() : expression(); |
-expect(";"); |
-var test = is("punc", ";") ? null : expression(); |
-expect(";"); |
-var step = is("punc", ")") ? null : expression(); |
-expect(")"); |
-return as("for", init, test, step, in_loop(statement)); |
-} |
-}; |
- |
-function function_(in_statement) { |
-var name = is("name") ? prog1(S.token.value, next) : null; |
-if (in_statement && !name) |
-unexpected(); |
-expect("("); |
-return as(in_statement ? "defun" : "function", |
-name, |
- |
-(function(first, a){ |
-while (!is("punc", ")")) { |
-if (first) first = false; else expect(","); |
-if (!is("name")) unexpected(); |
-a.push(S.token.value); |
-next(); |
-} |
-next(); |
-return a; |
-})(true, []), |
- |
-(function(){ |
-++S.in_function; |
-var loop = S.in_loop; |
-S.in_loop = 0; |
-var a = block_(); |
---S.in_function; |
-S.in_loop = loop; |
-return a; |
-})()); |
-}; |
- |
-function if_() { |
-var cond = parenthesised(), body = statement(), belse; |
-if (is("keyword", "else")) { |
-next(); |
-belse = statement(); |
-} |
-return as("if", cond, body, belse); |
-}; |
- |
-function block_() { |
-expect("{"); |
-var a = []; |
-while (!is("punc", "}")) { |
-if (is("eof")) unexpected(); |
-a.push(statement()); |
-} |
-next(); |
-return a; |
-}; |
- |
-var switch_block_ = curry(in_loop, function(){ |
-expect("{"); |
-var a = [], cur = null; |
-while (!is("punc", "}")) { |
-if (is("eof")) unexpected(); |
-if (is("keyword", "case")) { |
-next(); |
-cur = []; |
-a.push([ expression(), cur ]); |
-expect(":"); |
-} |
-else if (is("keyword", "default")) { |
-next(); |
-expect(":"); |
-cur = []; |
-a.push([ null, cur ]); |
-} |
-else { |
-if (!cur) unexpected(); |
-cur.push(statement()); |
-} |
-} |
-next(); |
-return a; |
-}); |
- |
-function try_() { |
-var body = block_(), bcatch, bfinally; |
-if (is("keyword", "catch")) { |
-next(); |
-expect("("); |
-if (!is("name")) |
-croak("Name expected"); |
-var name = S.token.value; |
-next(); |
-expect(")"); |
-bcatch = [ name, block_() ]; |
-} |
-if (is("keyword", "finally")) { |
-next(); |
-bfinally = block_(); |
-} |
-if (!bcatch && !bfinally) |
-croak("Missing catch/finally blocks"); |
-return as("try", body, bcatch, bfinally); |
-}; |
- |
-function vardefs() { |
-var a = []; |
-for (;;) { |
-if (!is("name")) |
-unexpected(); |
-var name = S.token.value; |
-next(); |
-if (is("operator", "=")) { |
-next(); |
-a.push([ name, expression(false) ]); |
-} else { |
-a.push([ name ]); |
-} |
-if (!is("punc", ",")) |
-break; |
-next(); |
-} |
-return a; |
-}; |
- |
-function var_() { |
-return as("var", vardefs()); |
-}; |
- |
-function const_() { |
-return as("const", vardefs()); |
-}; |
- |
-function new_() { |
-var newexp = expr_atom(false), args; |
-if (is("punc", "(")) { |
-next(); |
-args = expr_list(")"); |
-} else { |
-args = []; |
-} |
-return subscripts(as("new", newexp, args), true); |
-}; |
- |
-function expr_atom(allow_calls) { |
-if (is("operator", "new")) { |
-next(); |
-return new_(); |
-} |
-if (is("operator") && HOP(UNARY_PREFIX, S.token.value)) { |
-return make_unary("unary-prefix", |
-prog1(S.token.value, next), |
-expr_atom(allow_calls)); |
-} |
-if (is("punc")) { |
-switch (S.token.value) { |
-case "(": |
-next(); |
-return subscripts(prog1(expression, curry(expect, ")")), allow_calls); |
-case "[": |
-next(); |
-return subscripts(array_(), allow_calls); |
-case "{": |
-next(); |
-return subscripts(object_(), allow_calls); |
-} |
-unexpected(); |
-} |
-if (is("keyword", "function")) { |
-next(); |
-return subscripts(function_(false), allow_calls); |
-} |
-if (HOP(ATOMIC_START_TOKEN, S.token.type)) { |
-var atom = S.token.type == "regexp" |
-? as("regexp", S.token.value[0], S.token.value[1]) |
-: as(S.token.type, S.token.value); |
-return subscripts(prog1(atom, next), allow_calls); |
-} |
-unexpected(); |
-}; |
- |
-function expr_list(closing, allow_trailing_comma, allow_empty) { |
-var first = true, a = []; |
-while (!is("punc", closing)) { |
-if (first) first = false; else expect(","); |
-if (allow_trailing_comma && is("punc", closing)) break; |
-if (is("punc", ",") && allow_empty) { |
-a.push([ "atom", "undefined" ]); |
-} else { |
-a.push(expression(false)); |
-} |
-} |
-next(); |
-return a; |
-}; |
- |
-function array_() { |
-return as("array", expr_list("]", !strict_mode, true)); |
-}; |
- |
-function object_() { |
-var first = true, a = []; |
-while (!is("punc", "}")) { |
-if (first) first = false; else expect(","); |
-if (!strict_mode && is("punc", "}")) |
- |
-break; |
-var type = S.token.type; |
-var name = as_property_name(); |
-if (type == "name" && (name == "get" || name == "set") && !is("punc", ":")) { |
-a.push([ as_name(), function_(false), name ]); |
-} else { |
-expect(":"); |
-a.push([ name, expression(false) ]); |
-} |
-} |
-next(); |
-return as("object", a); |
-}; |
- |
-function as_property_name() { |
-switch (S.token.type) { |
-case "num": |
-case "string": |
-return prog1(S.token.value, next); |
-} |
-return as_name(); |
-}; |
- |
-function as_name() { |
-switch (S.token.type) { |
-case "name": |
-case "operator": |
-case "keyword": |
-case "atom": |
-return prog1(S.token.value, next); |
-default: |
-unexpected(); |
-} |
-}; |
- |
-function subscripts(expr, allow_calls) { |
-if (is("punc", ".")) { |
-next(); |
-return subscripts(as("dot", expr, as_name()), allow_calls); |
-} |
-if (is("punc", "[")) { |
-next(); |
-return subscripts(as("sub", expr, prog1(expression, curry(expect, "]"))), allow_calls); |
-} |
-if (allow_calls && is("punc", "(")) { |
-next(); |
-return subscripts(as("call", expr, expr_list(")")), true); |
-} |
-if (allow_calls && is("operator") && HOP(UNARY_POSTFIX, S.token.value)) { |
-return prog1(curry(make_unary, "unary-postfix", S.token.value, expr), |
-next); |
-} |
-return expr; |
-}; |
- |
-function make_unary(tag, op, expr) { |
-if ((op == "++" || op == "--") && !is_assignable(expr)) |
-croak("Invalid use of " + op + " operator"); |
-return as(tag, op, expr); |
-}; |
- |
-function expr_op(left, min_prec) { |
-var op = is("operator") ? S.token.value : null; |
-var prec = op != null ? PRECEDENCE[op] : null; |
-if (prec != null && prec > min_prec) { |
-next(); |
-var right = expr_op(expr_atom(true), prec); |
-return expr_op(as("binary", op, left, right), min_prec); |
-} |
-return left; |
-}; |
- |
-function expr_ops() { |
-return expr_op(expr_atom(true), 0); |
-}; |
- |
-function maybe_conditional() { |
-var expr = expr_ops(); |
-if (is("operator", "?")) { |
-next(); |
-var yes = expression(false); |
-expect(":"); |
-return as("conditional", expr, yes, expression(false)); |
-} |
-return expr; |
-}; |
- |
-function is_assignable(expr) { |
-switch (expr[0]) { |
-case "dot": |
-case "sub": |
-return true; |
-case "name": |
-return expr[1] != "this"; |
-} |
-}; |
- |
-function maybe_assign() { |
-var left = maybe_conditional(), val = S.token.value; |
-if (is("operator") && HOP(ASSIGNMENT, val)) { |
-if (is_assignable(left)) { |
-next(); |
-return as("assign", ASSIGNMENT[val], left, maybe_assign()); |
-} |
-croak("Invalid assignment"); |
-} |
-return left; |
-}; |
- |
-function expression(commas) { |
-if (arguments.length == 0) |
-commas = true; |
-var expr = maybe_assign(); |
-if (commas && is("punc", ",")) { |
-next(); |
-return as("seq", expr, expression()); |
-} |
-return expr; |
-}; |
- |
-function in_loop(cont) { |
-try { |
-++S.in_loop; |
-return cont(); |
-} finally { |
---S.in_loop; |
-} |
-}; |
- |
-return as("toplevel", (function(a){ |
-while (!is("eof")) |
-a.push(statement()); |
-return a; |
-})([])); |
- |
-}; |
- |
- |
- |
-function curry(f) { |
-var args = slice(arguments, 1); |
-return function() { return f.apply(this, args.concat(slice(arguments))); }; |
-}; |
- |
-function prog1(ret) { |
-if (ret instanceof Function) |
-ret = ret(); |
-for (var i = 1, n = arguments.length; --n > 0; ++i) |
-arguments[i](); |
-return ret; |
-}; |
- |
-function array_to_hash(a) { |
-var ret = {}; |
-for (var i = 0; i < a.length; ++i) |
-ret[a[i]] = true; |
-return ret; |
-}; |
- |
-function slice(a, start) { |
-return Array.prototype.slice.call(a, start == null ? 0 : start); |
-}; |
- |
-function characters(str) { |
-return str.split(""); |
-}; |
- |
-function member(name, array) { |
-for (var i = array.length; --i >= 0;) |
-if (array[i] === name) |
-return true; |
-return false; |
-}; |
- |
-function HOP(obj, prop) { |
-return Object.prototype.hasOwnProperty.call(obj, prop); |
-}; |
- |
- |
- |
-exports.tokenizer = tokenizer; |
-exports.parse = parse; |
-exports.slice = slice; |
-exports.curry = curry; |
-exports.member = member; |
-exports.array_to_hash = array_to_hash; |
-exports.PRECEDENCE = PRECEDENCE; |
-exports.KEYWORDS_ATOM = KEYWORDS_ATOM; |
-exports.RESERVED_WORDS = RESERVED_WORDS; |
-exports.KEYWORDS = KEYWORDS; |
-exports.ATOMIC_START_TOKEN = ATOMIC_START_TOKEN; |
-exports.OPERATORS = OPERATORS; |
-exports.is_alphanumeric_char = is_alphanumeric_char; |
-exports.is_identifier_char = is_identifier_char; |
-; |
-var parse = exports; |
- |
- |
- |
-function FormattedContentBuilder(content, mapping, originalOffset, formattedOffset, indentString) |
-{ |
-this._originalContent = content; |
-this._originalOffset = originalOffset; |
-this._lastOriginalPosition = 0; |
- |
-this._formattedContent = []; |
-this._formattedContentLength = 0; |
-this._formattedOffset = formattedOffset; |
-this._lastFormattedPosition = 0; |
- |
-this._mapping = mapping; |
- |
-this._lineNumber = 0; |
-this._nestingLevel = 0; |
-this._indentString = indentString; |
-this._cachedIndents = {}; |
-} |
- |
-FormattedContentBuilder.prototype = { |
-addToken: function(token) |
-{ |
-for (var i = 0; i < token.comments_before.length; ++i) |
-this._addComment(token.comments_before[i]); |
- |
-while (this._lineNumber < token.line) { |
-this._addText("\n"); |
-this._addIndent(); |
-this._needNewLine = false; |
-this._lineNumber += 1; |
-} |
- |
-if (this._needNewLine) { |
-this._addText("\n"); |
-this._addIndent(); |
-this._needNewLine = false; |
-} |
- |
-this._addMappingIfNeeded(token.pos); |
-this._addText(this._originalContent.substring(token.pos, token.endPos)); |
-this._lineNumber = token.endLine; |
-}, |
- |
-addSpace: function() |
-{ |
-this._addText(" "); |
-}, |
- |
-addNewLine: function() |
-{ |
-this._needNewLine = true; |
-}, |
- |
-increaseNestingLevel: function() |
-{ |
-this._nestingLevel += 1; |
-}, |
- |
-decreaseNestingLevel: function() |
-{ |
-this._nestingLevel -= 1; |
-}, |
- |
-content: function() |
-{ |
-return this._formattedContent.join(""); |
-}, |
- |
-mapping: function() |
-{ |
-return { original: this._originalPositions, formatted: this._formattedPositions }; |
-}, |
- |
-_addIndent: function() |
-{ |
-if (this._cachedIndents[this._nestingLevel]) { |
-this._addText(this._cachedIndents[this._nestingLevel]); |
-return; |
-} |
- |
-var fullIndent = ""; |
-for (var i = 0; i < this._nestingLevel; ++i) |
-fullIndent += this._indentString; |
-this._addText(fullIndent); |
- |
- |
-if (this._nestingLevel <= 20) |
-this._cachedIndents[this._nestingLevel] = fullIndent; |
-}, |
- |
-_addComment: function(comment) |
-{ |
-if (this._lineNumber < comment.line) { |
-for (var j = this._lineNumber; j < comment.line; ++j) |
-this._addText("\n"); |
-this._lineNumber = comment.line; |
-this._needNewLine = false; |
-this._addIndent(); |
-} else |
-this.addSpace(); |
- |
-this._addMappingIfNeeded(comment.pos); |
-if (comment.type === "comment1") |
-this._addText("//"); |
-else |
-this._addText("/*"); |
- |
-this._addText(comment.value); |
- |
-if (comment.type !== "comment1") { |
-this._addText("*/"); |
-var position; |
-while ((position = comment.value.indexOf("\n", position + 1)) !== -1) |
-this._lineNumber += 1; |
-} |
-}, |
- |
-_addText: function(text) |
-{ |
-this._formattedContent.push(text); |
-this._formattedContentLength += text.length; |
-}, |
- |
-_addMappingIfNeeded: function(originalPosition) |
-{ |
-if (originalPosition - this._lastOriginalPosition === this._formattedContentLength - this._lastFormattedPosition) |
-return; |
-this._mapping.original.push(this._originalOffset + originalPosition); |
-this._lastOriginalPosition = originalPosition; |
-this._mapping.formatted.push(this._formattedOffset + this._formattedContentLength); |
-this._lastFormattedPosition = this._formattedContentLength; |
-} |
-} |
- |
-var tokens = [ |
-["EOS"], |
-["LPAREN", "("], ["RPAREN", ")"], ["LBRACK", "["], ["RBRACK", "]"], ["LBRACE", "{"], ["RBRACE", "}"], ["COLON", ":"], ["SEMICOLON", ";"], ["PERIOD", "."], ["CONDITIONAL", "?"], |
-["INC", "++"], ["DEC", "--"], |
-["ASSIGN", "="], ["ASSIGN_BIT_OR", "|="], ["ASSIGN_BIT_XOR", "^="], ["ASSIGN_BIT_AND", "&="], ["ASSIGN_SHL", "<<="], ["ASSIGN_SAR", ">>="], ["ASSIGN_SHR", ">>>="], |
-["ASSIGN_ADD", "+="], ["ASSIGN_SUB", "-="], ["ASSIGN_MUL", "*="], ["ASSIGN_DIV", "/="], ["ASSIGN_MOD", "%="], |
-["COMMA", ","], ["OR", "||"], ["AND", "&&"], ["BIT_OR", "|"], ["BIT_XOR", "^"], ["BIT_AND", "&"], ["SHL", "<<"], ["SAR", ">>"], ["SHR", ">>>"], |
-["ADD", "+"], ["SUB", "-"], ["MUL", "*"], ["DIV", "/"], ["MOD", "%"], |
-["EQ", "=="], ["NE", "!="], ["EQ_STRICT", "==="], ["NE_STRICT", "!=="], ["LT", "<"], ["GT", ">"], ["LTE", "<="], ["GTE", ">="], |
-["INSTANCEOF", "instanceof"], ["IN", "in"], ["NOT", "!"], ["BIT_NOT", "~"], ["DELETE", "delete"], ["TYPEOF", "typeof"], ["VOID", "void"], |
-["BREAK", "break"], ["CASE", "case"], ["CATCH", "catch"], ["CONTINUE", "continue"], ["DEBUGGER", "debugger"], ["DEFAULT", "default"], ["DO", "do"], ["ELSE", "else"], ["FINALLY", "finally"], |
-["FOR", "for"], ["FUNCTION", "function"], ["IF", "if"], ["NEW", "new"], ["RETURN", "return"], ["SWITCH", "switch"], ["THIS", "this"], ["THROW", "throw"], ["TRY", "try"], ["VAR", "var"], |
-["WHILE", "while"], ["WITH", "with"], ["NULL_LITERAL", "null"], ["TRUE_LITERAL", "true"], ["FALSE_LITERAL", "false"], ["NUMBER"], ["STRING"], ["IDENTIFIER"], ["CONST", "const"] |
-]; |
- |
-var Tokens = {}; |
-for (var i = 0; i < tokens.length; ++i) |
-Tokens[tokens[i][0]] = i; |
- |
-var TokensByValue = {}; |
-for (var i = 0; i < tokens.length; ++i) { |
-if (tokens[i][1]) |
-TokensByValue[tokens[i][1]] = i; |
-} |
- |
-var TokensByType = { |
-"eof": Tokens.EOS, |
-"name": Tokens.IDENTIFIER, |
-"num": Tokens.NUMBER, |
-"regexp": Tokens.DIV, |
-"string": Tokens.STRING |
-}; |
- |
-function Tokenizer(content) |
-{ |
-this._readNextToken = parse.tokenizer(content); |
-this._state = this._readNextToken.context(); |
-} |
- |
-Tokenizer.prototype = { |
-content: function() |
-{ |
-return this._state.text; |
-}, |
- |
-next: function(forceRegexp) |
-{ |
-var uglifyToken = this._readNextToken(forceRegexp); |
-uglifyToken.endPos = this._state.pos; |
-uglifyToken.endLine = this._state.line; |
-uglifyToken.token = this._convertUglifyToken(uglifyToken); |
-return uglifyToken; |
-}, |
- |
-_convertUglifyToken: function(uglifyToken) |
-{ |
-var token = TokensByType[uglifyToken.type]; |
-if (typeof token === "number") |
-return token; |
-token = TokensByValue[uglifyToken.value]; |
-if (typeof token === "number") |
-return token; |
-throw "Unknown token type " + uglifyToken.type; |
-} |
-} |
- |
-function JavaScriptFormatter(tokenizer, builder) |
-{ |
-this._tokenizer = tokenizer; |
-this._builder = builder; |
-this._token = null; |
-this._nextToken = this._tokenizer.next(); |
-} |
- |
-JavaScriptFormatter.prototype = { |
-format: function() |
-{ |
-this._parseSourceElements(Tokens.EOS); |
-this._consume(Tokens.EOS); |
-}, |
- |
-_peek: function() |
-{ |
-return this._nextToken.token; |
-}, |
- |
-_next: function() |
-{ |
-if (this._token && this._token.token === Tokens.EOS) |
-throw "Unexpected EOS token"; |
- |
-this._builder.addToken(this._nextToken); |
-this._token = this._nextToken; |
-this._nextToken = this._tokenizer.next(this._forceRegexp); |
-this._forceRegexp = false; |
-return this._token.token; |
-}, |
- |
-_consume: function(token) |
-{ |
-var next = this._next(); |
-if (next !== token) |
-throw "Unexpected token in consume: expected " + token + ", actual " + next; |
-}, |
- |
-_expect: function(token) |
-{ |
-var next = this._next(); |
-if (next !== token) |
-throw "Unexpected token: expected " + token + ", actual " + next; |
-}, |
- |
-_expectSemicolon: function() |
-{ |
-if (this._peek() === Tokens.SEMICOLON) |
-this._consume(Tokens.SEMICOLON); |
-}, |
- |
-_hasLineTerminatorBeforeNext: function() |
-{ |
-return this._nextToken.nlb; |
-}, |
- |
-_parseSourceElements: function(endToken) |
-{ |
-while (this._peek() !== endToken) { |
-this._parseStatement(); |
-this._builder.addNewLine(); |
-} |
-}, |
- |
-_parseStatementOrBlock: function() |
-{ |
-if (this._peek() === Tokens.LBRACE) { |
-this._builder.addSpace(); |
-this._parseBlock(); |
-return true; |
-} |
- |
-this._builder.addNewLine(); |
-this._builder.increaseNestingLevel(); |
-this._parseStatement(); |
-this._builder.decreaseNestingLevel(); |
-}, |
- |
-_parseStatement: function() |
-{ |
-switch (this._peek()) { |
-case Tokens.LBRACE: |
-return this._parseBlock(); |
-case Tokens.CONST: |
-case Tokens.VAR: |
-return this._parseVariableStatement(); |
-case Tokens.SEMICOLON: |
-return this._next(); |
-case Tokens.IF: |
-return this._parseIfStatement(); |
-case Tokens.DO: |
-return this._parseDoWhileStatement(); |
-case Tokens.WHILE: |
-return this._parseWhileStatement(); |
-case Tokens.FOR: |
-return this._parseForStatement(); |
-case Tokens.CONTINUE: |
-return this._parseContinueStatement(); |
-case Tokens.BREAK: |
-return this._parseBreakStatement(); |
-case Tokens.RETURN: |
-return this._parseReturnStatement(); |
-case Tokens.WITH: |
-return this._parseWithStatement(); |
-case Tokens.SWITCH: |
-return this._parseSwitchStatement(); |
-case Tokens.THROW: |
-return this._parseThrowStatement(); |
-case Tokens.TRY: |
-return this._parseTryStatement(); |
-case Tokens.FUNCTION: |
-return this._parseFunctionDeclaration(); |
-case Tokens.DEBUGGER: |
-return this._parseDebuggerStatement(); |
-default: |
-return this._parseExpressionOrLabelledStatement(); |
-} |
-}, |
- |
-_parseFunctionDeclaration: function() |
-{ |
-this._expect(Tokens.FUNCTION); |
-this._builder.addSpace(); |
-this._expect(Tokens.IDENTIFIER); |
-this._parseFunctionLiteral() |
-}, |
- |
-_parseBlock: function() |
-{ |
-this._expect(Tokens.LBRACE); |
-this._builder.addNewLine(); |
-this._builder.increaseNestingLevel(); |
-while (this._peek() !== Tokens.RBRACE) { |
-this._parseStatement(); |
-this._builder.addNewLine(); |
-} |
-this._builder.decreaseNestingLevel(); |
-this._expect(Tokens.RBRACE); |
-}, |
- |
-_parseVariableStatement: function() |
-{ |
-this._parseVariableDeclarations(); |
-this._expectSemicolon(); |
-}, |
- |
-_parseVariableDeclarations: function() |
-{ |
-if (this._peek() === Tokens.VAR) |
-this._consume(Tokens.VAR); |
-else |
+{return parse;} |
+var exports={};var KEYWORDS=array_to_hash(["break","case","catch","const","continue","default","delete","do","else","finally","for","function","if","in","instanceof","new","return","switch","throw","try","typeof","var","void","while","with"]);var RESERVED_WORDS=array_to_hash(["abstract","boolean","byte","char","class","debugger","double","enum","export","extends","final","float","goto","implements","import","int","interface","long","native","package","private","protected","public","short","static","super","synchronized","throws","transient","volatile"]);var KEYWORDS_BEFORE_EXPRESSION=array_to_hash(["return","new","delete","throw","else","case"]);var KEYWORDS_ATOM=array_to_hash(["false","null","true","undefined"]);var OPERATOR_CHARS=array_to_hash(characters("+-*&%=<>!?|~^"));var RE_HEX_NUMBER=/^0x[0-9a-f]+$/i;var RE_OCT_NUMBER=/^0[0-7]+$/;var RE_DEC_NUMBER=/^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i;var OPERATORS=array_to_hash(["in","instanceof","typeof","new","void","delete","++","--","+","-","!","~","&","|","^","*","/","%",">>","<<",">>>","<",">","<=",">=","==","===","!=","!==","?","=","+=","-=","/=","*=","%=",">>=","<<=",">>>=","%=","|=","^=","&=","&&","||"]);var WHITESPACE_CHARS=array_to_hash(characters(" \n\r\t"));var PUNC_BEFORE_EXPRESSION=array_to_hash(characters("[{}(,.;:"));var PUNC_CHARS=array_to_hash(characters("[]{}(),;:"));var REGEXP_MODIFIERS=array_to_hash(characters("gmsiy"));function is_alphanumeric_char(ch){ch=ch.charCodeAt(0);return(ch>=48&&ch<=57)||(ch>=65&&ch<=90)||(ch>=97&&ch<=122);};function is_identifier_char(ch){return is_alphanumeric_char(ch)||ch=="$"||ch=="_";};function is_digit(ch){ch=ch.charCodeAt(0);return ch>=48&&ch<=57;};function parse_js_number(num){if(RE_HEX_NUMBER.test(num)){return parseInt(num.substr(2),16);}else if(RE_OCT_NUMBER.test(num)){return parseInt(num.substr(1),8);}else if(RE_DEC_NUMBER.test(num)){return parseFloat(num);}};function JS_Parse_Error(message,line,col,pos){this.message=message;this.line=line;this.col=col;this.pos=pos;try{({})();}catch(ex){this.stack=ex.stack;};};JS_Parse_Error.prototype.toString=function(){return this.message+" (line: "+this.line+", col: "+this.col+", pos: "+this.pos+")"+"\n\n"+this.stack;};function js_error(message,line,col,pos){throw new JS_Parse_Error(message,line,col,pos);};function is_token(token,type,val){return token.type==type&&(val==null||token.value==val);};var EX_EOF={};function tokenizer($TEXT){var S={text:$TEXT.replace(/\r\n?|[\n\u2028\u2029]/g,"\n").replace(/^\uFEFF/,''),pos:0,tokpos:0,line:0,tokline:0,col:0,tokcol:0,newline_before:false,regex_allowed:false,comments_before:[]};function peek(){return S.text.charAt(S.pos);};function next(signal_eof){var ch=S.text.charAt(S.pos++);if(signal_eof&&!ch) |
+throw EX_EOF;if(ch=="\n"){S.newline_before=true;++S.line;S.col=0;}else{++S.col;} |
+return ch;};function eof(){return!S.peek();};function find(what,signal_eof){var pos=S.text.indexOf(what,S.pos);if(signal_eof&&pos==-1)throw EX_EOF;return pos;};function start_token(){S.tokline=S.line;S.tokcol=S.col;S.tokpos=S.pos;};function token(type,value,is_comment){S.regex_allowed=((type=="operator"&&!HOP(UNARY_POSTFIX,value))||(type=="keyword"&&HOP(KEYWORDS_BEFORE_EXPRESSION,value))||(type=="punc"&&HOP(PUNC_BEFORE_EXPRESSION,value)));var ret={type:type,value:value,line:S.tokline,col:S.tokcol,pos:S.tokpos,nlb:S.newline_before};if(!is_comment){ret.comments_before=S.comments_before;S.comments_before=[];} |
+S.newline_before=false;return ret;};function skip_whitespace(){while(HOP(WHITESPACE_CHARS,peek())) |
+next();};function read_while(pred){var ret="",ch=peek(),i=0;while(ch&&pred(ch,i++)){ret+=next();ch=peek();} |
+return ret;};function parse_error(err){js_error(err,S.tokline,S.tokcol,S.tokpos);};function read_num(prefix){var has_e=false,after_e=false,has_x=false,has_dot=prefix==".";var num=read_while(function(ch,i){if(ch=="x"||ch=="X"){if(has_x)return false;return has_x=true;} |
+if(!has_x&&(ch=="E"||ch=="e")){if(has_e)return false;return has_e=after_e=true;} |
+if(ch=="-"){if(after_e||(i==0&&!prefix))return true;return false;} |
+if(ch=="+")return after_e;after_e=false;if(ch=="."){if(!has_dot) |
+return has_dot=true;return false;} |
+return is_alphanumeric_char(ch);});if(prefix) |
+num=prefix+num;var valid=parse_js_number(num);if(!isNaN(valid)){return token("num",valid);}else{parse_error("Invalid syntax: "+num);}};function read_escaped_char(){var ch=next(true);switch(ch){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"v":return"\v";case"f":return"\f";case"0":return"\0";case"x":return String.fromCharCode(hex_bytes(2));case"u":return String.fromCharCode(hex_bytes(4));default:return ch;}};function hex_bytes(n){var num=0;for(;n>0;--n){var digit=parseInt(next(true),16);if(isNaN(digit)) |
+parse_error("Invalid hex-character pattern in string");num=(num<<4)|digit;} |
+return num;};function read_string(){return with_eof_error("Unterminated string constant",function(){var quote=next(),ret="";for(;;){var ch=next(true);if(ch=="\\")ch=read_escaped_char();else if(ch==quote)break;ret+=ch;} |
+return token("string",ret);});};function read_line_comment(){next();var i=find("\n"),ret;if(i==-1){ret=S.text.substr(S.pos);S.pos=S.text.length;}else{ret=S.text.substring(S.pos,i);S.pos=i;} |
+return token("comment1",ret,true);};function read_multiline_comment(){next();return with_eof_error("Unterminated multiline comment",function(){var i=find("*/",true),text=S.text.substring(S.pos,i),tok=token("comment2",text,true);S.pos=i+2;S.line+=text.split("\n").length-1;S.newline_before=text.indexOf("\n")>=0;return tok;});};function read_regexp(){return with_eof_error("Unterminated regular expression",function(){var prev_backslash=false,regexp="",ch,in_class=false;while((ch=next(true)))if(prev_backslash){regexp+="\\"+ch;prev_backslash=false;}else if(ch=="["){in_class=true;regexp+=ch;}else if(ch=="]"&&in_class){in_class=false;regexp+=ch;}else if(ch=="/"&&!in_class){break;}else if(ch=="\\"){prev_backslash=true;}else{regexp+=ch;} |
+var mods=read_while(function(ch){return HOP(REGEXP_MODIFIERS,ch);});return token("regexp",[regexp,mods]);});};function read_operator(prefix){function grow(op){if(!peek())return op;var bigger=op+peek();if(HOP(OPERATORS,bigger)){next();return grow(bigger);}else{return op;}};return token("operator",grow(prefix||next()));};function handle_slash(){next();var regex_allowed=S.regex_allowed;switch(peek()){case"/":S.comments_before.push(read_line_comment());S.regex_allowed=regex_allowed;return next_token();case"*":S.comments_before.push(read_multiline_comment());S.regex_allowed=regex_allowed;return next_token();} |
+return S.regex_allowed?read_regexp():read_operator("/");};function handle_dot(){next();return is_digit(peek())?read_num("."):token("punc",".");};function read_word(){var word=read_while(is_identifier_char);return!HOP(KEYWORDS,word)?token("name",word):HOP(OPERATORS,word)?token("operator",word):HOP(KEYWORDS_ATOM,word)?token("atom",word):token("keyword",word);};function with_eof_error(eof_error,cont){try{return cont();}catch(ex){if(ex===EX_EOF)parse_error(eof_error);else throw ex;}};function next_token(force_regexp){if(force_regexp) |
+return read_regexp();skip_whitespace();start_token();var ch=peek();if(!ch)return token("eof");if(is_digit(ch))return read_num();if(ch=='"'||ch=="'")return read_string();if(HOP(PUNC_CHARS,ch))return token("punc",next());if(ch==".")return handle_dot();if(ch=="/")return handle_slash();if(HOP(OPERATOR_CHARS,ch))return read_operator();if(is_identifier_char(ch))return read_word();parse_error("Unexpected character '"+ch+"'");};next_token.context=function(nc){if(nc)S=nc;return S;};return next_token;};var UNARY_PREFIX=array_to_hash(["typeof","void","delete","--","++","!","~","-","+"]);var UNARY_POSTFIX=array_to_hash(["--","++"]);var ASSIGNMENT=(function(a,ret,i){while(i<a.length){ret[a[i]]=a[i].substr(0,a[i].length-1);i++;} |
+return ret;})(["+=","-=","/=","*=","%=",">>=","<<=",">>>=","|=","^=","&="],{"=":true},0);var PRECEDENCE=(function(a,ret){for(var i=0,n=1;i<a.length;++i,++n){var b=a[i];for(var j=0;j<b.length;++j){ret[b[j]]=n;}} |
+return ret;})([["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]],{});var STATEMENTS_WITH_LABELS=array_to_hash(["for","do","while","switch"]);var ATOMIC_START_TOKEN=array_to_hash(["atom","num","string","regexp","name"]);function NodeWithToken(str,start,end){this.name=str;this.start=start;this.end=end;};NodeWithToken.prototype.toString=function(){return this.name;};function parse($TEXT,strict_mode,embed_tokens){var S={input:typeof $TEXT=="string"?tokenizer($TEXT,true):$TEXT,token:null,prev:null,peeked:null,in_function:0,in_loop:0,labels:[]};S.token=next();function is(type,value){return is_token(S.token,type,value);};function peek(){return S.peeked||(S.peeked=S.input());};function next(){S.prev=S.token;if(S.peeked){S.token=S.peeked;S.peeked=null;}else{S.token=S.input();} |
+return S.token;};function prev(){return S.prev;};function croak(msg,line,col,pos){var ctx=S.input.context();js_error(msg,line!=null?line:ctx.tokline,col!=null?col:ctx.tokcol,pos!=null?pos:ctx.tokpos);};function token_error(token,msg){croak(msg,token.line,token.col);};function unexpected(token){if(token==null) |
+token=S.token;token_error(token,"Unexpected token: "+token.type+" ("+token.value+")");};function expect_token(type,val){if(is(type,val)){return next();} |
+token_error(S.token,"Unexpected token "+S.token.type+", expected "+type);};function expect(punc){return expect_token("punc",punc);};function can_insert_semicolon(){return!strict_mode&&(S.token.nlb||is("eof")||is("punc","}"));};function semicolon(){if(is("punc",";"))next();else if(!can_insert_semicolon())unexpected();};function as(){return slice(arguments);};function parenthesised(){expect("(");var ex=expression();expect(")");return ex;};function add_tokens(str,start,end){return new NodeWithToken(str,start,end);};var statement=embed_tokens?function(){var start=S.token;var stmt=$statement();stmt[0]=add_tokens(stmt[0],start,prev());return stmt;}:$statement;function $statement(){if(is("operator","/")){S.peeked=null;S.token=S.input(true);} |
+switch(S.token.type){case"num":case"string":case"regexp":case"operator":case"atom":return simple_statement();case"name":return is_token(peek(),"punc",":")?labeled_statement(prog1(S.token.value,next,next)):simple_statement();case"punc":switch(S.token.value){case"{":return as("block",block_());case"[":case"(":return simple_statement();case";":next();return as("block");default:unexpected();} |
+case"keyword":switch(prog1(S.token.value,next)){case"break":return break_cont("break");case"continue":return break_cont("continue");case"debugger":semicolon();return as("debugger");case"do":return(function(body){expect_token("keyword","while");return as("do",prog1(parenthesised,semicolon),body);})(in_loop(statement));case"for":return for_();case"function":return function_(true);case"if":return if_();case"return":if(S.in_function==0) |
+croak("'return' outside of function");return as("return",is("punc",";")?(next(),null):can_insert_semicolon()?null:prog1(expression,semicolon));case"switch":return as("switch",parenthesised(),switch_block_());case"throw":return as("throw",prog1(expression,semicolon));case"try":return try_();case"var":return prog1(var_,semicolon);case"const":return prog1(const_,semicolon);case"while":return as("while",parenthesised(),in_loop(statement));case"with":return as("with",parenthesised(),statement());default:unexpected();}}};function labeled_statement(label){S.labels.push(label);var start=S.token,stat=statement();if(strict_mode&&!HOP(STATEMENTS_WITH_LABELS,stat[0])) |
+unexpected(start);S.labels.pop();return as("label",label,stat);};function simple_statement(){return as("stat",prog1(expression,semicolon));};function break_cont(type){var name=is("name")?S.token.value:null;if(name!=null){next();if(!member(name,S.labels)) |
+croak("Label "+name+" without matching loop or statement");} |
+else if(S.in_loop==0) |
+croak(type+" not inside a loop or switch");semicolon();return as(type,name);};function for_(){expect("(");var has_var=is("keyword","var");if(has_var) |
+next();if(is("name")&&is_token(peek(),"operator","in")){var name=S.token.value;next();next();var obj=expression();expect(")");return as("for-in",has_var,name,obj,in_loop(statement));}else{var init=is("punc",";")?null:has_var?var_():expression();expect(";");var test=is("punc",";")?null:expression();expect(";");var step=is("punc",")")?null:expression();expect(")");return as("for",init,test,step,in_loop(statement));}};function function_(in_statement){var name=is("name")?prog1(S.token.value,next):null;if(in_statement&&!name) |
+unexpected();expect("(");return as(in_statement?"defun":"function",name,(function(first,a){while(!is("punc",")")){if(first)first=false;else expect(",");if(!is("name"))unexpected();a.push(S.token.value);next();} |
+next();return a;})(true,[]),(function(){++S.in_function;var loop=S.in_loop;S.in_loop=0;var a=block_();--S.in_function;S.in_loop=loop;return a;})());};function if_(){var cond=parenthesised(),body=statement(),belse;if(is("keyword","else")){next();belse=statement();} |
+return as("if",cond,body,belse);};function block_(){expect("{");var a=[];while(!is("punc","}")){if(is("eof"))unexpected();a.push(statement());} |
+next();return a;};var switch_block_=curry(in_loop,function(){expect("{");var a=[],cur=null;while(!is("punc","}")){if(is("eof"))unexpected();if(is("keyword","case")){next();cur=[];a.push([expression(),cur]);expect(":");} |
+else if(is("keyword","default")){next();expect(":");cur=[];a.push([null,cur]);} |
+else{if(!cur)unexpected();cur.push(statement());}} |
+next();return a;});function try_(){var body=block_(),bcatch,bfinally;if(is("keyword","catch")){next();expect("(");if(!is("name")) |
+croak("Name expected");var name=S.token.value;next();expect(")");bcatch=[name,block_()];} |
+if(is("keyword","finally")){next();bfinally=block_();} |
+if(!bcatch&&!bfinally) |
+croak("Missing catch/finally blocks");return as("try",body,bcatch,bfinally);};function vardefs(){var a=[];for(;;){if(!is("name")) |
+unexpected();var name=S.token.value;next();if(is("operator","=")){next();a.push([name,expression(false)]);}else{a.push([name]);} |
+if(!is("punc",",")) |
+break;next();} |
+return a;};function var_(){return as("var",vardefs());};function const_(){return as("const",vardefs());};function new_(){var newexp=expr_atom(false),args;if(is("punc","(")){next();args=expr_list(")");}else{args=[];} |
+return subscripts(as("new",newexp,args),true);};function expr_atom(allow_calls){if(is("operator","new")){next();return new_();} |
+if(is("operator")&&HOP(UNARY_PREFIX,S.token.value)){return make_unary("unary-prefix",prog1(S.token.value,next),expr_atom(allow_calls));} |
+if(is("punc")){switch(S.token.value){case"(":next();return subscripts(prog1(expression,curry(expect,")")),allow_calls);case"[":next();return subscripts(array_(),allow_calls);case"{":next();return subscripts(object_(),allow_calls);} |
+unexpected();} |
+if(is("keyword","function")){next();return subscripts(function_(false),allow_calls);} |
+if(HOP(ATOMIC_START_TOKEN,S.token.type)){var atom=S.token.type=="regexp"?as("regexp",S.token.value[0],S.token.value[1]):as(S.token.type,S.token.value);return subscripts(prog1(atom,next),allow_calls);} |
+unexpected();};function expr_list(closing,allow_trailing_comma,allow_empty){var first=true,a=[];while(!is("punc",closing)){if(first)first=false;else expect(",");if(allow_trailing_comma&&is("punc",closing))break;if(is("punc",",")&&allow_empty){a.push(["atom","undefined"]);}else{a.push(expression(false));}} |
+next();return a;};function array_(){return as("array",expr_list("]",!strict_mode,true));};function object_(){var first=true,a=[];while(!is("punc","}")){if(first)first=false;else expect(",");if(!strict_mode&&is("punc","}")) |
+break;var type=S.token.type;var name=as_property_name();if(type=="name"&&(name=="get"||name=="set")&&!is("punc",":")){a.push([as_name(),function_(false),name]);}else{expect(":");a.push([name,expression(false)]);}} |
+next();return as("object",a);};function as_property_name(){switch(S.token.type){case"num":case"string":return prog1(S.token.value,next);} |
+return as_name();};function as_name(){switch(S.token.type){case"name":case"operator":case"keyword":case"atom":return prog1(S.token.value,next);default:unexpected();}};function subscripts(expr,allow_calls){if(is("punc",".")){next();return subscripts(as("dot",expr,as_name()),allow_calls);} |
+if(is("punc","[")){next();return subscripts(as("sub",expr,prog1(expression,curry(expect,"]"))),allow_calls);} |
+if(allow_calls&&is("punc","(")){next();return subscripts(as("call",expr,expr_list(")")),true);} |
+if(allow_calls&&is("operator")&&HOP(UNARY_POSTFIX,S.token.value)){return prog1(curry(make_unary,"unary-postfix",S.token.value,expr),next);} |
+return expr;};function make_unary(tag,op,expr){if((op=="++"||op=="--")&&!is_assignable(expr)) |
+croak("Invalid use of "+op+" operator");return as(tag,op,expr);};function expr_op(left,min_prec){var op=is("operator")?S.token.value:null;var prec=op!=null?PRECEDENCE[op]:null;if(prec!=null&&prec>min_prec){next();var right=expr_op(expr_atom(true),prec);return expr_op(as("binary",op,left,right),min_prec);} |
+return left;};function expr_ops(){return expr_op(expr_atom(true),0);};function maybe_conditional(){var expr=expr_ops();if(is("operator","?")){next();var yes=expression(false);expect(":");return as("conditional",expr,yes,expression(false));} |
+return expr;};function is_assignable(expr){switch(expr[0]){case"dot":case"sub":return true;case"name":return expr[1]!="this";}};function maybe_assign(){var left=maybe_conditional(),val=S.token.value;if(is("operator")&&HOP(ASSIGNMENT,val)){if(is_assignable(left)){next();return as("assign",ASSIGNMENT[val],left,maybe_assign());} |
+croak("Invalid assignment");} |
+return left;};function expression(commas){if(arguments.length==0) |
+commas=true;var expr=maybe_assign();if(commas&&is("punc",",")){next();return as("seq",expr,expression());} |
+return expr;};function in_loop(cont){try{++S.in_loop;return cont();}finally{--S.in_loop;}};return as("toplevel",(function(a){while(!is("eof")) |
+a.push(statement());return a;})([]));};function curry(f){var args=slice(arguments,1);return function(){return f.apply(this,args.concat(slice(arguments)));};};function prog1(ret){if(ret instanceof Function) |
+ret=ret();for(var i=1,n=arguments.length;--n>0;++i) |
+arguments[i]();return ret;};function array_to_hash(a){var ret={};for(var i=0;i<a.length;++i) |
+ret[a[i]]=true;return ret;};function slice(a,start){return Array.prototype.slice.call(a,start==null?0:start);};function characters(str){return str.split("");};function member(name,array){for(var i=array.length;--i>=0;) |
+if(array[i]===name) |
+return true;return false;};function HOP(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);};exports.tokenizer=tokenizer;exports.parse=parse;exports.slice=slice;exports.curry=curry;exports.member=member;exports.array_to_hash=array_to_hash;exports.PRECEDENCE=PRECEDENCE;exports.KEYWORDS_ATOM=KEYWORDS_ATOM;exports.RESERVED_WORDS=RESERVED_WORDS;exports.KEYWORDS=KEYWORDS;exports.ATOMIC_START_TOKEN=ATOMIC_START_TOKEN;exports.OPERATORS=OPERATORS;exports.is_alphanumeric_char=is_alphanumeric_char;exports.is_identifier_char=is_identifier_char;;var parse=exports;function FormattedContentBuilder(content,mapping,originalOffset,formattedOffset,indentString) |
+{this._originalContent=content;this._originalOffset=originalOffset;this._lastOriginalPosition=0;this._formattedContent=[];this._formattedContentLength=0;this._formattedOffset=formattedOffset;this._lastFormattedPosition=0;this._mapping=mapping;this._lineNumber=0;this._nestingLevel=0;this._indentString=indentString;this._cachedIndents={};} |
+FormattedContentBuilder.prototype={addToken:function(token) |
+{for(var i=0;i<token.comments_before.length;++i) |
+this._addComment(token.comments_before[i]);while(this._lineNumber<token.line){this._addText("\n");this._addIndent();this._needNewLine=false;this._lineNumber+=1;} |
+if(this._needNewLine){this._addText("\n");this._addIndent();this._needNewLine=false;} |
+this._addMappingIfNeeded(token.pos);this._addText(this._originalContent.substring(token.pos,token.endPos));this._lineNumber=token.endLine;},addSpace:function() |
+{this._addText(" ");},addNewLine:function() |
+{this._needNewLine=true;},increaseNestingLevel:function() |
+{this._nestingLevel+=1;},decreaseNestingLevel:function() |
+{this._nestingLevel-=1;},content:function() |
+{return this._formattedContent.join("");},mapping:function() |
+{return{original:this._originalPositions,formatted:this._formattedPositions};},_addIndent:function() |
+{if(this._cachedIndents[this._nestingLevel]){this._addText(this._cachedIndents[this._nestingLevel]);return;} |
+var fullIndent="";for(var i=0;i<this._nestingLevel;++i) |
+fullIndent+=this._indentString;this._addText(fullIndent);if(this._nestingLevel<=20) |
+this._cachedIndents[this._nestingLevel]=fullIndent;},_addComment:function(comment) |
+{if(this._lineNumber<comment.line){for(var j=this._lineNumber;j<comment.line;++j) |
+this._addText("\n");this._lineNumber=comment.line;this._needNewLine=false;this._addIndent();}else |
+this.addSpace();this._addMappingIfNeeded(comment.pos);if(comment.type==="comment1") |
+this._addText("//");else |
+this._addText("/*");this._addText(comment.value);if(comment.type!=="comment1"){this._addText("*/");var position;while((position=comment.value.indexOf("\n",position+1))!==-1) |
+this._lineNumber+=1;}},_addText:function(text) |
+{this._formattedContent.push(text);this._formattedContentLength+=text.length;},_addMappingIfNeeded:function(originalPosition) |
+{if(originalPosition-this._lastOriginalPosition===this._formattedContentLength-this._lastFormattedPosition) |
+return;this._mapping.original.push(this._originalOffset+originalPosition);this._lastOriginalPosition=originalPosition;this._mapping.formatted.push(this._formattedOffset+this._formattedContentLength);this._lastFormattedPosition=this._formattedContentLength;}} |
+var tokens=[["EOS"],["LPAREN","("],["RPAREN",")"],["LBRACK","["],["RBRACK","]"],["LBRACE","{"],["RBRACE","}"],["COLON",":"],["SEMICOLON",";"],["PERIOD","."],["CONDITIONAL","?"],["INC","++"],["DEC","--"],["ASSIGN","="],["ASSIGN_BIT_OR","|="],["ASSIGN_BIT_XOR","^="],["ASSIGN_BIT_AND","&="],["ASSIGN_SHL","<<="],["ASSIGN_SAR",">>="],["ASSIGN_SHR",">>>="],["ASSIGN_ADD","+="],["ASSIGN_SUB","-="],["ASSIGN_MUL","*="],["ASSIGN_DIV","/="],["ASSIGN_MOD","%="],["COMMA",","],["OR","||"],["AND","&&"],["BIT_OR","|"],["BIT_XOR","^"],["BIT_AND","&"],["SHL","<<"],["SAR",">>"],["SHR",">>>"],["ADD","+"],["SUB","-"],["MUL","*"],["DIV","/"],["MOD","%"],["EQ","=="],["NE","!="],["EQ_STRICT","==="],["NE_STRICT","!=="],["LT","<"],["GT",">"],["LTE","<="],["GTE",">="],["INSTANCEOF","instanceof"],["IN","in"],["NOT","!"],["BIT_NOT","~"],["DELETE","delete"],["TYPEOF","typeof"],["VOID","void"],["BREAK","break"],["CASE","case"],["CATCH","catch"],["CONTINUE","continue"],["DEBUGGER","debugger"],["DEFAULT","default"],["DO","do"],["ELSE","else"],["FINALLY","finally"],["FOR","for"],["FUNCTION","function"],["IF","if"],["NEW","new"],["RETURN","return"],["SWITCH","switch"],["THIS","this"],["THROW","throw"],["TRY","try"],["VAR","var"],["WHILE","while"],["WITH","with"],["NULL_LITERAL","null"],["TRUE_LITERAL","true"],["FALSE_LITERAL","false"],["NUMBER"],["STRING"],["IDENTIFIER"],["CONST","const"]];var Tokens={};for(var i=0;i<tokens.length;++i) |
+Tokens[tokens[i][0]]=i;var TokensByValue={};for(var i=0;i<tokens.length;++i){if(tokens[i][1]) |
+TokensByValue[tokens[i][1]]=i;} |
+var TokensByType={"eof":Tokens.EOS,"name":Tokens.IDENTIFIER,"num":Tokens.NUMBER,"regexp":Tokens.DIV,"string":Tokens.STRING};function Tokenizer(content) |
+{this._readNextToken=parse.tokenizer(content);this._state=this._readNextToken.context();} |
+Tokenizer.prototype={content:function() |
+{return this._state.text;},next:function(forceRegexp) |
+{var uglifyToken=this._readNextToken(forceRegexp);uglifyToken.endPos=this._state.pos;uglifyToken.endLine=this._state.line;uglifyToken.token=this._convertUglifyToken(uglifyToken);return uglifyToken;},_convertUglifyToken:function(uglifyToken) |
+{var token=TokensByType[uglifyToken.type];if(typeof token==="number") |
+return token;token=TokensByValue[uglifyToken.value];if(typeof token==="number") |
+return token;throw"Unknown token type "+uglifyToken.type;}} |
+function JavaScriptFormatter(tokenizer,builder) |
+{this._tokenizer=tokenizer;this._builder=builder;this._token=null;this._nextToken=this._tokenizer.next();} |
+JavaScriptFormatter.prototype={format:function() |
+{this._parseSourceElements(Tokens.EOS);this._consume(Tokens.EOS);},_peek:function() |
+{return this._nextToken.token;},_next:function() |
+{if(this._token&&this._token.token===Tokens.EOS) |
+throw"Unexpected EOS token";this._builder.addToken(this._nextToken);this._token=this._nextToken;this._nextToken=this._tokenizer.next(this._forceRegexp);this._forceRegexp=false;return this._token.token;},_consume:function(token) |
+{var next=this._next();if(next!==token) |
+throw"Unexpected token in consume: expected "+token+", actual "+next;},_expect:function(token) |
+{var next=this._next();if(next!==token) |
+throw"Unexpected token: expected "+token+", actual "+next;},_expectSemicolon:function() |
+{if(this._peek()===Tokens.SEMICOLON) |
+this._consume(Tokens.SEMICOLON);},_hasLineTerminatorBeforeNext:function() |
+{return this._nextToken.nlb;},_parseSourceElements:function(endToken) |
+{while(this._peek()!==endToken){this._parseStatement();this._builder.addNewLine();}},_parseStatementOrBlock:function() |
+{if(this._peek()===Tokens.LBRACE){this._builder.addSpace();this._parseBlock();return true;} |
+this._builder.addNewLine();this._builder.increaseNestingLevel();this._parseStatement();this._builder.decreaseNestingLevel();},_parseStatement:function() |
+{switch(this._peek()){case Tokens.LBRACE:return this._parseBlock();case Tokens.CONST:case Tokens.VAR:return this._parseVariableStatement();case Tokens.SEMICOLON:return this._next();case Tokens.IF:return this._parseIfStatement();case Tokens.DO:return this._parseDoWhileStatement();case Tokens.WHILE:return this._parseWhileStatement();case Tokens.FOR:return this._parseForStatement();case Tokens.CONTINUE:return this._parseContinueStatement();case Tokens.BREAK:return this._parseBreakStatement();case Tokens.RETURN:return this._parseReturnStatement();case Tokens.WITH:return this._parseWithStatement();case Tokens.SWITCH:return this._parseSwitchStatement();case Tokens.THROW:return this._parseThrowStatement();case Tokens.TRY:return this._parseTryStatement();case Tokens.FUNCTION:return this._parseFunctionDeclaration();case Tokens.DEBUGGER:return this._parseDebuggerStatement();default:return this._parseExpressionOrLabelledStatement();}},_parseFunctionDeclaration:function() |
+{this._expect(Tokens.FUNCTION);this._builder.addSpace();this._expect(Tokens.IDENTIFIER);this._parseFunctionLiteral()},_parseBlock:function() |
+{this._expect(Tokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==Tokens.RBRACE){this._parseStatement();this._builder.addNewLine();} |
+this._builder.decreaseNestingLevel();this._expect(Tokens.RBRACE);},_parseVariableStatement:function() |
+{this._parseVariableDeclarations();this._expectSemicolon();},_parseVariableDeclarations:function() |
+{if(this._peek()===Tokens.VAR) |
+this._consume(Tokens.VAR);else |
this._consume(Tokens.CONST) |
-this._builder.addSpace(); |
- |
-var isFirstVariable = true; |
-do { |
-if (!isFirstVariable) { |
-this._consume(Tokens.COMMA); |
-this._builder.addSpace(); |
-} |
-isFirstVariable = false; |
-this._expect(Tokens.IDENTIFIER); |
-if (this._peek() === Tokens.ASSIGN) { |
-this._builder.addSpace(); |
-this._consume(Tokens.ASSIGN); |
-this._builder.addSpace(); |
-this._parseAssignmentExpression(); |
-} |
-} while (this._peek() === Tokens.COMMA); |
-}, |
- |
-_parseExpressionOrLabelledStatement: function() |
-{ |
-this._parseExpression(); |
-if (this._peek() === Tokens.COLON) { |
-this._expect(Tokens.COLON); |
-this._builder.addSpace(); |
-this._parseStatement(); |
-} |
-this._expectSemicolon(); |
-}, |
- |
-_parseIfStatement: function() |
-{ |
-this._expect(Tokens.IF); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-this._parseExpression(); |
-this._expect(Tokens.RPAREN); |
- |
-var isBlock = this._parseStatementOrBlock(); |
-if (this._peek() === Tokens.ELSE) { |
-if (isBlock) |
-this._builder.addSpace(); |
-else |
-this._builder.addNewLine(); |
-this._next(); |
- |
-if (this._peek() === Tokens.IF) { |
-this._builder.addSpace(); |
-this._parseStatement(); |
-} else |
-this._parseStatementOrBlock(); |
-} |
-}, |
- |
-_parseContinueStatement: function() |
-{ |
-this._expect(Tokens.CONTINUE); |
-var token = this._peek(); |
-if (!this._hasLineTerminatorBeforeNext() && token !== Tokens.SEMICOLON && token !== Tokens.RBRACE && token !== Tokens.EOS) { |
-this._builder.addSpace(); |
-this._expect(Tokens.IDENTIFIER); |
-} |
-this._expectSemicolon(); |
-}, |
- |
-_parseBreakStatement: function() |
-{ |
-this._expect(Tokens.BREAK); |
-var token = this._peek(); |
-if (!this._hasLineTerminatorBeforeNext() && token !== Tokens.SEMICOLON && token !== Tokens.RBRACE && token !== Tokens.EOS) { |
-this._builder.addSpace(); |
-this._expect(Tokens.IDENTIFIER); |
-} |
-this._expectSemicolon(); |
-}, |
- |
-_parseReturnStatement: function() |
-{ |
-this._expect(Tokens.RETURN); |
-var token = this._peek(); |
-if (!this._hasLineTerminatorBeforeNext() && token !== Tokens.SEMICOLON && token !== Tokens.RBRACE && token !== Tokens.EOS) { |
-this._builder.addSpace(); |
-this._parseExpression(); |
-} |
-this._expectSemicolon(); |
-}, |
- |
-_parseWithStatement: function() |
-{ |
-this._expect(Tokens.WITH); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-this._parseExpression(); |
-this._expect(Tokens.RPAREN); |
-this._parseStatementOrBlock(); |
-}, |
- |
-_parseCaseClause: function() |
-{ |
-if (this._peek() === Tokens.CASE) { |
-this._expect(Tokens.CASE); |
-this._builder.addSpace(); |
-this._parseExpression(); |
-} else |
-this._expect(Tokens.DEFAULT); |
-this._expect(Tokens.COLON); |
-this._builder.addNewLine(); |
- |
-this._builder.increaseNestingLevel(); |
-while (this._peek() !== Tokens.CASE && this._peek() !== Tokens.DEFAULT && this._peek() !== Tokens.RBRACE) { |
-this._parseStatement(); |
-this._builder.addNewLine(); |
-} |
-this._builder.decreaseNestingLevel(); |
-}, |
- |
-_parseSwitchStatement: function() |
-{ |
-this._expect(Tokens.SWITCH); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-this._parseExpression(); |
-this._expect(Tokens.RPAREN); |
-this._builder.addSpace(); |
- |
-this._expect(Tokens.LBRACE); |
-this._builder.addNewLine(); |
-this._builder.increaseNestingLevel(); |
-while (this._peek() !== Tokens.RBRACE) |
-this._parseCaseClause(); |
-this._builder.decreaseNestingLevel(); |
-this._expect(Tokens.RBRACE); |
-}, |
- |
-_parseThrowStatement: function() |
-{ |
-this._expect(Tokens.THROW); |
-this._builder.addSpace(); |
-this._parseExpression(); |
-this._expectSemicolon(); |
-}, |
- |
-_parseTryStatement: function() |
-{ |
-this._expect(Tokens.TRY); |
-this._builder.addSpace(); |
-this._parseBlock(); |
- |
-var token = this._peek(); |
-if (token === Tokens.CATCH) { |
-this._builder.addSpace(); |
-this._consume(Tokens.CATCH); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-this._expect(Tokens.IDENTIFIER); |
-this._expect(Tokens.RPAREN); |
-this._builder.addSpace(); |
-this._parseBlock(); |
-token = this._peek(); |
-} |
- |
-if (token === Tokens.FINALLY) { |
-this._consume(Tokens.FINALLY); |
-this._builder.addSpace(); |
-this._parseBlock(); |
-} |
-}, |
- |
-_parseDoWhileStatement: function() |
-{ |
-this._expect(Tokens.DO); |
-var isBlock = this._parseStatementOrBlock(); |
-if (isBlock) |
-this._builder.addSpace(); |
-else |
-this._builder.addNewLine(); |
-this._expect(Tokens.WHILE); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-this._parseExpression(); |
-this._expect(Tokens.RPAREN); |
-this._expectSemicolon(); |
-}, |
- |
-_parseWhileStatement: function() |
-{ |
-this._expect(Tokens.WHILE); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-this._parseExpression(); |
-this._expect(Tokens.RPAREN); |
-this._parseStatementOrBlock(); |
-}, |
- |
-_parseForStatement: function() |
-{ |
-this._expect(Tokens.FOR); |
-this._builder.addSpace(); |
-this._expect(Tokens.LPAREN); |
-if (this._peek() !== Tokens.SEMICOLON) { |
-if (this._peek() === Tokens.VAR || this._peek() === Tokens.CONST) { |
-this._parseVariableDeclarations(); |
-if (this._peek() === Tokens.IN) { |
-this._builder.addSpace(); |
-this._consume(Tokens.IN); |
-this._builder.addSpace(); |
-this._parseExpression(); |
-} |
-} else |
-this._parseExpression(); |
-} |
- |
-if (this._peek() !== Tokens.RPAREN) { |
-this._expect(Tokens.SEMICOLON); |
-this._builder.addSpace(); |
-if (this._peek() !== Tokens.SEMICOLON) |
-this._parseExpression(); |
-this._expect(Tokens.SEMICOLON); |
-this._builder.addSpace(); |
-if (this._peek() !== Tokens.RPAREN) |
-this._parseExpression(); |
-} |
-this._expect(Tokens.RPAREN); |
- |
-this._parseStatementOrBlock(); |
-}, |
- |
-_parseExpression: function() |
-{ |
-this._parseAssignmentExpression(); |
-while (this._peek() === Tokens.COMMA) { |
-this._expect(Tokens.COMMA); |
-this._builder.addSpace(); |
-this._parseAssignmentExpression(); |
-} |
-}, |
- |
-_parseAssignmentExpression: function() |
-{ |
-this._parseConditionalExpression(); |
-var token = this._peek(); |
-if (Tokens.ASSIGN <= token && token <= Tokens.ASSIGN_MOD) { |
-this._builder.addSpace(); |
-this._next(); |
-this._builder.addSpace(); |
-this._parseAssignmentExpression(); |
-} |
-}, |
- |
-_parseConditionalExpression: function() |
-{ |
-this._parseBinaryExpression(); |
-if (this._peek() === Tokens.CONDITIONAL) { |
-this._builder.addSpace(); |
-this._consume(Tokens.CONDITIONAL); |
-this._builder.addSpace(); |
-this._parseAssignmentExpression(); |
-this._builder.addSpace(); |
-this._expect(Tokens.COLON); |
-this._builder.addSpace(); |
-this._parseAssignmentExpression(); |
-} |
-}, |
- |
-_parseBinaryExpression: function() |
-{ |
-this._parseUnaryExpression(); |
-var token = this._peek(); |
-while (Tokens.OR <= token && token <= Tokens.IN) { |
-this._builder.addSpace(); |
-this._next(); |
-this._builder.addSpace(); |
-this._parseBinaryExpression(); |
-token = this._peek(); |
-} |
-}, |
- |
-_parseUnaryExpression: function() |
-{ |
-var token = this._peek(); |
-if ((Tokens.NOT <= token && token <= Tokens.VOID) || token === Tokens.ADD || token === Tokens.SUB || token === Tokens.INC || token === Tokens.DEC) { |
-this._next(); |
-if (token === Tokens.DELETE || token === Tokens.TYPEOF || token === Tokens.VOID) |
-this._builder.addSpace(); |
-this._parseUnaryExpression(); |
-} else |
-return this._parsePostfixExpression(); |
-}, |
- |
-_parsePostfixExpression: function() |
-{ |
-this._parseLeftHandSideExpression(); |
-var token = this._peek(); |
-if (!this._hasLineTerminatorBeforeNext() && (token === Tokens.INC || token === Tokens.DEC)) |
-this._next(); |
-}, |
- |
-_parseLeftHandSideExpression: function() |
-{ |
-if (this._peek() === Tokens.NEW) |
-this._parseNewExpression(); |
-else |
-this._parseMemberExpression(); |
- |
-while (true) { |
-switch (this._peek()) { |
-case Tokens.LBRACK: |
-this._consume(Tokens.LBRACK); |
-this._parseExpression(); |
-this._expect(Tokens.RBRACK); |
-break; |
- |
-case Tokens.LPAREN: |
-this._parseArguments(); |
-break; |
- |
-case Tokens.PERIOD: |
-this._consume(Tokens.PERIOD); |
-this._expect(Tokens.IDENTIFIER); |
-break; |
- |
-default: |
-return; |
-} |
-} |
-}, |
- |
-_parseNewExpression: function() |
-{ |
-this._expect(Tokens.NEW); |
-this._builder.addSpace(); |
-if (this._peek() === Tokens.NEW) |
-this._parseNewExpression(); |
-else |
-this._parseMemberExpression(); |
-}, |
- |
-_parseMemberExpression: function() |
-{ |
-if (this._peek() === Tokens.FUNCTION) { |
-this._expect(Tokens.FUNCTION); |
-if (this._peek() === Tokens.IDENTIFIER) { |
-this._builder.addSpace(); |
-this._expect(Tokens.IDENTIFIER); |
-} |
-this._parseFunctionLiteral(); |
-} else |
-this._parsePrimaryExpression(); |
- |
-while (true) { |
-switch (this._peek()) { |
-case Tokens.LBRACK: |
-this._consume(Tokens.LBRACK); |
-this._parseExpression(); |
-this._expect(Tokens.RBRACK); |
-break; |
- |
-case Tokens.PERIOD: |
-this._consume(Tokens.PERIOD); |
-this._expect(Tokens.IDENTIFIER); |
-break; |
- |
-case Tokens.LPAREN: |
-this._parseArguments(); |
-break; |
- |
-default: |
-return; |
-} |
-} |
-}, |
- |
-_parseDebuggerStatement: function() |
-{ |
-this._expect(Tokens.DEBUGGER); |
-this._expectSemicolon(); |
-}, |
- |
-_parsePrimaryExpression: function() |
-{ |
-switch (this._peek()) { |
-case Tokens.THIS: |
-return this._consume(Tokens.THIS); |
-case Tokens.NULL_LITERAL: |
-return this._consume(Tokens.NULL_LITERAL); |
-case Tokens.TRUE_LITERAL: |
-return this._consume(Tokens.TRUE_LITERAL); |
-case Tokens.FALSE_LITERAL: |
-return this._consume(Tokens.FALSE_LITERAL); |
-case Tokens.IDENTIFIER: |
-return this._consume(Tokens.IDENTIFIER); |
-case Tokens.NUMBER: |
-return this._consume(Tokens.NUMBER); |
-case Tokens.STRING: |
-return this._consume(Tokens.STRING); |
-case Tokens.ASSIGN_DIV: |
-return this._parseRegExpLiteral(); |
-case Tokens.DIV: |
-return this._parseRegExpLiteral(); |
-case Tokens.LBRACK: |
-return this._parseArrayLiteral(); |
-case Tokens.LBRACE: |
-return this._parseObjectLiteral(); |
-case Tokens.LPAREN: |
-this._consume(Tokens.LPAREN); |
-this._parseExpression(); |
-this._expect(Tokens.RPAREN); |
-return; |
-default: |
-return this._next(); |
-} |
-}, |
- |
-_parseArrayLiteral: function() |
-{ |
-this._expect(Tokens.LBRACK); |
-this._builder.increaseNestingLevel(); |
-while (this._peek() !== Tokens.RBRACK) { |
-if (this._peek() !== Tokens.COMMA) |
-this._parseAssignmentExpression(); |
-if (this._peek() !== Tokens.RBRACK) { |
-this._expect(Tokens.COMMA); |
-this._builder.addSpace(); |
-} |
-} |
-this._builder.decreaseNestingLevel(); |
-this._expect(Tokens.RBRACK); |
-}, |
- |
-_parseObjectLiteralGetSet: function() |
-{ |
-var token = this._peek(); |
-if (token === Tokens.IDENTIFIER || token === Tokens.NUMBER || token === Tokens.STRING || |
-Tokens.DELETE <= token && token <= Tokens.FALSE_LITERAL || |
-token === Tokens.INSTANCEOF || token === Tokens.IN || token === Tokens.CONST) { |
-this._next(); |
-this._parseFunctionLiteral(); |
-} |
-}, |
- |
-_parseObjectLiteral: function() |
-{ |
-this._expect(Tokens.LBRACE); |
-this._builder.increaseNestingLevel(); |
-while (this._peek() !== Tokens.RBRACE) { |
-var token = this._peek(); |
-switch (token) { |
-case Tokens.IDENTIFIER: |
-this._consume(Tokens.IDENTIFIER); |
-var name = this._token.value; |
-if ((name === "get" || name === "set") && this._peek() !== Tokens.COLON) { |
-this._builder.addSpace(); |
-this._parseObjectLiteralGetSet(); |
-if (this._peek() !== Tokens.RBRACE) { |
-this._expect(Tokens.COMMA); |
-} |
-continue; |
-} |
-break; |
- |
-case Tokens.STRING: |
-this._consume(Tokens.STRING); |
-break; |
- |
-case Tokens.NUMBER: |
-this._consume(Tokens.NUMBER); |
-break; |
- |
-default: |
-this._next(); |
-} |
- |
-this._expect(Tokens.COLON); |
-this._builder.addSpace(); |
-this._parseAssignmentExpression(); |
-if (this._peek() !== Tokens.RBRACE) { |
-this._expect(Tokens.COMMA); |
-} |
-} |
-this._builder.decreaseNestingLevel(); |
- |
-this._expect(Tokens.RBRACE); |
-}, |
- |
-_parseRegExpLiteral: function() |
-{ |
-if (this._nextToken.type === "regexp") |
-this._next(); |
-else { |
-this._forceRegexp = true; |
-this._next(); |
-} |
-}, |
- |
-_parseArguments: function() |
-{ |
-this._expect(Tokens.LPAREN); |
-var done = (this._peek() === Tokens.RPAREN); |
-while (!done) { |
-this._parseAssignmentExpression(); |
-done = (this._peek() === Tokens.RPAREN); |
-if (!done) { |
-this._expect(Tokens.COMMA); |
-this._builder.addSpace(); |
-} |
-} |
-this._expect(Tokens.RPAREN); |
-}, |
- |
-_parseFunctionLiteral: function() |
-{ |
-this._expect(Tokens.LPAREN); |
-var done = (this._peek() === Tokens.RPAREN); |
-while (!done) { |
-this._expect(Tokens.IDENTIFIER); |
-done = (this._peek() === Tokens.RPAREN); |
-if (!done) { |
-this._expect(Tokens.COMMA); |
-this._builder.addSpace(); |
-} |
-} |
-this._expect(Tokens.RPAREN); |
-this._builder.addSpace(); |
- |
-this._expect(Tokens.LBRACE); |
-this._builder.addNewLine(); |
-this._builder.increaseNestingLevel(); |
-this._parseSourceElements(Tokens.RBRACE); |
-this._builder.decreaseNestingLevel(); |
-this._expect(Tokens.RBRACE); |
-} |
-} |
-; |
+this._builder.addSpace();var isFirstVariable=true;do{if(!isFirstVariable){this._consume(Tokens.COMMA);this._builder.addSpace();} |
+isFirstVariable=false;this._expect(Tokens.IDENTIFIER);if(this._peek()===Tokens.ASSIGN){this._builder.addSpace();this._consume(Tokens.ASSIGN);this._builder.addSpace();this._parseAssignmentExpression();}}while(this._peek()===Tokens.COMMA);},_parseExpressionOrLabelledStatement:function() |
+{this._parseExpression();if(this._peek()===Tokens.COLON){this._expect(Tokens.COLON);this._builder.addSpace();this._parseStatement();} |
+this._expectSemicolon();},_parseIfStatement:function() |
+{this._expect(Tokens.IF);this._builder.addSpace();this._expect(Tokens.LPAREN);this._parseExpression();this._expect(Tokens.RPAREN);var isBlock=this._parseStatementOrBlock();if(this._peek()===Tokens.ELSE){if(isBlock) |
+this._builder.addSpace();else |
+this._builder.addNewLine();this._next();if(this._peek()===Tokens.IF){this._builder.addSpace();this._parseStatement();}else |
+this._parseStatementOrBlock();}},_parseContinueStatement:function() |
+{this._expect(Tokens.CONTINUE);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==Tokens.SEMICOLON&&token!==Tokens.RBRACE&&token!==Tokens.EOS){this._builder.addSpace();this._expect(Tokens.IDENTIFIER);} |
+this._expectSemicolon();},_parseBreakStatement:function() |
+{this._expect(Tokens.BREAK);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==Tokens.SEMICOLON&&token!==Tokens.RBRACE&&token!==Tokens.EOS){this._builder.addSpace();this._expect(Tokens.IDENTIFIER);} |
+this._expectSemicolon();},_parseReturnStatement:function() |
+{this._expect(Tokens.RETURN);var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&token!==Tokens.SEMICOLON&&token!==Tokens.RBRACE&&token!==Tokens.EOS){this._builder.addSpace();this._parseExpression();} |
+this._expectSemicolon();},_parseWithStatement:function() |
+{this._expect(Tokens.WITH);this._builder.addSpace();this._expect(Tokens.LPAREN);this._parseExpression();this._expect(Tokens.RPAREN);this._parseStatementOrBlock();},_parseCaseClause:function() |
+{if(this._peek()===Tokens.CASE){this._expect(Tokens.CASE);this._builder.addSpace();this._parseExpression();}else |
+this._expect(Tokens.DEFAULT);this._expect(Tokens.COLON);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==Tokens.CASE&&this._peek()!==Tokens.DEFAULT&&this._peek()!==Tokens.RBRACE){this._parseStatement();this._builder.addNewLine();} |
+this._builder.decreaseNestingLevel();},_parseSwitchStatement:function() |
+{this._expect(Tokens.SWITCH);this._builder.addSpace();this._expect(Tokens.LPAREN);this._parseExpression();this._expect(Tokens.RPAREN);this._builder.addSpace();this._expect(Tokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();while(this._peek()!==Tokens.RBRACE) |
+this._parseCaseClause();this._builder.decreaseNestingLevel();this._expect(Tokens.RBRACE);},_parseThrowStatement:function() |
+{this._expect(Tokens.THROW);this._builder.addSpace();this._parseExpression();this._expectSemicolon();},_parseTryStatement:function() |
+{this._expect(Tokens.TRY);this._builder.addSpace();this._parseBlock();var token=this._peek();if(token===Tokens.CATCH){this._builder.addSpace();this._consume(Tokens.CATCH);this._builder.addSpace();this._expect(Tokens.LPAREN);this._expect(Tokens.IDENTIFIER);this._expect(Tokens.RPAREN);this._builder.addSpace();this._parseBlock();token=this._peek();} |
+if(token===Tokens.FINALLY){this._consume(Tokens.FINALLY);this._builder.addSpace();this._parseBlock();}},_parseDoWhileStatement:function() |
+{this._expect(Tokens.DO);var isBlock=this._parseStatementOrBlock();if(isBlock) |
+this._builder.addSpace();else |
+this._builder.addNewLine();this._expect(Tokens.WHILE);this._builder.addSpace();this._expect(Tokens.LPAREN);this._parseExpression();this._expect(Tokens.RPAREN);this._expectSemicolon();},_parseWhileStatement:function() |
+{this._expect(Tokens.WHILE);this._builder.addSpace();this._expect(Tokens.LPAREN);this._parseExpression();this._expect(Tokens.RPAREN);this._parseStatementOrBlock();},_parseForStatement:function() |
+{this._expect(Tokens.FOR);this._builder.addSpace();this._expect(Tokens.LPAREN);if(this._peek()!==Tokens.SEMICOLON){if(this._peek()===Tokens.VAR||this._peek()===Tokens.CONST){this._parseVariableDeclarations();if(this._peek()===Tokens.IN){this._builder.addSpace();this._consume(Tokens.IN);this._builder.addSpace();this._parseExpression();}}else |
+this._parseExpression();} |
+if(this._peek()!==Tokens.RPAREN){this._expect(Tokens.SEMICOLON);this._builder.addSpace();if(this._peek()!==Tokens.SEMICOLON) |
+this._parseExpression();this._expect(Tokens.SEMICOLON);this._builder.addSpace();if(this._peek()!==Tokens.RPAREN) |
+this._parseExpression();} |
+this._expect(Tokens.RPAREN);this._parseStatementOrBlock();},_parseExpression:function() |
+{this._parseAssignmentExpression();while(this._peek()===Tokens.COMMA){this._expect(Tokens.COMMA);this._builder.addSpace();this._parseAssignmentExpression();}},_parseAssignmentExpression:function() |
+{this._parseConditionalExpression();var token=this._peek();if(Tokens.ASSIGN<=token&&token<=Tokens.ASSIGN_MOD){this._builder.addSpace();this._next();this._builder.addSpace();this._parseAssignmentExpression();}},_parseConditionalExpression:function() |
+{this._parseBinaryExpression();if(this._peek()===Tokens.CONDITIONAL){this._builder.addSpace();this._consume(Tokens.CONDITIONAL);this._builder.addSpace();this._parseAssignmentExpression();this._builder.addSpace();this._expect(Tokens.COLON);this._builder.addSpace();this._parseAssignmentExpression();}},_parseBinaryExpression:function() |
+{this._parseUnaryExpression();var token=this._peek();while(Tokens.OR<=token&&token<=Tokens.IN){this._builder.addSpace();this._next();this._builder.addSpace();this._parseBinaryExpression();token=this._peek();}},_parseUnaryExpression:function() |
+{var token=this._peek();if((Tokens.NOT<=token&&token<=Tokens.VOID)||token===Tokens.ADD||token===Tokens.SUB||token===Tokens.INC||token===Tokens.DEC){this._next();if(token===Tokens.DELETE||token===Tokens.TYPEOF||token===Tokens.VOID) |
+this._builder.addSpace();this._parseUnaryExpression();}else |
+return this._parsePostfixExpression();},_parsePostfixExpression:function() |
+{this._parseLeftHandSideExpression();var token=this._peek();if(!this._hasLineTerminatorBeforeNext()&&(token===Tokens.INC||token===Tokens.DEC)) |
+this._next();},_parseLeftHandSideExpression:function() |
+{if(this._peek()===Tokens.NEW) |
+this._parseNewExpression();else |
+this._parseMemberExpression();while(true){switch(this._peek()){case Tokens.LBRACK:this._consume(Tokens.LBRACK);this._parseExpression();this._expect(Tokens.RBRACK);break;case Tokens.LPAREN:this._parseArguments();break;case Tokens.PERIOD:this._consume(Tokens.PERIOD);this._expect(Tokens.IDENTIFIER);break;default:return;}}},_parseNewExpression:function() |
+{this._expect(Tokens.NEW);this._builder.addSpace();if(this._peek()===Tokens.NEW) |
+this._parseNewExpression();else |
+this._parseMemberExpression();},_parseMemberExpression:function() |
+{if(this._peek()===Tokens.FUNCTION){this._expect(Tokens.FUNCTION);if(this._peek()===Tokens.IDENTIFIER){this._builder.addSpace();this._expect(Tokens.IDENTIFIER);} |
+this._parseFunctionLiteral();}else |
+this._parsePrimaryExpression();while(true){switch(this._peek()){case Tokens.LBRACK:this._consume(Tokens.LBRACK);this._parseExpression();this._expect(Tokens.RBRACK);break;case Tokens.PERIOD:this._consume(Tokens.PERIOD);this._expect(Tokens.IDENTIFIER);break;case Tokens.LPAREN:this._parseArguments();break;default:return;}}},_parseDebuggerStatement:function() |
+{this._expect(Tokens.DEBUGGER);this._expectSemicolon();},_parsePrimaryExpression:function() |
+{switch(this._peek()){case Tokens.THIS:return this._consume(Tokens.THIS);case Tokens.NULL_LITERAL:return this._consume(Tokens.NULL_LITERAL);case Tokens.TRUE_LITERAL:return this._consume(Tokens.TRUE_LITERAL);case Tokens.FALSE_LITERAL:return this._consume(Tokens.FALSE_LITERAL);case Tokens.IDENTIFIER:return this._consume(Tokens.IDENTIFIER);case Tokens.NUMBER:return this._consume(Tokens.NUMBER);case Tokens.STRING:return this._consume(Tokens.STRING);case Tokens.ASSIGN_DIV:return this._parseRegExpLiteral();case Tokens.DIV:return this._parseRegExpLiteral();case Tokens.LBRACK:return this._parseArrayLiteral();case Tokens.LBRACE:return this._parseObjectLiteral();case Tokens.LPAREN:this._consume(Tokens.LPAREN);this._parseExpression();this._expect(Tokens.RPAREN);return;default:return this._next();}},_parseArrayLiteral:function() |
+{this._expect(Tokens.LBRACK);this._builder.increaseNestingLevel();while(this._peek()!==Tokens.RBRACK){if(this._peek()!==Tokens.COMMA) |
+this._parseAssignmentExpression();if(this._peek()!==Tokens.RBRACK){this._expect(Tokens.COMMA);this._builder.addSpace();}} |
+this._builder.decreaseNestingLevel();this._expect(Tokens.RBRACK);},_parseObjectLiteralGetSet:function() |
+{var token=this._peek();if(token===Tokens.IDENTIFIER||token===Tokens.NUMBER||token===Tokens.STRING||Tokens.DELETE<=token&&token<=Tokens.FALSE_LITERAL||token===Tokens.INSTANCEOF||token===Tokens.IN||token===Tokens.CONST){this._next();this._parseFunctionLiteral();}},_parseObjectLiteral:function() |
+{this._expect(Tokens.LBRACE);this._builder.increaseNestingLevel();while(this._peek()!==Tokens.RBRACE){var token=this._peek();switch(token){case Tokens.IDENTIFIER:this._consume(Tokens.IDENTIFIER);var name=this._token.value;if((name==="get"||name==="set")&&this._peek()!==Tokens.COLON){this._builder.addSpace();this._parseObjectLiteralGetSet();if(this._peek()!==Tokens.RBRACE){this._expect(Tokens.COMMA);} |
+continue;} |
+break;case Tokens.STRING:this._consume(Tokens.STRING);break;case Tokens.NUMBER:this._consume(Tokens.NUMBER);break;default:this._next();} |
+this._expect(Tokens.COLON);this._builder.addSpace();this._parseAssignmentExpression();if(this._peek()!==Tokens.RBRACE){this._expect(Tokens.COMMA);}} |
+this._builder.decreaseNestingLevel();this._expect(Tokens.RBRACE);},_parseRegExpLiteral:function() |
+{if(this._nextToken.type==="regexp") |
+this._next();else{this._forceRegexp=true;this._next();}},_parseArguments:function() |
+{this._expect(Tokens.LPAREN);var done=(this._peek()===Tokens.RPAREN);while(!done){this._parseAssignmentExpression();done=(this._peek()===Tokens.RPAREN);if(!done){this._expect(Tokens.COMMA);this._builder.addSpace();}} |
+this._expect(Tokens.RPAREN);},_parseFunctionLiteral:function() |
+{this._expect(Tokens.LPAREN);var done=(this._peek()===Tokens.RPAREN);while(!done){this._expect(Tokens.IDENTIFIER);done=(this._peek()===Tokens.RPAREN);if(!done){this._expect(Tokens.COMMA);this._builder.addSpace();}} |
+this._expect(Tokens.RPAREN);this._builder.addSpace();this._expect(Tokens.LBRACE);this._builder.addNewLine();this._builder.increaseNestingLevel();this._parseSourceElements(Tokens.RBRACE);this._builder.decreaseNestingLevel();this._expect(Tokens.RBRACE);}}; |