Bug 1384391 - Upgrade Debugger Frontend v0.10 (7/25). r=jdescottes
authorJason Laster <jason.laster.11@gmail.com>
Wed, 26 Jul 2017 06:46:00 -0400
changeset 422513 27e0a6f71b642b932977960ae524005a3b40abc2
parent 422512 5b3385365e5478c02dd26d7537a563a84983a127
child 422514 63f14ebd247362d320d942f3676b09c1db33c7ce
push id1517
push userjlorenzo@mozilla.com
push dateThu, 14 Sep 2017 16:50:54 +0000
treeherdermozilla-release@3b41fd564418 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjdescottes
bugs1384391
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1384391 - Upgrade Debugger Frontend v0.10 (7/25). r=jdescottes
devtools/client/debugger/new/debugger.js
devtools/client/debugger/new/parser-worker.js
devtools/client/debugger/new/search-worker.js
devtools/client/preferences/debugger.js
--- a/devtools/client/debugger/new/debugger.js
+++ b/devtools/client/debugger/new/debugger.js
@@ -13396,17 +13396,17 @@ return /******/ (function(modules) { // 
 /* 226 */
 /***/ function(module, exports, __webpack_require__) {
 
 	// @flow
 
 	const { isDevelopment } = __webpack_require__(828);
 	const { Services, PrefsHelper } = __webpack_require__(830);
 
-	const prefsSchemaVersion = "1.0.1";
+	const prefsSchemaVersion = "1.0.2";
 
 	const pref = Services.pref;
 
 	if (isDevelopment()) {
 	  pref("devtools.debugger.client-source-maps-enabled", true);
 	  pref("devtools.debugger.pause-on-exceptions", false);
 	  pref("devtools.debugger.ignore-caught-exceptions", false);
 	  pref("devtools.debugger.call-stack-visible", false);
@@ -24233,29 +24233,35 @@ return /******/ (function(modules) { // 
 	    this.setState({ editor });
 	    return editor;
 	  }
 
 	  componentDidMount() {
 	    this.cbPanel = null;
 	    var editor = this.setupEditor();
 
-	    var selectedSource = this.props.selectedSource;
+	    var _props = this.props,
+	        selectedSource = _props.selectedSource,
+	        selectedLocation = _props.selectedLocation;
 	    var shortcuts = this.context.shortcuts;
 
 
 	    var searchAgainKey = L10N.getStr("sourceSearch.search.again.key2");
 	    var searchAgainPrevKey = L10N.getStr("sourceSearch.search.againPrev.key2");
 
 	    shortcuts.on("CmdOrCtrl+B", this.onToggleBreakpoint);
 	    shortcuts.on("CmdOrCtrl+Shift+B", this.onToggleBreakpoint);
 	    shortcuts.on("Esc", this.onEscape);
 	    shortcuts.on(searchAgainPrevKey, this.onSearchAgain);
 	    shortcuts.on(searchAgainKey, this.onSearchAgain);
 
+	    if (selectedLocation && !!selectedLocation.line) {
+	      this.pendingJumpLocation = selectedLocation;
+	    }
+
 	    (0, _editor.updateDocument)(editor, selectedSource);
 	  }
 
 	  componentWillUnmount() {
 	    this.state.editor.destroy();
 	    this.setState({ editor: null });
 
 	    var searchAgainKey = L10N.getStr("sourceSearch.search.again.key2");
@@ -24266,19 +24272,19 @@ return /******/ (function(modules) { // 
 	    shortcuts.off(searchAgainPrevKey);
 	    shortcuts.off(searchAgainKey);
 	  }
 
 	  componentDidUpdate(prevProps) {
 	    // This is in `componentDidUpdate` so helper functions can expect
 	    // `this.props` to be the current props. This lifecycle method is
 	    // responsible for updating the editor annotations.
-	    var _props = this.props,
-	        selectedLocation = _props.selectedLocation,
-	        selectedSource = _props.selectedSource;
+	    var _props2 = this.props,
+	        selectedLocation = _props2.selectedLocation,
+	        selectedSource = _props2.selectedSource;
 
 	    // If the location is different and a new line is requested,
 	    // update the pending jump line. Note that if jumping to a line in
 	    // a source where the text hasn't been loaded yet, we will set the
 	    // line here but not jump until rendering the actual source.
 
 	    if (prevProps.selectedLocation !== selectedLocation) {
 	      if (selectedLocation && selectedLocation.line != undefined) {
@@ -24347,66 +24353,66 @@ return /******/ (function(modules) { // 
 	    }
 	  }
 
 	  onScroll() {
 	    this.clearPreviewSelection();
 	  }
 
 	  onSearchAgain(_, e) {
-	    var _props2 = this.props,
-	        query = _props2.query,
-	        searchModifiers = _props2.searchModifiers;
+	    var _props3 = this.props,
+	        query = _props3.query,
+	        searchModifiers = _props3.searchModifiers;
 	    var codeMirror = this.state.editor.editor.codeMirror;
 
 	    var ctx = { ed: this.state.editor, cm: codeMirror };
 
 	    var direction = e.shiftKey ? "prev" : "next";
 	    (0, _editor.traverseResults)(e, ctx, query, direction, searchModifiers.toJS());
 	  }
 
 	  clearPreviewSelection() {
 	    this.props.clearSelection();
 	  }
 
 	  inSelectedFrameSource() {
-	    var _props3 = this.props,
-	        selectedLocation = _props3.selectedLocation,
-	        selectedFrame = _props3.selectedFrame;
+	    var _props4 = this.props,
+	        selectedLocation = _props4.selectedLocation,
+	        selectedFrame = _props4.selectedFrame;
 
 	    return selectedFrame && selectedLocation && selectedFrame.location.sourceId == selectedLocation.sourceId;
 	  }
 
 	  openMenu(event, codeMirror) {
-	    var _props4 = this.props,
-	        selectedSource = _props4.selectedSource,
-	        selectedLocation = _props4.selectedLocation,
-	        showSource = _props4.showSource,
-	        jumpToMappedLocation = _props4.jumpToMappedLocation,
-	        addExpression = _props4.addExpression,
-	        toggleBlackBox = _props4.toggleBlackBox;
+	    var _props5 = this.props,
+	        selectedSource = _props5.selectedSource,
+	        selectedLocation = _props5.selectedLocation,
+	        showSource = _props5.showSource,
+	        jumpToMappedLocation = _props5.jumpToMappedLocation,
+	        addExpression = _props5.addExpression,
+	        toggleBlackBox = _props5.toggleBlackBox;
 
 
 	    return (0, _EditorMenu2.default)({
 	      codeMirror,
 	      event,
 	      selectedLocation,
 	      selectedSource,
 	      showSource,
 	      jumpToMappedLocation,
 	      addExpression,
 	      toggleBlackBox,
 	      onGutterContextMenu: this.onGutterContextMenu
 	    });
 	  }
 
 	  onGutterClick(cm, line, gutter, ev) {
-	    var _props5 = this.props,
-	        selectedSource = _props5.selectedSource,
-	        toggleBreakpoint = _props5.toggleBreakpoint;
+	    var _props6 = this.props,
+	        selectedSource = _props6.selectedSource,
+	        toggleBreakpoint = _props6.toggleBreakpoint;
 
 	    // ignore right clicks in the gutter
 
 	    if (ev.ctrlKey && ev.button === 0 || ev.which === 3 || selectedSource && selectedSource.get("isBlackBoxed")) {
 	      return;
 	    }
 
 	    if (this.isCbPanelOpen()) {
@@ -24414,21 +24420,21 @@ return /******/ (function(modules) { // 
 	    }
 
 	    if (gutter !== "CodeMirror-foldgutter") {
 	      toggleBreakpoint(line + 1);
 	    }
 	  }
 
 	  onGutterContextMenu(event) {
-	    var _props6 = this.props,
-	        selectedSource = _props6.selectedSource,
-	        breakpoints = _props6.breakpoints,
-	        toggleBreakpoint = _props6.toggleBreakpoint,
-	        toggleDisabledBreakpoint = _props6.toggleDisabledBreakpoint;
+	    var _props7 = this.props,
+	        selectedSource = _props7.selectedSource,
+	        breakpoints = _props7.breakpoints,
+	        toggleBreakpoint = _props7.toggleBreakpoint,
+	        toggleDisabledBreakpoint = _props7.toggleDisabledBreakpoint;
 
 
 	    if (selectedSource && selectedSource.get("isBlackBoxed")) {
 	      event.preventDefault();
 	      return;
 	    }
 
 	    var line = (0, _editor.lineAtHeight)(this.state.editor, event);
@@ -24455,20 +24461,20 @@ return /******/ (function(modules) { // 
 	    }
 	  }
 
 	  toggleConditionalPanel(line) {
 	    if (this.isCbPanelOpen()) {
 	      return this.closeConditionalPanel();
 	    }
 
-	    var _props7 = this.props,
-	        selectedLocation = _props7.selectedLocation,
-	        setBreakpointCondition = _props7.setBreakpointCondition,
-	        breakpoints = _props7.breakpoints;
+	    var _props8 = this.props,
+	        selectedLocation = _props8.selectedLocation,
+	        setBreakpointCondition = _props8.setBreakpointCondition,
+	        breakpoints = _props8.breakpoints;
 
 	    var sourceId = selectedLocation ? selectedLocation.sourceId : "";
 
 	    var breakpoint = breakpoints.find(bp => bp.location.line === line);
 	    var location = { sourceId, line };
 	    var condition = breakpoint ? breakpoint.condition : "";
 
 	    var panel = (0, _ConditionalPanel.renderConditionalPanel)({
@@ -24490,33 +24496,31 @@ return /******/ (function(modules) { // 
 	  }
 
 	  isCbPanelOpen() {
 	    return !!this.cbPanel;
 	  }
 
 	  clearDebugLine(selectedFrame) {
 	    if (this.state.editor && selectedFrame) {
-	      var _selectedFrame$locati = selectedFrame.location,
-	          sourceId = _selectedFrame$locati.sourceId,
-	          line = _selectedFrame$locati.line;
+	      var line = selectedFrame.location.line;
 
 	      if (debugExpression) {
 	        debugExpression.clear();
 	      }
 
 	      this.state.editor.codeMirror.removeLineClass(line - 1, "line", "new-debug-line");
 	    }
 	  }
 
 	  setDebugLine(selectedFrame, selectedLocation) {
 	    if (this.state.editor && selectedFrame && selectedLocation && selectedFrame.location.sourceId === selectedLocation.sourceId) {
-	      var _selectedFrame$locati2 = selectedFrame.location,
-	          line = _selectedFrame$locati2.line,
-	          column = _selectedFrame$locati2.column;
+	      var _selectedFrame$locati = selectedFrame.location,
+	          line = _selectedFrame$locati.line,
+	          column = _selectedFrame$locati.column;
 
 	      this.state.editor.codeMirror.addLineClass(line - 1, "line", "new-debug-line");
 
 	      debugExpression = (0, _editor.markText)(this.state.editor, "debug-expression", {
 	        start: { line, column },
 	        end: { line, column: null }
 	      });
 	    }
@@ -24554,20 +24558,20 @@ return /******/ (function(modules) { // 
 
 	  showMessage(msg) {
 	    this.state.editor.replaceDocument(this.state.editor.createDocument());
 	    this.state.editor.setText(msg);
 	    this.state.editor.setMode({ name: "text" });
 	  }
 
 	  getInlineEditorStyles() {
-	    var _props8 = this.props,
-	        selectedSource = _props8.selectedSource,
-	        horizontal = _props8.horizontal,
-	        searchOn = _props8.searchOn;
+	    var _props9 = this.props,
+	        selectedSource = _props9.selectedSource,
+	        horizontal = _props9.horizontal,
+	        searchOn = _props9.searchOn;
 
 
 	    var subtractions = [];
 
 	    if ((0, _editor.shouldShowFooter)(selectedSource, horizontal)) {
 	      subtractions.push(cssVars.footerHeight);
 	    }
 
@@ -24580,47 +24584,47 @@ return /******/ (function(modules) { // 
 	      height: subtractions.length === 0 ? "100%" : `calc(100% - ${subtractions.join(" - ")})`
 	    };
 	  }
 
 	  renderHighlightLines() {
 	    var highlightedLineRange = this.props.highlightedLineRange;
 
 
-	    if (!highlightedLineRange) {
+	    if (!highlightedLineRange || !this.state.editor) {
 	      return;
 	    }
 
 	    return HighlightLines({
 	      editor: this.state.editor,
 	      highlightedLineRange
 	    });
 	  }
 
 	  renderHitCounts() {
-	    var _props9 = this.props,
-	        hitCount = _props9.hitCount,
-	        selectedSource = _props9.selectedSource;
+	    var _props10 = this.props,
+	        hitCount = _props10.hitCount,
+	        selectedSource = _props10.selectedSource;
 
 
 	    if (!selectedSource || selectedSource.get("loading") || !hitCount || !this.state.editor) {
 	      return;
 	    }
 
 	    return hitCount.filter(marker => marker.get("count") > 0).map(marker => HitMarker({
 	      key: marker.get("line"),
 	      hitData: marker.toJS(),
 	      editor: this.state.editor.codeMirror
 	    }));
 	  }
 
 	  renderPreview() {
-	    var _props10 = this.props,
-	        selectedSource = _props10.selectedSource,
-	        selection = _props10.selection;
+	    var _props11 = this.props,
+	        selectedSource = _props11.selectedSource,
+	        selection = _props11.selection;
 
 	    if (!this.state.editor || !selectedSource) {
 	      return null;
 	    }
 
 	    if (!selection || selection.updating) {
 	      return;
 	    }
@@ -24664,21 +24668,21 @@ return /******/ (function(modules) { // 
 
 	    if (!editor || !(0, _devtoolsConfig.isEnabled)("columnBreakpoints")) {
 	      return null;
 	    }
 	    return CallSites({ editor });
 	  }
 
 	  renderSearchBar() {
-	    var _props11 = this.props,
-	        selectSource = _props11.selectSource,
-	        selectedSource = _props11.selectedSource,
-	        highlightLineRange = _props11.highlightLineRange,
-	        clearHighlightLineRange = _props11.clearHighlightLineRange;
+	    var _props12 = this.props,
+	        selectSource = _props12.selectSource,
+	        selectedSource = _props12.selectedSource,
+	        highlightLineRange = _props12.highlightLineRange,
+	        clearHighlightLineRange = _props12.clearHighlightLineRange;
 
 
 	    if (!this.state.editor) {
 	      return null;
 	    }
 
 	    return SearchBar({
 	      editor: this.state.editor,
@@ -24703,19 +24707,19 @@ return /******/ (function(modules) { // 
 	    if (!this.state.editor) {
 	      return null;
 	    }
 
 	    return Breakpoints({ editor: this.state.editor });
 	  }
 
 	  render() {
-	    var _props12 = this.props,
-	        coverageOn = _props12.coverageOn,
-	        pauseData = _props12.pauseData;
+	    var _props13 = this.props,
+	        coverageOn = _props13.coverageOn,
+	        pauseData = _props13.pauseData;
 
 
 	    return _react.DOM.div({
 	      className: (0, _classnames2.default)("editor-wrapper", {
 	        "coverage-on": coverageOn,
 	        paused: !!pauseData && (0, _devtoolsConfig.isEnabled)("highlightScopeLines")
 	      })
 	    }, this.renderSearchBar(), _react.DOM.div({
@@ -25313,17 +25317,17 @@ return /******/ (function(modules) { // 
 
 	    return _asyncToGenerator(function* () {
 	      var _props5 = _this.props,
 	          selectedSource = _props5.selectedSource,
 	          modifiers = _props5.modifiers,
 	          ed = _props5.editor;
 
 
-	      if (!ed || !selectedSource || !selectedSource.get("text") || !modifiers) {
+	      if (!query || !ed || !selectedSource || !selectedSource.get("text") || !modifiers) {
 	        return;
 	      }
 
 	      var ctx = { ed, cm: ed.codeMirror };
 
 	      var _modifiers = modifiers.toJS();
 	      var matches = yield (0, _search.getMatches)(query, selectedSource.get("text"), _modifiers);
 
@@ -28084,17 +28088,17 @@ return /******/ (function(modules) { // 
 	      return null;
 	    }
 
 	    return _react.DOM.input({
 	      type: "checkbox",
 	      "aria-label": breakpointsDisabled ? L10N.getStr("breakpoints.enable") : L10N.getStr("breakpoints.disable"),
 	      className: boxClassName,
 	      disabled: breakpointsLoading,
-	      onClick: e => {
+	      onChange: e => {
 	        e.stopPropagation();
 	        toggleAllBreakpoints(!breakpointsDisabled);
 	      },
 	      checked: !breakpointsDisabled && !isIndeterminate,
 	      ref: input => {
 	        if (input) {
 	          input.indeterminate = isIndeterminate;
 	        }
@@ -45922,17 +45926,19 @@ return /******/ (function(modules) { // 
 
 	"use strict";
 
 	/* This Source Code Form is subject to the terms of the Mozilla Public
 	 * License, v. 2.0. If a copy of the MPL was not distributed with this
 	 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 	function forEachLine(codeMirror, iter) {
-	  codeMirror.doc.iter(0, codeMirror.lineCount(), iter);
+	  codeMirror.operation(() => {
+	    codeMirror.doc.iter(0, codeMirror.lineCount(), iter);
+	  });
 	}
 
 	function removeLineClass(codeMirror, line, className) {
 	  codeMirror.removeLineClass(line, "line", className);
 	}
 
 	function clearLineClass(codeMirror, className) {
 	  forEachLine(codeMirror, line => {
@@ -45943,35 +45949,52 @@ return /******/ (function(modules) { // 
 	function getTextForLine(codeMirror, line) {
 	  return codeMirror.getLine(line - 1).trim();
 	}
 
 	function getCursorLine(codeMirror) {
 	  return codeMirror.getCursor().line;
 	}
 
+	function getTokenLocation(codeMirror, tokenEl) {
+	  var lineOffset = 1;
+
+	  var _tokenEl$getBoundingC = tokenEl.getBoundingClientRect(),
+	      left = _tokenEl$getBoundingC.left,
+	      top = _tokenEl$getBoundingC.top;
+
+	  var _codeMirror$coordsCha = codeMirror.coordsChar({ left, top }),
+	      line = _codeMirror$coordsCha.line,
+	      ch = _codeMirror$coordsCha.ch;
+
+	  return {
+	    line: line + lineOffset,
+	    column: ch
+	  };
+	}
+
 	/**
 	 * Forces the breakpoint gutter to be the same size as the line
 	 * numbers gutter. Editor CSS will absolutely position the gutter
 	 * beneath the line numbers. This makes it easy to be flexible with
 	 * how we overlay breakpoints.
 	 */
 	function resizeBreakpointGutter(editor) {
 	  var gutters = editor.display.gutters;
 	  var lineNumbers = gutters.querySelector(".CodeMirror-linenumbers");
 	  var breakpoints = gutters.querySelector(".breakpoints");
-	  var width = lineNumbers.clientWidth;
-	  breakpoints.style.width = `${width}px`;
+	  breakpoints.style.width = `${lineNumbers.clientWidth}px`;
 	}
 
 	module.exports = {
 	  removeLineClass,
 	  clearLineClass,
 	  getTextForLine,
 	  getCursorLine,
+	  getTokenLocation,
 	  resizeBreakpointGutter
 	};
 
 /***/ },
 /* 997 */
 /***/ function(module, exports) {
 
 	module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" viewBox=\"0 0 32 32\"><script></script><path fill=\"#444444\" d=\"M16 9.875l-9.539-5.438v23.698l9.539-5.438 9.539 5.438v-23.698l-9.539 5.438zM11.248 16.286l4.752-2.709 4.752 2.709-4.752 2.709-4.752-2.709zM9.618 9.643l3.399 1.938-3.399 1.938v-3.876zM9.618 19.053l3.145 1.792-3.145 1.793v-3.585zM22.382 22.638l-3.145-1.793 3.145-1.793v3.585zM18.982 11.581l3.399-1.938v3.876l-3.399-1.938z\"></path></svg>"
@@ -46663,26 +46686,16 @@ return /******/ (function(modules) { // 
 	var FrameComponent = (0, _react.createFactory)(_Frame2.default);
 
 	var Group = (0, _react.createFactory)(_Group3.default);
 
 	var NUM_FRAMES_SHOWN = 7;
 
 	class Frames extends _react.Component {
 
-	  collapseFrames(frames) {
-	    var frameworkGroupingOn = this.props.frameworkGroupingOn;
-
-	    if (!frameworkGroupingOn) {
-	      return frames;
-	    }
-
-	    return (0, _frame.collapseFrames)(frames);
-	  }
-
 	  constructor() {
 	    super(...arguments);
 
 	    this.state = {
 	      showAllFrames: false
 	    };
 
 	    this.toggleFramesDisplay = this.toggleFramesDisplay.bind(this);
@@ -46701,16 +46714,26 @@ return /******/ (function(modules) { // 
 	  }
 
 	  toggleFramesDisplay() {
 	    this.setState({
 	      showAllFrames: !this.state.showAllFrames
 	    });
 	  }
 
+	  collapseFrames(frames) {
+	    var frameworkGroupingOn = this.props.frameworkGroupingOn;
+
+	    if (!frameworkGroupingOn) {
+	      return frames;
+	    }
+
+	    return (0, _frame.collapseFrames)(frames);
+	  }
+
 	  truncateFrames(frames) {
 	    var numFramesToShow = this.state.showAllFrames ? frames.length : NUM_FRAMES_SHOWN;
 
 	    return frames.slice(0, numFramesToShow);
 	  }
 
 	  copyStackTrace() {
 	    var frames = this.props.frames;
@@ -46757,17 +46780,17 @@ return /******/ (function(modules) { // 
 	      toggleBlackBox,
 	      key: frameOrGroup[0].id
 	    })));
 	  }
 
 	  renderToggleButton(frames) {
 	    var buttonMessage = this.state.showAllFrames ? L10N.getStr("callStack.collapse") : L10N.getStr("callStack.expand");
 
-	    frames = (0, _frame.collapseFrames)(frames);
+	    frames = this.collapseFrames(frames);
 	    if (frames.length <= NUM_FRAMES_SHOWN) {
 	      return null;
 	    }
 
 	    return _react.DOM.div({ className: "show-more", onClick: this.toggleFramesDisplay }, buttonMessage);
 	  }
 
 	  render() {
@@ -51715,18 +51738,16 @@ return /******/ (function(modules) { // 
 	});
 
 	var _reactRedux = __webpack_require__(151);
 
 	var _redux = __webpack_require__(3);
 
 	var _react = __webpack_require__(2);
 
-	var _devtoolsConfig = __webpack_require__(828);
-
 	var _Breakpoint2 = __webpack_require__(714);
 
 	var _Breakpoint3 = _interopRequireDefault(_Breakpoint2);
 
 	var _actions = __webpack_require__(244);
 
 	var _actions2 = _interopRequireDefault(_actions);
 
@@ -51758,17 +51779,17 @@ return /******/ (function(modules) { // 
 	        selectedSource = _props.selectedSource,
 	        editor = _props.editor;
 
 
 	    if (!selectedSource || !breakpoints || selectedSource.get("isBlackBoxed")) {
 	      return null;
 	    }
 
-	    return _react.DOM.div({}, breakpoints.valueSeq().filter(b => (0, _devtoolsConfig.isEnabled)("columnBreakpoints") ? !b.location.column : true).map(bp => Breakpoint({
+	    return _react.DOM.div({}, breakpoints.valueSeq().map(bp => Breakpoint({
 	      key: (0, _breakpoint.makeLocationId)(bp.location),
 	      breakpoint: bp,
 	      selectedSource,
 	      editor: editor
 	    })));
 	  }
 	}
 
--- a/devtools/client/debugger/new/parser-worker.js
+++ b/devtools/client/debugger/new/parser-worker.js
@@ -10255,30 +10255,44 @@ return /******/ (function(modules) { // 
 	    lastChild = stack.pop();
 	  }
 
 	  if (!lastChild && firstChild) lastChild = firstChild;
 
 	  // Attach comments that follow a trailing comma on the last
 	  // property in an object literal or a trailing comma in function arguments
 	  // as trailing comments
-	  if (firstChild && (firstChild.type === "ObjectProperty" || node.type === "CallExpression") && this.state.leadingComments.length > 0) {
+	  if (firstChild && this.state.leadingComments.length > 0) {
 	    var lastComment = last(this.state.leadingComments);
-	    if (lastComment.start >= node.start) {
-	      if (this.state.commentPreviousNode) {
-	        for (j = 0; j < this.state.leadingComments.length; j++) {
-	          if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) {
-	            this.state.leadingComments.splice(j, 1);
-	            j--;
-	          }
-	        }
-
-	        if (this.state.leadingComments.length > 0) {
-	          firstChild.trailingComments = this.state.leadingComments;
-	          this.state.leadingComments = [];
+
+	    if (firstChild.type === "ObjectProperty") {
+	      if (lastComment.start >= node.start) {
+	        if (this.state.commentPreviousNode) {
+	          for (j = 0; j < this.state.leadingComments.length; j++) {
+	            if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) {
+	              this.state.leadingComments.splice(j, 1);
+	              j--;
+	            }
+	          }
+
+	          if (this.state.leadingComments.length > 0) {
+	            firstChild.trailingComments = this.state.leadingComments;
+	            this.state.leadingComments = [];
+	          }
+	        }
+	      }
+	    } else if (node.type === "CallExpression" && node.arguments && node.arguments.length) {
+	      var lastArg = last(node.arguments);
+
+	      if (lastArg && lastComment.start >= lastArg.start && lastComment.end <= node.end) {
+	        if (this.state.commentPreviousNode) {
+	          if (this.state.leadingComments.length > 0) {
+	            lastArg.trailingComments = this.state.leadingComments;
+	            this.state.leadingComments = [];
+	          }
 	        }
 	      }
 	    }
 	  }
 
 	  if (lastChild) {
 	    if (lastChild.leadingComments) {
 	      if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) {
@@ -10522,26 +10536,24 @@ return /******/ (function(modules) { // 
 
 	      node.directives.reverse().forEach(function (directive) {
 	        node.body.unshift(_this2.directiveToStmt(directive));
 	      });
 	      delete node.directives;
 	    };
 	  });
 
-	  instance.extend("parseClassMethod", function (inner) {
-	    return function (classBody) {
-	      for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
-	        args[_key3 - 1] = arguments[_key3];
-	      }
-
-	      inner.call.apply(inner, [this, classBody].concat(args));
-
-	      var body = classBody.body;
-	      body[body.length - 1].type = "MethodDefinition";
+	  instance.extend("parseClassMethod", function () {
+	    return function (classBody, method, isGenerator, isAsync) {
+	      this.parseMethod(method, isGenerator, isAsync);
+	      if (method.typeParameters) {
+	        method.value.typeParameters = method.typeParameters;
+	        delete method.typeParameters;
+	      }
+	      classBody.body.push(this.finishNode(method, "MethodDefinition"));
 	    };
 	  });
 
 	  instance.extend("parseExprAtom", function (inner) {
 	    return function () {
 	      switch (this.state.type) {
 	        case types.regexp:
 	          return this.estreeParseRegExpLiteral(this.state.value);
@@ -10555,94 +10567,94 @@ return /******/ (function(modules) { // 
 
 	        case types._true:
 	          return this.estreeParseLiteral(true);
 
 	        case types._false:
 	          return this.estreeParseLiteral(false);
 
 	        default:
-	          for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
-	            args[_key4] = arguments[_key4];
+	          for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
+	            args[_key3] = arguments[_key3];
 	          }
 
 	          return inner.call.apply(inner, [this].concat(args));
 	      }
 	    };
 	  });
 
 	  instance.extend("parseLiteral", function (inner) {
 	    return function () {
-	      for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
-	        args[_key5] = arguments[_key5];
+	      for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
+	        args[_key4] = arguments[_key4];
 	      }
 
 	      var node = inner.call.apply(inner, [this].concat(args));
 	      node.raw = node.extra.raw;
 	      delete node.extra;
 
 	      return node;
 	    };
 	  });
 
 	  instance.extend("parseMethod", function (inner) {
 	    return function (node) {
 	      var funcNode = this.startNode();
 	      funcNode.kind = node.kind; // provide kind, so inner method correctly sets state
 
-	      for (var _len6 = arguments.length, args = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
-	        args[_key6 - 1] = arguments[_key6];
+	      for (var _len5 = arguments.length, args = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
+	        args[_key5 - 1] = arguments[_key5];
 	      }
 
 	      funcNode = inner.call.apply(inner, [this, funcNode].concat(args));
 	      delete funcNode.kind;
 	      node.value = this.finishNode(funcNode, "FunctionExpression");
 
 	      return node;
 	    };
 	  });
 
 	  instance.extend("parseObjectMethod", function (inner) {
 	    return function () {
-	      for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
-	        args[_key7] = arguments[_key7];
+	      for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
+	        args[_key6] = arguments[_key6];
 	      }
 
 	      var node = inner.call.apply(inner, [this].concat(args));
 
 	      if (node) {
 	        if (node.kind === "method") node.kind = "init";
 	        node.type = "Property";
 	      }
 
 	      return node;
 	    };
 	  });
 
 	  instance.extend("parseObjectProperty", function (inner) {
 	    return function () {
-	      for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
-	        args[_key8] = arguments[_key8];
+	      for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
+	        args[_key7] = arguments[_key7];
 	      }
 
 	      var node = inner.call.apply(inner, [this].concat(args));
 
 	      if (node) {
 	        node.kind = "init";
 	        node.type = "Property";
 	      }
 
 	      return node;
 	    };
 	  });
 
 	  instance.extend("toAssignable", function (inner) {
 	    return function (node, isBinding) {
-	      for (var _len9 = arguments.length, args = Array(_len9 > 2 ? _len9 - 2 : 0), _key9 = 2; _key9 < _len9; _key9++) {
-	        args[_key9 - 2] = arguments[_key9];
+	      for (var _len8 = arguments.length, args = Array(_len8 > 2 ? _len8 - 2 : 0), _key8 = 2; _key8 < _len8; _key8++) {
+	        args[_key8 - 2] = arguments[_key8];
 	      }
 
 	      if (isSimpleProperty(node)) {
 	        this.toAssignable.apply(this, [node.value, isBinding].concat(args));
 
 	        return node;
 	      } else if (node.type === "ObjectExpression") {
 	        node.type = "ObjectPattern";
@@ -23791,1310 +23803,17 @@ return /******/ (function(modules) { // 
 
 	module.exports = __webpack_require__(617);
 
 
 /***/ },
 /* 617 */
 /***/ function(module, exports) {
 
-	module.exports = {
-		"builtin": {
-			"Array": false,
-			"ArrayBuffer": false,
-			"Boolean": false,
-			"constructor": false,
-			"DataView": false,
-			"Date": false,
-			"decodeURI": false,
-			"decodeURIComponent": false,
-			"encodeURI": false,
-			"encodeURIComponent": false,
-			"Error": false,
-			"escape": false,
-			"eval": false,
-			"EvalError": false,
-			"Float32Array": false,
-			"Float64Array": false,
-			"Function": false,
-			"hasOwnProperty": false,
-			"Infinity": false,
-			"Int16Array": false,
-			"Int32Array": false,
-			"Int8Array": false,
-			"isFinite": false,
-			"isNaN": false,
-			"isPrototypeOf": false,
-			"JSON": false,
-			"Map": false,
-			"Math": false,
-			"NaN": false,
-			"Number": false,
-			"Object": false,
-			"parseFloat": false,
-			"parseInt": false,
-			"Promise": false,
-			"propertyIsEnumerable": false,
-			"Proxy": false,
-			"RangeError": false,
-			"ReferenceError": false,
-			"Reflect": false,
-			"RegExp": false,
-			"Set": false,
-			"String": false,
-			"Symbol": false,
-			"SyntaxError": false,
-			"System": false,
-			"toLocaleString": false,
-			"toString": false,
-			"TypeError": false,
-			"Uint16Array": false,
-			"Uint32Array": false,
-			"Uint8Array": false,
-			"Uint8ClampedArray": false,
-			"undefined": false,
-			"unescape": false,
-			"URIError": false,
-			"valueOf": false,
-			"WeakMap": false,
-			"WeakSet": false
-		},
-		"es5": {
-			"Array": false,
-			"Boolean": false,
-			"constructor": false,
-			"Date": false,
-			"decodeURI": false,
-			"decodeURIComponent": false,
-			"encodeURI": false,
-			"encodeURIComponent": false,
-			"Error": false,
-			"escape": false,
-			"eval": false,
-			"EvalError": false,
-			"Function": false,
-			"hasOwnProperty": false,
-			"Infinity": false,
-			"isFinite": false,
-			"isNaN": false,
-			"isPrototypeOf": false,
-			"JSON": false,
-			"Math": false,
-			"NaN": false,
-			"Number": false,
-			"Object": false,
-			"parseFloat": false,
-			"parseInt": false,
-			"propertyIsEnumerable": false,
-			"RangeError": false,
-			"ReferenceError": false,
-			"RegExp": false,
-			"String": false,
-			"SyntaxError": false,
-			"toLocaleString": false,
-			"toString": false,
-			"TypeError": false,
-			"undefined": false,
-			"unescape": false,
-			"URIError": false,
-			"valueOf": false
-		},
-		"es6": {
-			"Array": false,
-			"ArrayBuffer": false,
-			"Boolean": false,
-			"constructor": false,
-			"DataView": false,
-			"Date": false,
-			"decodeURI": false,
-			"decodeURIComponent": false,
-			"encodeURI": false,
-			"encodeURIComponent": false,
-			"Error": false,
-			"escape": false,
-			"eval": false,
-			"EvalError": false,
-			"Float32Array": false,
-			"Float64Array": false,
-			"Function": false,
-			"hasOwnProperty": false,
-			"Infinity": false,
-			"Int16Array": false,
-			"Int32Array": false,
-			"Int8Array": false,
-			"isFinite": false,
-			"isNaN": false,
-			"isPrototypeOf": false,
-			"JSON": false,
-			"Map": false,
-			"Math": false,
-			"NaN": false,
-			"Number": false,
-			"Object": false,
-			"parseFloat": false,
-			"parseInt": false,
-			"Promise": false,
-			"propertyIsEnumerable": false,
-			"Proxy": false,
-			"RangeError": false,
-			"ReferenceError": false,
-			"Reflect": false,
-			"RegExp": false,
-			"Set": false,
-			"String": false,
-			"Symbol": false,
-			"SyntaxError": false,
-			"System": false,
-			"toLocaleString": false,
-			"toString": false,
-			"TypeError": false,
-			"Uint16Array": false,
-			"Uint32Array": false,
-			"Uint8Array": false,
-			"Uint8ClampedArray": false,
-			"undefined": false,
-			"unescape": false,
-			"URIError": false,
-			"valueOf": false,
-			"WeakMap": false,
-			"WeakSet": false
-		},
-		"browser": {
-			"addEventListener": false,
-			"alert": false,
-			"AnalyserNode": false,
-			"Animation": false,
-			"AnimationEffectReadOnly": false,
-			"AnimationEffectTiming": false,
-			"AnimationEffectTimingReadOnly": false,
-			"AnimationEvent": false,
-			"AnimationPlaybackEvent": false,
-			"AnimationTimeline": false,
-			"applicationCache": false,
-			"ApplicationCache": false,
-			"ApplicationCacheErrorEvent": false,
-			"atob": false,
-			"Attr": false,
-			"Audio": false,
-			"AudioBuffer": false,
-			"AudioBufferSourceNode": false,
-			"AudioContext": false,
-			"AudioDestinationNode": false,
-			"AudioListener": false,
-			"AudioNode": false,
-			"AudioParam": false,
-			"AudioProcessingEvent": false,
-			"AutocompleteErrorEvent": false,
-			"BarProp": false,
-			"BatteryManager": false,
-			"BeforeUnloadEvent": false,
-			"BiquadFilterNode": false,
-			"Blob": false,
-			"blur": false,
-			"btoa": false,
-			"Cache": false,
-			"caches": false,
-			"CacheStorage": false,
-			"cancelAnimationFrame": false,
-			"cancelIdleCallback": false,
-			"CanvasGradient": false,
-			"CanvasPattern": false,
-			"CanvasRenderingContext2D": false,
-			"CDATASection": false,
-			"ChannelMergerNode": false,
-			"ChannelSplitterNode": false,
-			"CharacterData": false,
-			"clearInterval": false,
-			"clearTimeout": false,
-			"clientInformation": false,
-			"ClientRect": false,
-			"ClientRectList": false,
-			"ClipboardEvent": false,
-			"close": false,
-			"closed": false,
-			"CloseEvent": false,
-			"Comment": false,
-			"CompositionEvent": false,
-			"confirm": false,
-			"console": false,
-			"ConvolverNode": false,
-			"createImageBitmap": false,
-			"Credential": false,
-			"CredentialsContainer": false,
-			"crypto": false,
-			"Crypto": false,
-			"CryptoKey": false,
-			"CSS": false,
-			"CSSAnimation": false,
-			"CSSFontFaceRule": false,
-			"CSSImportRule": false,
-			"CSSKeyframeRule": false,
-			"CSSKeyframesRule": false,
-			"CSSMediaRule": false,
-			"CSSPageRule": false,
-			"CSSRule": false,
-			"CSSRuleList": false,
-			"CSSStyleDeclaration": false,
-			"CSSStyleRule": false,
-			"CSSStyleSheet": false,
-			"CSSSupportsRule": false,
-			"CSSTransition": false,
-			"CSSUnknownRule": false,
-			"CSSViewportRule": false,
-			"customElements": false,
-			"CustomEvent": false,
-			"DataTransfer": false,
-			"DataTransferItem": false,
-			"DataTransferItemList": false,
-			"Debug": false,
-			"defaultStatus": false,
-			"defaultstatus": false,
-			"DelayNode": false,
-			"DeviceMotionEvent": false,
-			"DeviceOrientationEvent": false,
-			"devicePixelRatio": false,
-			"dispatchEvent": false,
-			"document": false,
-			"Document": false,
-			"DocumentFragment": false,
-			"DocumentTimeline": false,
-			"DocumentType": false,
-			"DOMError": false,
-			"DOMException": false,
-			"DOMImplementation": false,
-			"DOMParser": false,
-			"DOMSettableTokenList": false,
-			"DOMStringList": false,
-			"DOMStringMap": false,
-			"DOMTokenList": false,
-			"DragEvent": false,
-			"DynamicsCompressorNode": false,
-			"Element": false,
-			"ElementTimeControl": false,
-			"ErrorEvent": false,
-			"event": false,
-			"Event": false,
-			"EventSource": false,
-			"EventTarget": false,
-			"external": false,
-			"FederatedCredential": false,
-			"fetch": false,
-			"File": false,
-			"FileError": false,
-			"FileList": false,
-			"FileReader": false,
-			"find": false,
-			"focus": false,
-			"FocusEvent": false,
-			"FontFace": false,
-			"FormData": false,
-			"frameElement": false,
-			"frames": false,
-			"GainNode": false,
-			"Gamepad": false,
-			"GamepadButton": false,
-			"GamepadEvent": false,
-			"getComputedStyle": false,
-			"getSelection": false,
-			"HashChangeEvent": false,
-			"Headers": false,
-			"history": false,
-			"History": false,
-			"HTMLAllCollection": false,
-			"HTMLAnchorElement": false,
-			"HTMLAppletElement": false,
-			"HTMLAreaElement": false,
-			"HTMLAudioElement": false,
-			"HTMLBaseElement": false,
-			"HTMLBlockquoteElement": false,
-			"HTMLBodyElement": false,
-			"HTMLBRElement": false,
-			"HTMLButtonElement": false,
-			"HTMLCanvasElement": false,
-			"HTMLCollection": false,
-			"HTMLContentElement": false,
-			"HTMLDataListElement": false,
-			"HTMLDetailsElement": false,
-			"HTMLDialogElement": false,
-			"HTMLDirectoryElement": false,
-			"HTMLDivElement": false,
-			"HTMLDListElement": false,
-			"HTMLDocument": false,
-			"HTMLElement": false,
-			"HTMLEmbedElement": false,
-			"HTMLFieldSetElement": false,
-			"HTMLFontElement": false,
-			"HTMLFormControlsCollection": false,
-			"HTMLFormElement": false,
-			"HTMLFrameElement": false,
-			"HTMLFrameSetElement": false,
-			"HTMLHeadElement": false,
-			"HTMLHeadingElement": false,
-			"HTMLHRElement": false,
-			"HTMLHtmlElement": false,
-			"HTMLIFrameElement": false,
-			"HTMLImageElement": false,
-			"HTMLInputElement": false,
-			"HTMLIsIndexElement": false,
-			"HTMLKeygenElement": false,
-			"HTMLLabelElement": false,
-			"HTMLLayerElement": false,
-			"HTMLLegendElement": false,
-			"HTMLLIElement": false,
-			"HTMLLinkElement": false,
-			"HTMLMapElement": false,
-			"HTMLMarqueeElement": false,
-			"HTMLMediaElement": false,
-			"HTMLMenuElement": false,
-			"HTMLMetaElement": false,
-			"HTMLMeterElement": false,
-			"HTMLModElement": false,
-			"HTMLObjectElement": false,
-			"HTMLOListElement": false,
-			"HTMLOptGroupElement": false,
-			"HTMLOptionElement": false,
-			"HTMLOptionsCollection": false,
-			"HTMLOutputElement": false,
-			"HTMLParagraphElement": false,
-			"HTMLParamElement": false,
-			"HTMLPictureElement": false,
-			"HTMLPreElement": false,
-			"HTMLProgressElement": false,
-			"HTMLQuoteElement": false,
-			"HTMLScriptElement": false,
-			"HTMLSelectElement": false,
-			"HTMLShadowElement": false,
-			"HTMLSourceElement": false,
-			"HTMLSpanElement": false,
-			"HTMLStyleElement": false,
-			"HTMLTableCaptionElement": false,
-			"HTMLTableCellElement": false,
-			"HTMLTableColElement": false,
-			"HTMLTableElement": false,
-			"HTMLTableRowElement": false,
-			"HTMLTableSectionElement": false,
-			"HTMLTemplateElement": false,
-			"HTMLTextAreaElement": false,
-			"HTMLTitleElement": false,
-			"HTMLTrackElement": false,
-			"HTMLUListElement": false,
-			"HTMLUnknownElement": false,
-			"HTMLVideoElement": false,
-			"IDBCursor": false,
-			"IDBCursorWithValue": false,
-			"IDBDatabase": false,
-			"IDBEnvironment": false,
-			"IDBFactory": false,
-			"IDBIndex": false,
-			"IDBKeyRange": false,
-			"IDBObjectStore": false,
-			"IDBOpenDBRequest": false,
-			"IDBRequest": false,
-			"IDBTransaction": false,
-			"IDBVersionChangeEvent": false,
-			"Image": false,
-			"ImageBitmap": false,
-			"ImageData": false,
-			"indexedDB": false,
-			"innerHeight": false,
-			"innerWidth": false,
-			"InputEvent": false,
-			"InputMethodContext": false,
-			"IntersectionObserver": false,
-			"IntersectionObserverEntry": false,
-			"Intl": false,
-			"KeyboardEvent": false,
-			"KeyframeEffect": false,
-			"KeyframeEffectReadOnly": false,
-			"length": false,
-			"localStorage": false,
-			"location": false,
-			"Location": false,
-			"locationbar": false,
-			"matchMedia": false,
-			"MediaElementAudioSourceNode": false,
-			"MediaEncryptedEvent": false,
-			"MediaError": false,
-			"MediaKeyError": false,
-			"MediaKeyEvent": false,
-			"MediaKeyMessageEvent": false,
-			"MediaKeys": false,
-			"MediaKeySession": false,
-			"MediaKeyStatusMap": false,
-			"MediaKeySystemAccess": false,
-			"MediaList": false,
-			"MediaQueryList": false,
-			"MediaQueryListEvent": false,
-			"MediaSource": false,
-			"MediaRecorder": false,
-			"MediaStream": false,
-			"MediaStreamAudioDestinationNode": false,
-			"MediaStreamAudioSourceNode": false,
-			"MediaStreamEvent": false,
-			"MediaStreamTrack": false,
-			"menubar": false,
-			"MessageChannel": false,
-			"MessageEvent": false,
-			"MessagePort": false,
-			"MIDIAccess": false,
-			"MIDIConnectionEvent": false,
-			"MIDIInput": false,
-			"MIDIInputMap": false,
-			"MIDIMessageEvent": false,
-			"MIDIOutput": false,
-			"MIDIOutputMap": false,
-			"MIDIPort": false,
-			"MimeType": false,
-			"MimeTypeArray": false,
-			"MouseEvent": false,
-			"moveBy": false,
-			"moveTo": false,
-			"MutationEvent": false,
-			"MutationObserver": false,
-			"MutationRecord": false,
-			"name": false,
-			"NamedNodeMap": false,
-			"navigator": false,
-			"Navigator": false,
-			"Node": false,
-			"NodeFilter": false,
-			"NodeIterator": false,
-			"NodeList": false,
-			"Notification": false,
-			"OfflineAudioCompletionEvent": false,
-			"OfflineAudioContext": false,
-			"offscreenBuffering": false,
-			"onbeforeunload": true,
-			"onblur": true,
-			"onerror": true,
-			"onfocus": true,
-			"onload": true,
-			"onresize": true,
-			"onunload": true,
-			"open": false,
-			"openDatabase": false,
-			"opener": false,
-			"opera": false,
-			"Option": false,
-			"OscillatorNode": false,
-			"outerHeight": false,
-			"outerWidth": false,
-			"PageTransitionEvent": false,
-			"pageXOffset": false,
-			"pageYOffset": false,
-			"parent": false,
-			"PasswordCredential": false,
-			"Path2D": false,
-			"performance": false,
-			"Performance": false,
-			"PerformanceEntry": false,
-			"PerformanceMark": false,
-			"PerformanceMeasure": false,
-			"PerformanceNavigation": false,
-			"PerformanceResourceTiming": false,
-			"PerformanceTiming": false,
-			"PeriodicWave": false,
-			"Permissions": false,
-			"PermissionStatus": false,
-			"personalbar": false,
-			"Plugin": false,
-			"PluginArray": false,
-			"PopStateEvent": false,
-			"postMessage": false,
-			"print": false,
-			"ProcessingInstruction": false,
-			"ProgressEvent": false,
-			"PromiseRejectionEvent": false,
-			"prompt": false,
-			"PushManager": false,
-			"PushSubscription": false,
-			"RadioNodeList": false,
-			"Range": false,
-			"ReadableByteStream": false,
-			"ReadableStream": false,
-			"removeEventListener": false,
-			"Request": false,
-			"requestAnimationFrame": false,
-			"requestIdleCallback": false,
-			"resizeBy": false,
-			"resizeTo": false,
-			"Response": false,
-			"RTCIceCandidate": false,
-			"RTCSessionDescription": false,
-			"RTCPeerConnection": false,
-			"screen": false,
-			"Screen": false,
-			"screenLeft": false,
-			"ScreenOrientation": false,
-			"screenTop": false,
-			"screenX": false,
-			"screenY": false,
-			"ScriptProcessorNode": false,
-			"scroll": false,
-			"scrollbars": false,
-			"scrollBy": false,
-			"scrollTo": false,
-			"scrollX": false,
-			"scrollY": false,
-			"SecurityPolicyViolationEvent": false,
-			"Selection": false,
-			"self": false,
-			"ServiceWorker": false,
-			"ServiceWorkerContainer": false,
-			"ServiceWorkerRegistration": false,
-			"sessionStorage": false,
-			"setInterval": false,
-			"setTimeout": false,
-			"ShadowRoot": false,
-			"SharedKeyframeList": false,
-			"SharedWorker": false,
-			"showModalDialog": false,
-			"SiteBoundCredential": false,
-			"speechSynthesis": false,
-			"SpeechSynthesisEvent": false,
-			"SpeechSynthesisUtterance": false,
-			"status": false,
-			"statusbar": false,
-			"stop": false,
-			"Storage": false,
-			"StorageEvent": false,
-			"styleMedia": false,
-			"StyleSheet": false,
-			"StyleSheetList": false,
-			"SubtleCrypto": false,
-			"SVGAElement": false,
-			"SVGAltGlyphDefElement": false,
-			"SVGAltGlyphElement": false,
-			"SVGAltGlyphItemElement": false,
-			"SVGAngle": false,
-			"SVGAnimateColorElement": false,
-			"SVGAnimatedAngle": false,
-			"SVGAnimatedBoolean": false,
-			"SVGAnimatedEnumeration": false,
-			"SVGAnimatedInteger": false,
-			"SVGAnimatedLength": false,
-			"SVGAnimatedLengthList": false,
-			"SVGAnimatedNumber": false,
-			"SVGAnimatedNumberList": false,
-			"SVGAnimatedPathData": false,
-			"SVGAnimatedPoints": false,
-			"SVGAnimatedPreserveAspectRatio": false,
-			"SVGAnimatedRect": false,
-			"SVGAnimatedString": false,
-			"SVGAnimatedTransformList": false,
-			"SVGAnimateElement": false,
-			"SVGAnimateMotionElement": false,
-			"SVGAnimateTransformElement": false,
-			"SVGAnimationElement": false,
-			"SVGCircleElement": false,
-			"SVGClipPathElement": false,
-			"SVGColor": false,
-			"SVGColorProfileElement": false,
-			"SVGColorProfileRule": false,
-			"SVGComponentTransferFunctionElement": false,
-			"SVGCSSRule": false,
-			"SVGCursorElement": false,
-			"SVGDefsElement": false,
-			"SVGDescElement": false,
-			"SVGDiscardElement": false,
-			"SVGDocument": false,
-			"SVGElement": false,
-			"SVGElementInstance": false,
-			"SVGElementInstanceList": false,
-			"SVGEllipseElement": false,
-			"SVGEvent": false,
-			"SVGExternalResourcesRequired": false,
-			"SVGFEBlendElement": false,
-			"SVGFEColorMatrixElement": false,
-			"SVGFEComponentTransferElement": false,
-			"SVGFECompositeElement": false,
-			"SVGFEConvolveMatrixElement": false,
-			"SVGFEDiffuseLightingElement": false,
-			"SVGFEDisplacementMapElement": false,
-			"SVGFEDistantLightElement": false,
-			"SVGFEDropShadowElement": false,
-			"SVGFEFloodElement": false,
-			"SVGFEFuncAElement": false,
-			"SVGFEFuncBElement": false,
-			"SVGFEFuncGElement": false,
-			"SVGFEFuncRElement": false,
-			"SVGFEGaussianBlurElement": false,
-			"SVGFEImageElement": false,
-			"SVGFEMergeElement": false,
-			"SVGFEMergeNodeElement": false,
-			"SVGFEMorphologyElement": false,
-			"SVGFEOffsetElement": false,
-			"SVGFEPointLightElement": false,
-			"SVGFESpecularLightingElement": false,
-			"SVGFESpotLightElement": false,
-			"SVGFETileElement": false,
-			"SVGFETurbulenceElement": false,
-			"SVGFilterElement": false,
-			"SVGFilterPrimitiveStandardAttributes": false,
-			"SVGFitToViewBox": false,
-			"SVGFontElement": false,
-			"SVGFontFaceElement": false,
-			"SVGFontFaceFormatElement": false,
-			"SVGFontFaceNameElement": false,
-			"SVGFontFaceSrcElement": false,
-			"SVGFontFaceUriElement": false,
-			"SVGForeignObjectElement": false,
-			"SVGGElement": false,
-			"SVGGeometryElement": false,
-			"SVGGlyphElement": false,
-			"SVGGlyphRefElement": false,
-			"SVGGradientElement": false,
-			"SVGGraphicsElement": false,
-			"SVGHKernElement": false,
-			"SVGICCColor": false,
-			"SVGImageElement": false,
-			"SVGLangSpace": false,
-			"SVGLength": false,
-			"SVGLengthList": false,
-			"SVGLinearGradientElement": false,
-			"SVGLineElement": false,
-			"SVGLocatable": false,
-			"SVGMarkerElement": false,
-			"SVGMaskElement": false,
-			"SVGMatrix": false,
-			"SVGMetadataElement": false,
-			"SVGMissingGlyphElement": false,
-			"SVGMPathElement": false,
-			"SVGNumber": false,
-			"SVGNumberList": false,
-			"SVGPaint": false,
-			"SVGPathElement": false,
-			"SVGPathSeg": false,
-			"SVGPathSegArcAbs": false,
-			"SVGPathSegArcRel": false,
-			"SVGPathSegClosePath": false,
-			"SVGPathSegCurvetoCubicAbs": false,
-			"SVGPathSegCurvetoCubicRel": false,
-			"SVGPathSegCurvetoCubicSmoothAbs": false,
-			"SVGPathSegCurvetoCubicSmoothRel": false,
-			"SVGPathSegCurvetoQuadraticAbs": false,
-			"SVGPathSegCurvetoQuadraticRel": false,
-			"SVGPathSegCurvetoQuadraticSmoothAbs": false,
-			"SVGPathSegCurvetoQuadraticSmoothRel": false,
-			"SVGPathSegLinetoAbs": false,
-			"SVGPathSegLinetoHorizontalAbs": false,
-			"SVGPathSegLinetoHorizontalRel": false,
-			"SVGPathSegLinetoRel": false,
-			"SVGPathSegLinetoVerticalAbs": false,
-			"SVGPathSegLinetoVerticalRel": false,
-			"SVGPathSegList": false,
-			"SVGPathSegMovetoAbs": false,
-			"SVGPathSegMovetoRel": false,
-			"SVGPatternElement": false,
-			"SVGPoint": false,
-			"SVGPointList": false,
-			"SVGPolygonElement": false,
-			"SVGPolylineElement": false,
-			"SVGPreserveAspectRatio": false,
-			"SVGRadialGradientElement": false,
-			"SVGRect": false,
-			"SVGRectElement": false,
-			"SVGRenderingIntent": false,
-			"SVGScriptElement": false,
-			"SVGSetElement": false,
-			"SVGStopElement": false,
-			"SVGStringList": false,
-			"SVGStylable": false,
-			"SVGStyleElement": false,
-			"SVGSVGElement": false,
-			"SVGSwitchElement": false,
-			"SVGSymbolElement": false,
-			"SVGTests": false,
-			"SVGTextContentElement": false,
-			"SVGTextElement": false,
-			"SVGTextPathElement": false,
-			"SVGTextPositioningElement": false,
-			"SVGTitleElement": false,
-			"SVGTransform": false,
-			"SVGTransformable": false,
-			"SVGTransformList": false,
-			"SVGTRefElement": false,
-			"SVGTSpanElement": false,
-			"SVGUnitTypes": false,
-			"SVGURIReference": false,
-			"SVGUseElement": false,
-			"SVGViewElement": false,
-			"SVGViewSpec": false,
-			"SVGVKernElement": false,
-			"SVGZoomAndPan": false,
-			"SVGZoomEvent": false,
-			"Text": false,
-			"TextDecoder": false,
-			"TextEncoder": false,
-			"TextEvent": false,
-			"TextMetrics": false,
-			"TextTrack": false,
-			"TextTrackCue": false,
-			"TextTrackCueList": false,
-			"TextTrackList": false,
-			"TimeEvent": false,
-			"TimeRanges": false,
-			"toolbar": false,
-			"top": false,
-			"Touch": false,
-			"TouchEvent": false,
-			"TouchList": false,
-			"TrackEvent": false,
-			"TransitionEvent": false,
-			"TreeWalker": false,
-			"UIEvent": false,
-			"URL": false,
-			"URLSearchParams": false,
-			"ValidityState": false,
-			"VTTCue": false,
-			"WaveShaperNode": false,
-			"WebGLActiveInfo": false,
-			"WebGLBuffer": false,
-			"WebGLContextEvent": false,
-			"WebGLFramebuffer": false,
-			"WebGLProgram": false,
-			"WebGLRenderbuffer": false,
-			"WebGLRenderingContext": false,
-			"WebGLShader": false,
-			"WebGLShaderPrecisionFormat": false,
-			"WebGLTexture": false,
-			"WebGLUniformLocation": false,
-			"WebSocket": false,
-			"WheelEvent": false,
-			"window": false,
-			"Window": false,
-			"Worker": false,
-			"XDomainRequest": false,
-			"XMLDocument": false,
-			"XMLHttpRequest": false,
-			"XMLHttpRequestEventTarget": false,
-			"XMLHttpRequestProgressEvent": false,
-			"XMLHttpRequestUpload": false,
-			"XMLSerializer": false,
-			"XPathEvaluator": false,
-			"XPathException": false,
-			"XPathExpression": false,
-			"XPathNamespace": false,
-			"XPathNSResolver": false,
-			"XPathResult": false,
-			"XSLTProcessor": false
-		},
-		"worker": {
-			"applicationCache": false,
-			"atob": false,
-			"Blob": false,
-			"BroadcastChannel": false,
-			"btoa": false,
-			"Cache": false,
-			"caches": false,
-			"clearInterval": false,
-			"clearTimeout": false,
-			"close": true,
-			"console": false,
-			"fetch": false,
-			"FileReaderSync": false,
-			"FormData": false,
-			"Headers": false,
-			"IDBCursor": false,
-			"IDBCursorWithValue": false,
-			"IDBDatabase": false,
-			"IDBFactory": false,
-			"IDBIndex": false,
-			"IDBKeyRange": false,
-			"IDBObjectStore": false,
-			"IDBOpenDBRequest": false,
-			"IDBRequest": false,
-			"IDBTransaction": false,
-			"IDBVersionChangeEvent": false,
-			"ImageData": false,
-			"importScripts": true,
-			"indexedDB": false,
-			"location": false,
-			"MessageChannel": false,
-			"MessagePort": false,
-			"name": false,
-			"navigator": false,
-			"Notification": false,
-			"onclose": true,
-			"onconnect": true,
-			"onerror": true,
-			"onlanguagechange": true,
-			"onmessage": true,
-			"onoffline": true,
-			"ononline": true,
-			"onrejectionhandled": true,
-			"onunhandledrejection": true,
-			"performance": false,
-			"Performance": false,
-			"PerformanceEntry": false,
-			"PerformanceMark": false,
-			"PerformanceMeasure": false,
-			"PerformanceNavigation": false,
-			"PerformanceResourceTiming": false,
-			"PerformanceTiming": false,
-			"postMessage": true,
-			"Promise": false,
-			"Request": false,
-			"Response": false,
-			"self": true,
-			"ServiceWorkerRegistration": false,
-			"setInterval": false,
-			"setTimeout": false,
-			"TextDecoder": false,
-			"TextEncoder": false,
-			"URL": false,
-			"URLSearchParams": false,
-			"WebSocket": false,
-			"Worker": false,
-			"XMLHttpRequest": false
-		},
-		"node": {
-			"__dirname": false,
-			"__filename": false,
-			"arguments": false,
-			"Buffer": false,
-			"clearImmediate": false,
-			"clearInterval": false,
-			"clearTimeout": false,
-			"console": false,
-			"exports": true,
-			"GLOBAL": false,
-			"global": false,
-			"Intl": false,
-			"module": false,
-			"process": false,
-			"require": false,
-			"root": false,
-			"setImmediate": false,
-			"setInterval": false,
-			"setTimeout": false
-		},
-		"commonjs": {
-			"exports": true,
-			"module": false,
-			"require": false,
-			"global": false
-		},
-		"amd": {
-			"define": false,
-			"require": false
-		},
-		"mocha": {
-			"after": false,
-			"afterEach": false,
-			"before": false,
-			"beforeEach": false,
-			"context": false,
-			"describe": false,
-			"it": false,
-			"mocha": false,
-			"run": false,
-			"setup": false,
-			"specify": false,
-			"suite": false,
-			"suiteSetup": false,
-			"suiteTeardown": false,
-			"teardown": false,
-			"test": false,
-			"xcontext": false,
-			"xdescribe": false,
-			"xit": false,
-			"xspecify": false
-		},
-		"jasmine": {
-			"afterAll": false,
-			"afterEach": false,
-			"beforeAll": false,
-			"beforeEach": false,
-			"describe": false,
-			"expect": false,
-			"fail": false,
-			"fdescribe": false,
-			"fit": false,
-			"it": false,
-			"jasmine": false,
-			"pending": false,
-			"runs": false,
-			"spyOn": false,
-			"spyOnProperty": false,
-			"waits": false,
-			"waitsFor": false,
-			"xdescribe": false,
-			"xit": false
-		},
-		"jest": {
-			"afterAll": false,
-			"afterEach": false,
-			"beforeAll": false,
-			"beforeEach": false,
-			"check": false,
-			"describe": false,
-			"expect": false,
-			"gen": false,
-			"it": false,
-			"fdescribe": false,
-			"fit": false,
-			"jest": false,
-			"pit": false,
-			"require": false,
-			"test": false,
-			"xdescribe": false,
-			"xit": false,
-			"xtest": false
-		},
-		"qunit": {
-			"asyncTest": false,
-			"deepEqual": false,
-			"equal": false,
-			"expect": false,
-			"module": false,
-			"notDeepEqual": false,
-			"notEqual": false,
-			"notOk": false,
-			"notPropEqual": false,
-			"notStrictEqual": false,
-			"ok": false,
-			"propEqual": false,
-			"QUnit": false,
-			"raises": false,
-			"start": false,
-			"stop": false,
-			"strictEqual": false,
-			"test": false,
-			"throws": false
-		},
-		"phantomjs": {
-			"console": true,
-			"exports": true,
-			"phantom": true,
-			"require": true,
-			"WebPage": true
-		},
-		"couch": {
-			"emit": false,
-			"exports": false,
-			"getRow": false,
-			"log": false,
-			"module": false,
-			"provides": false,
-			"require": false,
-			"respond": false,
-			"send": false,
-			"start": false,
-			"sum": false
-		},
-		"rhino": {
-			"defineClass": false,
-			"deserialize": false,
-			"gc": false,
-			"help": false,
-			"importClass": false,
-			"importPackage": false,
-			"java": false,
-			"load": false,
-			"loadClass": false,
-			"Packages": false,
-			"print": false,
-			"quit": false,
-			"readFile": false,
-			"readUrl": false,
-			"runCommand": false,
-			"seal": false,
-			"serialize": false,
-			"spawn": false,
-			"sync": false,
-			"toint32": false,
-			"version": false
-		},
-		"nashorn": {
-			"__DIR__": false,
-			"__FILE__": false,
-			"__LINE__": false,
-			"com": false,
-			"edu": false,
-			"exit": false,
-			"Java": false,
-			"java": false,
-			"javafx": false,
-			"JavaImporter": false,
-			"javax": false,
-			"JSAdapter": false,
-			"load": false,
-			"loadWithNewGlobal": false,
-			"org": false,
-			"Packages": false,
-			"print": false,
-			"quit": false
-		},
-		"wsh": {
-			"ActiveXObject": true,
-			"Enumerator": true,
-			"GetObject": true,
-			"ScriptEngine": true,
-			"ScriptEngineBuildVersion": true,
-			"ScriptEngineMajorVersion": true,
-			"ScriptEngineMinorVersion": true,
-			"VBArray": true,
-			"WScript": true,
-			"WSH": true,
-			"XDomainRequest": true
-		},
-		"jquery": {
-			"$": false,
-			"jQuery": false
-		},
-		"yui": {
-			"Y": false,
-			"YUI": false,
-			"YUI_config": false
-		},
-		"shelljs": {
-			"cat": false,
-			"cd": false,
-			"chmod": false,
-			"config": false,
-			"cp": false,
-			"dirs": false,
-			"echo": false,
-			"env": false,
-			"error": false,
-			"exec": false,
-			"exit": false,
-			"find": false,
-			"grep": false,
-			"ls": false,
-			"ln": false,
-			"mkdir": false,
-			"mv": false,
-			"popd": false,
-			"pushd": false,
-			"pwd": false,
-			"rm": false,
-			"sed": false,
-			"set": false,
-			"target": false,
-			"tempdir": false,
-			"test": false,
-			"touch": false,
-			"which": false
-		},
-		"prototypejs": {
-			"$": false,
-			"$$": false,
-			"$A": false,
-			"$break": false,
-			"$continue": false,
-			"$F": false,
-			"$H": false,
-			"$R": false,
-			"$w": false,
-			"Abstract": false,
-			"Ajax": false,
-			"Autocompleter": false,
-			"Builder": false,
-			"Class": false,
-			"Control": false,
-			"Draggable": false,
-			"Draggables": false,
-			"Droppables": false,
-			"Effect": false,
-			"Element": false,
-			"Enumerable": false,
-			"Event": false,
-			"Field": false,
-			"Form": false,
-			"Hash": false,
-			"Insertion": false,
-			"ObjectRange": false,
-			"PeriodicalExecuter": false,
-			"Position": false,
-			"Prototype": false,
-			"Scriptaculous": false,
-			"Selector": false,
-			"Sortable": false,
-			"SortableObserver": false,
-			"Sound": false,
-			"Template": false,
-			"Toggle": false,
-			"Try": false
-		},
-		"meteor": {
-			"$": false,
-			"_": false,
-			"Accounts": false,
-			"AccountsClient": false,
-			"AccountsServer": false,
-			"AccountsCommon": false,
-			"App": false,
-			"Assets": false,
-			"Blaze": false,
-			"check": false,
-			"Cordova": false,
-			"DDP": false,
-			"DDPServer": false,
-			"DDPRateLimiter": false,
-			"Deps": false,
-			"EJSON": false,
-			"Email": false,
-			"HTTP": false,
-			"Log": false,
-			"Match": false,
-			"Meteor": false,
-			"Mongo": false,
-			"MongoInternals": false,
-			"Npm": false,
-			"Package": false,
-			"Plugin": false,
-			"process": false,
-			"Random": false,
-			"ReactiveDict": false,
-			"ReactiveVar": false,
-			"Router": false,
-			"ServiceConfiguration": false,
-			"Session": false,
-			"share": false,
-			"Spacebars": false,
-			"Template": false,
-			"Tinytest": false,
-			"Tracker": false,
-			"UI": false,
-			"Utils": false,
-			"WebApp": false,
-			"WebAppInternals": false
-		},
-		"mongo": {
-			"_isWindows": false,
-			"_rand": false,
-			"BulkWriteResult": false,
-			"cat": false,
-			"cd": false,
-			"connect": false,
-			"db": false,
-			"getHostName": false,
-			"getMemInfo": false,
-			"hostname": false,
-			"ISODate": false,
-			"listFiles": false,
-			"load": false,
-			"ls": false,
-			"md5sumFile": false,
-			"mkdir": false,
-			"Mongo": false,
-			"NumberInt": false,
-			"NumberLong": false,
-			"ObjectId": false,
-			"PlanCache": false,
-			"print": false,
-			"printjson": false,
-			"pwd": false,
-			"quit": false,
-			"removeFile": false,
-			"rs": false,
-			"sh": false,
-			"UUID": false,
-			"version": false,
-			"WriteResult": false
-		},
-		"applescript": {
-			"$": false,
-			"Application": false,
-			"Automation": false,
-			"console": false,
-			"delay": false,
-			"Library": false,
-			"ObjC": false,
-			"ObjectSpecifier": false,
-			"Path": false,
-			"Progress": false,
-			"Ref": false
-		},
-		"serviceworker": {
-			"caches": false,
-			"Cache": false,
-			"CacheStorage": false,
-			"Client": false,
-			"clients": false,
-			"Clients": false,
-			"ExtendableEvent": false,
-			"ExtendableMessageEvent": false,
-			"FetchEvent": false,
-			"importScripts": false,
-			"registration": false,
-			"self": false,
-			"ServiceWorker": false,
-			"ServiceWorkerContainer": false,
-			"ServiceWorkerGlobalScope": false,
-			"ServiceWorkerMessageEvent": false,
-			"ServiceWorkerRegistration": false,
-			"skipWaiting": false,
-			"WindowClient": false
-		},
-		"atomtest": {
-			"advanceClock": false,
-			"fakeClearInterval": false,
-			"fakeClearTimeout": false,
-			"fakeSetInterval": false,
-			"fakeSetTimeout": false,
-			"resetTimeouts": false,
-			"waitsForPromise": false
-		},
-		"embertest": {
-			"andThen": false,
-			"click": false,
-			"currentPath": false,
-			"currentRouteName": false,
-			"currentURL": false,
-			"fillIn": false,
-			"find": false,
-			"findWithAssert": false,
-			"keyEvent": false,
-			"pauseTest": false,
-			"resumeTest": false,
-			"triggerEvent": false,
-			"visit": false
-		},
-		"protractor": {
-			"$": false,
-			"$$": false,
-			"browser": false,
-			"By": false,
-			"by": false,
-			"DartObject": false,
-			"element": false,
-			"protractor": false
-		},
-		"shared-node-browser": {
-			"clearInterval": false,
-			"clearTimeout": false,
-			"console": false,
-			"setInterval": false,
-			"setTimeout": false
-		},
-		"webextensions": {
-			"browser": false,
-			"chrome": false,
-			"opr": false
-		},
-		"greasemonkey": {
-			"GM_addStyle": false,
-			"GM_deleteValue": false,
-			"GM_getResourceText": false,
-			"GM_getResourceURL": false,
-			"GM_getValue": false,
-			"GM_info": false,
-			"GM_listValues": false,
-			"GM_log": false,
-			"GM_openInTab": false,
-			"GM_registerMenuCommand": false,
-			"GM_setClipboard": false,
-			"GM_setValue": false,
-			"GM_xmlhttpRequest": false,
-			"unsafeWindow": false
-		}
-	};
+	module.exports = {"builtin":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"System":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es6":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"System":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"browser":{"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AutocompleteErrorEvent":false,"BarProp":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"blur":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"CDATASection":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClientRect":false,"ClientRectList":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConvolverNode":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSAnimation":false,"CSSFontFaceRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMediaRule":false,"CSSPageRule":false,"CSSRule":false,"CSSRuleList":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CSSTransition":false,"CSSUnknownRule":false,"CSSViewportRule":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"Debug":false,"defaultStatus":false,"defaultstatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentTimeline":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMParser":false,"DOMSettableTokenList":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ElementTimeControl":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"FederatedCredential":false,"fetch":false,"File":false,"FileError":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FormData":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAppletElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBlockquoteElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLIsIndexElement":false,"HTMLKeygenElement":false,"HTMLLabelElement":false,"HTMLLayerElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBEnvironment":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"Image":false,"ImageBitmap":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"InputMethodContext":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":false,"Location":false,"locationbar":false,"matchMedia":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyError":false,"MediaKeyEvent":false,"MediaKeyMessageEvent":false,"MediaKeys":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaSource":false,"MediaRecorder":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"navigator":false,"Navigator":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"onbeforeunload":true,"onblur":true,"onerror":true,"onfocus":true,"onload":true,"onresize":true,"onunload":true,"open":false,"openDatabase":false,"opener":false,"opera":false,"Option":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"parent":false,"PasswordCredential":false,"Path2D":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"Plugin":false,"PluginArray":false,"PopStateEvent":false,"postMessage":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"RadioNodeList":false,"Range":false,"ReadableByteStream":false,"ReadableStream":false,"removeEventListener":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"resizeTo":false,"Response":false,"RTCIceCandidate":false,"RTCSessionDescription":false,"RTCPeerConnection":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedKeyframeList":false,"SharedWorker":false,"showModalDialog":false,"SiteBoundCredential":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"status":false,"statusbar":false,"stop":false,"Storage":false,"StorageEvent":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAltGlyphDefElement":false,"SVGAltGlyphElement":false,"SVGAltGlyphItemElement":false,"SVGAngle":false,"SVGAnimateColorElement":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPathData":false,"SVGAnimatedPoints":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGColor":false,"SVGColorProfileElement":false,"SVGColorProfileRule":false,"SVGComponentTransferFunctionElement":false,"SVGCSSRule":false,"SVGCursorElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGDocument":false,"SVGElement":false,"SVGElementInstance":false,"SVGElementInstanceList":false,"SVGEllipseElement":false,"SVGEvent":false,"SVGExternalResourcesRequired":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGFilterPrimitiveStandardAttributes":false,"SVGFitToViewBox":false,"SVGFontElement":false,"SVGFontFaceElement":false,"SVGFontFaceFormatElement":false,"SVGFontFaceNameElement":false,"SVGFontFaceSrcElement":false,"SVGFontFaceUriElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGlyphElement":false,"SVGGlyphRefElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGHKernElement":false,"SVGICCColor":false,"SVGImageElement":false,"SVGLangSpace":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGLocatable":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMissingGlyphElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPaint":false,"SVGPathElement":false,"SVGPathSeg":false,"SVGPathSegArcAbs":false,"SVGPathSegArcRel":false,"SVGPathSegClosePath":false,"SVGPathSegCurvetoCubicAbs":false,"SVGPathSegCurvetoCubicRel":false,"SVGPathSegCurvetoCubicSmoothAbs":false,"SVGPathSegCurvetoCubicSmoothRel":false,"SVGPathSegCurvetoQuadraticAbs":false,"SVGPathSegCurvetoQuadraticRel":false,"SVGPathSegCurvetoQuadraticSmoothAbs":false,"SVGPathSegCurvetoQuadraticSmoothRel":false,"SVGPathSegLinetoAbs":false,"SVGPathSegLinetoHorizontalAbs":false,"SVGPathSegLinetoHorizontalRel":false,"SVGPathSegLinetoRel":false,"SVGPathSegLinetoVerticalAbs":false,"SVGPathSegLinetoVerticalRel":false,"SVGPathSegList":false,"SVGPathSegMovetoAbs":false,"SVGPathSegMovetoRel":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGRenderingIntent":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStylable":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTests":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformable":false,"SVGTransformList":false,"SVGTRefElement":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGURIReference":false,"SVGUseElement":false,"SVGViewElement":false,"SVGViewSpec":false,"SVGVKernElement":false,"SVGZoomAndPan":false,"SVGZoomEvent":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeEvent":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"VTTCue":false,"WaveShaperNode":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLTexture":false,"WebGLUniformLocation":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"XDomainRequest":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestProgressEvent":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathException":false,"XPathExpression":false,"XPathNamespace":false,"XPathNSResolver":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"arguments":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"exports":true,"GLOBAL":false,"global":false,"Intl":false,"module":false,"process":false,"require":false,"root":false,"setImmediate":false,"setInterval":false,"setTimeout":false},"commonjs":{"exports":true,"module":false,"require":false,"global":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"check":false,"describe":false,"expect":false,"gen":false,"it":false,"fdescribe":false,"fit":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"Java":false,"java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":true,"Enumerator":true,"GetObject":true,"ScriptEngine":true,"ScriptEngineBuildVersion":true,"ScriptEngineMajorVersion":true,"ScriptEngineMinorVersion":true,"VBArray":true,"WScript":true,"WSH":true,"XDomainRequest":true},"jquery":{"$":false,"jQuery":false},"yui":{"Y":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ls":false,"ln":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"$":false,"_":false,"Accounts":false,"AccountsClient":false,"AccountsServer":false,"AccountsCommon":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPServer":false,"DDPRateLimiter":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"caches":false,"Cache":false,"CacheStorage":false,"Client":false,"clients":false,"Clients":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"FetchEvent":false,"importScripts":false,"registration":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"skipWaiting":false,"WindowClient":false},"atomtest":{"advanceClock":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false},"protractor":{"$":false,"$$":false,"browser":false,"By":false,"by":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"clearInterval":false,"clearTimeout":false,"console":false,"setInterval":false,"setTimeout":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"GM_addStyle":false,"GM_deleteValue":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_setClipboard":false,"GM_setValue":false,"GM_xmlhttpRequest":false,"unsafeWindow":false}}
 
 /***/ },
 /* 618 */
 /***/ function(module, exports, __webpack_require__) {
 
 	"use strict";
 
 	exports.__esModule = true;
--- a/devtools/client/debugger/new/search-worker.js
+++ b/devtools/client/debugger/new/search-worker.js
@@ -779,16 +779,19 @@ return /******/ (function(modules) { // 
 
 	var _buildQuery = __webpack_require__(1138);
 
 	var _buildQuery2 = _interopRequireDefault(_buildQuery);
 
 	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
 	function getMatches(query, text, modifiers) {
+	  if (!query || !text || !modifiers) {
+	    return [];
+	  }
 	  var regexQuery = (0, _buildQuery2.default)(query, modifiers, {
 	    isGlobal: true
 	  });
 	  var matchedLocations = [];
 	  var lines = text.split("\n");
 	  for (var i = 0; i < lines.length; i++) {
 	    var singleMatch = void 0;
 	    while ((singleMatch = regexQuery.exec(lines[i])) !== null) {
--- a/devtools/client/preferences/debugger.js
+++ b/devtools/client/preferences/debugger.js
@@ -15,17 +15,17 @@ pref("devtools.debugger.ignore-caught-ex
 pref("devtools.debugger.source-maps-enabled", true);
 pref("devtools.debugger.client-source-maps-enabled", true);
 pref("devtools.debugger.pretty-print-enabled", true);
 pref("devtools.debugger.auto-pretty-print", false);
 pref("devtools.debugger.auto-black-box", true);
 pref("devtools.debugger.workers", false);
 
 // The default Debugger UI settings
-pref("devtools.debugger.prefs-schema-version", "1.0.0");
+pref("devtools.debugger.prefs-schema-version", "1.0.2");
 pref("devtools.debugger.ui.panes-workers-and-sources-width", 200);
 pref("devtools.debugger.ui.panes-instruments-width", 300);
 pref("devtools.debugger.ui.panes-visible-on-startup", false);
 pref("devtools.debugger.ui.variables-sorting-enabled", true);
 pref("devtools.debugger.ui.variables-only-enum-visible", false);
 pref("devtools.debugger.ui.variables-searchbox-visible", false);
 pref("devtools.debugger.ui.framework-grouping-on", true);
 pref("devtools.debugger.call-stack-visible", false);