1(function(mod){if(typeof exports=="object"&&typeof module=="object") 2mod(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd) 3define(["../../lib/codemirror"],mod);else mod(CodeMirror)})(function(CodeMirror){"use strict";function expressionAllowed(stream,state,backUp){return/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType)||(state.lastType=="quasi"&&/\{\s*$/.test(stream.string.slice(0,stream.pos-(backUp||0))))} 4CodeMirror.defineMode("javascript",function(config,parserConfig){var indentUnit=config.indentUnit;var statementIndent=parserConfig.statementIndent;var jsonldMode=parserConfig.jsonld;var jsonMode=parserConfig.json||jsonldMode;var isTS=parserConfig.typescript;var wordRE=parserConfig.wordCharacters||/[\w$\xa1-\uffff]/;var keywords=function(){function kw(type){return{type:type,style:"keyword"}} 5var 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":kw("new"),"delete":C,"throw":C,"debugger":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"),"class":kw("class"),"super":kw("atom"),"yield":C,"export":kw("export"),"import":kw("import"),"extends":C,"await":C,"async":kw("async")};if(isTS){var type={type:"variable",style:"variable-3"};var tsKeywords={"interface":kw("class"),"implements":C,"namespace":C,"module":kw("module"),"enum":kw("module"),"type":kw("type"),"public":kw("modifier"),"private":kw("modifier"),"protected":kw("modifier"),"abstract":kw("modifier"),"as":operator,"string":type,"number":type,"boolean":type,"any":type};for(var attr in tsKeywords){jsKeywords[attr]=tsKeywords[attr]}} 6return jsKeywords}();var isOperatorChar=/[+\-*&%=<>!?|~^]/;var isJsonldKeyword=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function readRegexp(stream){var escaped=!1,next,inSet=!1;while((next=stream.next())!=null){if(!escaped){if(next=="/"&&!inSet)return;if(next=="[")inSet=!0;else if(inSet&&next=="]")inSet=!1} 7escaped=!escaped&&next=="\\"}} 8var type,content;function ret(tp,style,cont){type=tp;content=cont;return style} 9function tokenBase(stream,state){var ch=stream.next();if(ch=='"'||ch=="'"){state.tokenize=tokenString(ch);return state.tokenize(stream,state)}else if(ch=="."&&stream.match(/^\d+(?:[eE][+\-]?\d+)?/)){return ret("number","number")}else if(ch=="."&&stream.match("..")){return ret("spread","meta")}else if(/[\[\]{}\(\),;\:\.]/.test(ch)){return ret(ch)}else if(ch=="="&&stream.eat(">")){return ret("=>","operator")}else if(ch=="0"&&stream.eat(/x/i)){stream.eatWhile(/[\da-f]/i);return ret("number","number")}else if(ch=="0"&&stream.eat(/o/i)){stream.eatWhile(/[0-7]/i);return ret("number","number")}else if(ch=="0"&&stream.eat(/b/i)){stream.eatWhile(/[01]/i);return ret("number","number")}else if(/\d/.test(ch)){stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);return ret("number","number")}else if(ch=="/"){if(stream.eat("*")){state.tokenize=tokenComment;return tokenComment(stream,state)}else if(stream.eat("/")){stream.skipToEnd();return ret("comment","comment")}else if(expressionAllowed(stream,state,1)){readRegexp(stream);stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);return ret("regexp","string-2")}else{stream.eatWhile(isOperatorChar);return ret("operator","operator",stream.current())}}else if(ch=="`"){state.tokenize=tokenQuasi;return tokenQuasi(stream,state)}else if(ch=="#"){stream.skipToEnd();return ret("error","error")}else if(isOperatorChar.test(ch)){if(ch!=">"||!state.lexical||state.lexical.type!=">") 10stream.eatWhile(isOperatorChar);return ret("operator","operator",stream.current())}else if(wordRE.test(ch)){stream.eatWhile(wordRE);var word=stream.current(),known=keywords.propertyIsEnumerable(word)&&keywords[word];return(known&&state.lastType!=".")?ret(known.type,known.style,word):ret("variable","variable",word)}} 11function tokenString(quote){return function(stream,state){var escaped=!1,next;if(jsonldMode&&stream.peek()=="@"&&stream.match(isJsonldKeyword)){state.tokenize=tokenBase;return ret("jsonld-keyword","meta")} 12while((next=stream.next())!=null){if(next==quote&&!escaped)break;escaped=!escaped&&next=="\\"} 13if(!escaped)state.tokenize=tokenBase;return ret("string","string")}} 14function tokenComment(stream,state){var maybeEnd=!1,ch;while(ch=stream.next()){if(ch=="/"&&maybeEnd){state.tokenize=tokenBase;break} 15maybeEnd=(ch=="*")} 16return ret("comment","comment")} 17function tokenQuasi(stream,state){var escaped=!1,next;while((next=stream.next())!=null){if(!escaped&&(next=="`"||next=="$"&&stream.eat("{"))){state.tokenize=tokenBase;break} 18escaped=!escaped&&next=="\\"} 19return ret("quasi","string-2",stream.current())} 20var brackets="([{}])";function findFatArrow(stream,state){if(state.fatArrowAt)state.fatArrowAt=null;var arrow=stream.string.indexOf("=>",stream.start);if(arrow<0)return;if(isTS){var m=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start,arrow)) 21if(m)arrow=m.index} 22var depth=0,sawSomething=!1;for(var pos=arrow-1;pos>=0;--pos){var ch=stream.string.charAt(pos);var bracket=brackets.indexOf(ch);if(bracket>=0&&bracket<3){if(!depth){++pos;break} 23if(--depth==0){if(ch=="(")sawSomething=!0;break}}else if(bracket>=3&&bracket<6){++depth}else if(wordRE.test(ch)){sawSomething=!0}else if(/["'\/]/.test(ch)){return}else if(sawSomething&&!depth){++pos;break}} 24if(sawSomething&&!depth)state.fatArrowAt=pos} 25var atomicTypes={"atom":!0,"number":!0,"variable":!0,"string":!0,"regexp":!0,"this":!0,"jsonld-keyword":!0};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} 26function inScope(state,varname){for(var v=state.localVars;v;v=v.next) 27if(v.name==varname)return!0;for(var cx=state.context;cx;cx=cx.prev){for(var v=cx.vars;v;v=v.next) 28if(v.name==varname)return!0}} 29function parseJS(state,style,type,content,stream){var cc=state.cc;cx.state=state;cx.stream=stream;cx.marked=null,cx.cc=cc;cx.style=style;if(!state.lexical.hasOwnProperty("align")) 30state.lexical.align=!0;while(!0){var combinator=cc.length?cc.pop():jsonMode?expression:statement;if(combinator(type,content)){while(cc.length&&cc[cc.length-1].lex) 31cc.pop()();if(cx.marked)return cx.marked;if(type=="variable"&&inScope(state,content))return"variable-2";return style}}} 32var 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]);} 33function cont(){pass.apply(null,arguments);return!0} 34function register(varname){function inList(list){for(var v=list;v;v=v.next) 35if(v.name==varname)return!0;return!1} 36var state=cx.state;cx.marked="def";if(state.context){if(inList(state.localVars))return;state.localVars={name:varname,next:state.localVars}}else{if(inList(state.globalVars))return;if(parserConfig.globalVars) 37state.globalVars={name:varname,next:state.globalVars}}} 38var defaultVars={name:"this",next:{name:"arguments"}};function pushcontext(){cx.state.context={prev:cx.state.context,vars:cx.state.localVars};cx.state.localVars=defaultVars} 39function popcontext(){cx.state.localVars=cx.state.context.vars;cx.state.context=cx.state.context.prev} 40function pushlex(type,info){var result=function(){var state=cx.state,indent=state.indented;if(state.lexical.type=="stat")indent=state.lexical.indented;else for(var outer=state.lexical;outer&&outer.type==")"&&outer.align;outer=outer.prev) 41indent=outer.indented;state.lexical=new JSLexical(indent,cx.stream.column(),type,null,state.lexical,info)};result.lex=!0;return result} 42function poplex(){var state=cx.state;if(state.lexical.prev){if(state.lexical.type==")") 43state.indented=state.lexical.indented;state.lexical=state.lexical.prev}} 44poplex.lex=!0;function expect(wanted){function exp(type){if(type==wanted)return cont();else if(wanted==";")return pass();else return cont(exp)};return exp}
45function statement(type,value){if(type=="var")return cont(pushlex("vardef",value.length),vardef,expect(";"),poplex);if(type=="keyword a")return cont(pushlex("form"),parenExpr,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"){if(cx.state.lexical.info=="else"&&cx.state.cc[cx.state.cc.length-1]==poplex) 46cx.state.cc.pop()();return cont(pushlex("form"),parenExpr,statement,poplex,maybeelse)} 47if(type=="function")return cont(functiondef);if(type=="for")return cont(pushlex("form"),forspec,statement,poplex);if(type=="variable")return cont(pushlex("stat"),maybelabel);if(type=="switch")return cont(pushlex("form"),parenExpr,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);if(type=="class")return cont(pushlex("form"),className,poplex);if(type=="export")return cont(pushlex("stat"),afterExport,poplex);if(type=="import")return cont(pushlex("stat"),afterImport,poplex);if(type=="module")return cont(pushlex("form"),pattern,pushlex("}"),expect("{"),block,poplex,poplex) 48if(type=="type")return cont(typeexpr,expect("operator"),typeexpr,expect(";"));if(type=="async")return cont(statement) 49return pass(pushlex("stat"),expression,expect(";"),poplex)} 50function expression(type){return expressionInner(type,!1)} 51function expressionNoComma(type){return expressionInner(type,!0)} 52function parenExpr(type){if(type!="(")return pass() 53return cont(pushlex(")"),expression,expect(")"),poplex)} 54function expressionInner(type,noComma){if(cx.state.fatArrowAt==cx.stream.start){var body=noComma?arrowBodyNoComma:arrowBody;if(type=="(")return cont(pushcontext,pushlex(")"),commasep(pattern,")"),poplex,expect("=>"),body,popcontext);else if(type=="variable")return pass(pushcontext,pattern,expect("=>"),body,popcontext)} 55var maybeop=noComma?maybeoperatorNoComma:maybeoperatorComma;if(atomicTypes.hasOwnProperty(type))return cont(maybeop);if(type=="function")return cont(functiondef,maybeop);if(type=="class")return cont(pushlex("form"),classExpression,poplex);if(type=="keyword c"||type=="async")return cont(noComma?maybeexpressionNoComma:maybeexpression);if(type=="(")return cont(pushlex(")"),maybeexpression,expect(")"),poplex,maybeop);if(type=="operator"||type=="spread")return cont(noComma?expressionNoComma:expression);if(type=="[")return cont(pushlex("]"),arrayLiteral,poplex,maybeop);if(type=="{")return contCommasep(objprop,"}",null,maybeop);if(type=="quasi")return pass(quasi,maybeop);if(type=="new")return cont(maybeTarget(noComma));return cont()} 56function maybeexpression(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expression)} 57function maybeexpressionNoComma(type){if(type.match(/[;\}\)\],]/))return pass();return pass(expressionNoComma)} 58function maybeoperatorComma(type,value){if(type==",")return cont(expression);return maybeoperatorNoComma(type,value,!1)} 59function maybeoperatorNoComma(type,value,noComma){var me=noComma==!1?maybeoperatorComma:maybeoperatorNoComma;var expr=noComma==!1?expression:expressionNoComma;if(type=="=>")return cont(pushcontext,noComma?arrowBodyNoComma:arrowBody,popcontext);if(type=="operator"){if(/\+\+|--/.test(value))return cont(me);if(value=="?")return cont(expression,expect(":"),expr);return cont(expr)} 60if(type=="quasi"){return pass(quasi,me)} 61if(type==";")return;if(type=="(")return contCommasep(expressionNoComma,")","call",me);if(type==".")return cont(property,me);if(type=="[")return cont(pushlex("]"),maybeexpression,expect("]"),poplex,me)} 62function quasi(type,value){if(type!="quasi")return pass();if(value.slice(value.length-2)!="${")return cont(quasi);return cont(expression,continueQuasi)} 63function continueQuasi(type){if(type=="}"){cx.marked="string-2";cx.state.tokenize=tokenQuasi;return cont(quasi)}} 64function arrowBody(type){findFatArrow(cx.stream,cx.state);return pass(type=="{"?statement:expression)} 65function arrowBodyNoComma(type){findFatArrow(cx.stream,cx.state);return pass(type=="{"?statement:expressionNoComma)} 66function maybeTarget(noComma){return function(type){if(type==".")return cont(noComma?targetNoComma:target);else return pass(noComma?expressionNoComma:expression)}} 67function target(_,value){if(value=="target"){cx.marked="keyword";return cont(maybeoperatorComma)}} 68function targetNoComma(_,value){if(value=="target"){cx.marked="keyword";return cont(maybeoperatorNoComma)}} 69function maybelabel(type){if(type==":")return cont(poplex,statement);return pass(maybeoperatorComma,expect(";"),poplex)} 70function property(type){if(type=="variable"){cx.marked="property";return cont()}} 71function objprop(type,value){if(type=="async"){cx.marked="property";return cont(objprop)}else if(type=="variable"||cx.style=="keyword"){cx.marked="property";if(value=="get"||value=="set")return cont(getterSetter);return cont(afterprop)}else if(type=="number"||type=="string"){cx.marked=jsonldMode?"property":(cx.style+" property");return cont(afterprop)}else if(type=="jsonld-keyword"){return cont(afterprop)}else if(type=="modifier"){return cont(objprop)}else if(type=="["){return cont(expression,expect("]"),afterprop)}else if(type=="spread"){return cont(expression)}else if(type==":"){return pass(afterprop)}} 72function getterSetter(type){if(type!="variable")return pass(afterprop);cx.marked="property";return cont(functiondef)} 73function afterprop(type){if(type==":")return cont(expressionNoComma);if(type=="(")return pass(functiondef)} 74function commasep(what,end,sep){function proceed(type,value){if(sep?sep.indexOf(type)>-1:type==","){var lex=cx.state.lexical;if(lex.info=="call")lex.pos=(lex.pos||0)+1;return cont(function(type,value){if(type==end||value==end)return pass() 75return pass(what)},proceed)} 76if(type==end||value==end)return cont();return cont(expect(end))} 77return function(type,value){if(type==end||value==end)return cont();return pass(what,proceed)}} 78function contCommasep(what,end,info){for(var i=3;i<arguments.length;i++) 79cx.cc.push(arguments[i]);return cont(pushlex(end,info),commasep(what,end),poplex)} 80function block(type){if(type=="}")return cont();return pass(statement,block)} 81function maybetype(type,value){if(isTS){if(type==":")return cont(typeexpr);if(value=="?")return cont(maybetype)}} 82function typeexpr(type){if(type=="variable"){cx.marked="variable-3";return cont(afterType)} 83if(type=="string"||type=="number"||type=="atom")return cont(afterType);if(type=="{")return cont(pushlex("}"),commasep(typeprop,"}",",;"),poplex) 84if(type=="(")return cont(commasep(typearg,")"),maybeReturnType)} 85function maybeReturnType(type){if(type=="=>")return cont(typeexpr)} 86function typeprop(type,value){if(type=="variable"||cx.style=="keyword"){cx.marked="property" 87return cont(typeprop)}else if(value=="?"){return cont(typeprop)}else if(type==":"){return cont(typeexpr)}} 88function typearg(type){if(type=="variable")return cont(typearg) 89else if(type==":")return cont(typeexpr)} 90function afterType(type,value){if(value=="<")return cont(pushlex(">"),commasep(typeexpr,">"),poplex,afterType) 91if(value=="|"||type==".")return cont(typeexpr) 92if(type=="[")return cont(expect("]"),afterType)} 93function vardef(){return pass(pattern,maybetype,maybeAssign,vardefCont)} 94function pattern(type,value){if(type=="modifier")return cont(pattern) 95if(type=="variable"){register(value);return cont()} 96if(type=="spread")return cont(pattern);if(type=="[")return contCommasep(pattern,"]");if(type=="{")return contCommasep(proppattern,"}")} 97function proppattern(type,value){if(type=="variable"&&!cx.stream.match(/^\s*:/,!1)){register(value);return cont(maybeAssign)} 98if(type=="variable")cx.marked="property";if(type=="spread")return cont(pattern);if(type=="}")return pass();return cont(expect(":"),pattern,maybeAssign)} 99function maybeAssign(_type,value){if(value=="=")return cont(expressionNoComma)} 100function vardefCont(type){if(type==",")return cont(vardef)} 101function maybeelse(type,value){if(type=="keyword b"&&value=="else")return cont(pushlex("form","else"),statement,poplex)} 102function forspec(type){if(type=="(")return cont(pushlex(")"),forspec1,expect(")"),poplex)} 103function forspec1(type){if(type=="var")return cont(vardef,expect(";"),forspec2);if(type==";")return cont(forspec2);if(type=="variable")return cont(formaybeinof);return pass(expression,expect(";"),forspec2)} 104function formaybeinof(_type,value){if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression)} 105return cont(maybeoperatorComma,forspec2)} 106function forspec2(type,value){if(type==";")return cont(forspec3);if(value=="in"||value=="of"){cx.marked="keyword";return cont(expression)} 107return pass(expression,expect(";"),forspec3)} 108function forspec3(type){if(type!=")")cont(expression)} 109function functiondef(type,value){if(value=="*"){cx.marked="keyword";return cont(functiondef)} 110if(type=="variable"){register(value);return cont(functiondef)} 111if(type=="(")return cont(pushcontext,pushlex(")"),commasep(funarg,")"),poplex,maybetype,statement,popcontext)} 112function funarg(type){if(type=="spread")return cont(funarg);return pass(pattern,maybetype,maybeAssign)} 113function classExpression(type,value){if(type=="variable")return className(type,value);return classNameAfter(type,value)} 114function className(type,value){if(type=="variable"){register(value);return cont(classNameAfter)}} 115function classNameAfter(type,value){if(value=="extends"||value=="implements")return cont(isTS?typeexpr:expression,classNameAfter);if(type=="{")return cont(pushlex("}"),classBody,poplex)} 116function classBody(type,value){if(type=="variable"||cx.style=="keyword"){if((value=="static"||value=="get"||value=="set"||(isTS&&(value=="public"||value=="private"||value=="protected"||value=="readonly"||value=="abstract")))&&cx.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)){cx.marked="keyword";return cont(classBody)} 117cx.marked="property";return cont(isTS?classfield:functiondef,classBody)} 118if(value=="*"){cx.marked="keyword";return cont(classBody)} 119if(type==";")return cont(classBody);if(type=="}")return cont()} 120function classfield(type,value){if(value=="?")return cont(classfield) 121if(type==":")return cont(typeexpr,maybeAssign) 122return pass(functiondef)} 123function afterExport(type,value){if(value=="*"){cx.marked="keyword";return cont(maybeFrom,expect(";"))} 124if(value=="default"){cx.marked="keyword";return cont(expression,expect(";"))} 125if(type=="{")return cont(commasep(exportField,"}"),maybeFrom,expect(";"));return pass(statement)} 126function exportField(type,value){if(value=="as"){cx.marked="keyword";return cont(expect("variable"))} 127if(type=="variable")return pass(expressionNoComma,exportField)} 128function afterImport(type){if(type=="string")return cont();return pass(importSpec,maybeMoreImports,maybeFrom)} 129function importSpec(type,value){if(type=="{")return contCommasep(importSpec,"}");if(type=="variable")register(value);if(value=="*")cx.marked="keyword";return cont(maybeAs)} 130function maybeMoreImports(type){if(type==",")return cont(importSpec,maybeMoreImports)} 131function maybeAs(_type,value){if(value=="as"){cx.marked="keyword";return cont(importSpec)}} 132function maybeFrom(_type,value){if(value=="from"){cx.marked="keyword";return cont(expression)}} 133function arrayLiteral(type){if(type=="]")return cont();return pass(commasep(expressionNoComma,"]"))}
134function isContinuedStatement(state,textAfter){return state.lastType=="operator"||state.lastType==","||isOperatorChar.test(textAfter.charAt(0))||/[,.]/.test(textAfter.charAt(0))} 135return{startState:function(basecolumn){var state={tokenize:tokenBase,lastType:"sof",cc:[],lexical:new JSLexical((basecolumn||0)-indentUnit,0,"block",!1),localVars:parserConfig.localVars,context:parserConfig.localVars&&{vars:parserConfig.localVars},indented:basecolumn||0};if(parserConfig.globalVars&&typeof parserConfig.globalVars=="object") 136state.globalVars=parserConfig.globalVars;return state},token:function(stream,state){if(stream.sol()){if(!state.lexical.hasOwnProperty("align")) 137state.lexical.align=!1;state.indented=stream.indentation();findFatArrow(stream,state)} 138if(state.tokenize!=tokenComment&&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==tokenComment)return CodeMirror.Pass;if(state.tokenize!=tokenBase)return 0;var firstChar=textAfter&&textAfter.charAt(0),lexical=state.lexical,top 139if(!/^\s*else\b/.test(textAfter))for(var i=state.cc.length-1;i>=0;--i){var c=state.cc[i];if(c==poplex)lexical=lexical.prev;else if(c!=maybeelse)break} 140while((lexical.type=="stat"||lexical.type=="form")&&(firstChar=="}"||((top=state.cc[state.cc.length-1])&&(top==maybeoperatorComma||top==maybeoperatorNoComma)&&!/^[,\.=+\-*:?[\(]/.test(textAfter)))) 141lexical=lexical.prev;if(statementIndent&&lexical.type==")"&&lexical.prev.type=="stat") 142lexical=lexical.prev;var type=lexical.type,closing=firstChar==type;if(type=="vardef")return lexical.indented+(state.lastType=="operator"||state.lastType==","?lexical.info+1:0);else if(type=="form"&&firstChar=="{")return lexical.indented;else if(type=="form")return lexical.indented+indentUnit;else if(type=="stat") 143return lexical.indented+(isContinuedStatement(state,textAfter)?statementIndent||indentUnit:0);else if(lexical.info=="switch"&&!closing&&parserConfig.doubleIndentSwitch!=!1) 144return 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)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:jsonMode?null:"/*",blockCommentEnd:jsonMode?null:"*/",lineComment:jsonMode?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:jsonMode?"json":"javascript",jsonldMode:jsonldMode,jsonMode:jsonMode,expressionAllowed:expressionAllowed,skipExpression:function(state){var top=state.cc[state.cc.length-1] 145if(top==expression||top==expressionNoComma)state.cc.pop()}}});CodeMirror.registerHelper("wordChars","javascript",/[\w$]/);CodeMirror.defineMIME("text/javascript","javascript");CodeMirror.defineMIME("text/ecmascript","javascript");CodeMirror.defineMIME("application/javascript","javascript");CodeMirror.defineMIME("application/x-javascript","javascript");CodeMirror.defineMIME("application/ecmascript","javascript");CodeMirror.defineMIME("application/json",{name:"javascript",json:!0});CodeMirror.defineMIME("application/x-json",{name:"javascript",json:!0});CodeMirror.defineMIME("application/ld+json",{name:"javascript",jsonld:!0});CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:!0});CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:!0})})
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.