]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/javascript.min.js
1 /*! `javascript` grammar compiled for Highlight.js 11.11.1 */
2 (()=>{var e
=(()=>{"use strict"
3 ;const e
="[A-Za-z$_][0-9A-Za-z$_]*",n
=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],a
=["true","false","null","undefined","NaN","Infinity"],t
=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s
=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r
=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c
=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],i
=[].concat(r
,t
,s
)
4 ;return o
=>{const l
=o
.regex
,d
=e
,b
={begin:/<[A-Za-z0-9\\._:-]+/,
5 end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e
,n
)=>{
6 const a
=e
[0].length
+e
.index
,t
=e
.input
[a
]
7 ;if("<"===t
||","===t
)return void n
.ignoreMatch();let s
8 ;">"===t
&&(((e
,{after:n
})=>{const a
="</"+e
[0].slice(1)
9 ;return-1!==e
.input
.indexOf(a
,n
)})(e
,{after:a
})||n
.ignoreMatch())
10 ;const r
=e
.input
.substring(a
)
11 ;((s
=r
.match(/^\s*=/))||(s
=r
.match(/^\s+extends\s+/))&&0===s
.index
)&&n
.ignoreMatch()
12 }},g
={$pattern:e
,keyword:n
,literal:a
,built_in:i
,"variable.language":c
13 },u
="[0-9](_?[0-9])*",m
=`\\.(${u})`,E
="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",A
={
14 className:"number",variants:[{
15 begin:`(\\b(${E})((${m})|\\.)?|(${m}))[eE][+-]?(${u})\\b`},{
16 begin:`\\b(${E})\\b((${m})\\b|\\.)?|(${m})\\b`},{
17 begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
18 begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
19 begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
20 begin:"\\b0[0-7]+n?\\b"}],relevance:0},y
={className:"subst",begin:"\\$\\{",
21 end:"\\}",keywords:g
,contains:[]},h
={begin:".?html`",end:"",starts:{end:"`",
22 returnEnd:!1,contains:[o
.BACKSLASH_ESCAPE
,y
],subLanguage:"xml"}},_
={
23 begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,
24 contains:[o
.BACKSLASH_ESCAPE
,y
],subLanguage:"css"}},N
={begin:".?gql`",end:"",
25 starts:{end:"`",returnEnd:!1,contains:[o
.BACKSLASH_ESCAPE
,y
],
26 subLanguage:"graphql"}},f
={className:"string",begin:"`",end:"`",
27 contains:[o
.BACKSLASH_ESCAPE
,y
]},p
={className:"comment",
28 variants:[o
.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
29 begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
30 begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
31 excludeBegin:!0,relevance:0},{className:"variable",begin:d
+"(?=\\s*(-)|$)",
32 endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
33 }),o
.C_BLOCK_COMMENT_MODE
,o
.C_LINE_COMMENT_MODE
]
34 },v
=[o
.APOS_STRING_MODE
,o
.QUOTE_STRING_MODE
,h
,_
,N
,f
,{match:/\$\d+/},A
]
35 ;y
.contains
=v
.concat({begin:/\{/,end:/\}/,keywords:g
,contains:["self"].concat(v
)
36 });const S
=[].concat(p
,y
.contains
),w
=S
.concat([{begin:/(\s*)\(/,end:/\)/,
37 keywords:g
,contains:["self"].concat(S
)}]),R
={className:"params",begin:/(\s*)\(/,
38 end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:g
,contains:w
},O
={variants:[{
39 match:[/class/,/\s+/,d
,/\s+/,/extends/,/\s+/,l
.concat(d
,"(",l
.concat(/\./,d
),")*")],
40 scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
41 match:[/class/,/\s+/,d
],scope:{1:"keyword",3:"title.class"}}]},k
={relevance:0,
42 match:l
.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
43 className:"title.class",keywords:{_:[...t
,...s
]}},I
={variants:[{
44 match:[/function/,/\s+/,d
,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
45 className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R
],
47 match:l
.concat(/\b/,(T
=[...r
,"super","import"].map((e
=>e
+"\\s*\\(")),
48 l
.concat("(?!",T
.join("|"),")")),d
,l
.lookahead(/\s*\(/)),
49 className:"title.function",relevance:0};var T
;const C
={
50 begin:l
.concat(/\./,l
.lookahead(l
.concat(d
,/(?![0-9A-Za-z$_(])/))),end:d
,
51 excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},M
={
52 match:[/get|set/,/\s+/,d
,/(?=\()/],className:{1:"keyword",3:"title.function"},
53 contains:[{begin:/\(\)/},R
]
54 },B
="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+o
.UNDERSCORE_IDENT_RE
+")\\s*=>",$={
55 match:[/const|var|let/,/\s+/,d
,/\s*/,/=\s*/,/(async\s*)?/,l
.lookahead(B
)],
56 keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R
]}
57 ;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:g
,exports:{
58 PARAMS_CONTAINS:w
,CLASS_REFERENCE:k
},illegal:/#(?![$_A-z])/,
59 contains:[o
.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
60 label:"use_strict",className:"meta",relevance:10,
61 begin:/^\s
*['"]use (strict|asm)['"]/
62 },o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,h,_,N,f,p,{match:/\$\d+/},A,k,{
63 scope:"attr
",match:d+l.lookahead(":"),relevance:0},$,{
64 begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b
)\\s
*",
65 keywords:"return throw case",relevance:0,contains:[p,o.REGEXP_MODE,{
66 className:"function",begin:B,returnBegin:!0,end:"\\s
*=>",contains:[{
67 className:"params
",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{
68 className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,
69 excludeBegin:!0,excludeEnd:!0,keywords:g,contains:w}]}]},{begin:/,/,relevance:0
70 },{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:"</>"},{
71 match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:b.begin,
72 "on:begin
":b.isTrulyOpeningTag,end:b.end}],subLanguage:"xml
",contains:[{
73 begin:b.begin,end:b.end,skip:!0,contains:["self
"]}]}]},I,{
74 beginKeywords:"while if switch catch for"},{
75 begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s
*\\{",
76 returnBegin:!0,label:"func
.def
",contains:[R,o.inherit(o.TITLE_MODE,{begin:d,
77 className:"title
.function"})]},{match:/\.\.\./,relevance:0},C,{match:"\\$"+d,
78 relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title
.function"},
79 contains:[R]},x,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
80 className:"variable
.constant
"},O,M,{match:/\$[(.]/}]}}})()
81 ;hljs.registerLanguage("javascript
",e)})();