javascript.min.js 6.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*! `javascript` grammar compiled for Highlight.js 11.3.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"],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","module","global"],i=[].concat(r,t,s)
  4. ;return o=>{const l=o.regex,b=e,d={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
  10. })||n.ignoreMatch()),(s=e.input.substr(a).match(/^\s+extends\s+/))&&0===s.index&&n.ignoreMatch()
  11. }},g={$pattern:e,keyword:n,literal:a,built_in:i,"variable.language":c
  12. },u="\\.([0-9](_?[0-9])*)",m="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={
  13. className:"number",variants:[{
  14. begin:`(\\b(${m})((${u})|\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
  15. begin:`\\b(${m})\\b((${u})\\b|\\.)?|(${u})\\b`},{
  16. begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
  17. begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
  18. begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
  19. begin:"\\b0[0-7]+n?\\b"}],relevance:0},A={className:"subst",begin:"\\$\\{",
  20. end:"\\}",keywords:g,contains:[]},y={begin:"html`",end:"",starts:{end:"`",
  21. returnEnd:!1,contains:[o.BACKSLASH_ESCAPE,A],subLanguage:"xml"}},N={
  22. begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
  23. contains:[o.BACKSLASH_ESCAPE,A],subLanguage:"css"}},_={className:"string",
  24. begin:"`",end:"`",contains:[o.BACKSLASH_ESCAPE,A]},f={className:"comment",
  25. variants:[o.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
  26. begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
  27. begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
  28. excludeBegin:!0,relevance:0},{className:"variable",begin:b+"(?=\\s*(-)|$)",
  29. endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
  30. }),o.C_BLOCK_COMMENT_MODE,o.C_LINE_COMMENT_MODE]
  31. },h=[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,E];A.contains=h.concat({
  32. begin:/\{/,end:/\}/,keywords:g,contains:["self"].concat(h)})
  33. ;const v=[].concat(f,A.contains),p=v.concat([{begin:/\(/,end:/\)/,keywords:g,
  34. contains:["self"].concat(v)}]),S={className:"params",begin:/\(/,end:/\)/,
  35. excludeBegin:!0,excludeEnd:!0,keywords:g,contains:p},w={variants:[{
  36. match:[/class/,/\s+/,b,/\s+/,/extends/,/\s+/,l.concat(b,"(",l.concat(/\./,b),")*")],
  37. scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
  38. match:[/class/,/\s+/,b],scope:{1:"keyword",3:"title.class"}}]},R={relevance:0,
  39. match:l.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]+|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+/),
  40. className:"title.class",keywords:{_:[...t,...s]}},O={variants:[{
  41. match:[/function/,/\s+/,b,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
  42. className:{1:"keyword",3:"title.function"},label:"func.def",contains:[S],
  43. illegal:/%/},I={
  44. match:l.concat(/\b/,(k=[...r,"super"],l.concat("(?!",k.join("|"),")")),b,l.lookahead(/\(/)),
  45. className:"title.function",relevance:0};var k;const x={
  46. begin:l.concat(/\./,l.lookahead(l.concat(b,/(?![0-9A-Za-z$_(])/))),end:b,
  47. excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},T={
  48. match:[/get|set/,/\s+/,b,/(?=\()/],className:{1:"keyword",3:"title.function"},
  49. contains:[{begin:/\(\)/},S]
  50. },C="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+o.UNDERSCORE_IDENT_RE+")\\s*=>",M={
  51. match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,l.lookahead(C)],className:{
  52. 1:"keyword",3:"title.function"},contains:[S]};return{name:"Javascript",
  53. aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{PARAMS_CONTAINS:p,
  54. CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,contains:[o.SHEBANG({label:"shebang",
  55. binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,
  56. begin:/^\s*['"]use (strict|asm)['"]/
  57. },o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,f,E,R,{className:"attr",
  58. begin:b+l.lookahead(":"),relevance:0},M,{
  59. begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
  60. keywords:"return throw case",relevance:0,contains:[f,o.REGEXP_MODE,{
  61. className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{
  62. className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{
  63. className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,
  64. excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/,
  65. relevance:0},{variants:[{begin:"<>",end:"</>"},{
  66. match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin,
  67. "on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{
  68. begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{
  69. beginKeywords:"while if switch catch for"},{
  70. begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
  71. returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b,
  72. className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b,
  73. relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
  74. contains:[S]},I,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
  75. className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})()
  76. ;hljs.registerLanguage("javascript",e)})();