(this["webpackJsonpPlugin"] = this["webpackJsonpPlugin"] || []).push([[117],{

/***/ 980:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  function wordRegexp(words) {
    return new RegExp("^((" + words.join(")|(") + "))\\b");
  }

  ;
  var builtinArray = ["Clamp", "Constructor", "EnforceRange", "Exposed", "ImplicitThis", "Global", "PrimaryGlobal", "LegacyArrayClass", "LegacyUnenumerableNamedProperties", "LenientThis", "NamedConstructor", "NewObject", "NoInterfaceObject", "OverrideBuiltins", "PutForwards", "Replaceable", "SameObject", "TreatNonObjectAsNull", "TreatNullAs", "EmptyString", "Unforgeable", "Unscopeable"];
  var builtins = wordRegexp(builtinArray);
  var typeArray = ["unsigned", "short", "long", // UnsignedIntegerType
  "unrestricted", "float", "double", // UnrestrictedFloatType
  "boolean", "byte", "octet", // Rest of PrimitiveType
  "Promise", // PromiseType
  "ArrayBuffer", "DataView", "Int8Array", "Int16Array", "Int32Array", "Uint8Array", "Uint16Array", "Uint32Array", "Uint8ClampedArray", "Float32Array", "Float64Array", // BufferRelatedType
  "ByteString", "DOMString", "USVString", "sequence", "object", "RegExp", "Error", "DOMException", "FrozenArray", // Rest of NonAnyType
  "any", // Rest of SingleType
  "void" // Rest of ReturnType
  ];
  var types = wordRegexp(typeArray);
  var keywordArray = ["attribute", "callback", "const", "deleter", "dictionary", "enum", "getter", "implements", "inherit", "interface", "iterable", "legacycaller", "maplike", "partial", "required", "serializer", "setlike", "setter", "static", "stringifier", "typedef", // ArgumentNameKeyword except
  // "unrestricted"
  "optional", "readonly", "or"];
  var keywords = wordRegexp(keywordArray);
  var atomArray = ["true", "false", // BooleanLiteral
  "Infinity", "NaN", // FloatLiteral
  "null" // Rest of ConstValue
  ];
  var atoms = wordRegexp(atomArray);
  CodeMirror.registerHelper("hintWords", "webidl", builtinArray.concat(typeArray).concat(keywordArray).concat(atomArray));
  var startDefArray = ["callback", "dictionary", "enum", "interface"];
  var startDefs = wordRegexp(startDefArray);
  var endDefArray = ["typedef"];
  var endDefs = wordRegexp(endDefArray);
  var singleOperators = /^[:<=>?]/;
  var integers = /^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/;
  var floats = /^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/;
  var identifiers = /^_?[A-Za-z][0-9A-Z_a-z-]*/;
  var identifiersEnd = /^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/;
  var strings = /^"[^"]*"/;
  var multilineComments = /^\/\*.*?\*\//;
  var multilineCommentsStart = /^\/\*.*/;
  var multilineCommentsEnd = /^.*?\*\//;

  function readToken(stream, state) {
    // whitespace
    if (stream.eatSpace()) return null; // comment

    if (state.inComment) {
      if (stream.match(multilineCommentsEnd)) {
        state.inComment = false;
        return "comment";
      }

      stream.skipToEnd();
      return "comment";
    }

    if (stream.match("//")) {
      stream.skipToEnd();
      return "comment";
    }

    if (stream.match(multilineComments)) return "comment";

    if (stream.match(multilineCommentsStart)) {
      state.inComment = true;
      return "comment";
    } // integer and float


    if (stream.match(/^-?[0-9\.]/, false)) {
      if (stream.match(integers) || stream.match(floats)) return "number";
    } // string


    if (stream.match(strings)) return "string"; // identifier

    if (state.startDef && stream.match(identifiers)) return "def";

    if (state.endDef && stream.match(identifiersEnd)) {
      state.endDef = false;
      return "def";
    }

    if (stream.match(keywords)) return "keyword";

    if (stream.match(types)) {
      var lastToken = state.lastToken;
      var nextToken = (stream.match(/^\s*(.+?)\b/, false) || [])[1];

      if (lastToken === ":" || lastToken === "implements" || nextToken === "implements" || nextToken === "=") {
        // Used as identifier
        return "builtin";
      } else {
        // Used as type
        return "variable-3";
      }
    }

    if (stream.match(builtins)) return "builtin";
    if (stream.match(atoms)) return "atom";
    if (stream.match(identifiers)) return "variable"; // other

    if (stream.match(singleOperators)) return "operator"; // unrecognized

    stream.next();
    return null;
  }

  ;
  CodeMirror.defineMode("webidl", function () {
    return {
      startState: function startState() {
        return {
          // Is in multiline comment
          inComment: false,
          // Last non-whitespace, matched token
          lastToken: "",
          // Next token is a definition
          startDef: false,
          // Last token of the statement is a definition
          endDef: false
        };
      },
      token: function token(stream, state) {
        var style = readToken(stream, state);

        if (style) {
          var cur = stream.current();
          state.lastToken = cur;

          if (style === "keyword") {
            state.startDef = startDefs.test(cur);
            state.endDef = state.endDef || endDefs.test(cur);
          } else {
            state.startDef = false;
          }
        }

        return style;
      }
    };
  });
  CodeMirror.defineMIME("text/x-webidl", "webidl");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ })

}]);