javascript top-level property

Mode javascript
final

Implementation

final javascript = Mode(
    refs: {
      '~exports~PARAMS_CONTAINS~9': Mode(begin: "\\(", end: "\\)", keywords: {
        "\$pattern": "[A-Za-z\$_][0-9A-Za-z\$_]*",
        "keyword": [
          "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"
        ],
        "literal": ["true", "false", "null", "undefined", "NaN", "Infinity"],
        "built_in": [
          "setInterval",
          "setTimeout",
          "clearInterval",
          "clearTimeout",
          "require",
          "exports",
          "eval",
          "isFinite",
          "isNaN",
          "parseFloat",
          "parseInt",
          "decodeURI",
          "decodeURIComponent",
          "encodeURI",
          "encodeURIComponent",
          "escape",
          "unescape",
          "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",
          "Error",
          "EvalError",
          "InternalError",
          "RangeError",
          "ReferenceError",
          "SyntaxError",
          "TypeError",
          "URIError"
        ],
        "variable.language": [
          "arguments",
          "this",
          "super",
          "console",
          "window",
          "document",
          "localStorage",
          "module",
          "global"
        ]
      }, contains: [
        Mode(self: true),
        Mode(ref: '~exports~PARAMS_CONTAINS~0'),
        APOS_STRING_MODE,
        QUOTE_STRING_MODE,
        Mode(ref: '~exports~PARAMS_CONTAINS~3'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~5'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~7')
      ]),
      '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~7':
          Mode(begin: "\\{", end: "\\}", keywords: {
        "\$pattern": "[A-Za-z\$_][0-9A-Za-z\$_]*",
        "keyword": [
          "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"
        ],
        "literal": ["true", "false", "null", "undefined", "NaN", "Infinity"],
        "built_in": [
          "setInterval",
          "setTimeout",
          "clearInterval",
          "clearTimeout",
          "require",
          "exports",
          "eval",
          "isFinite",
          "isNaN",
          "parseFloat",
          "parseInt",
          "decodeURI",
          "decodeURIComponent",
          "encodeURI",
          "encodeURIComponent",
          "escape",
          "unescape",
          "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",
          "Error",
          "EvalError",
          "InternalError",
          "RangeError",
          "ReferenceError",
          "SyntaxError",
          "TypeError",
          "URIError"
        ],
        "variable.language": [
          "arguments",
          "this",
          "super",
          "console",
          "window",
          "document",
          "localStorage",
          "module",
          "global"
        ]
      }, contains: [
        Mode(self: true),
        APOS_STRING_MODE,
        QUOTE_STRING_MODE,
        Mode(ref: '~exports~PARAMS_CONTAINS~3'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~5'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6')
      ]),
      '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6': Mode(
          className: "number",
          variants: [
            Mode(
                begin:
                    "(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"),
            Mode(
                begin:
                    "\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"),
            Mode(begin: "\\b(0|[1-9](_?[0-9])*)n\\b"),
            Mode(begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"),
            Mode(begin: "\\b0[bB][0-1](_?[0-1])*n?\\b"),
            Mode(begin: "\\b0[oO][0-7](_?[0-7])*n?\\b"),
            Mode(begin: "\\b0[0-7]+n?\\b")
          ],
          relevance: 0),
      '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~5':
          Mode(match: "\\\$\\d+"),
      '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4': Mode(
          className: "string",
          begin: "`",
          end: "`",
          contains: [
            BACKSLASH_ESCAPE,
            Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1')
          ]),
      '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3': Mode(
          begin: "css`",
          end: "",
          starts: Mode(end: "`", returnEnd: false, contains: [
            BACKSLASH_ESCAPE,
            Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1')
          ], subLanguage: [
            "css"
          ])),
      '~exports~PARAMS_CONTAINS~3~starts~contains~1':
          Mode(className: "subst", begin: "\\\$\\{", end: "\\}", keywords: {
        "\$pattern": "[A-Za-z\$_][0-9A-Za-z\$_]*",
        "keyword": [
          "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"
        ],
        "literal": ["true", "false", "null", "undefined", "NaN", "Infinity"],
        "built_in": [
          "setInterval",
          "setTimeout",
          "clearInterval",
          "clearTimeout",
          "require",
          "exports",
          "eval",
          "isFinite",
          "isNaN",
          "parseFloat",
          "parseInt",
          "decodeURI",
          "decodeURIComponent",
          "encodeURI",
          "encodeURIComponent",
          "escape",
          "unescape",
          "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",
          "Error",
          "EvalError",
          "InternalError",
          "RangeError",
          "ReferenceError",
          "SyntaxError",
          "TypeError",
          "URIError"
        ],
        "variable.language": [
          "arguments",
          "this",
          "super",
          "console",
          "window",
          "document",
          "localStorage",
          "module",
          "global"
        ]
      }, contains: [
        APOS_STRING_MODE,
        QUOTE_STRING_MODE,
        Mode(ref: '~exports~PARAMS_CONTAINS~3'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~5'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6'),
        Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~7')
      ]),
      '~exports~PARAMS_CONTAINS~3': Mode(
          begin: "html`",
          end: "",
          starts: Mode(end: "`", returnEnd: false, contains: [
            BACKSLASH_ESCAPE,
            Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1')
          ], subLanguage: [
            "xml"
          ])),
      '~exports~PARAMS_CONTAINS~0': Mode(className: "comment", variants: [
        Mode(
            scope: "comment",
            begin: "\\/\\*\\*(?!\\/)",
            end: "\\*/",
            contains: [
              Mode(begin: "(?=@[A-Za-z]+)", relevance: 0, contains: [
                Mode(className: "doctag", begin: "@[A-Za-z]+"),
                Mode(
                    className: "type",
                    begin: "\\{",
                    end: "\\}",
                    excludeEnd: true,
                    excludeBegin: true,
                    relevance: 0),
                Mode(
                    className: "variable",
                    begin: "[A-Za-z\$_][0-9A-Za-z\$_]*(?=\\s*(-)|\$)",
                    endsParent: true,
                    relevance: 0),
                Mode(begin: "(?=[^\\n])\\s", relevance: 0)
              ]),
              Mode(
                  scope: "doctag",
                  begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
                  end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
                  excludeBegin: true,
                  relevance: 0),
              Mode(
                  begin:
                      "[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}")
            ],
            relevance: 0),
        C_BLOCK_COMMENT_MODE,
        C_LINE_COMMENT_MODE
      ]),
      '~exports~CLASS_REFERENCE': Mode(
          relevance: 0,
          match:
              "(?:\\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]*)*)",
          className: "title.class",
          keywords: {
            "_": [
              "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",
              "Error",
              "EvalError",
              "InternalError",
              "RangeError",
              "ReferenceError",
              "SyntaxError",
              "TypeError",
              "URIError"
            ]
          }),
      '~contains~12~contains~0': Mode(
          className: "params",
          begin: "\\(",
          end: "\\)",
          excludeBegin: true,
          excludeEnd: true,
          keywords: {
            "\$pattern": "[A-Za-z\$_][0-9A-Za-z\$_]*",
            "keyword": [
              "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"
            ],
            "literal": [
              "true",
              "false",
              "null",
              "undefined",
              "NaN",
              "Infinity"
            ],
            "built_in": [
              "setInterval",
              "setTimeout",
              "clearInterval",
              "clearTimeout",
              "require",
              "exports",
              "eval",
              "isFinite",
              "isNaN",
              "parseFloat",
              "parseInt",
              "decodeURI",
              "decodeURIComponent",
              "encodeURI",
              "encodeURIComponent",
              "escape",
              "unescape",
              "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",
              "Error",
              "EvalError",
              "InternalError",
              "RangeError",
              "ReferenceError",
              "SyntaxError",
              "TypeError",
              "URIError"
            ],
            "variable.language": [
              "arguments",
              "this",
              "super",
              "console",
              "window",
              "document",
              "localStorage",
              "module",
              "global"
            ]
          },
          contains: [
            Mode(ref: '~exports~PARAMS_CONTAINS~0'),
            APOS_STRING_MODE,
            QUOTE_STRING_MODE,
            Mode(ref: '~exports~PARAMS_CONTAINS~3'),
            Mode(
                ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3'),
            Mode(
                ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4'),
            Mode(
                ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~5'),
            Mode(
                ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6'),
            Mode(
                ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~7'),
            Mode(ref: '~exports~PARAMS_CONTAINS~9')
          ]),
    },
    name: "Javascript",
    aliases: ["js", "jsx", "mjs", "cjs"],
    keywords: {
      "\$pattern": "[A-Za-z\$_][0-9A-Za-z\$_]*",
      "keyword": [
        "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"
      ],
      "literal": ["true", "false", "null", "undefined", "NaN", "Infinity"],
      "built_in": [
        "setInterval",
        "setTimeout",
        "clearInterval",
        "clearTimeout",
        "require",
        "exports",
        "eval",
        "isFinite",
        "isNaN",
        "parseFloat",
        "parseInt",
        "decodeURI",
        "decodeURIComponent",
        "encodeURI",
        "encodeURIComponent",
        "escape",
        "unescape",
        "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",
        "Error",
        "EvalError",
        "InternalError",
        "RangeError",
        "ReferenceError",
        "SyntaxError",
        "TypeError",
        "URIError"
      ],
      "variable.language": [
        "arguments",
        "this",
        "super",
        "console",
        "window",
        "document",
        "localStorage",
        "module",
        "global"
      ]
    },
    illegal: "#(?![\$_A-z])",
    contains: [
      Mode(
          scope: "meta",
          begin: "^#![ ]*\\/.*\\bnode\\b.*",
          end: "\$",
          relevance: 5,
          onBegin: shebangOnBegin,
          label: "shebang",
          binary: "node"),
      Mode(
          label: "use_strict",
          className: "meta",
          relevance: 10,
          begin: "^\\s*['\"]use (strict|asm)['\"]"),
      APOS_STRING_MODE,
      QUOTE_STRING_MODE,
      Mode(ref: '~exports~PARAMS_CONTAINS~3'),
      Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3'),
      Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4'),
      Mode(ref: '~exports~PARAMS_CONTAINS~0'),
      Mode(match: "\\\$\\d+"),
      Mode(ref: '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6'),
      Mode(ref: '~exports~CLASS_REFERENCE'),
      Mode(
          className: "attr",
          begin: "[A-Za-z\$_][0-9A-Za-z\$_]*(?=:)",
          relevance: 0),
      Mode(
          match: [
            "const|var|let",
            "\\s+",
            "[A-Za-z\$_][0-9A-Za-z\$_]*",
            "\\s*",
            "=\\s*",
            "(async\\s*)?",
            "(?=(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|[a-zA-Z_]\\w*)\\s*=>)"
          ],
          keywords: "async",
          className: {"1": "keyword", "3": "title.function"},
          contains: [Mode(ref: '~contains~12~contains~0')]),
      Mode(
          begin:
              "(!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||\\x7e|\\b(case|return|throw)\\b)\\s*",
          keywords: "return throw case",
          relevance: 0,
          contains: [
            Mode(ref: '~exports~PARAMS_CONTAINS~0'),
            REGEXP_MODE,
            Mode(
                className: "function",
                begin:
                    "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|[a-zA-Z_]\\w*)\\s*=>",
                returnBegin: true,
                end: "\\s*=>",
                contains: [
                  Mode(className: "params", variants: [
                    Mode(begin: "[a-zA-Z_]\\w*", relevance: 0),
                    Mode(
                        className: overwritingNullString,
                        begin: "\\(\\s*\\)",
                        skip: true),
                    Mode(
                        begin: "\\(",
                        end: "\\)",
                        excludeBegin: true,
                        excludeEnd: true,
                        keywords: {
                          "\$pattern": "[A-Za-z\$_][0-9A-Za-z\$_]*",
                          "keyword": [
                            "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"
                          ],
                          "literal": [
                            "true",
                            "false",
                            "null",
                            "undefined",
                            "NaN",
                            "Infinity"
                          ],
                          "built_in": [
                            "setInterval",
                            "setTimeout",
                            "clearInterval",
                            "clearTimeout",
                            "require",
                            "exports",
                            "eval",
                            "isFinite",
                            "isNaN",
                            "parseFloat",
                            "parseInt",
                            "decodeURI",
                            "decodeURIComponent",
                            "encodeURI",
                            "encodeURIComponent",
                            "escape",
                            "unescape",
                            "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",
                            "Error",
                            "EvalError",
                            "InternalError",
                            "RangeError",
                            "ReferenceError",
                            "SyntaxError",
                            "TypeError",
                            "URIError"
                          ],
                          "variable.language": [
                            "arguments",
                            "this",
                            "super",
                            "console",
                            "window",
                            "document",
                            "localStorage",
                            "module",
                            "global"
                          ]
                        },
                        contains: [
                          Mode(ref: '~exports~PARAMS_CONTAINS~0'),
                          APOS_STRING_MODE,
                          QUOTE_STRING_MODE,
                          Mode(ref: '~exports~PARAMS_CONTAINS~3'),
                          Mode(
                              ref:
                                  '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~3'),
                          Mode(
                              ref:
                                  '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~4'),
                          Mode(
                              ref:
                                  '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~5'),
                          Mode(
                              ref:
                                  '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~6'),
                          Mode(
                              ref:
                                  '~exports~PARAMS_CONTAINS~3~starts~contains~1~contains~7'),
                          Mode(ref: '~exports~PARAMS_CONTAINS~9')
                        ])
                  ])
                ]),
            Mode(begin: ",", relevance: 0),
            Mode(match: "\\s+", relevance: 0),
            Mode(variants: [
              Mode(begin: "<>", end: "</>"),
              Mode(match: "<[A-Za-z0-9\\\\._:-]+\\s*\\/>"),
              Mode(
                  begin: "<[A-Za-z0-9\\\\._:-]+",
                  onBegin:
                      language_javascript_contains_0_contains_0_variants_0_onBegin,
                  end: "\\/[A-Za-z0-9\\\\._:-]+>|\\/>")
            ], subLanguage: [
              "xml"
            ], contains: [
              Mode(
                  begin: "<[A-Za-z0-9\\\\._:-]+",
                  end: "\\/[A-Za-z0-9\\\\._:-]+>|\\/>",
                  skip: true,
                  contains: [Mode(self: true)])
            ])
          ]),
      Mode(
          variants: [
            Mode(match: [
              "function",
              "\\s+",
              "[A-Za-z\$_][0-9A-Za-z\$_]*",
              "(?=\\s*\\()"
            ]),
            Mode(match: ["function", "\\s*(?=\\()"])
          ],
          className: {"1": "keyword", "3": "title.function"},
          label: "func.def",
          contains: [Mode(ref: '~contains~12~contains~0')],
          illegal: "%"),
      Mode(beginKeywords: "while if switch catch for"),
      Mode(
          begin:
              "\\b(?!function)[a-zA-Z_]\\w*\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
          returnBegin: true,
          label: "func.def",
          contains: [
            Mode(ref: '~contains~12~contains~0'),
            Mode(
                scope: "title",
                begin: "[A-Za-z\$_][0-9A-Za-z\$_]*",
                relevance: 0,
                className: "title.function")
          ]),
      Mode(match: "\\.\\.\\.", relevance: 0),
      Mode(
          begin: "\\.(?=[A-Za-z\$_][0-9A-Za-z\$_]*(?![0-9A-Za-z\$_(]))",
          end: "[A-Za-z\$_][0-9A-Za-z\$_]*",
          excludeBegin: true,
          keywords: "prototype",
          className: "property",
          relevance: 0),
      Mode(match: "\\\$[A-Za-z\$_][0-9A-Za-z\$_]*", relevance: 0),
      Mode(
          match: ["\\bconstructor(?=\\s*\\()"],
          className: {"1": "title.function"},
          contains: [Mode(ref: '~contains~12~contains~0')]),
      Mode(
          match:
              "\\b(?!setInterval|setTimeout|clearInterval|clearTimeout|require|exports|eval|isFinite|isNaN|parseFloat|parseInt|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|super|import)[A-Za-z\$_][0-9A-Za-z\$_]*(?=\\()",
          className: "title.function",
          relevance: 0),
      Mode(
          relevance: 0,
          match: "\\b[A-Z][A-Z_0-9]+\\b",
          className: "variable.constant"),
      Mode(variants: [
        Mode(match: [
          "class",
          "\\s+",
          "[A-Za-z\$_][0-9A-Za-z\$_]*",
          "\\s+",
          "extends",
          "\\s+",
          "[A-Za-z\$_][0-9A-Za-z\$_]*(\\.[A-Za-z\$_][0-9A-Za-z\$_]*)*"
        ], scope: {
          "1": "keyword",
          "3": "title.class",
          "5": "keyword",
          "7": "title.class.inherited"
        }),
        Mode(
            match: ["class", "\\s+", "[A-Za-z\$_][0-9A-Za-z\$_]*"],
            scope: {"1": "keyword", "3": "title.class"})
      ]),
      Mode(match: [
        "get|set",
        "\\s+",
        "[A-Za-z\$_][0-9A-Za-z\$_]*",
        "(?=\\()"
      ], className: {
        "1": "keyword",
        "3": "title.function"
      }, contains: [
        Mode(begin: "\\(\\)"),
        Mode(ref: '~contains~12~contains~0')
      ]),
      Mode(match: "\\\$[(.]")
    ]);