PluginProbe
CSS & JavaScript Toolbox / 12
CSS & JavaScript Toolbox v12
trunk 0.3 0.8 10 10.1 11 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.9.1 12 12.0 12.0.1 12.0.3 12.0.4 12.0.5 12.0.6 12.0.7 6.0 6.0.11 All 60 releases
← All changes | framework/js/ace/mode-javascript.js +2 -795 11.912 View file →
@@ -1,800 +1,7 @@
1 -define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
2 -var oop = require("../lib/oop");
3 -var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
4 -var DocCommentHighlightRules = function () {
5 - this.$rules = {
6 - "start": [{
7 - token: "comment.doc.tag",
8 - regex: "@[\\w\\d_]+" // TODO: fix email addresses
9 - },
10 - DocCommentHighlightRules.getTagRule(),
11 - {
12 - defaultToken: "comment.doc",
13 - caseInsensitive: true
14 - }]
15 - };
16 -};
17 -oop.inherits(DocCommentHighlightRules, TextHighlightRules);
18 -DocCommentHighlightRules.getTagRule = function (start) {
19 - return {
20 - token: "comment.doc.tag.storage.type",
21 - regex: "\\b(?:TODO|FIXME|XXX|HACK)\\b"
22 - };
23 -};
24 -DocCommentHighlightRules.getStartRule = function (start) {
25 - return {
26 - token: "comment.doc",
27 - regex: "\\/\\*(?=\\*)",
28 - next: start
29 - };
30 -};
31 -DocCommentHighlightRules.getEndRule = function (start) {
32 - return {
33 - token: "comment.doc",
34 - regex: "\\*\\/",
35 - next: start
36 - };
37 -};
38 -exports.DocCommentHighlightRules = DocCommentHighlightRules;
39 -
40 -});
41 -
42 -define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
43 -var oop = require("../lib/oop");
44 -var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
45 -var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
46 -var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
47 -var JavaScriptHighlightRules = function (options) {
48 - var keywordMapper = this.createKeywordMapper({
49 - "variable.language": "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|" + // Constructors
50 - "Namespace|QName|XML|XMLList|" + // E4X
51 - "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" +
52 - "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" +
53 - "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors
54 - "SyntaxError|TypeError|URIError|" +
55 - "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions
56 - "isNaN|parseFloat|parseInt|" +
57 - "JSON|Math|" + // Other
58 - "this|arguments|prototype|window|document",
59 - "keyword": "const|yield|import|get|set|async|await|" +
60 - "break|case|catch|continue|default|delete|do|else|finally|for|function|" +
61 - "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
62 - "__parent__|__count__|escape|unescape|with|__proto__|" +
63 - "class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor",
64 - "storage.type": "const|let|var|function",
65 - "constant.language": "null|Infinity|NaN|undefined",
66 - "support.function": "alert",
67 - "constant.language.boolean": "true|false"
68 - }, "identifier");
69 - var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";
70 - var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
71 - "u[0-9a-fA-F]{4}|" + // unicode
72 - "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode
73 - "[0-2][0-7]{0,2}|" + // oct
74 - "3[0-7][0-7]?|" + // oct
75 - "[4-7][0-7]?|" + //oct
76 - ".)";
77 - this.$rules = {
78 - "no_regex": [
79 - DocCommentHighlightRules.getStartRule("doc-start"),
80 - comments("no_regex"),
81 - {
82 - token: "string",
83 - regex: "'(?=.)",
84 - next: "qstring"
85 - }, {
86 - token: "string",
87 - regex: '"(?=.)',
88 - next: "qqstring"
89 - }, {
90 - token: "constant.numeric",
91 - regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
92 - }, {
93 - token: "constant.numeric",
94 - regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
95 - }, {
96 - token: [
97 - "storage.type", "punctuation.operator", "support.function",
98 - "punctuation.operator", "entity.name.function", "text", "keyword.operator"
99 - ],
100 - regex: "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe + ")(\\s*)(=)",
101 - next: "function_arguments"
102 - }, {
103 - token: [
104 - "storage.type", "punctuation.operator", "entity.name.function", "text",
105 - "keyword.operator", "text", "storage.type", "text", "paren.lparen"
106 - ],
107 - regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
108 - next: "function_arguments"
109 - }, {
110 - token: [
111 - "entity.name.function", "text", "keyword.operator", "text", "storage.type",
112 - "text", "paren.lparen"
113 - ],
114 - regex: "(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s*)(\\()",
115 - next: "function_arguments"
116 - }, {
117 - token: [
118 - "storage.type", "punctuation.operator", "entity.name.function", "text",
119 - "keyword.operator", "text",
120 - "storage.type", "text", "entity.name.function", "text", "paren.lparen"
121 - ],
122 - regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(\\s+)(\\w+)(\\s*)(\\()",
123 - next: "function_arguments"
124 - }, {
125 - token: [
126 - "storage.type", "text", "entity.name.function", "text", "paren.lparen"
127 - ],
128 - regex: "(function\\*?)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
129 - next: "function_arguments"
130 - }, {
131 - token: [
132 - "entity.name.function", "text", "punctuation.operator",
133 - "text", "storage.type", "text", "paren.lparen"
134 - ],
135 - regex: "(" + identifierRe + ")(\\s*)(:)(\\s*)(function\\*?)(\\s*)(\\()",
136 - next: "function_arguments"
137 - }, {
138 - token: [
139 - "text", "text", "storage.type", "text", "paren.lparen"
140 - ],
141 - regex: "(:)(\\s*)(function\\*?)(\\s*)(\\()",
142 - next: "function_arguments"
143 - }, {
144 - token: "keyword",
145 - regex: "from(?=\\s*('|\"))"
146 - }, {
147 - token: "keyword",
148 - regex: "(?:" + kwBeforeRe + ")\\b",
149 - next: "start"
150 - }, {
151 - token: "support.constant",
152 - regex: /that\b/
153 - }, {
154 - token: ["storage.type", "punctuation.operator", "support.function.firebug"],
155 - regex: /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
156 - }, {
157 - token: keywordMapper,
158 - regex: identifierRe
159 - }, {
160 - token: "punctuation.operator",
161 - regex: /[.](?![.])/,
162 - next: "property"
163 - }, {
164 - token: "storage.type",
165 - regex: /=>/,
166 - next: "start"
167 - }, {
168 - token: "keyword.operator",
169 - regex: /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
170 - next: "start"
171 - }, {
172 - token: "punctuation.operator",
173 - regex: /[?:,;.]/,
174 - next: "start"
175 - }, {
176 - token: "paren.lparen",
177 - regex: /[\[({]/,
178 - next: "start"
179 - }, {
180 - token: "paren.rparen",
181 - regex: /[\])}]/
182 - }, {
183 - token: "comment",
184 - regex: /^#!.*$/
185 - }
186 - ],
187 - property: [{
188 - token: "text",
189 - regex: "\\s+"
190 - }, {
191 - token: [
192 - "storage.type", "punctuation.operator", "entity.name.function", "text",
193 - "keyword.operator", "text",
194 - "storage.type", "text", "entity.name.function", "text", "paren.lparen"
195 - ],
196 - regex: "(" + identifierRe + ")(\\.)(" + identifierRe + ")(\\s*)(=)(\\s*)(function\\*?)(?:(\\s+)(\\w+))?(\\s*)(\\()",
197 - next: "function_arguments"
198 - }, {
199 - token: "punctuation.operator",
200 - regex: /[.](?![.])/
201 - }, {
202 - token: "support.function",
203 - regex: /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/
204 - }, {
205 - token: "support.function.dom",
206 - regex: /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/
207 - }, {
208 - token: "support.constant",
209 - regex: /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
210 - }, {
211 - token: "identifier",
212 - regex: identifierRe
213 - }, {
214 - regex: "",
215 - token: "empty",
216 - next: "no_regex"
217 - }
218 - ],
219 - "start": [
220 - DocCommentHighlightRules.getStartRule("doc-start"),
221 - comments("start"),
222 - {
223 - token: "string.regexp",
224 - regex: "\\/",
225 - next: "regex"
226 - }, {
227 - token: "text",
228 - regex: "\\s+|^$",
229 - next: "start"
230 - }, {
231 - token: "empty",
232 - regex: "",
233 - next: "no_regex"
234 - }
235 - ],
236 - "regex": [
237 - {
238 - token: "regexp.keyword.operator",
239 - regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
240 - }, {
241 - token: "string.regexp",
242 - regex: "/[sxngimy]*",
243 - next: "no_regex"
244 - }, {
245 - token: "invalid",
246 - regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
247 - }, {
248 - token: "constant.language.escape",
249 - regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
250 - }, {
251 - token: "constant.language.delimiter",
252 - regex: /\|/
253 - }, {
254 - token: "constant.language.escape",
255 - regex: /\[\^?/,
256 - next: "regex_character_class"
257 - }, {
258 - token: "empty",
259 - regex: "$",
260 - next: "no_regex"
261 - }, {
262 - defaultToken: "string.regexp"
263 - }
264 - ],
265 - "regex_character_class": [
266 - {
267 - token: "regexp.charclass.keyword.operator",
268 - regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
269 - }, {
270 - token: "constant.language.escape",
271 - regex: "]",
272 - next: "regex"
273 - }, {
274 - token: "constant.language.escape",
275 - regex: "-"
276 - }, {
277 - token: "empty",
278 - regex: "$",
279 - next: "no_regex"
280 - }, {
281 - defaultToken: "string.regexp.charachterclass"
282 - }
283 - ],
284 - "default_parameter": [
285 - {
286 - token: "string",
287 - regex: "'(?=.)",
288 - push: [
289 - {
290 - token: "string",
291 - regex: "'|$",
292 - next: "pop"
293 - }, {
294 - include: "qstring"
295 - }
296 - ]
297 - }, {
298 - token: "string",
299 - regex: '"(?=.)',
300 - push: [
301 - {
302 - token: "string",
303 - regex: '"|$',
304 - next: "pop"
305 - }, {
306 - include: "qqstring"
307 - }
308 - ]
309 - }, {
310 - token: "constant.language",
311 - regex: "null|Infinity|NaN|undefined"
312 - }, {
313 - token: "constant.numeric",
314 - regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
315 - }, {
316 - token: "constant.numeric",
317 - regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
318 - }, {
319 - token: "punctuation.operator",
320 - regex: ",",
321 - next: "function_arguments"
322 - }, {
323 - token: "text",
324 - regex: "\\s+"
325 - }, {
326 - token: "punctuation.operator",
327 - regex: "$"
328 - }, {
329 - token: "empty",
330 - regex: "",
331 - next: "no_regex"
332 - }
333 - ],
334 - "function_arguments": [
335 - comments("function_arguments"),
336 - {
337 - token: "variable.parameter",
338 - regex: identifierRe
339 - }, {
340 - token: "punctuation.operator",
341 - regex: ","
342 - }, {
343 - token: "text",
344 - regex: "\\s+"
345 - }, {
346 - token: "punctuation.operator",
347 - regex: "$"
348 - }, {
349 - token: "empty",
350 - regex: "",
351 - next: "no_regex"
352 - }
353 - ],
354 - "qqstring": [
355 - {
356 - token: "constant.language.escape",
357 - regex: escapedRe
358 - }, {
359 - token: "string",
360 - regex: "\\\\$",
361 - consumeLineEnd: true
362 - }, {
363 - token: "string",
364 - regex: '"|$',
365 - next: "no_regex"
366 - }, {
367 - defaultToken: "string"
368 - }
369 - ],
370 - "qstring": [
371 - {
372 - token: "constant.language.escape",
373 - regex: escapedRe
374 - }, {
375 - token: "string",
376 - regex: "\\\\$",
377 - consumeLineEnd: true
378 - }, {
379 - token: "string",
380 - regex: "'|$",
381 - next: "no_regex"
382 - }, {
383 - defaultToken: "string"
384 - }
385 - ]
386 - };
387 - if (!options || !options.noES6) {
388 - this.$rules.no_regex.unshift({
389 - regex: "[{}]", onMatch: function (val, state, stack) {
390 - this.next = val == "{" ? this.nextState : "";
391 - if (val == "{" && stack.length) {
392 - stack.unshift("start", state);
393 - }
394 - else if (val == "}" && stack.length) {
395 - stack.shift();
396 - this.next = stack.shift();
397 - if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1)
398 - return "paren.quasi.end";
399 - }
400 - return val == "{" ? "paren.lparen" : "paren.rparen";
401 - },
402 - nextState: "start"
403 - }, {
404 - token: "string.quasi.start",
405 - regex: /`/,
406 - push: [{
407 - token: "constant.language.escape",
408 - regex: escapedRe
409 - }, {
410 - token: "paren.quasi.start",
411 - regex: /\${/,
412 - push: "start"
413 - }, {
414 - token: "string.quasi.end",
415 - regex: /`/,
416 - next: "pop"
417 - }, {
418 - defaultToken: "string.quasi"
419 - }]
420 - }, {
421 - token: ["variable.parameter", "text"],
422 - regex: "(" + identifierRe + ")(\\s*)(?=\\=>)"
423 - }, {
424 - token: "paren.lparen",
425 - regex: "(\\()(?=.+\\s*=>)",
426 - next: "function_arguments"
427 - }, {
428 - token: "variable.language",
429 - regex: "(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"
430 - });
431 - this.$rules["function_arguments"].unshift({
432 - token: "keyword.operator",
433 - regex: "=",
434 - next: "default_parameter"
435 - }, {
436 - token: "keyword.operator",
437 - regex: "\\.{3}"
438 - });
439 - this.$rules["property"].unshift({
440 - token: "support.function",
441 - regex: "(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|"
442 - + "finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"
443 - }, {
444 - token: "constant.language",
445 - regex: "(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"
446 - });
447 - if (!options || options.jsx != false)
448 - JSX.call(this);
449 - }
450 - this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("no_regex")]);
451 - this.normalizeRules();
452 -};
453 -oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
454 -function JSX() {
455 - var tagRegex = identifierRe.replace("\\d", "\\d\\-");
456 - var jsxTag = {
457 - onMatch: function (val, state, stack) {
458 - var offset = val.charAt(1) == "/" ? 2 : 1;
459 - if (offset == 1) {
460 - if (state != this.nextState)
461 - stack.unshift(this.next, this.nextState, 0);
462 - else
463 - stack.unshift(this.next);
464 - stack[2]++;
465 - }
466 - else if (offset == 2) {
467 - if (state == this.nextState) {
468 - stack[1]--;
469 - if (!stack[1] || stack[1] < 0) {
470 - stack.shift();
471 - stack.shift();
472 - }
473 - }
474 - }
475 - return [{
476 - type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml",
477 - value: val.slice(0, offset)
478 - }, {
479 - type: "meta.tag.tag-name.xml",
480 - value: val.substr(offset)
481 - }];
482 - },
483 - regex: "</?" + tagRegex + "",
484 - next: "jsxAttributes",
485 - nextState: "jsx"
486 - };
487 - this.$rules.start.unshift(jsxTag);
488 - var jsxJsRule = {
489 - regex: "{",
490 - token: "paren.quasi.start",
491 - push: "start"
492 - };
493 - this.$rules.jsx = [
494 - jsxJsRule,
495 - jsxTag,
496 - { include: "reference" },
497 - { defaultToken: "string" }
498 - ];
499 - this.$rules.jsxAttributes = [{
500 - token: "meta.tag.punctuation.tag-close.xml",
501 - regex: "/?>",
502 - onMatch: function (value, currentState, stack) {
503 - if (currentState == stack[0])
504 - stack.shift();
505 - if (value.length == 2) {
506 - if (stack[0] == this.nextState)
507 - stack[1]--;
508 - if (!stack[1] || stack[1] < 0) {
509 - stack.splice(0, 2);
510 - }
511 - }
512 - this.next = stack[0] || "start";
513 - return [{ type: this.token, value: value }];
514 - },
515 - nextState: "jsx"
516 - },
517 - jsxJsRule,
518 - comments("jsxAttributes"),
519 - {
520 - token: "entity.other.attribute-name.xml",
521 - regex: tagRegex
522 - }, {
523 - token: "keyword.operator.attribute-equals.xml",
524 - regex: "="
525 - }, {
526 - token: "text.tag-whitespace.xml",
527 - regex: "\\s+"
528 - }, {
529 - token: "string.attribute-value.xml",
530 - regex: "'",
531 - stateName: "jsx_attr_q",
532 - push: [
533 - { token: "string.attribute-value.xml", regex: "'", next: "pop" },
534 - { include: "reference" },
535 - { defaultToken: "string.attribute-value.xml" }
536 - ]
537 - }, {
538 - token: "string.attribute-value.xml",
539 - regex: '"',
540 - stateName: "jsx_attr_qq",
541 - push: [
542 - { token: "string.attribute-value.xml", regex: '"', next: "pop" },
543 - { include: "reference" },
544 - { defaultToken: "string.attribute-value.xml" }
545 - ]
546 - },
547 - jsxTag
548 - ];
549 - this.$rules.reference = [{
550 - token: "constant.language.escape.reference.xml",
551 - regex: "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
552 - }];
553 -}
554 -function comments(next) {
555 - return [
556 - {
557 - token: "comment",
558 - regex: /\/\*/,
559 - next: [
560 - DocCommentHighlightRules.getTagRule(),
561 - { token: "comment", regex: "\\*\\/", next: next || "pop" },
562 - { defaultToken: "comment", caseInsensitive: true }
563 - ]
564 - }, {
565 - token: "comment",
566 - regex: "\\/\\/",
567 - next: [
568 - DocCommentHighlightRules.getTagRule(),
569 - { token: "comment", regex: "$|^", next: next || "pop" },
570 - { defaultToken: "comment", caseInsensitive: true }
571 - ]
572 - }
573 - ];
574 -}
575 -exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
576 -
577 -});
578 -
579 -define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module){"use strict";
580 -var Range = require("../range").Range;
581 -var MatchingBraceOutdent = function () { };
582 -(function () {
583 - this.checkOutdent = function (line, input) {
584 - if (!/^\s+$/.test(line))
585 - return false;
586 - return /^\s*\}/.test(input);
587 - };
588 - this.autoOutdent = function (doc, row) {
589 - var line = doc.getLine(row);
590 - var match = line.match(/^(\s*\})/);
591 - if (!match)
592 - return 0;
593 - var column = match[1].length;
594 - var openBracePos = doc.findMatchingBracket({ row: row, column: column });
595 - if (!openBracePos || openBracePos.row == row)
596 - return 0;
597 - var indent = this.$getIndent(doc.getLine(openBracePos.row));
598 - doc.replace(new Range(row, 0, row, column - 1), indent);
599 - };
600 - this.$getIndent = function (line) {
601 - return line.match(/^\s*/)[0];
602 - };
603 -}).call(MatchingBraceOutdent.prototype);
604 -exports.MatchingBraceOutdent = MatchingBraceOutdent;
605 -
606 -});
607 -
608 -define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module){"use strict";
609 -var oop = require("../../lib/oop");
610 -var Range = require("../../range").Range;
611 -var BaseFoldMode = require("./fold_mode").FoldMode;
612 -var FoldMode = exports.FoldMode = function (commentRegex) {
613 - if (commentRegex) {
614 - this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start));
615 - this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end));
616 - }
617 -};
618 -oop.inherits(FoldMode, BaseFoldMode);
619 -(function () {
620 - this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/;
621 - this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/;
622 - this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/;
623 - this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/;
624 - this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/;
625 - this._getFoldWidgetBase = this.getFoldWidget;
626 - this.getFoldWidget = function (session, foldStyle, row) {
627 - var line = session.getLine(row);
628 - if (this.singleLineBlockCommentRe.test(line)) {
629 - if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))
630 - return "";
631 - }
632 - var fw = this._getFoldWidgetBase(session, foldStyle, row);
633 - if (!fw && this.startRegionRe.test(line))
634 - return "start"; // lineCommentRegionStart
635 - return fw;
636 - };
637 - this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {
638 - var line = session.getLine(row);
639 - if (this.startRegionRe.test(line))
640 - return this.getCommentRegionBlock(session, line, row);
641 - var match = line.match(this.foldingStartMarker);
642 - if (match) {
643 - var i = match.index;
644 - if (match[1])
645 - return this.openingBracketBlock(session, match[1], row, i);
646 - var range = session.getCommentFoldRange(row, i + match[0].length, 1);
647 - if (range && !range.isMultiLine()) {
648 - if (forceMultiline) {
649 - range = this.getSectionRange(session, row);
650 - }
651 - else if (foldStyle != "all")
652 - range = null;
653 - }
654 - return range;
655 - }
656 - if (foldStyle === "markbegin")
657 - return;
658 - var match = line.match(this.foldingStopMarker);
659 - if (match) {
660 - var i = match.index + match[0].length;
661 - if (match[1])
662 - return this.closingBracketBlock(session, match[1], row, i);
663 - return session.getCommentFoldRange(row, i, -1);
664 - }
665 - };
666 - this.getSectionRange = function (session, row) {
667 - var line = session.getLine(row);
668 - var startIndent = line.search(/\S/);
669 - var startRow = row;
670 - var startColumn = line.length;
671 - row = row + 1;
672 - var endRow = row;
673 - var maxRow = session.getLength();
674 - while (++row < maxRow) {
675 - line = session.getLine(row);
676 - var indent = line.search(/\S/);
677 - if (indent === -1)
678 - continue;
679 - if (startIndent > indent)
680 - break;
681 - var subRange = this.getFoldWidgetRange(session, "all", row);
682 - if (subRange) {
683 - if (subRange.start.row <= startRow) {
684 - break;
685 - }
686 - else if (subRange.isMultiLine()) {
687 - row = subRange.end.row;
688 - }
689 - else if (startIndent == indent) {
690 - break;
691 - }
692 - }
693 - endRow = row;
694 - }
695 - return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);
696 - };
697 - this.getCommentRegionBlock = function (session, line, row) {
698 - var startColumn = line.search(/\s*$/);
699 - var maxRow = session.getLength();
700 - var startRow = row;
701 - var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/;
702 - var depth = 1;
703 - while (++row < maxRow) {
704 - line = session.getLine(row);
705 - var m = re.exec(line);
706 - if (!m)
707 - continue;
708 - if (m[1])
709 - depth--;
710 - else
711 - depth++;
712 - if (!depth)
713 - break;
714 - }
715 - var endRow = row;
716 - if (endRow > startRow) {
717 - return new Range(startRow, startColumn, endRow, line.length);
718 - }
719 - };
720 -}).call(FoldMode.prototype);
721 -
722 -});
723 -
724 -define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module){"use strict";
725 -var oop = require("../lib/oop");
726 -var TextMode = require("./text").Mode;
727 -var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
728 -var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
729 -var WorkerClient = require("../worker/worker_client").WorkerClient;
730 -var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
731 -var CStyleFoldMode = require("./folding/cstyle").FoldMode;
732 -var Mode = function () {
733 - this.HighlightRules = JavaScriptHighlightRules;
734 - this.$outdent = new MatchingBraceOutdent();
735 - this.$behaviour = new CstyleBehaviour();
736 - this.foldingRules = new CStyleFoldMode();
737 -};
738 -oop.inherits(Mode, TextMode);
739 -(function () {
740 - this.lineCommentStart = "//";
741 - this.blockComment = { start: "/*", end: "*/" };
742 - this.$quotes = { '"': '"', "'": "'", "`": "`" };
743 - this.getNextLineIndent = function (state, line, tab) {
744 - var indent = this.$getIndent(line);
745 - var tokenizedLine = this.getTokenizer().getLineTokens(line, state);
746 - var tokens = tokenizedLine.tokens;
747 - var endState = tokenizedLine.state;
748 - if (tokens.length && tokens[tokens.length - 1].type == "comment") {
749 - return indent;
750 - }
751 - if (state == "start" || state == "no_regex") {
752 - var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);
753 - if (match) {
754 - indent += tab;
755 - }
756 - }
757 - else if (state == "doc-start") {
758 - if (endState == "start" || endState == "no_regex") {
759 - return "";
760 - }
761 - var match = line.match(/^\s*(\/?)\*/);
762 - if (match) {
763 - if (match[1]) {
764 - indent += " ";
765 - }
766 - indent += "* ";
767 - }
768 - }
769 - return indent;
770 - };
771 - this.checkOutdent = function (state, line, input) {
772 - return this.$outdent.checkOutdent(line, input);
773 - };
774 - this.autoOutdent = function (state, doc, row) {
775 - this.$outdent.autoOutdent(doc, row);
776 - };
777 - this.createWorker = function (session) {
778 - var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker");
779 - worker.attachToDocument(session.getDocument());
780 - worker.on("annotate", function (results) {
781 - session.setAnnotations(results.data);
782 - });
783 - worker.on("terminate", function () {
784 - session.clearAnnotations();
785 - });
786 - return worker;
787 - };
788 - this.$id = "ace/mode/javascript";
789 - this.snippetFileId = "ace/snippets/javascript";
790 -}).call(Mode.prototype);
791 -exports.Mode = Mode;
792 -
793 -}); (function() {
794 - window.require(["ace/mode/javascript"], function(m) {
1 +ace.define("ace/mode/jsdoc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:["comment.doc.tag","comment.doc.text","lparen.doc"],regex:"(@(?:param|member|typedef|property|namespace|var|const|callback))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:["rparen.doc","text.doc","variable.parameter.doc","lparen.doc","variable.parameter.doc","rparen.doc"],regex:/(})(\s*)(?:([\w=:\/\.]+)|(?:(\[)([\w=:\/\.\-\'\" ]+)(\])))/,next:"pop"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","lparen.doc"],regex:"(@(?:returns?|yields|type|this|suppress|public|protected|private|package|modifies|implements|external|exception|throws|enum|define|extends))(\\s*)({)",push:[{token:"lparen.doc",regex:"{",push:[{include:"doc-syntax"},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"}]},{token:"rparen.doc",regex:"}|(?=$)",next:"pop"},{include:"doc-syntax"},{defaultToken:"text.doc"}]},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:'(@(?:alias|memberof|instance|module|name|lends|namespace|external|this|template|requires|param|implements|function|extends|typedef|mixes|constructor|var|memberof\\!|event|listens|exports|class|constructs|interface|emits|fires|throws|const|callback|borrows|augments))(\\s+)(\\w[\\w#.:/~"\\-]*)?'},{token:["comment.doc.tag","text.doc","variable.parameter.doc"],regex:"(@method)(\\s+)(\\w[\\w.\\(\\)]*)"},{token:"comment.doc.tag",regex:"@access\\s+(?:private|public|protected)"},{token:"comment.doc.tag",regex:"@kind\\s+(?:class|constant|event|external|file|function|member|mixin|module|namespace|typedef)"},{token:"comment.doc.tag",regex:"@\\w+(?=\\s|$)"},s.getTagRule(),{defaultToken:"comment.doc.body",caseInsensitive:!0}],"doc-syntax":[{token:"operator.doc",regex:/[|:]/},{token:"paren.doc",regex:/[\[\]]/}]},this.normalizeRules()};r.inherits(s,i),s.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},s.getStartRule=function(e){return{token:"comment.doc",regex:/\/\*\*(?!\/)/,next:e}},s.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.JsDocCommentHighlightRules=s}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/jsdoc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function a(){var e=o.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r=e.charAt(1)=="/"?2:1;if(r==1)t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++;else if(r==2&&t==this.nextState){n[1]--;if(!n[1]||n[1]<0)n.shift(),n.shift()}return[{type:"meta.tag.punctuation."+(r==1?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"</?(?:"+e+"|(?=>))",next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(t);var n={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[n,t,{include:"reference"},{defaultToken:"string.xml"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(e,t,n){return t==n[0]&&n.shift(),e.length==2&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,f("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function f(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var r=e("../lib/oop"),i=e("./jsdoc_comment_highlight_rules").JsDocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,o="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*",u=function(e){var t={"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static|constructor","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},n=this.createKeywordMapper(t,"identifier"),r="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",s="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)",u="(function)(\\s*)(\\*?)",l={token:["identifier","text","paren.lparen"],regex:"(\\b(?!"+Object.values(t).join("|")+"\\b)"+o+")(\\s*)(\\()"};this.$rules={no_regex:[i.getStartRule("doc-start"),f("no_regex"),l,{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(=)(\\s*)"+u+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))("+o+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","storage.type","text","paren.lparen"],regex:"("+o+")(\\s*)(:)(\\s*)"+u+"(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)"+u+"(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+r+")\\b",next:"start"},{token:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|debug|time|trace|timeEnd|assert)\b/},{token:n,regex:o},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:"keyword.operator",regex:/=/},{token:["storage.type","text","storage.type","text","paren.lparen"],regex:u+"(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","storage.type","text","text","entity.name.function","text","paren.lparen"],regex:"(function)(?:(?:(\\s*)(\\*)(\\s*))|(\\s+))(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:"prototype"},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:o},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),f("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[f("function_arguments"),{token:"variable.parameter",regex:o},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]};if(!e||!e.noES6)this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){this.next=e=="{"?this.nextState:"";if(e=="{"&&n.length)n.unshift("start",t);else if(e=="}"&&n.length){n.shift(),this.next=n.shift();if(this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1)return"paren.quasi.end"}return e=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:s},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+o+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=[^\\(]+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!e||e.jsx!=0)&&a.call(this);this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};r.inherits(u,s),t.JavaScriptHighlightRules=u}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator"],function(e,t,n){"use strict";function o(e,t){return e&&e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,u=function(){this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){var u=i,a=r.doc.getTextRange(n.getSelectionRange());if(a!==""&&a!=="'"&&a!='"'&&n.getWrapBehavioursEnabled())return{text:u+a+u,selection:!1};var f=n.getCursorPosition(),l=r.doc.getLine(f.row),c=l.substring(f.column,f.column+1),h=new s(r,f.row,f.column),p=h.getCurrentToken();if(c==u&&(o(p,"attribute-value")||o(p,"string")))return{text:"",selection:[1,1]};p||(p=h.stepBackward());if(!p)return;while(o(p,"tag-whitespace")||o(p,"whitespace"))p=h.stepBackward();var d=!c||c.match(/\s/);if(o(p,"attribute-equals")&&(d||c==">")||o(p,"decl-attribute-equals")&&(d||c=="?"))return{text:u+u,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}}),this.add("autoclosing","insertion",function(e,t,n,r,i){if(i==">"){var u=n.getSelectionRange().start,a=new s(r,u.row,u.column),f=a.getCurrentToken()||a.stepBackward();if(!f||!(o(f,"tag-name")||o(f,"tag-whitespace")||o(f,"attribute-name")||o(f,"attribute-equals")||o(f,"attribute-value")))return;if(o(f,"reference.attribute-value"))return;if(o(f,"attribute-value")){var l=a.getCurrentTokenColumn()+f.value.length;if(u.column<l)return;if(u.column==l){var c=a.stepForward();if(c&&o(c,"attribute-value"))return;a.stepBackward()}}if(/^\s*>/.test(r.getLine(u.row).slice(u.column)))return;while(!o(f,"tag-name")){f=a.stepBackward();if(f.value=="<"){f=a.stepForward();break}}var h=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn();if(o(a.stepBackward(),"end-tag-open"))return;var d=f.value;h==u.row&&(d=d.substring(0,u.column-p));if(this.voidElements&&this.voidElements.hasOwnProperty(d.toLowerCase()))return;return{text:"></"+d+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(e,t,n,r,i){if(i=="\n"){var u=n.getCursorPosition(),a=r.getLine(u.row),f=new s(r,u.row,u.column),l=f.getCurrentToken();if(o(l,"")&&l.type.indexOf("tag-close")!==-1){if(l.value=="/>")return;while(l&&l.type.indexOf("tag-name")===-1)l=f.stepBackward();if(!l)return;var c=l.value,h=f.getCurrentTokenRow();l=f.stepBackward();if(!l||l.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[c]||!this.voidElements){var p=r.getTokenAt(u.row,u.column+1),a=r.getLine(h),d=this.$getIndent(a),v=d+r.getTabString();return p&&p.value==="</"?{text:"\n"+v+"\n"+d,selection:[1,v.length,1,v.length]}:{text:"\n"+v}}}}})};r.inherits(u,i),t.XmlBehaviour=u}),ace.define("ace/mode/behaviour/javascript",["require","exports","module","ace/lib/oop","ace/token_iterator","ace/mode/behaviour/cstyle","ace/mode/behaviour/xml"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../token_iterator").TokenIterator,s=e("../behaviour/cstyle").CstyleBehaviour,o=e("../behaviour/xml").XmlBehaviour,u=function(){var e=(new o({closeCurlyBraces:!0})).getBehaviours();this.addBehaviours(e),this.inherit(s),this.add("autoclosing-fragment","insertion",function(e,t,n,r,s){if(s==">"){var o=n.getSelectionRange().start,u=new i(r,o.row,o.column),a=u.getCurrentToken()||u.stepBackward();if(!a)return;if(a.value=="<")return{text:"></>",selection:[1,1]}}})};r.inherits(u,s),t.JavaScriptBehaviour=u}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";function a(e,t){return e.type.lastIndexOf(t+".xml")>-1}var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e,t){s.call(this),this.voidElements=e||{},this.optionalEndTags=r.mixin({},this.voidElements),t&&r.mixin(this.optionalEndTags,t)};r.inherits(o,s);var u=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};(function(){this.getFoldWidget=function(e,t,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?t==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())?"":this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,t){return/comment/.test(e.getState(t))&&/<!-/.test(e.getLine(t))?"start":""},this._getFirstTagInLine=function(e,t){var n=e.getTokens(t),r=new u;for(var i=0;i<n.length;i++){var s=n[i];if(a(s,"tag-open")){r.end.column=r.start.column+s.value.length,r.closing=a(s,"end-tag-open"),s=n[++i];if(!s)return null;r.tagName=s.value;if(s.value===""){s=n[++i];if(!s)return null;r.tagName=s.value}r.end.column+=s.value.length;for(i++;i<n.length;i++){s=n[i],r.end.column+=s.value.length;if(a(s,"tag-close")){r.selfClosing=s.value=="/>";break}}return r}if(a(s,"tag-close"))return r.selfClosing=s.value=="/>",r;r.start.column+=s.value.length}return null},this._findEndTagInLine=function(e,t,n,r){var i=e.getTokens(t),s=0;for(var o=0;o<i.length;o++){var u=i[o];s+=u.value.length;if(s<r-1)continue;if(a(u,"end-tag-open")){u=i[o+1],a(u,"tag-name")&&u.value===""&&(u=i[o+2]);if(u&&u.value==n)return!0}}return!1},this.getFoldWidgetRange=function(e,t,n){var r=this._getFirstTagInLine(e,n);if(!r)return this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length);var s=e.getMatchingTags({row:n,column:0});if(s)return new i(s.openTag.end.row,s.openTag.end.column,s.closeTag.start.row,s.closeTag.start.column)}}).call(o.prototype)}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define("ace/mode/folding/javascript",["require","exports","module","ace/lib/oop","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./xml").FoldMode,s=e("./cstyle").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end))),this.xmlFoldMode=new i};r.inherits(o,s),function(){this.getFoldWidgetRangeBase=this.getFoldWidgetRange,this.getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=this.getFoldWidgetBase(e,t,n);return r?r:this.xmlFoldMode.getFoldWidget(e,t,n)},this.getFoldWidgetRange=function(e,t,n,r){var i=this.getFoldWidgetRangeBase(e,t,n,r);return i?i:this.xmlFoldMode.getFoldWidgetRange(e,t,n)}}.call(o.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/javascript","ace/mode/folding/javascript"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./javascript_highlight_rules").JavaScriptHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("../worker/worker_client").WorkerClient,a=e("./behaviour/javascript").JavaScriptBehaviour,f=e("./folding/javascript").FoldMode,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new a,this.foldingRules=new f};r.inherits(l,i),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.$pairQuotesAfter={"`":/\w/},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=this.getTokenizer().getLineTokens(t,e),s=i.tokens,o=i.state;if(s.length&&s[s.length-1].type=="comment")return r;if(e=="start"||e=="no_regex"){var u=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);u&&(r+=n)}else if(e=="doc-start")if(o=="start"||o=="no_regex")return"";return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new u(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(l.prototype),t.Mode=l}); (function() {
2 + ace.require(["ace/mode/javascript"], function(m) {
795 3 if (typeof module == "object" && typeof exports == "object" && module) {
796 4 module.exports = m;
797 5 }
798 6 });
799 7 })();
800 -